Continued building a system for transferring the complete internal states of our dimensions from the server to the client. However, Steven suggested that clients only need minimal data to operate properly, as opposed to the server. My motivation for this more complicated system was the concern that minimal information wouldn't be enough. I'm going to commit my progress, then tear it down and write a much simpler version.
52 lines
916 B
Java
52 lines
916 B
Java
package StevenDimDoors.mod_pocketDim.messages;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
public class UpdateWatcherProxy implements IUpdateWatcher
|
|
{
|
|
private List<IUpdateWatcher> watchers;
|
|
|
|
public UpdateWatcherProxy()
|
|
{
|
|
watchers = new ArrayList<IUpdateWatcher>();
|
|
}
|
|
|
|
@Override
|
|
public void onCreated(IDataMessage message)
|
|
{
|
|
for (IUpdateWatcher receiver : watchers)
|
|
{
|
|
receiver.onCreated(message);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void onUpdated(IDataMessage message)
|
|
{
|
|
for (IUpdateWatcher receiver : watchers)
|
|
{
|
|
receiver.onUpdated(message);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void onDeleted(IDataMessage message)
|
|
{
|
|
for (IUpdateWatcher receiver : watchers)
|
|
{
|
|
receiver.onDeleted(message);
|
|
}
|
|
}
|
|
|
|
public void registerReceiver(IUpdateWatcher receiver)
|
|
{
|
|
watchers.add(receiver);
|
|
}
|
|
|
|
public boolean unregisterReceiver(IUpdateWatcher receiver)
|
|
{
|
|
return watchers.remove(receiver);
|
|
}
|
|
}
|