completed basic test, for #1486
This commit is contained in:
parent
5a40c529cd
commit
ce757bc37f
|
@ -39,6 +39,8 @@ import buildcraft.core.Version;
|
|||
import buildcraft.core.proxy.CoreProxy;
|
||||
import buildcraft.tests.testcase.BlockTestCase;
|
||||
import buildcraft.tests.testcase.Sequence;
|
||||
import buildcraft.tests.testcase.SequenceActionCheckBlockMeta;
|
||||
import buildcraft.tests.testcase.SequenceActionUseItem;
|
||||
import buildcraft.tests.testcase.TileTestCase;
|
||||
|
||||
@Mod(name = "BuildCraft Tests", version = Version.VERSION, useMetadata = false, modid = "BuildCraft|Tests", dependencies = DefaultProps.DEPENDENCY_CORE)
|
||||
|
@ -72,6 +74,9 @@ public class BuildCraftTests extends BuildCraftMod {
|
|||
tester = new ItemTester();
|
||||
tester.setUnlocalizedName("tester");
|
||||
CoreProxy.proxy.registerItem(tester);
|
||||
|
||||
Sequence.registerSequenceAction("useItem", SequenceActionUseItem.class);
|
||||
Sequence.registerSequenceAction("checkBlockMeta", SequenceActionCheckBlockMeta.class);
|
||||
}
|
||||
|
||||
@Mod.EventHandler
|
||||
|
|
|
@ -35,6 +35,7 @@ public class GuiTestCase extends GuiContainer {
|
|||
private TileTestCase testCase;
|
||||
|
||||
private GuiButton compress;
|
||||
private GuiButton save;
|
||||
|
||||
public GuiTestCase(EntityPlayer player, int x, int y, int z) {
|
||||
super(new ContainerTestCase(player, x, y, z));
|
||||
|
@ -61,6 +62,10 @@ public class GuiTestCase extends GuiContainer {
|
|||
compress = new GuiButton(0, x + 5, y + 50, 120, 20, "");
|
||||
compress.displayString = "Compress";
|
||||
buttonList.add(compress);
|
||||
|
||||
save = new GuiButton(0, x + 5, y + 75, 120, 20, "");
|
||||
save.displayString = "Save";
|
||||
buttonList.add(save);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -72,6 +77,8 @@ public class GuiTestCase extends GuiContainer {
|
|||
protected void actionPerformed(GuiButton button) {
|
||||
if (button == compress) {
|
||||
RPCHandler.rpcServer(testCase, "compress");
|
||||
} else if (button == save) {
|
||||
RPCHandler.rpcServer(testCase, "save");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
*/
|
||||
package buildcraft.tests.testcase;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedList;
|
||||
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
|
@ -21,6 +22,9 @@ import buildcraft.api.blueprints.MappingRegistry;
|
|||
|
||||
public class Sequence {
|
||||
|
||||
private static HashMap<String, Class> strToClass = new HashMap<String, Class>();
|
||||
private static HashMap<Class, String> classToStr = new HashMap<Class, String>();
|
||||
|
||||
public LinkedList<SequenceAction> actions = new LinkedList<SequenceAction>();
|
||||
|
||||
public World world;
|
||||
|
@ -31,6 +35,11 @@ public class Sequence {
|
|||
initialDate = iWorld.getTotalWorldTime();
|
||||
}
|
||||
|
||||
public static void registerSequenceAction(String name, Class clas) {
|
||||
strToClass.put(name, clas);
|
||||
classToStr.put(clas, name);
|
||||
}
|
||||
|
||||
public void writeToNBT(NBTTagCompound nbt) {
|
||||
nbt.setLong("initialDate", initialDate);
|
||||
|
||||
|
@ -41,7 +50,7 @@ public class Sequence {
|
|||
for (SequenceAction action : actions) {
|
||||
NBTTagCompound cpt = new NBTTagCompound();
|
||||
action.writeToNBT(cpt);
|
||||
cpt.setString("class", action.getClass().getCanonicalName());
|
||||
cpt.setString("class", classToStr.get(action.getClass()));
|
||||
registry.scanAndTranslateStacksToRegistry(cpt);
|
||||
list.appendTag(cpt);
|
||||
}
|
||||
|
@ -66,7 +75,7 @@ public class Sequence {
|
|||
|
||||
try {
|
||||
registry.scanAndTranslateStacksToWorld(cpt);
|
||||
SequenceAction action = (SequenceAction) Class.forName(cpt.getString("class")).newInstance();
|
||||
SequenceAction action = (SequenceAction) strToClass.get(cpt.getString("class")).newInstance();
|
||||
action.world = world;
|
||||
action.readFromNBT(cpt);
|
||||
|
||||
|
@ -79,8 +88,6 @@ public class Sequence {
|
|||
e.printStackTrace();
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
} catch (ClassNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@ public class TileTestCase extends TileEntity {
|
|||
|
||||
Sequence sequence;
|
||||
String testName = "test";
|
||||
String information = "";
|
||||
String information = "test clear";
|
||||
|
||||
public TileTestCase() {
|
||||
MinecraftForge.EVENT_BUS.register(this);
|
||||
|
@ -80,8 +80,13 @@ public class TileTestCase extends TileEntity {
|
|||
}
|
||||
|
||||
private void updateInformation() {
|
||||
long time = sequence.actions.getLast().date - sequence.initialDate;
|
||||
information = sequence.actions.size() + " actions in " + time + " cycles, starting " + sequence.initialDate;
|
||||
if (sequence.actions.size() > 0) {
|
||||
long time = sequence.actions.getLast().date - sequence.initialDate;
|
||||
information = sequence.actions.size() + " actions in " + time + " cycles, starting " + sequence.initialDate;
|
||||
} else {
|
||||
information = "test clear";
|
||||
}
|
||||
|
||||
RPCHandler.rpcBroadcastPlayers(this, "setInformation", information);
|
||||
}
|
||||
|
||||
|
@ -113,7 +118,11 @@ public class TileTestCase extends TileEntity {
|
|||
public void invalidate() {
|
||||
super.invalidate();
|
||||
MinecraftForge.EVENT_BUS.unregister(this);
|
||||
currentTestCase = null;
|
||||
}
|
||||
|
||||
@RPC(RPCSide.SERVER)
|
||||
private void save() {
|
||||
if (sequence != null) {
|
||||
File sequenceFile = new File(testName + ".seq");
|
||||
|
||||
|
@ -138,7 +147,8 @@ public class TileTestCase extends TileEntity {
|
|||
}
|
||||
}
|
||||
|
||||
currentTestCase = null;
|
||||
sequence.actions.clear();
|
||||
updateInformation();
|
||||
}
|
||||
|
||||
@RPC(RPCSide.SERVER)
|
||||
|
|
Binary file not shown.
Loading…
Reference in a new issue