THE UPDATE
Merging months of dev work into master. The update is playable, but untested.
This commit is contained in:
37
StevenDimDoors/mod_pocketDim/watcher/ClientDimData.java
Normal file
37
StevenDimDoors/mod_pocketDim/watcher/ClientDimData.java
Normal file
@@ -0,0 +1,37 @@
|
||||
package StevenDimDoors.mod_pocketDim.watcher;
|
||||
|
||||
import java.io.DataInputStream;
|
||||
import java.io.DataOutputStream;
|
||||
import java.io.IOException;
|
||||
|
||||
import StevenDimDoors.mod_pocketDim.core.NewDimData;
|
||||
|
||||
public class ClientDimData
|
||||
{
|
||||
//We'll use public fields since this is just a data container and it's immutable
|
||||
public final int ID;
|
||||
public final int RootID;
|
||||
|
||||
public ClientDimData(int id, int rootID)
|
||||
{
|
||||
ID = id;
|
||||
RootID = rootID;
|
||||
}
|
||||
|
||||
public ClientDimData(NewDimData dimension)
|
||||
{
|
||||
ID = dimension.id();
|
||||
RootID = dimension.root().id();
|
||||
}
|
||||
|
||||
public void write(DataOutputStream output) throws IOException
|
||||
{
|
||||
output.writeInt(ID);
|
||||
output.writeInt(RootID);
|
||||
}
|
||||
|
||||
public static ClientDimData read(DataInputStream input) throws IOException
|
||||
{
|
||||
return new ClientDimData(input.readInt(), input.readInt());
|
||||
}
|
||||
}
|
||||
8
StevenDimDoors/mod_pocketDim/watcher/IUpdateSource.java
Normal file
8
StevenDimDoors/mod_pocketDim/watcher/IUpdateSource.java
Normal file
@@ -0,0 +1,8 @@
|
||||
package StevenDimDoors.mod_pocketDim.watcher;
|
||||
|
||||
import StevenDimDoors.mod_pocketDim.util.Point4D;
|
||||
|
||||
public interface IUpdateSource
|
||||
{
|
||||
public void registerWatchers(IUpdateWatcher<ClientDimData> dimWatcher, IUpdateWatcher<Point4D> linkWatcher);
|
||||
}
|
||||
7
StevenDimDoors/mod_pocketDim/watcher/IUpdateWatcher.java
Normal file
7
StevenDimDoors/mod_pocketDim/watcher/IUpdateWatcher.java
Normal file
@@ -0,0 +1,7 @@
|
||||
package StevenDimDoors.mod_pocketDim.watcher;
|
||||
|
||||
public interface IUpdateWatcher<T>
|
||||
{
|
||||
public void onCreated(T message);
|
||||
public void onDeleted(T message);
|
||||
}
|
||||
42
StevenDimDoors/mod_pocketDim/watcher/UpdateWatcherProxy.java
Normal file
42
StevenDimDoors/mod_pocketDim/watcher/UpdateWatcherProxy.java
Normal file
@@ -0,0 +1,42 @@
|
||||
package StevenDimDoors.mod_pocketDim.watcher;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class UpdateWatcherProxy<T> implements IUpdateWatcher<T>
|
||||
{
|
||||
private List<IUpdateWatcher<T>> watchers;
|
||||
|
||||
public UpdateWatcherProxy()
|
||||
{
|
||||
watchers = new ArrayList<IUpdateWatcher<T>>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreated(T message)
|
||||
{
|
||||
for (IUpdateWatcher<T> receiver : watchers)
|
||||
{
|
||||
receiver.onCreated(message);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDeleted(T message)
|
||||
{
|
||||
for (IUpdateWatcher<T> receiver : watchers)
|
||||
{
|
||||
receiver.onDeleted(message);
|
||||
}
|
||||
}
|
||||
|
||||
public void registerReceiver(IUpdateWatcher<T> receiver)
|
||||
{
|
||||
watchers.add(receiver);
|
||||
}
|
||||
|
||||
public boolean unregisterReceiver(IUpdateWatcher<T> receiver)
|
||||
{
|
||||
return watchers.remove(receiver);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user