From ac953b2c504ba7c38d557b0b7b90f3b74f872601 Mon Sep 17 00:00:00 2001 From: DarkGuardsman Date: Fri, 18 Oct 2013 10:43:34 -0400 Subject: [PATCH] Worked on Task interfaces and Program handler Started breaking down the interfaces into simpler ones so its easier to create tasks without extra junk. As well worked more on the Program class and how it handles the tasks. Is getting close to fully coded to be used in the encoder. Though i need to do more work and test it fully. I might end up creating a fake program before the encoder is finished just to test this. At this point i've failed to follow coding guide lines to test everything you code. --- docs/B1iB0DI.png | Bin 0 -> 175779 bytes .../al/textures/gui/logic/DEFINEDPROCESS.png | Bin 0 -> 220 bytes resources/assets/al/textures/gui/logic/IF.png | Bin 0 -> 456 bytes .../assets/al/textures/gui/logic/PROCESS.png | Bin 0 -> 210 bytes .../dark/api/al/{coding => }/IServo.java | 2 +- .../api/al/{coding => }/IServoHandler.java | 3 +- .../dark/api/al/coding/ILogicTask.java | 20 ++ .../{IDeviceTask.java => IProcessTask.java} | 50 +---- .../dark/api/al/coding/IProgram.java | 22 +- .../dark/api/al/coding/IRedirectTask.java | 12 ++ .../dark/api/al/coding/ISplitArmbotTask.java | 26 --- src/minecraft/dark/api/al/coding/ITask.java | 56 +++++ .../dark/api/al/coding/ProgramHelper.java | 36 ++-- .../dark/api/al/coding/TaskRegistry.java | 16 +- .../dark/assembly/common/armbot/Program.java | 204 ++++++++++++++++-- .../dark/assembly/common/armbot/TaskBase.java | 29 +-- .../common/armbot/command/CommandBreak.java | 6 +- .../common/armbot/command/CommandDrop.java | 4 +- .../common/armbot/command/CommandFire.java | 2 +- .../common/armbot/command/CommandHarvest.java | 2 +- .../common/armbot/command/CommandIdle.java | 2 +- .../common/armbot/command/CommandPlace.java | 2 +- .../armbot/command/CommandRotateBy.java | 4 +- .../armbot/command/CommandRotateTo.java | 2 +- .../common/armbot/command/CommandTake.java | 2 +- .../common/armbot/command/CommandUse.java | 8 +- .../common/armbot/command/TaskIF.java | 22 +- .../common/armbot/command/TaskLoop.java | 20 +- .../machine/encoder/TileEntityEncoder.java | 6 +- 29 files changed, 377 insertions(+), 181 deletions(-) create mode 100644 docs/B1iB0DI.png create mode 100644 resources/assets/al/textures/gui/logic/DEFINEDPROCESS.png create mode 100644 resources/assets/al/textures/gui/logic/IF.png create mode 100644 resources/assets/al/textures/gui/logic/PROCESS.png rename src/minecraft/dark/api/al/{coding => }/IServo.java (92%) rename src/minecraft/dark/api/al/{coding => }/IServoHandler.java (95%) create mode 100644 src/minecraft/dark/api/al/coding/ILogicTask.java rename src/minecraft/dark/api/al/coding/{IDeviceTask.java => IProcessTask.java} (63%) create mode 100644 src/minecraft/dark/api/al/coding/IRedirectTask.java delete mode 100644 src/minecraft/dark/api/al/coding/ISplitArmbotTask.java create mode 100644 src/minecraft/dark/api/al/coding/ITask.java diff --git a/docs/B1iB0DI.png b/docs/B1iB0DI.png new file mode 100644 index 0000000000000000000000000000000000000000..114dee8ea1f04c6fa02eebbec59ed03e1b7e6999 GIT binary patch literal 175779 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ⅆN!mIT$ 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

hR_cWQBVIou+5hD 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

8*ghP;>(&I5@>#~rl%~H8H@Hx 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

$C(5gC}pEl?Lyf+ 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 Ijk6E?Ker{J+W-In literal 0 HcmV?d00001 diff --git a/resources/assets/al/textures/gui/logic/DEFINEDPROCESS.png b/resources/assets/al/textures/gui/logic/DEFINEDPROCESS.png new file mode 100644 index 0000000000000000000000000000000000000000..c7716083dc7df865b1567c294a81d09ce4e81571 GIT binary patch literal 220 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1|;R|J2nC-wj^(N7l!{JxM1({$v_d#0*}aI z1_r*vAk26?e?_#Aru zl-_rzJKeE-&!Sv9z3xg%@n|M;X@SGtBc zyCp;k_zL*?XfKjn)cDe|#8Jg?Z%1ASiyM<7)60V%iboW5B|KX+mar-J3bap2FcHw2 vpxz_q#9P#Q(M5(elwGi}XX5vus?vQk*c5mE%DK%C408rgS3j3^P6%Mb`y7I5@0( Z#qckPJKC&GtqW)sgQu&X%Q~loCIDycJP!Z> literal 0 HcmV?d00001 diff --git a/src/minecraft/dark/api/al/coding/IServo.java b/src/minecraft/dark/api/al/IServo.java similarity index 92% rename from src/minecraft/dark/api/al/coding/IServo.java rename to src/minecraft/dark/api/al/IServo.java index ee8af3c7..ba9f90b9 100644 --- a/src/minecraft/dark/api/al/coding/IServo.java +++ b/src/minecraft/dark/api/al/IServo.java @@ -1,4 +1,4 @@ -package dark.api.al.coding; +package dark.api.al; import universalelectricity.core.vector.Vector2; /** diff --git a/src/minecraft/dark/api/al/coding/IServoHandler.java b/src/minecraft/dark/api/al/IServoHandler.java similarity index 95% rename from src/minecraft/dark/api/al/coding/IServoHandler.java rename to src/minecraft/dark/api/al/IServoHandler.java index 5c24fd79..5d629055 100644 --- a/src/minecraft/dark/api/al/coding/IServoHandler.java +++ b/src/minecraft/dark/api/al/IServoHandler.java @@ -1,7 +1,8 @@ -package dark.api.al.coding; +package dark.api.al; import java.util.HashMap; + /** Container like class to handle several servos in an object. * * @author DarkGuardsman */ diff --git a/src/minecraft/dark/api/al/coding/ILogicTask.java b/src/minecraft/dark/api/al/coding/ILogicTask.java new file mode 100644 index 00000000..0653356a --- /dev/null +++ b/src/minecraft/dark/api/al/coding/ILogicTask.java @@ -0,0 +1,20 @@ +package dark.api.al.coding; + +/** Task in which it doesn't go right to the next task in the row. In this case the task will store + * the entry point, and exit points. As well handle anything in between. Examples are IF statements + * and loops. + * + * @author DarkGuardsman */ +public interface ILogicTask extends IProcessTask +{ + /** There is always only one exit though you can do logic to pick from all your exit points. Exit + * is the next task rather than the exit of the statement. Use #IRedirectTask to force the logic back to this task. */ + public IProcessTask getExitPoint(); + + /** Mainly used by the encoder to understand the limit on connections */ + public int getMaxExitPoints(); + + /** Adds a possible exit point to the split off */ + public void addExitPoint(IProcessTask task); + +} diff --git a/src/minecraft/dark/api/al/coding/IDeviceTask.java b/src/minecraft/dark/api/al/coding/IProcessTask.java similarity index 63% rename from src/minecraft/dark/api/al/coding/IDeviceTask.java rename to src/minecraft/dark/api/al/coding/IProcessTask.java index e79dc0d9..c2a7f96b 100644 --- a/src/minecraft/dark/api/al/coding/IDeviceTask.java +++ b/src/minecraft/dark/api/al/coding/IProcessTask.java @@ -20,20 +20,8 @@ import dark.api.al.coding.args.ArgumentData; * the task. That way it can save values after the task has been refreshed or even deleted. * * @author DarkGuardsman */ -public interface IDeviceTask extends Cloneable +public interface IProcessTask extends ITask { - /** Location in the column and row format. */ - public Vector2 getPosition(); - - public void setPosition(Vector2 pos); - - /** Method name or rather command name this will be called. Uses both to ID this command, and do - * basic command structuring. */ - public String getMethodName(); - - /** Should be the same as getMethodName() but can be different */ - public String getCCMethod(); - /** Passed in from the device to the program manager then here after a Computer craft machine * calls a this commands method name. {@IPeripheral #callMethod()} */ public Object[] onCCMethodCalled(World world, Vector3 location, IProgramableMachine device, IComputerAccess computer, ILuaContext context) throws Exception; @@ -54,24 +42,6 @@ public interface IDeviceTask extends Cloneable /** Called when the task is finish and then cleared */ public void terminated(); - /** Read the command from the armbot save. */ - public IDeviceTask load(NBTTagCompound nbt); - - /** Writes the command to the armbot save. Should only be used to save the data used to recreate - * a new version of this command */ - public NBTTagCompound save(NBTTagCompound nbt); - - /** Saves the current progress of the current command */ - public IDeviceTask loadProgress(NBTTagCompound nbt); - - /** Reads the progress of the command if it was saved mid process */ - public NBTTagCompound saveProgress(NBTTagCompound nbt); - - public TaskType getType(); - - /** Can this task function for this machine */ - public boolean canUseTask(IProgramableMachine device); - /** ArgumentData used to both restrict and set values into the argument hashmap */ public List getEncoderParms(); @@ -81,21 +51,8 @@ public interface IDeviceTask extends Cloneable /** Get all given arguments */ public HashMap getArgs(); - /** Used mainly for display purposes in the encoder */ - public static enum TaskType - { - DATA("Data"), - DEFINEDPROCESS("Defined Process"), - PROCESS("Process"), - DECISION("Decision"); - public ResourceLocation blockTexure; - public String name; - - private TaskType(String name) - { - this.name = name; - } - } + /** Get all given arguments */ + public void setArgs(HashMap args); public static enum ProcessReturn { @@ -113,5 +70,4 @@ public interface IDeviceTask extends Cloneable } } - public IDeviceTask clone(); } diff --git a/src/minecraft/dark/api/al/coding/IProgram.java b/src/minecraft/dark/api/al/coding/IProgram.java index ba9a168c..b02a4246 100644 --- a/src/minecraft/dark/api/al/coding/IProgram.java +++ b/src/minecraft/dark/api/al/coding/IProgram.java @@ -10,7 +10,7 @@ import universalelectricity.core.vector.Vector2; * Column and row based system. * * @author DarkGuardsman */ -public interface IProgram +public interface IProgram extends Cloneable { /** Called when the program is added to an encoder, machine, or devices. */ public void init(); @@ -20,17 +20,23 @@ public interface IProgram public HashMap getDeclairedVarables(); /** Next task in the set. Its up to the program to increment down the list */ - public IDeviceTask getNextTask(); + public ITask getNextTask(); /** Gets a task at the given x y location in the program */ - public IDeviceTask getTaskAt(Vector2 vector2); + public ITask getTaskAt(Vector2 vector2); - public void setTaskAt(Vector2 vector2, IDeviceTask task); + /** Returns the entire program as a map as grid locations and tasks. */ + public HashMap getTaskMap(); - /** Return this program to its starting conditions - * - * @full - means full reset including memory clean */ - public void reset(boolean full); + /** Sets the task at the point overriding what was there. If the task is null remove it and shift + * everything up one */ + public void setTaskAt(Vector2 vector2, ITask task); + + /** Inserts a task at the point. If a task is already there everything should shift down 1 */ + public void insertTask(Vector2 vector2, ITask task); + + /** Return this program to its starting conditions */ + public void reset(); /** Sets the declared variable */ public void setVar(String name, Object object); diff --git a/src/minecraft/dark/api/al/coding/IRedirectTask.java b/src/minecraft/dark/api/al/coding/IRedirectTask.java new file mode 100644 index 00000000..d456d01f --- /dev/null +++ b/src/minecraft/dark/api/al/coding/IRedirectTask.java @@ -0,0 +1,12 @@ +package dark.api.al.coding; + +/** Used to tell the program that this task is used to tell the program were to go next. Used by + * things like LOOP, IF, and GOTO statement's end catches. Not actually used by the statement itself + * other than to help control the flow of the program + * + * @author DarkGuardsman */ +public interface IRedirectTask extends IProcessTask +{ + /** Were does this task redirect to */ + public IProcessTask getExit(); +} diff --git a/src/minecraft/dark/api/al/coding/ISplitArmbotTask.java b/src/minecraft/dark/api/al/coding/ISplitArmbotTask.java deleted file mode 100644 index 204b6895..00000000 --- a/src/minecraft/dark/api/al/coding/ISplitArmbotTask.java +++ /dev/null @@ -1,26 +0,0 @@ -package dark.api.al.coding; - -/** Task in which it doesn't go right to the next task in the row. In this case the task will store - * the entry point, and exit points. As well handle anything in between. Examples are IF statements - * and loops. - * - * @author DarkGuardsman */ -public interface ISplitArmbotTask extends IDeviceTask -{ - /** Point were this task is entered from. Normally is the task above it, and is never used. */ - public IDeviceTask getEntryPoint(); - - /** There is always only one exit though you can do logic to pick from all your exit points */ - public IDeviceTask getExitPoint(); - - /** Mainly used by the coder to understand the limit on connections */ - public int getMaxExitPoints(); - - /** Set by the coder, or when this is clone, to say what task was before this. */ - public ISplitArmbotTask setEntryPoint(IDeviceTask task); - - /** Adds a possible exit point to the split off */ - public void addExitPoint(IDeviceTask task); - - -} diff --git a/src/minecraft/dark/api/al/coding/ITask.java b/src/minecraft/dark/api/al/coding/ITask.java new file mode 100644 index 00000000..ac77c0ae --- /dev/null +++ b/src/minecraft/dark/api/al/coding/ITask.java @@ -0,0 +1,56 @@ +package dark.api.al.coding; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; +import universalelectricity.core.vector.Vector2; + +public interface ITask extends Cloneable +{ + /** Location in the column and row format. */ + public Vector2 getPosition(); + + public void setPosition(Vector2 pos); + + /** Method name or rather command name this will be called. Uses both to ID this command, and do + * basic command structuring. */ + public String getMethodName(); + + /** Type of task used mainly for GUI displays */ + public TaskType getType(); + + /** Read the command from the armbot save. */ + public ITask load(NBTTagCompound nbt); + + /** Writes the command to the armbot save. Should only be used to save the data used to recreate + * a new version of this command */ + public NBTTagCompound save(NBTTagCompound nbt); + + /** Saves the current progress of the current command */ + public IProcessTask loadProgress(NBTTagCompound nbt); + + /** Reads the progress of the command if it was saved mid process */ + public NBTTagCompound saveProgress(NBTTagCompound nbt); + + /** Can this task function for this machine */ + public boolean canUseTask(IProgramableMachine device); + + /** Used to create a new task from this task. Make sure to return a fresh copy without anything. + * This includes no arguments, progress, varables, etc. */ + public ITask clone(); + + /** Used mainly for display purposes in the encoder */ + public static enum TaskType + { + DATA("Data"), + DEFINEDPROCESS("Defined Process"), + PROCESS("Process"), + DECISION("Decision"); + public ResourceLocation blockTexure; + public String name; + + private TaskType(String name) + { + this.name = name; + } + } +} diff --git a/src/minecraft/dark/api/al/coding/ProgramHelper.java b/src/minecraft/dark/api/al/coding/ProgramHelper.java index 336fe1bf..a0e632a7 100644 --- a/src/minecraft/dark/api/al/coding/ProgramHelper.java +++ b/src/minecraft/dark/api/al/coding/ProgramHelper.java @@ -2,14 +2,16 @@ package dark.api.al.coding; import java.util.HashMap; -import dark.api.al.coding.IDeviceTask.ProcessReturn; +import dark.api.al.coding.IProcessTask.ProcessReturn; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; import universalelectricity.core.vector.Vector3; -/** Basic class to handle a armbot like programs for any object that uses the IArmbot class +/** Basic class to handle a machine like programs for any object that uses the IProgramable + * interface. Doesn't actually do much then tell the program to function, and stores the programs + * active run time memory. * * @author DarkGuardsman */ public class ProgramHelper @@ -18,7 +20,7 @@ public class ProgramHelper protected IProgram program; protected IProgramableMachine bot; /** Current task in program */ - protected IDeviceTask currentTask; + protected ITask currentTask; /** Do we have a memory to store values */ boolean hasMemory = false; boolean hasTaskBeenCalled = false, nextTask = false; @@ -46,23 +48,31 @@ public class ProgramHelper } if (this.currentTask != null) { - if (!this.hasTaskBeenCalled) + if (this.currentTask instanceof IProcessTask) { - re = this.currentTask.onMethodCalled(world, botLocation, bot); + if (!this.hasTaskBeenCalled) + { + this.hasTaskBeenCalled = true; + re = ((IProcessTask) this.currentTask).onMethodCalled(world, botLocation, bot); + if (re == ProcessReturn.DONE) + { + this.nextTask = true; + } + else if (re != ProcessReturn.CONTINUE) + { + return re; + } + } + + re = ((IProcessTask) this.currentTask).onUpdate(); if (re == ProcessReturn.DONE) { this.nextTask = true; } - else if (re != ProcessReturn.CONTINUE) - { - return re; - } } - - re = this.currentTask.onUpdate(); - if (re == ProcessReturn.DONE) + else { - this.nextTask = true; + re = ProcessReturn.CONTINUE; } return re; } diff --git a/src/minecraft/dark/api/al/coding/TaskRegistry.java b/src/minecraft/dark/api/al/coding/TaskRegistry.java index ed31e78e..34c11429 100644 --- a/src/minecraft/dark/api/al/coding/TaskRegistry.java +++ b/src/minecraft/dark/api/al/coding/TaskRegistry.java @@ -15,12 +15,12 @@ public class TaskRegistry /** A class of all available commands. * * String - Command name. Command - The actual command class. */ - private static final HashMap COMMANDS = new HashMap(); + private static final HashMap COMMANDS = new HashMap(); private static final HashMap SUDO_BOTS = new HashMap(); /** Registers a command and tells armbots that it exists */ - public static void registerCommand(IDeviceTask task) + public static void registerCommand(IProcessTask task) { if (!COMMANDS.containsKey(task.getMethodName())) { @@ -28,7 +28,7 @@ public class TaskRegistry } } - public static void registerCommand(String registryName, IDeviceTask task) + public static void registerCommand(String registryName, IProcessTask task) { if (!COMMANDS.containsKey(registryName)) { @@ -37,9 +37,9 @@ public class TaskRegistry } /** returns the first command with the same name */ - public static IDeviceTask getCommand(String name) + public static IProcessTask getCommand(String name) { - for (Entry command : COMMANDS.entrySet()) + for (Entry command : COMMANDS.entrySet()) { if (command.getKey().equalsIgnoreCase(name)) { @@ -50,10 +50,10 @@ public class TaskRegistry } /** Gets all commands with the given name though there should only be one */ - public static List getCommands(String name) + public static List getCommands(String name) { - List tasks = new ArrayList(); - for (Entry command : COMMANDS.entrySet()) + List tasks = new ArrayList(); + for (Entry command : COMMANDS.entrySet()) { if (command.getValue().getMethodName().equalsIgnoreCase(name)) { diff --git a/src/minecraft/dark/assembly/common/armbot/Program.java b/src/minecraft/dark/assembly/common/armbot/Program.java index 67a7a2b3..68859496 100644 --- a/src/minecraft/dark/assembly/common/armbot/Program.java +++ b/src/minecraft/dark/assembly/common/armbot/Program.java @@ -1,20 +1,26 @@ package dark.assembly.common.armbot; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map.Entry; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import universalelectricity.core.vector.Vector2; -import dark.api.al.coding.IDeviceTask; import dark.api.al.coding.IProgram; +import dark.api.al.coding.ITask; import dark.api.al.coding.TaskRegistry; +import dark.core.prefab.helpers.NBTFileHelper; public class Program implements IProgram { protected Vector2 currentPos = new Vector2(0, 0); - protected IDeviceTask currentTask; - protected HashMap tasks = new HashMap(); + protected ITask currentTask; + protected HashMap tasks = new HashMap(); + protected HashMap varables = new HashMap(); + protected int width = 0, hight = 0; + boolean started = false; @Override public void init() @@ -26,20 +32,22 @@ public class Program implements IProgram @Override public HashMap getDeclairedVarables() { - // TODO Auto-generated method stub - return null; + return varables; } @Override - public IDeviceTask getNextTask() + public ITask getNextTask() { - this.currentTask = this.getTaskAt(currentPos); - this.currentPos.add(new Vector2(1, 0)); + if (!started) + { + this.currentTask = this.getTaskAt(currentPos); + this.currentPos.add(new Vector2(1, 0)); + } return this.currentTask; } @Override - public IDeviceTask getTaskAt(Vector2 vector2) + public ITask getTaskAt(Vector2 vector2) { if (vector2 != null) { @@ -49,66 +57,200 @@ public class Program implements IProgram } @Override - public void setTaskAt(Vector2 vector2, IDeviceTask task) + public HashMap getTaskMap() + { + return this.tasks; + } + + @Override + public void setTaskAt(Vector2 vector2, ITask task) { if (vector2 != null) { if (task != null) { + if (task.getPosition().x > this.width) + { + this.width = (int) task.getPosition().x; + } + if (task.getPosition().y > this.hight) + { + this.hight = (int) task.getPosition().y; + } this.tasks.put(new Vector2(vector2.intX(), vector2.intY()), task); } else if (this.tasks.containsKey(vector2)) { this.tasks.remove(vector2); + if (task.getPosition().intY() == this.hight && !this.isThereATaskInRow(this.hight)) + { + this.hight--; + } + else if (!this.isThereATaskInRow(vector2.intY())) + { + this.moveAll(vector2.intY(), true); + } + } + } + } + + public boolean isThereATaskInRow(int row) + { + Vector2 vec = new Vector2(0, row); + Vector2 slide = new Vector2(1, 0); + for (int x = 0; x <= this.width; x++) + { + if (this.getTaskAt(vec) != null) + { + return true; + } + vec.add(slide); + } + return false; + } + + public boolean isThereATaskInColume(int colume) + { + Vector2 vec = new Vector2(colume, 0); + Vector2 slide = new Vector2(0, 1); + for (int y = 0; y <= this.width; y++) + { + if (this.getTaskAt(vec) != null) + { + return true; + } + vec.add(slide); + } + return false; + } + + /** Move all tasks at the row and in the direction given. + * + * @param row - row number or Y value of the position from the task + * @param up - true will move all the tasks up one, false will move all the tasks down one */ + public void moveAll(int row, boolean up) + { + List moveList = new ArrayList(); + final Vector2 moveDown = up ? new Vector2(-1, 0) : new Vector2(1, 0); + Vector2 targetPos; + ITask tagetTask; + /* Gather all task and remove them so they can be re-added wither there new positions */ + for (int x = 0; x <= this.width; x++) + { + for (int y = row; y <= this.hight; y++) + { + targetPos = new Vector2(x, y); + tagetTask = this.getTaskAt(targetPos); + if (tagetTask != null) + { + //Add the task to the move list + moveList.add(tagetTask); + //Removes the task + this.tasks.remove(targetPos); + } + } + } + /* Update all the task locations */ + for (ITask moveTask : moveList) + { + moveTask.setPosition(moveTask.getPosition().add(moveDown)); + this.setTaskAt(moveTask.getPosition(), moveTask); + } + //TODO send to the client the updates map and key to unlock the delete button + } + + @Override + public void insertTask(Vector2 vector2, ITask task) + { + if (vector2 != null && task != null) + { + if (this.getTaskAt(vector2) != null) + { + this.moveAll(vector2.intY(), false); + } + else + { + this.setTaskAt(vector2, task); } } } @Override - public void reset(boolean full) + public void reset() { - this.currentTask = null; + if (this.currentTask != null) + { + NBTTagCompound tag = this.currentTask.save(new NBTTagCompound()); + this.currentTask = TaskRegistry.getCommand(this.currentTask.getMethodName()).clone(); + this.currentTask.load(tag); + this.setTaskAt(this.currentTask.getPosition(), this.currentTask); + this.currentTask = null; + } + this.currentPos = new Vector2(0, 0); } @Override public void setVar(String name, Object object) { - // TODO Auto-generated method stub + if (name != null) + { + if (object != null) + { + this.varables.put(name, object); + } + else + { + this.varables.remove(name); + } + } } @Override public Object getVar(String name) { - // TODO Auto-generated method stub - return null; + return this.varables.get(name); } @Override public NBTTagCompound save(NBTTagCompound nbt) { + //Save process list NBTTagList taskList = new NBTTagList(); - for (Entry entry : this.tasks.entrySet()) + for (Entry entry : this.tasks.entrySet()) { entry.getValue().setPosition(entry.getKey()); NBTTagCompound task = entry.getValue().save(new NBTTagCompound()); + if (entry.getKey().equals(this.currentTask.getPosition())) + { + task.setBoolean("currentTask", true); + entry.getValue().saveProgress(task); + } task.setString("methodName", entry.getValue().getMethodName()); task.setInteger("positionX", entry.getKey().intX()); task.setInteger("positionY", entry.getKey().intY()); taskList.appendTag(task); } nbt.setTag("tasks", taskList); + //save varables + taskList = new NBTTagList(); + for (Entry var : this.varables.entrySet()) + { + taskList.appendTag(NBTFileHelper.saveObject(var.getKey(), var.getValue())); + } + nbt.setTag("vars", taskList); return nbt; } @Override public void load(NBTTagCompound nbt) { + //Load process list NBTTagList taskList = nbt.getTagList("tasks"); for (int s = 0; s < taskList.tagCount(); ++s) { NBTTagCompound tag = (NBTTagCompound) taskList.tagAt(s); - IDeviceTask task = TaskRegistry.getCommand(tag.getString("methodName")); + ITask task = TaskRegistry.getCommand(tag.getString("methodName")); if (task != null) { task = task.clone(); @@ -117,10 +259,38 @@ public class Program implements IProgram task.load(tag); task.setPosition(new Vector2(nbt.getInteger("positionX"), nbt.getInteger("positionY"))); this.tasks.put(task.getPosition(), task); + if (tag.getBoolean("currentTask")) + { + this.currentTask = task; + task.loadProgress(tag); + this.currentPos = task.getPosition(); + } + if (task.getPosition().x > this.width) + { + this.width = (int) task.getPosition().x; + } + if (task.getPosition().y > this.hight) + { + this.hight = (int) task.getPosition().y; + } } } } + taskList = nbt.getTagList("vars"); + for (int s = 0; s < taskList.tagCount(); ++s) + { + NBTTagCompound tag = (NBTTagCompound) taskList.tagAt(s); + this.varables.put(tag.getName(), NBTFileHelper.loadObject(tag, tag.getName())); + } + } + @Override + public Program clone() + { + Program program = new Program(); + program.load(this.save(new NBTTagCompound())); + program.reset(); + return program; } } diff --git a/src/minecraft/dark/assembly/common/armbot/TaskBase.java b/src/minecraft/dark/assembly/common/armbot/TaskBase.java index 3858a74f..ba2f682a 100644 --- a/src/minecraft/dark/assembly/common/armbot/TaskBase.java +++ b/src/minecraft/dark/assembly/common/armbot/TaskBase.java @@ -5,29 +5,26 @@ import java.util.HashMap; import java.util.List; import java.util.Map.Entry; -import com.builtbroken.common.science.units.UnitHelper; - import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTBase; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; import net.minecraft.world.World; import universalelectricity.core.vector.Vector2; import universalelectricity.core.vector.Vector3; + +import com.builtbroken.common.science.units.UnitHelper; + import dan200.computer.api.IComputerAccess; import dan200.computer.api.ILuaContext; -import dark.api.al.coding.IArmbot; -import dark.api.al.coding.IDeviceTask; -import dark.api.al.coding.IProgramableMachine; +import dark.api.al.coding.IProcessTask; import dark.api.al.coding.IMemoryTask; import dark.api.al.coding.IProgram; -import dark.api.al.coding.IDeviceTask.TaskType; +import dark.api.al.coding.IProgramableMachine; import dark.api.al.coding.args.ArgumentData; -import dark.core.prefab.helpers.NBTFileLoader; +import dark.core.prefab.helpers.NBTFileHelper; /** Basic command prefab used by machines like an armbot. You are not required to use this in order * to make armbot commands but it does help. Delete this if you don't plan to use it. */ -public abstract class TaskBase implements IDeviceTask, IMemoryTask +public abstract class TaskBase implements IProcessTask, IMemoryTask { /** Program this is part of. Can be null while stores as a prefab waiting to be copied */ protected IProgram program; @@ -140,7 +137,7 @@ public abstract class TaskBase implements IDeviceTask, IMemoryTask NBTTagCompound parms = nbt.getCompoundTag("args"); for (ArgumentData arg : this.getEncoderParms()) { - Object obj = NBTFileLoader.loadObject(parms, arg.getName()); + Object obj = NBTFileHelper.loadObject(parms, arg.getName()); if (arg.isValid(obj)) { this.aruguments.put(arg.getName(), obj); @@ -157,7 +154,7 @@ public abstract class TaskBase implements IDeviceTask, IMemoryTask NBTTagCompound parms = new NBTTagCompound(); for (Entry entry : this.aruguments.entrySet()) { - NBTFileLoader.saveObject(parms, entry.getKey(), entry.getValue()); + NBTFileHelper.saveObject(parms, entry.getKey(), entry.getValue()); } nbt.setCompoundTag("args", parms); if (this.pos != null) @@ -169,7 +166,7 @@ public abstract class TaskBase implements IDeviceTask, IMemoryTask } @Override - public IDeviceTask loadProgress(NBTTagCompound nbt) + public IProcessTask loadProgress(NBTTagCompound nbt) { return this; } @@ -192,12 +189,6 @@ public abstract class TaskBase implements IDeviceTask, IMemoryTask return this.methodName; } - @Override - public String getCCMethod() - { - return this.methodName; - } - @Override public TaskType getType() { diff --git a/src/minecraft/dark/assembly/common/armbot/command/CommandBreak.java b/src/minecraft/dark/assembly/common/armbot/command/CommandBreak.java index 258798bb..14d4fc5d 100644 --- a/src/minecraft/dark/assembly/common/armbot/command/CommandBreak.java +++ b/src/minecraft/dark/assembly/common/armbot/command/CommandBreak.java @@ -7,8 +7,8 @@ import net.minecraft.entity.item.EntityItem; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import universalelectricity.core.vector.Vector3; -import dark.api.al.coding.IDeviceTask; -import dark.api.al.coding.IDeviceTask.TaskType; +import dark.api.al.coding.IProcessTask; +import dark.api.al.coding.IProcessTask.TaskType; import dark.assembly.common.armbot.TaskBase; import dark.assembly.common.armbot.TaskArmbot; import dark.core.prefab.helpers.ItemWorldHelper; @@ -71,7 +71,7 @@ public class CommandBreak extends TaskArmbot } @Override - public IDeviceTask loadProgress(NBTTagCompound nbt) + public IProcessTask loadProgress(NBTTagCompound nbt) { this.breakTicks = nbt.getInteger("breakTicks"); return this; diff --git a/src/minecraft/dark/assembly/common/armbot/command/CommandDrop.java b/src/minecraft/dark/assembly/common/armbot/command/CommandDrop.java index a8cc0e18..76b891d2 100644 --- a/src/minecraft/dark/assembly/common/armbot/command/CommandDrop.java +++ b/src/minecraft/dark/assembly/common/armbot/command/CommandDrop.java @@ -1,8 +1,8 @@ package dark.assembly.common.armbot.command; import net.minecraft.nbt.NBTTagCompound; -import dark.api.al.coding.IDeviceTask; -import dark.api.al.coding.IDeviceTask.TaskType; +import dark.api.al.coding.IProcessTask; +import dark.api.al.coding.IProcessTask.TaskType; import dark.assembly.common.armbot.TaskBase; import dark.assembly.common.armbot.TaskArmbot; diff --git a/src/minecraft/dark/assembly/common/armbot/command/CommandFire.java b/src/minecraft/dark/assembly/common/armbot/command/CommandFire.java index 5dd21621..c0963088 100644 --- a/src/minecraft/dark/assembly/common/armbot/command/CommandFire.java +++ b/src/minecraft/dark/assembly/common/armbot/command/CommandFire.java @@ -7,7 +7,7 @@ import com.builtbroken.common.science.units.UnitHelper; import dark.api.al.coding.IArmbot; import dark.api.al.coding.IProgramableMachine; -import dark.api.al.coding.IDeviceTask.TaskType; +import dark.api.al.coding.IProcessTask.TaskType; import dark.api.al.coding.args.ArgumentData; import dark.api.al.coding.args.ArgumentFloatData; import dark.assembly.common.armbot.TaskBase; diff --git a/src/minecraft/dark/assembly/common/armbot/command/CommandHarvest.java b/src/minecraft/dark/assembly/common/armbot/command/CommandHarvest.java index e354fc49..041aa93e 100644 --- a/src/minecraft/dark/assembly/common/armbot/command/CommandHarvest.java +++ b/src/minecraft/dark/assembly/common/armbot/command/CommandHarvest.java @@ -4,7 +4,7 @@ import net.minecraft.world.World; import universalelectricity.core.vector.Vector3; import dark.api.al.coding.IArmbot; import dark.api.al.coding.IProgramableMachine; -import dark.api.al.coding.IDeviceTask.TaskType; +import dark.api.al.coding.IProcessTask.TaskType; /** Used by arms to break a specific block in a position. * diff --git a/src/minecraft/dark/assembly/common/armbot/command/CommandIdle.java b/src/minecraft/dark/assembly/common/armbot/command/CommandIdle.java index 90cb2e57..7f2207cc 100644 --- a/src/minecraft/dark/assembly/common/armbot/command/CommandIdle.java +++ b/src/minecraft/dark/assembly/common/armbot/command/CommandIdle.java @@ -5,7 +5,7 @@ import com.builtbroken.common.science.units.UnitHelper; import universalelectricity.core.vector.Vector3; import dark.api.al.coding.IArmbot; import dark.api.al.coding.IProgramableMachine; -import dark.api.al.coding.IDeviceTask.TaskType; +import dark.api.al.coding.IProcessTask.TaskType; import dark.api.al.coding.args.ArgumentData; import dark.assembly.common.armbot.TaskBase; import net.minecraft.nbt.NBTTagCompound; diff --git a/src/minecraft/dark/assembly/common/armbot/command/CommandPlace.java b/src/minecraft/dark/assembly/common/armbot/command/CommandPlace.java index 0f68662c..9b3f315d 100644 --- a/src/minecraft/dark/assembly/common/armbot/command/CommandPlace.java +++ b/src/minecraft/dark/assembly/common/armbot/command/CommandPlace.java @@ -1,6 +1,6 @@ package dark.assembly.common.armbot.command; -import dark.api.al.coding.IDeviceTask.TaskType; +import dark.api.al.coding.IProcessTask.TaskType; import dark.assembly.common.armbot.TaskBase; import dark.assembly.common.armbot.TaskArmbot; import net.minecraft.block.Block; diff --git a/src/minecraft/dark/assembly/common/armbot/command/CommandRotateBy.java b/src/minecraft/dark/assembly/common/armbot/command/CommandRotateBy.java index 5497a982..c431cb1f 100644 --- a/src/minecraft/dark/assembly/common/armbot/command/CommandRotateBy.java +++ b/src/minecraft/dark/assembly/common/armbot/command/CommandRotateBy.java @@ -4,8 +4,8 @@ import com.builtbroken.common.science.units.UnitHelper; import universalelectricity.core.vector.Vector3; import dark.api.al.coding.IProgramableMachine; -import dark.api.al.coding.IDeviceTask.ProcessReturn; -import dark.api.al.coding.IDeviceTask.TaskType; +import dark.api.al.coding.IProcessTask.ProcessReturn; +import dark.api.al.coding.IProcessTask.TaskType; import dark.api.al.coding.args.ArgumentIntData; import dark.assembly.common.armbot.TaskBase; import dark.assembly.common.armbot.TaskArmbot; diff --git a/src/minecraft/dark/assembly/common/armbot/command/CommandRotateTo.java b/src/minecraft/dark/assembly/common/armbot/command/CommandRotateTo.java index 0049b376..1994262c 100644 --- a/src/minecraft/dark/assembly/common/armbot/command/CommandRotateTo.java +++ b/src/minecraft/dark/assembly/common/armbot/command/CommandRotateTo.java @@ -6,7 +6,7 @@ import com.builtbroken.common.science.units.UnitHelper; import dark.api.al.coding.IArmbot; import dark.api.al.coding.IProgramableMachine; -import dark.api.al.coding.IDeviceTask.TaskType; +import dark.api.al.coding.IProcessTask.TaskType; import dark.api.al.coding.args.ArgumentIntData; import dark.assembly.common.armbot.TaskBase; import dark.assembly.common.armbot.TaskArmbot; diff --git a/src/minecraft/dark/assembly/common/armbot/command/CommandTake.java b/src/minecraft/dark/assembly/common/armbot/command/CommandTake.java index 66bcfa7c..49c6ebff 100644 --- a/src/minecraft/dark/assembly/common/armbot/command/CommandTake.java +++ b/src/minecraft/dark/assembly/common/armbot/command/CommandTake.java @@ -14,7 +14,7 @@ import universalelectricity.core.vector.Vector3; import com.builtbroken.common.science.units.UnitHelper; import dark.api.al.coding.IProgramableMachine; -import dark.api.al.coding.IDeviceTask.ProcessReturn; +import dark.api.al.coding.IProcessTask.ProcessReturn; import dark.api.al.coding.args.ArgumentIntData; import dark.assembly.common.armbot.TaskArmbot; import dark.assembly.common.armbot.TaskBase; diff --git a/src/minecraft/dark/assembly/common/armbot/command/CommandUse.java b/src/minecraft/dark/assembly/common/armbot/command/CommandUse.java index 86052e19..ffc955a1 100644 --- a/src/minecraft/dark/assembly/common/armbot/command/CommandUse.java +++ b/src/minecraft/dark/assembly/common/armbot/command/CommandUse.java @@ -8,10 +8,10 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import dark.api.al.coding.IArmbotUseable; -import dark.api.al.coding.IDeviceTask; +import dark.api.al.coding.IProcessTask; import dark.api.al.coding.IProgramableMachine; -import dark.api.al.coding.IDeviceTask.ProcessReturn; -import dark.api.al.coding.IDeviceTask.TaskType; +import dark.api.al.coding.IProcessTask.ProcessReturn; +import dark.api.al.coding.IProcessTask.TaskType; import dark.api.al.coding.args.ArgumentData; import dark.api.al.coding.args.ArgumentIntData; import dark.assembly.common.armbot.TaskBase; @@ -100,7 +100,7 @@ public class CommandUse extends TaskArmbot } @Override - public IDeviceTask loadProgress(NBTTagCompound nbt) + public IProcessTask loadProgress(NBTTagCompound nbt) { this.curTimes = nbt.getInteger("useCurTimes"); return this; diff --git a/src/minecraft/dark/assembly/common/armbot/command/TaskIF.java b/src/minecraft/dark/assembly/common/armbot/command/TaskIF.java index 0a6887c4..58c63c4a 100644 --- a/src/minecraft/dark/assembly/common/armbot/command/TaskIF.java +++ b/src/minecraft/dark/assembly/common/armbot/command/TaskIF.java @@ -2,16 +2,16 @@ package dark.assembly.common.armbot.command; import universalelectricity.core.vector.Vector2; import net.minecraft.nbt.NBTTagCompound; -import dark.api.al.coding.IDeviceTask; +import dark.api.al.coding.IProcessTask; import dark.api.al.coding.IProgramableMachine; -import dark.api.al.coding.ISplitArmbotTask; +import dark.api.al.coding.ILogicTask; import dark.assembly.common.armbot.TaskBase; -public class TaskIF extends TaskBase implements ISplitArmbotTask +public class TaskIF extends TaskBase implements ILogicTask { - protected IDeviceTask entryPoint = null; - protected IDeviceTask exitTruePoint = null; - protected IDeviceTask exitFalsePoint = null; + protected IProcessTask entryPoint = null; + protected IProcessTask exitTruePoint = null; + protected IProcessTask exitFalsePoint = null; protected boolean isTrue = false; public TaskIF() @@ -19,7 +19,7 @@ public class TaskIF extends TaskBase implements ISplitArmbotTask super("IF", TaskType.DECISION); } - public TaskIF(IDeviceTask entryPoint, IDeviceTask trueExit, IDeviceTask falseExit) + public TaskIF(IProcessTask entryPoint, IProcessTask trueExit, IProcessTask falseExit) { this(); this.setEntryPoint(this.entryPoint); @@ -35,13 +35,13 @@ public class TaskIF extends TaskBase implements ISplitArmbotTask } @Override - public IDeviceTask getEntryPoint() + public IProcessTask getEntryPoint() { return this.entryPoint; } @Override - public IDeviceTask getExitPoint() + public IProcessTask getExitPoint() { if (this.isTrue) { @@ -57,14 +57,14 @@ public class TaskIF extends TaskBase implements ISplitArmbotTask } @Override - public ISplitArmbotTask setEntryPoint(IDeviceTask task) + public ILogicTask setEntryPoint(IProcessTask task) { this.entryPoint = task; return this; } @Override - public void addExitPoint(IDeviceTask task) + public void addExitPoint(IProcessTask task) { // TODO Auto-generated method stub diff --git a/src/minecraft/dark/assembly/common/armbot/command/TaskLoop.java b/src/minecraft/dark/assembly/common/armbot/command/TaskLoop.java index a3fb7485..f6748188 100644 --- a/src/minecraft/dark/assembly/common/armbot/command/TaskLoop.java +++ b/src/minecraft/dark/assembly/common/armbot/command/TaskLoop.java @@ -4,10 +4,10 @@ import com.builtbroken.common.science.units.UnitHelper; import universalelectricity.core.vector.Vector2; import universalelectricity.core.vector.Vector3; -import dark.api.al.coding.IDeviceTask; +import dark.api.al.coding.IProcessTask; import dark.api.al.coding.IProgramableMachine; -import dark.api.al.coding.ISplitArmbotTask; -import dark.api.al.coding.IDeviceTask.TaskType; +import dark.api.al.coding.ILogicTask; +import dark.api.al.coding.IProcessTask.TaskType; import dark.api.al.coding.args.ArgumentIntData; import dark.assembly.common.armbot.TaskBase; import net.minecraft.nbt.NBTTagCompound; @@ -16,10 +16,10 @@ import net.minecraft.world.World; /** Basic While loop that mainly handles number of repeats. * * @author DarkGuardsman */ -public class TaskLoop extends TaskBase implements ISplitArmbotTask +public class TaskLoop extends TaskBase implements ILogicTask { protected int numReps = -1; - protected IDeviceTask entry, exit; + protected IProcessTask entry, exit; public TaskLoop() { @@ -27,7 +27,7 @@ public class TaskLoop extends TaskBase implements ISplitArmbotTask this.defautlArguments.add(new ArgumentIntData("loop", 1, Integer.MAX_VALUE, -1)); } - public TaskLoop(IDeviceTask entry, IDeviceTask exit) + public TaskLoop(IProcessTask entry, IProcessTask exit) { this(); this.entry = entry; @@ -49,13 +49,13 @@ public class TaskLoop extends TaskBase implements ISplitArmbotTask } @Override - public IDeviceTask getEntryPoint() + public IProcessTask getEntryPoint() { return this.entry; } @Override - public IDeviceTask getExitPoint() + public IProcessTask getExitPoint() { return this.exit; } @@ -67,14 +67,14 @@ public class TaskLoop extends TaskBase implements ISplitArmbotTask } @Override - public ISplitArmbotTask setEntryPoint(IDeviceTask task) + public ILogicTask setEntryPoint(IProcessTask task) { this.entry = task; return this; } @Override - public void addExitPoint(IDeviceTask task) + public void addExitPoint(IProcessTask task) { this.exit = task; } diff --git a/src/minecraft/dark/assembly/common/machine/encoder/TileEntityEncoder.java b/src/minecraft/dark/assembly/common/machine/encoder/TileEntityEncoder.java index c361757e..810f31d9 100644 --- a/src/minecraft/dark/assembly/common/machine/encoder/TileEntityEncoder.java +++ b/src/minecraft/dark/assembly/common/machine/encoder/TileEntityEncoder.java @@ -13,7 +13,7 @@ import com.google.common.io.ByteArrayDataInput; import cpw.mods.fml.common.network.PacketDispatcher; import cpw.mods.fml.common.network.Player; -import dark.api.al.coding.IDeviceTask; +import dark.api.al.coding.IProcessTask; import dark.api.al.coding.IProgram; import dark.api.al.coding.TaskRegistry; import dark.assembly.common.armbot.Program; @@ -115,7 +115,7 @@ public class TileEntityEncoder extends TileEntityMachine implements ISidedInvent if (id.equalsIgnoreCase(TileEntityEncoder.PROGRAM_CHANGE)) { - IDeviceTask task = TaskRegistry.getCommand(dis.readUTF()); + IProcessTask task = TaskRegistry.getCommand(dis.readUTF()); task.setPosition(new Vector2(dis.readInt(), dis.readInt())); task.load(PacketManager.readNBTTagCompound(dis)); this.program.setTaskAt(task.getPosition(), task); @@ -163,7 +163,7 @@ public class TileEntityEncoder extends TileEntityMachine implements ISidedInvent } } - public void updateTask(IDeviceTask task) + public void updateTask(IProcessTask task) { if (task != null) {