THE UPDATE

Merging months of dev work into master. The update is playable, but
untested.
This commit is contained in:
StevenRS11
2013-11-05 18:15:23 -05:00
parent be89913263
commit a04a266c17
154 changed files with 8826 additions and 8272 deletions

View 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());
}
}

View 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);
}

View File

@@ -0,0 +1,7 @@
package StevenDimDoors.mod_pocketDim.watcher;
public interface IUpdateWatcher<T>
{
public void onCreated(T message);
public void onDeleted(T message);
}

View 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);
}
}