...
This commit is contained in:
commit
00bd3a9e8e
52 changed files with 930 additions and 1151 deletions
3
.gitmodules
vendored
3
.gitmodules
vendored
|
@ -5,9 +5,6 @@
|
||||||
[submodule "Dark-Library"]
|
[submodule "Dark-Library"]
|
||||||
path = Dark-Library
|
path = Dark-Library
|
||||||
url = git@github.com:DarkGuardsman/Dark-Library.git
|
url = git@github.com:DarkGuardsman/Dark-Library.git
|
||||||
[submodule "Basic-Compoents"]
|
|
||||||
path = Basic-Compoents
|
|
||||||
url = git://github.com/calclavia/Basic-Components.git
|
|
||||||
[submodule "API-Bank"]
|
[submodule "API-Bank"]
|
||||||
path = API-Bank
|
path = API-Bank
|
||||||
url = git://github.com/DarkGuardsman/API-Bank.git
|
url = git://github.com/DarkGuardsman/API-Bank.git
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit f3030ef09eb2f8ed6f28b4ffbf4fe8c1145ce2ea
|
|
|
@ -1 +0,0 @@
|
||||||
90
|
|
|
@ -1 +0,0 @@
|
||||||
* 1.5.1 AssemblyLine_mc1.5.1_v0.3.0.90.jar AssemblyLine_mc1.5.1_v0.3.0.90_api.zip
|
|
|
@ -1 +0,0 @@
|
||||||
1.5.1
|
|
|
@ -1,9 +0,0 @@
|
||||||
|
|
||||||
# Ignore all classes
|
|
||||||
.class **
|
|
||||||
|
|
||||||
# Except a specific class
|
|
||||||
!class assemblyline/**
|
|
||||||
|
|
||||||
.option Annotations
|
|
||||||
.option Trim
|
|
|
@ -1 +0,0 @@
|
||||||
assemblyline-mod.com
|
|
|
@ -1 +0,0 @@
|
||||||
al
|
|
|
@ -5,35 +5,22 @@ import java.util.List;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
|
|
||||||
/**
|
/** Should be used to interact with the armbot and not to create a new armbot */
|
||||||
* An interface applied to Armbots.
|
|
||||||
*
|
|
||||||
* @author Calclavia
|
|
||||||
*/
|
|
||||||
public interface IArmbot
|
public interface IArmbot
|
||||||
{
|
{
|
||||||
/**
|
/** Adds an entity to the Armbot's grab list. */
|
||||||
* Adds an entity to the Armbot's grab list.
|
|
||||||
*/
|
|
||||||
public void grabEntity(Entity entity);
|
public void grabEntity(Entity entity);
|
||||||
|
|
||||||
public void grabItem(ItemStack itemStack);
|
public void grabItem(ItemStack itemStack);
|
||||||
|
|
||||||
/**
|
/** Drops the given object
|
||||||
* Drops a specific entity from the Armbot's hand.
|
*
|
||||||
*/
|
* @param object - Entity or ItemStack
|
||||||
public void dropEntity(Entity entity);
|
*
|
||||||
|
* String "All" should cause the armbot to drop all items */
|
||||||
|
public void drop(Object object);
|
||||||
|
|
||||||
public void dropItem(ItemStack itemStack);
|
/** @return Returns all entities being grabbed by the Armbot. */
|
||||||
|
|
||||||
/**
|
|
||||||
* Drops all entities in the Armbot's hand.
|
|
||||||
*/
|
|
||||||
public void dropAll();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return Returns all entities being grabbed by the Armbot.
|
|
||||||
*/
|
|
||||||
public List<Entity> getGrabbedEntities();
|
public List<Entity> getGrabbedEntities();
|
||||||
|
|
||||||
public List<ItemStack> getGrabbedItems();
|
public List<ItemStack> getGrabbedItems();
|
||||||
|
|
|
@ -4,25 +4,16 @@ import java.util.List;
|
||||||
|
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
|
|
||||||
/**
|
/** An interface applied to the tile entity of a conveyor belt */
|
||||||
* An interface applied to the tile entity of a conveyor belt.
|
|
||||||
*
|
|
||||||
* @author Calclavia
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public interface IBelt
|
public interface IBelt
|
||||||
{
|
{
|
||||||
/**
|
/** Used to get a list of entities the belt exerts an effect upon.
|
||||||
* Used to get a list of entities the belt exerts an effect upon.
|
|
||||||
*
|
*
|
||||||
* @return list of entities in the belts are of effect
|
* @return list of entities in the belts are of effect */
|
||||||
*/
|
|
||||||
public List<Entity> getAffectedEntities();
|
public List<Entity> getAffectedEntities();
|
||||||
|
|
||||||
/**
|
/** Adds and entity to the ignore list so its not moved has to be done every 20 ticks
|
||||||
* Adds and entity to the ignore list so its not moved
|
*
|
||||||
* has to be done every 20 ticks
|
* @param entity */
|
||||||
* @param entity
|
public void ignoreEntity(Entity entity);
|
||||||
*/
|
|
||||||
public void IgnoreEntity(Entity entity);
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
package assemblyline.api;
|
|
||||||
|
|
||||||
public interface IBotArm
|
|
||||||
{
|
|
||||||
// TODO will add methods here to change the
|
|
||||||
// arms task, target, location,etc as need by
|
|
||||||
// other mods
|
|
||||||
}
|
|
|
@ -21,8 +21,8 @@ import assemblyline.client.render.RenderManipulator;
|
||||||
import assemblyline.client.render.RenderRejector;
|
import assemblyline.client.render.RenderRejector;
|
||||||
import assemblyline.common.CommonProxy;
|
import assemblyline.common.CommonProxy;
|
||||||
import assemblyline.common.armbot.TileEntityArmbot;
|
import assemblyline.common.armbot.TileEntityArmbot;
|
||||||
import assemblyline.common.block.TileEntityCrate;
|
|
||||||
import assemblyline.common.imprinter.TileEntityImprinter;
|
import assemblyline.common.imprinter.TileEntityImprinter;
|
||||||
|
import assemblyline.common.machine.TileEntityCrate;
|
||||||
import assemblyline.common.machine.TileEntityManipulator;
|
import assemblyline.common.machine.TileEntityManipulator;
|
||||||
import assemblyline.common.machine.TileEntityRejector;
|
import assemblyline.common.machine.TileEntityRejector;
|
||||||
import assemblyline.common.machine.belt.TileEntityConveyorBelt;
|
import assemblyline.common.machine.belt.TileEntityConveyorBelt;
|
||||||
|
@ -72,12 +72,15 @@ public class ClientProxy extends CommonProxy
|
||||||
switch (ID)
|
switch (ID)
|
||||||
{
|
{
|
||||||
case GUI_IMPRINTER:
|
case GUI_IMPRINTER:
|
||||||
|
{
|
||||||
return new GuiImprinter(player.inventory, (TileEntityImprinter) tileEntity);
|
return new GuiImprinter(player.inventory, (TileEntityImprinter) tileEntity);
|
||||||
|
}
|
||||||
case GUI_ENCODER:
|
case GUI_ENCODER:
|
||||||
if (tileEntity != null && tileEntity instanceof TileEntityEncoder)
|
{
|
||||||
return new GuiEncoder(player.inventory, (TileEntityEncoder) tileEntity);
|
return new GuiEncoder(player.inventory, (TileEntityEncoder) tileEntity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -88,15 +91,13 @@ public class ClientProxy extends CommonProxy
|
||||||
return GuiScreen.isCtrlKeyDown();
|
return GuiScreen.isCtrlKeyDown();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/** Renders a laser beam from one power to another by a set color for a set time
|
||||||
* Renders a laser beam from one power to another by a set color for a set time
|
|
||||||
*
|
*
|
||||||
* @param world - world this laser is to be rendered in
|
* @param world - world this laser is to be rendered in
|
||||||
* @param position - start vector3
|
* @param position - start vector3
|
||||||
* @param target - end vector3
|
* @param target - end vector3
|
||||||
* @param color - color of the beam
|
* @param color - color of the beam
|
||||||
* @param age - life of the beam in 1/20 secs
|
* @param age - life of the beam in 1/20 secs */
|
||||||
*/
|
|
||||||
public void renderBeam(World world, Vector3 position, Vector3 target, Color color, int age)
|
public void renderBeam(World world, Vector3 position, Vector3 target, Color color, int age)
|
||||||
{
|
{
|
||||||
if (world.isRemote || FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT)
|
if (world.isRemote || FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT)
|
||||||
|
|
|
@ -18,7 +18,7 @@ import net.minecraftforge.common.ForgeDirection;
|
||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
import universalelectricity.core.vector.Vector3;
|
import universalelectricity.core.vector.Vector3;
|
||||||
import assemblyline.common.block.TileEntityCrate;
|
import assemblyline.common.machine.TileEntityCrate;
|
||||||
|
|
||||||
public class RenderCrate extends TileEntitySpecialRenderer
|
public class RenderCrate extends TileEntitySpecialRenderer
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
package assemblyline.common;
|
package assemblyline.common;
|
||||||
|
|
||||||
import ic2.api.item.Items;
|
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
@ -10,30 +8,38 @@ import net.minecraft.block.Block;
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraftforge.common.Configuration;
|
import net.minecraftforge.common.Configuration;
|
||||||
import net.minecraftforge.oredict.ShapedOreRecipe;
|
|
||||||
import net.minecraftforge.oredict.ShapelessOreRecipe;
|
|
||||||
|
|
||||||
import org.modstats.ModstatInfo;
|
import org.modstats.ModstatInfo;
|
||||||
import org.modstats.Modstats;
|
import org.modstats.Modstats;
|
||||||
|
|
||||||
import universalelectricity.prefab.TranslationHelper;
|
import universalelectricity.prefab.TranslationHelper;
|
||||||
import universalelectricity.prefab.multiblock.BlockMulti;
|
import universalelectricity.prefab.multiblock.BlockMulti;
|
||||||
|
import universalelectricity.prefab.multiblock.TileEntityMulti;
|
||||||
import universalelectricity.prefab.network.PacketManager;
|
import universalelectricity.prefab.network.PacketManager;
|
||||||
import assemblyline.common.armbot.BlockArmbot;
|
import assemblyline.common.armbot.BlockArmbot;
|
||||||
import assemblyline.common.armbot.command.GrabDictionary;
|
import assemblyline.common.armbot.TileEntityArmbot;
|
||||||
import assemblyline.common.block.BlockCrate;
|
|
||||||
import assemblyline.common.block.BlockTurntable;
|
|
||||||
import assemblyline.common.block.ItemBlockCrate;
|
|
||||||
import assemblyline.common.imprinter.BlockImprinter;
|
import assemblyline.common.imprinter.BlockImprinter;
|
||||||
import assemblyline.common.imprinter.ItemImprinter;
|
import assemblyline.common.imprinter.ItemImprinter;
|
||||||
|
import assemblyline.common.imprinter.TileEntityImprinter;
|
||||||
|
import assemblyline.common.machine.BlockCrate;
|
||||||
import assemblyline.common.machine.BlockManipulator;
|
import assemblyline.common.machine.BlockManipulator;
|
||||||
import assemblyline.common.machine.BlockRejector;
|
import assemblyline.common.machine.BlockRejector;
|
||||||
|
import assemblyline.common.machine.BlockTurntable;
|
||||||
|
import assemblyline.common.machine.ItemBlockCrate;
|
||||||
|
import assemblyline.common.machine.TileEntityCrate;
|
||||||
|
import assemblyline.common.machine.TileEntityManipulator;
|
||||||
|
import assemblyline.common.machine.TileEntityRejector;
|
||||||
import assemblyline.common.machine.belt.BlockConveyorBelt;
|
import assemblyline.common.machine.belt.BlockConveyorBelt;
|
||||||
|
import assemblyline.common.machine.belt.TileEntityConveyorBelt;
|
||||||
import assemblyline.common.machine.crane.BlockCraneController;
|
import assemblyline.common.machine.crane.BlockCraneController;
|
||||||
import assemblyline.common.machine.crane.BlockCraneFrame;
|
import assemblyline.common.machine.crane.BlockCraneFrame;
|
||||||
|
import assemblyline.common.machine.crane.TileEntityCraneController;
|
||||||
|
import assemblyline.common.machine.crane.TileEntityCraneRail;
|
||||||
import assemblyline.common.machine.detector.BlockDetector;
|
import assemblyline.common.machine.detector.BlockDetector;
|
||||||
|
import assemblyline.common.machine.detector.TileEntityDetector;
|
||||||
import assemblyline.common.machine.encoder.BlockEncoder;
|
import assemblyline.common.machine.encoder.BlockEncoder;
|
||||||
import assemblyline.common.machine.encoder.ItemDisk;
|
import assemblyline.common.machine.encoder.ItemDisk;
|
||||||
|
import assemblyline.common.machine.encoder.TileEntityEncoder;
|
||||||
import cpw.mods.fml.common.FMLCommonHandler;
|
import cpw.mods.fml.common.FMLCommonHandler;
|
||||||
import cpw.mods.fml.common.FMLLog;
|
import cpw.mods.fml.common.FMLLog;
|
||||||
import cpw.mods.fml.common.Loader;
|
import cpw.mods.fml.common.Loader;
|
||||||
|
@ -50,8 +56,6 @@ import cpw.mods.fml.common.network.NetworkMod;
|
||||||
import cpw.mods.fml.common.network.NetworkRegistry;
|
import cpw.mods.fml.common.network.NetworkRegistry;
|
||||||
import cpw.mods.fml.common.registry.GameRegistry;
|
import cpw.mods.fml.common.registry.GameRegistry;
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
import dark.core.DarkMain;
|
|
||||||
import dark.core.PowerSystems;
|
|
||||||
|
|
||||||
@ModstatInfo(prefix = "asmline")
|
@ModstatInfo(prefix = "asmline")
|
||||||
@Mod(modid = AssemblyLine.CHANNEL, name = AssemblyLine.MOD_NAME, version = AssemblyLine.VERSION, dependencies = "after:BasicComponents; after:IC2", useMetadata = true)
|
@Mod(modid = AssemblyLine.CHANNEL, name = AssemblyLine.MOD_NAME, version = AssemblyLine.VERSION, dependencies = "after:BasicComponents; after:IC2", useMetadata = true)
|
||||||
|
@ -98,7 +102,7 @@ public class AssemblyLine
|
||||||
|
|
||||||
public static final Configuration CONFIGURATION = new Configuration(new File(Loader.instance().getConfigDir(), "UniversalElectricity/AssemblyLine.cfg"));
|
public static final Configuration CONFIGURATION = new Configuration(new File(Loader.instance().getConfigDir(), "UniversalElectricity/AssemblyLine.cfg"));
|
||||||
|
|
||||||
public static final int BLOCK_ID_PREFIX = 3030;
|
public static int BLOCK_ID_PREFIX = 3030;
|
||||||
|
|
||||||
public static Block blockConveyorBelt;
|
public static Block blockConveyorBelt;
|
||||||
public static Block blockManipulator;
|
public static Block blockManipulator;
|
||||||
|
@ -123,38 +127,43 @@ public class AssemblyLine
|
||||||
// TODO: MAKE THIS FALSE EVERY BUILD!
|
// TODO: MAKE THIS FALSE EVERY BUILD!
|
||||||
public static final boolean DEBUG = false;
|
public static final boolean DEBUG = false;
|
||||||
public static boolean REQUIRE_NO_POWER = false;
|
public static boolean REQUIRE_NO_POWER = false;
|
||||||
|
public static boolean VINALLA_RECIPES = false;
|
||||||
|
|
||||||
@PreInit
|
@PreInit
|
||||||
public void preInit(FMLPreInitializationEvent event)
|
public void preInit(FMLPreInitializationEvent event)
|
||||||
{
|
{
|
||||||
FMLog.setParent(FMLLog.getLogger());
|
FMLog.setParent(FMLLog.getLogger());
|
||||||
// UniversalElectricity.register(this, 1, 2, 6, false);
|
|
||||||
instance = this;
|
instance = this;
|
||||||
|
|
||||||
/* UPDATE NOTIFIER */
|
/* UPDATE NOTIFIER */
|
||||||
Modstats.instance().getReporter().registerMod(this);
|
Modstats.instance().getReporter().registerMod(this);
|
||||||
|
|
||||||
CONFIGURATION.load();
|
CONFIGURATION.load();
|
||||||
blockConveyorBelt = new BlockConveyorBelt(CONFIGURATION.getBlock("Conveyor Belt", BLOCK_ID_PREFIX).getInt());
|
blockConveyorBelt = new BlockConveyorBelt(BLOCK_ID_PREFIX);
|
||||||
blockManipulator = new BlockManipulator(CONFIGURATION.getBlock("Manipulator", BLOCK_ID_PREFIX + 1).getInt());
|
blockManipulator = new BlockManipulator(BLOCK_ID_PREFIX++);
|
||||||
blockCrate = new BlockCrate(CONFIGURATION.getBlock("Crate", BLOCK_ID_PREFIX + 3).getInt(), 0);
|
blockCrate = new BlockCrate(BLOCK_ID_PREFIX++);
|
||||||
blockImprinter = new BlockImprinter(CONFIGURATION.getBlock("Imprinter", BLOCK_ID_PREFIX + 4).getInt(), 4);
|
blockImprinter = new BlockImprinter(BLOCK_ID_PREFIX++);
|
||||||
blockDetector = new BlockDetector(CONFIGURATION.getBlock("Detector", BLOCK_ID_PREFIX + 5).getInt(), 1);
|
blockDetector = new BlockDetector(BLOCK_ID_PREFIX++);
|
||||||
blockRejector = new BlockRejector(CONFIGURATION.getBlock("Rejector", BLOCK_ID_PREFIX + 6).getInt());
|
blockRejector = new BlockRejector(BLOCK_ID_PREFIX++);
|
||||||
blockEncoder = new BlockEncoder(CONFIGURATION.getBlock("Encoder", BLOCK_ID_PREFIX + 7).getInt(), 7);
|
blockEncoder = new BlockEncoder(BLOCK_ID_PREFIX++);
|
||||||
blockArmbot = new BlockArmbot(CONFIGURATION.getBlock("Armbot", BLOCK_ID_PREFIX + 8).getInt());
|
blockArmbot = new BlockArmbot(BLOCK_ID_PREFIX++);
|
||||||
blockMulti = new BlockMulti(CONFIGURATION.getBlock("Multiblock", BLOCK_ID_PREFIX + 9).getInt());
|
blockMulti = new BlockMulti(BLOCK_ID_PREFIX++);
|
||||||
blockCraneController = new BlockCraneController(CONFIGURATION.getBlock("Crane Controller", BLOCK_ID_PREFIX + 10).getInt());
|
blockCraneController = new BlockCraneController(BLOCK_ID_PREFIX++);
|
||||||
blockCraneFrame = new BlockCraneFrame(CONFIGURATION.getBlock("Crane Frame", BLOCK_ID_PREFIX + 11).getInt());
|
blockCraneFrame = new BlockCraneFrame(BLOCK_ID_PREFIX++);
|
||||||
blockTurntable = new BlockTurntable(CONFIGURATION.getBlock("Turntable", BLOCK_ID_PREFIX + 12).getInt());
|
blockTurntable = new BlockTurntable(BLOCK_ID_PREFIX++);
|
||||||
|
|
||||||
itemImprint = new ItemImprinter(CONFIGURATION.getItem("Imprint", ITEM_ID_PREFIX).getInt());
|
itemImprint = new ItemImprinter(CONFIGURATION.getItem("Imprint", ITEM_ID_PREFIX).getInt());
|
||||||
itemDisk = new ItemDisk(CONFIGURATION.getItem("Disk", ITEM_ID_PREFIX + 1).getInt());
|
itemDisk = new ItemDisk(CONFIGURATION.getItem("Disk", ITEM_ID_PREFIX + 1).getInt());
|
||||||
|
|
||||||
REQUIRE_NO_POWER = !CONFIGURATION.get("general", "requirePower", true).getBoolean(true) || PowerSystems.runPowerLess(PowerSystems.INDUSTRIALCRAFT, PowerSystems.BUILDCRAFT, PowerSystems.MEKANISM);
|
AssemblyLine.REQUIRE_NO_POWER = !CONFIGURATION.get("general", "requirePower", true).getBoolean(true);
|
||||||
|
AssemblyLine.VINALLA_RECIPES = CONFIGURATION.get("general", "Vinalla_Recipes", false).getBoolean(false);
|
||||||
|
if (CONFIGURATION.hasChanged())
|
||||||
|
{
|
||||||
CONFIGURATION.save();
|
CONFIGURATION.save();
|
||||||
|
}
|
||||||
|
|
||||||
NetworkRegistry.instance().registerGuiHandler(this, this.proxy);
|
NetworkRegistry.instance().registerGuiHandler(this, this.proxy);
|
||||||
|
|
||||||
GameRegistry.registerBlock(blockConveyorBelt, "ConveyorBelt");
|
GameRegistry.registerBlock(blockConveyorBelt, "ConveyorBelt");
|
||||||
GameRegistry.registerBlock(blockCrate, ItemBlockCrate.class, "Crate");
|
GameRegistry.registerBlock(blockCrate, ItemBlockCrate.class, "Crate");
|
||||||
GameRegistry.registerBlock(blockManipulator, "Manipulator");
|
GameRegistry.registerBlock(blockManipulator, "Manipulator");
|
||||||
|
@ -167,6 +176,18 @@ public class AssemblyLine
|
||||||
GameRegistry.registerBlock(blockCraneController, "CraneController");
|
GameRegistry.registerBlock(blockCraneController, "CraneController");
|
||||||
GameRegistry.registerBlock(blockCraneFrame, "Crane Frame");
|
GameRegistry.registerBlock(blockCraneFrame, "Crane Frame");
|
||||||
|
|
||||||
|
GameRegistry.registerTileEntity(TileEntityConveyorBelt.class, "ALConveyorBelt");
|
||||||
|
GameRegistry.registerTileEntity(TileEntityRejector.class, "ALSorter");
|
||||||
|
GameRegistry.registerTileEntity(TileEntityManipulator.class, "ALManipulator");
|
||||||
|
GameRegistry.registerTileEntity(TileEntityCrate.class, "ALCrate");
|
||||||
|
GameRegistry.registerTileEntity(TileEntityDetector.class, "ALDetector");
|
||||||
|
GameRegistry.registerTileEntity(TileEntityEncoder.class, "ALEncoder");
|
||||||
|
GameRegistry.registerTileEntity(TileEntityArmbot.class, "ALArmbot");
|
||||||
|
GameRegistry.registerTileEntity(TileEntityCraneController.class, "ALCraneController");
|
||||||
|
GameRegistry.registerTileEntity(TileEntityCraneRail.class, "ALCraneRail");
|
||||||
|
GameRegistry.registerTileEntity(TileEntityImprinter.class, "ALImprinter");
|
||||||
|
GameRegistry.registerTileEntity(TileEntityMulti.class, "ALMulti");
|
||||||
|
|
||||||
TabAssemblyLine.itemStack = new ItemStack(AssemblyLine.blockConveyorBelt);
|
TabAssemblyLine.itemStack = new ItemStack(AssemblyLine.blockConveyorBelt);
|
||||||
|
|
||||||
proxy.preInit();
|
proxy.preInit();
|
||||||
|
@ -176,155 +197,26 @@ public class AssemblyLine
|
||||||
public void load(FMLInitializationEvent evt)
|
public void load(FMLInitializationEvent evt)
|
||||||
{
|
{
|
||||||
proxy.init();
|
proxy.init();
|
||||||
GrabDictionary.registerList();
|
|
||||||
|
|
||||||
FMLog.info("Loaded: " + TranslationHelper.loadLanguages(LANGUAGE_PATH, LANGUAGES_SUPPORTED) + " languages.");
|
FMLog.info("Loaded: " + TranslationHelper.loadLanguages(LANGUAGE_PATH, LANGUAGES_SUPPORTED) + " languages.");
|
||||||
|
|
||||||
/* MCMOD.INFO FILE BUILDER? */
|
/* MCMOD.INFO FILE BUILDER? */
|
||||||
meta.modId = AssemblyLine.MOD_ID;
|
meta.modId = AssemblyLine.MOD_ID;
|
||||||
meta.name = AssemblyLine.MOD_NAME;
|
meta.name = AssemblyLine.MOD_NAME;
|
||||||
meta.description = "A mod that brings conveyor belt transporting systems to Minecraft.";
|
meta.description = "Simi Realistic factory system for minecraft bring in conveyor belts, robotic arms, and simple machines";
|
||||||
|
|
||||||
meta.url = "http://calclavia.com/universalelectricity/?m=18";
|
meta.url = "http://universalelectricity.com/assembly-line";
|
||||||
|
|
||||||
meta.logoFile = "/al_logo.png";
|
meta.logoFile = "/al_logo.png";
|
||||||
meta.version = AssemblyLine.VERSION;
|
meta.version = AssemblyLine.VERSION;
|
||||||
meta.authorList = Arrays.asList(new String[] { "DarkGuardsman, Briaman, Calclavia" });
|
meta.authorList = Arrays.asList(new String[] { "DarkGuardsman" });
|
||||||
meta.credits = "Please see the website.";
|
meta.credits = "Please see the website.";
|
||||||
meta.autogenerated = false;
|
meta.autogenerated = false;
|
||||||
|
|
||||||
this.createStandardRecipes();
|
Recipes.loadRecipes();
|
||||||
this.createUERecipes();
|
|
||||||
if (PowerSystems.isPowerSystemLoaded(PowerSystems.INDUSTRIALCRAFT, true))
|
|
||||||
{
|
|
||||||
createIC2Recipes();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createVanillaRecipes()
|
|
||||||
{
|
|
||||||
System.out.println("No crafting ingredient source found. Creating cheap-o vanilla recipes.");
|
|
||||||
// Armbot
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(blockArmbot, new Object[] { "II ", "SIS", "MCM", 'S', "ingotIron", 'C', Item.redstoneRepeater, 'I', "ingotIron", 'M', Block.pistonBase }));
|
|
||||||
// Disk
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(itemDisk, new Object[] { "III", "ICI", "III", 'I', itemImprint, 'C', Item.redstoneRepeater }));
|
|
||||||
// Encoder
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(blockEncoder, new Object[] { "SIS", "SCS", "SSS", 'I', itemImprint, 'S', "ingotIron", 'C', Item.redstoneRepeater }));
|
|
||||||
// Detector
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(blockDetector, new Object[] { "SES", "SCS", "S S", 'S', "ingotIron", 'C', Block.torchRedstoneActive, 'E', Item.eyeOfEnder }));
|
|
||||||
// Conveyor Belt
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(blockConveyorBelt, 10), new Object[] { "III", "WMW", 'I', "ingotIron", 'W', Block.planks, 'M', Block.pistonBase }));
|
|
||||||
// Rejector
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(blockRejector, new Object[] { "WPW", "@R@", '@', "ingotIron", 'R', Item.redstone, 'P', Block.pistonBase, 'C', Block.torchRedstoneActive, 'W', Item.redstone }));
|
|
||||||
// Turntable
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(blockTurntable, new Object[] { "P", "P", 'P', Block.pistonBase }));
|
|
||||||
// Manipulator
|
|
||||||
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(blockManipulator, 2), new Object[] { Block.dispenser, Block.torchRedstoneActive }));
|
|
||||||
}
|
|
||||||
|
|
||||||
private void createUERecipes()
|
|
||||||
{
|
|
||||||
DarkMain.forceLoadBCItems(this, AssemblyLine.CHANNEL);
|
|
||||||
System.out.println("BasicComponents Found...adding UE recipes for Assembly Line.");
|
|
||||||
// Armbot
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(blockArmbot, new Object[] {
|
|
||||||
"II ",
|
|
||||||
"SIS",
|
|
||||||
"MCM",
|
|
||||||
'S', "plateSteel",
|
|
||||||
'C', "advancedCircuit",
|
|
||||||
'I', "ingotSteel",
|
|
||||||
'M', "motor" }));
|
|
||||||
// Disk
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(itemDisk, new Object[] {
|
|
||||||
"III",
|
|
||||||
"ICI",
|
|
||||||
"III",
|
|
||||||
'I', itemImprint,
|
|
||||||
'C', "advancedCircuit" }));
|
|
||||||
// Encoder
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(blockEncoder, new Object[] {
|
|
||||||
"SIS",
|
|
||||||
"SCS",
|
|
||||||
"SSS",
|
|
||||||
'I', itemImprint,
|
|
||||||
'S', "ingotSteel",
|
|
||||||
'C', "advancedCircuit" }));
|
|
||||||
// Detector
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(blockDetector, new Object[] {
|
|
||||||
"SES",
|
|
||||||
"SCS",
|
|
||||||
"S S",
|
|
||||||
'S', "ingotSteel",
|
|
||||||
'C', "basicCircuit",
|
|
||||||
'E', Item.eyeOfEnder }));
|
|
||||||
// Conveyor Belt
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(blockConveyorBelt, 10), new Object[] {
|
|
||||||
"III",
|
|
||||||
"WMW",
|
|
||||||
'I', "ingotSteel",
|
|
||||||
'W', Block.planks,
|
|
||||||
'M', "motor" }));
|
|
||||||
// Rejector
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(blockRejector, new Object[] {
|
|
||||||
"CPC",
|
|
||||||
"@R@",
|
|
||||||
'@', "ingotSteel",
|
|
||||||
'R', Item.redstone,
|
|
||||||
'P', Block.pistonBase,
|
|
||||||
'C', "basicCircuit"}));
|
|
||||||
// Turntable
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(blockTurntable, new Object[] {
|
|
||||||
"M",
|
|
||||||
"P",
|
|
||||||
'M', "motor",
|
|
||||||
'P', Block.pistonBase }));
|
|
||||||
// Manipulator
|
|
||||||
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(blockManipulator, 2), new Object[] { Block.dispenser, "basicCircuit" }));
|
|
||||||
}
|
|
||||||
|
|
||||||
private void createIC2Recipes()
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
System.out.println("IC2 Found...adding IC2 recipes for Assembly Line.");
|
|
||||||
// Armbot
|
|
||||||
GameRegistry.addRecipe(new ItemStack(blockArmbot, 1), "II ", "SIS", "MCM", 'S', Items.getItem("advancedAlloy"), 'C', Items.getItem("electronicCircuit"), 'I', "ingotRefinedIron", 'M', Items.getItem("generator"));
|
|
||||||
// Disk
|
|
||||||
GameRegistry.addRecipe(new ItemStack(itemDisk, 1), "III", "ICI", "III", 'I', itemImprint, 'C', Items.getItem("advancedCircuit"));
|
|
||||||
// Encoder
|
|
||||||
GameRegistry.addRecipe(new ItemStack(blockEncoder, 1), "SIS", "SCS", "SSS", 'I', itemImprint, 'S', "ingotRefinedIron", 'C', Items.getItem("advancedCircuit"));
|
|
||||||
// Detector
|
|
||||||
GameRegistry.addRecipe(new ItemStack(blockDetector, 1), "SES", "SCS", "S S", 'S', "ingotRefinedIron", 'C', Items.getItem("electronicCircuit"), 'E', Item.eyeOfEnder);
|
|
||||||
// Conveyor Belt
|
|
||||||
GameRegistry.addRecipe(new ItemStack(blockConveyorBelt, 10), "III", "WMW", 'I', "ingotRefinedIron", 'W', Block.planks, 'M', Items.getItem("generator"));
|
|
||||||
// Rejector
|
|
||||||
GameRegistry.addRecipe(new ItemStack(blockRejector, 1), "WPW", "@R@", '@', "ingotRefinedIron", 'R', Item.redstone, 'P', Block.pistonBase, 'C', Items.getItem("electronicCircuit"), 'W', Items.getItem("insulatedCopperCableItem"));
|
|
||||||
// Turntable
|
|
||||||
GameRegistry.addRecipe(new ItemStack(blockTurntable, 1), "M", "P", 'M', Items.getItem("generator"), 'P', Block.pistonBase);
|
|
||||||
// Manipulator
|
|
||||||
GameRegistry.addShapelessRecipe(new ItemStack(blockManipulator, 2), Block.dispenser, Items.getItem("electronicCircuit"));
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
System.out.print("AssemblyLine: Failed to load IC2 recipes");
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void createStandardRecipes()
|
|
||||||
{
|
|
||||||
// Imprint
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(itemImprint, 2), new Object[] { "R", "P", "I", 'P', Item.paper, 'R', Item.redstone, 'I', new ItemStack(Item.dyePowder, 1, 0) }));
|
|
||||||
// Imprinter
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(blockImprinter, new Object[] { "SIS", "SPS", "WCW", 'S', Item.ingotIron, 'C', Block.chest, 'W', Block.workbench, 'P', Block.pistonBase, 'I', new ItemStack(Item.dyePowder, 1, 0) }));
|
|
||||||
// Crate
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(blockCrate, 1, 0), new Object[] { "TST", "S S", "TST", 'S', Item.ingotIron, 'T', Block.wood }));
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(blockCrate, 1, 1), new Object[] { "TST", "SCS", "TST", 'C', new ItemStack(blockCrate, 1, 0), 'S', Item.ingotIron, 'T', Block.wood }));
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(blockCrate, 1, 2), new Object[] { "TST", "SCS", "TST", 'C', new ItemStack(blockCrate, 1, 1), 'S', Item.ingotIron, 'T', Block.wood }));
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void printSidedData(String data)
|
public static void printSidedData(String data)
|
||||||
{
|
{
|
||||||
System.out.print(FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT ? "[C]" : "[S]");
|
System.out.print(FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT ? "[C]" : "[S]");
|
||||||
|
|
|
@ -13,9 +13,9 @@ import net.minecraft.world.World;
|
||||||
import universalelectricity.core.vector.Vector3;
|
import universalelectricity.core.vector.Vector3;
|
||||||
import universalelectricity.prefab.multiblock.TileEntityMulti;
|
import universalelectricity.prefab.multiblock.TileEntityMulti;
|
||||||
import assemblyline.common.armbot.TileEntityArmbot;
|
import assemblyline.common.armbot.TileEntityArmbot;
|
||||||
import assemblyline.common.block.TileEntityCrate;
|
|
||||||
import assemblyline.common.imprinter.ContainerImprinter;
|
import assemblyline.common.imprinter.ContainerImprinter;
|
||||||
import assemblyline.common.imprinter.TileEntityImprinter;
|
import assemblyline.common.imprinter.TileEntityImprinter;
|
||||||
|
import assemblyline.common.machine.TileEntityCrate;
|
||||||
import assemblyline.common.machine.TileEntityManipulator;
|
import assemblyline.common.machine.TileEntityManipulator;
|
||||||
import assemblyline.common.machine.TileEntityRejector;
|
import assemblyline.common.machine.TileEntityRejector;
|
||||||
import assemblyline.common.machine.belt.TileEntityConveyorBelt;
|
import assemblyline.common.machine.belt.TileEntityConveyorBelt;
|
||||||
|
@ -40,17 +40,7 @@ public class CommonProxy implements IGuiHandler
|
||||||
|
|
||||||
public void init()
|
public void init()
|
||||||
{
|
{
|
||||||
GameRegistry.registerTileEntity(TileEntityConveyorBelt.class, "ALConveyorBelt");
|
|
||||||
GameRegistry.registerTileEntity(TileEntityRejector.class, "ALSorter");
|
|
||||||
GameRegistry.registerTileEntity(TileEntityManipulator.class, "ALManipulator");
|
|
||||||
GameRegistry.registerTileEntity(TileEntityCrate.class, "ALCrate");
|
|
||||||
GameRegistry.registerTileEntity(TileEntityDetector.class, "ALDetector");
|
|
||||||
GameRegistry.registerTileEntity(TileEntityEncoder.class, "ALEncoder");
|
|
||||||
GameRegistry.registerTileEntity(TileEntityArmbot.class, "ALArmbot");
|
|
||||||
GameRegistry.registerTileEntity(TileEntityCraneController.class, "ALCraneController");
|
|
||||||
GameRegistry.registerTileEntity(TileEntityCraneRail.class, "ALCraneRail");
|
|
||||||
GameRegistry.registerTileEntity(TileEntityImprinter.class, "ALImprinter");
|
|
||||||
GameRegistry.registerTileEntity(TileEntityMulti.class, "ALMulti");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void extractZipToLocation(File zipFile, String sourceFolder, String destFolder)
|
private void extractZipToLocation(File zipFile, String sourceFolder, String destFolder)
|
||||||
|
|
87
src/minecraft/assemblyline/common/Recipes.java
Normal file
87
src/minecraft/assemblyline/common/Recipes.java
Normal file
|
@ -0,0 +1,87 @@
|
||||||
|
package assemblyline.common;
|
||||||
|
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraftforge.oredict.OreDictionary;
|
||||||
|
import net.minecraftforge.oredict.ShapedOreRecipe;
|
||||||
|
import net.minecraftforge.oredict.ShapelessOreRecipe;
|
||||||
|
import cpw.mods.fml.common.registry.GameRegistry;
|
||||||
|
|
||||||
|
public class Recipes
|
||||||
|
{
|
||||||
|
static Object circuit;
|
||||||
|
static Object circuit2;
|
||||||
|
static Object circuit3;
|
||||||
|
static Object steel;
|
||||||
|
static Object steelPlate;
|
||||||
|
static Object motor;
|
||||||
|
|
||||||
|
public static void loadRecipes()
|
||||||
|
{
|
||||||
|
circuit = Item.redstoneRepeater;
|
||||||
|
circuit2 = Item.comparator;
|
||||||
|
steel = Item.ingotIron;
|
||||||
|
steelPlate = Item.ingotGold;
|
||||||
|
motor = Block.pistonBase;
|
||||||
|
|
||||||
|
if (!AssemblyLine.VINALLA_RECIPES)
|
||||||
|
{
|
||||||
|
if (OreDictionary.getOres("basicCircuit").size() > 0)
|
||||||
|
{
|
||||||
|
circuit = "basicCircuit";
|
||||||
|
}
|
||||||
|
if (OreDictionary.getOres("advancedCircuit").size() > 0)
|
||||||
|
{
|
||||||
|
circuit = "advancedCircuit";
|
||||||
|
}
|
||||||
|
if (OreDictionary.getOres("ingotSteel").size() > 0)
|
||||||
|
{
|
||||||
|
steel = "ingotSteel";
|
||||||
|
}
|
||||||
|
if (OreDictionary.getOres("plateSteel").size() > 0)
|
||||||
|
{
|
||||||
|
steelPlate = "plateSteel";
|
||||||
|
}
|
||||||
|
if (OreDictionary.getOres("motor").size() > 0)
|
||||||
|
{
|
||||||
|
motor = "motor";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
Recipes.createStandardRecipes();
|
||||||
|
Recipes.createUERecipes();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void createUERecipes()
|
||||||
|
{
|
||||||
|
// Armbot
|
||||||
|
GameRegistry.addRecipe(new ShapedOreRecipe(AssemblyLine.blockArmbot, new Object[] { "II ", "SIS", "MCM", 'S', Recipes.steelPlate, 'C', Recipes.circuit2, 'I', Recipes.steel, 'M', Recipes.motor }));
|
||||||
|
// Disk
|
||||||
|
GameRegistry.addRecipe(new ShapedOreRecipe(AssemblyLine.itemDisk, new Object[] { "III", "ICI", "III", 'I', AssemblyLine.itemImprint, 'C', Recipes.circuit2 }));
|
||||||
|
// Encoder
|
||||||
|
GameRegistry.addRecipe(new ShapedOreRecipe(AssemblyLine.blockEncoder, new Object[] { "SIS", "SCS", "SSS", 'I', AssemblyLine.itemImprint, 'S', Recipes.steel, 'C', Recipes.circuit2 }));
|
||||||
|
// Detector
|
||||||
|
GameRegistry.addRecipe(new ShapedOreRecipe(AssemblyLine.blockDetector, new Object[] { "SES", "SCS", "S S", 'S', Recipes.steel, 'C', Recipes.circuit, 'E', Item.eyeOfEnder }));
|
||||||
|
// Conveyor Belt
|
||||||
|
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(AssemblyLine.blockConveyorBelt, 10), new Object[] { "III", "WMW", 'I', Recipes.steel, 'W', Block.planks, 'M', Recipes.motor }));
|
||||||
|
// Rejector
|
||||||
|
GameRegistry.addRecipe(new ShapedOreRecipe(AssemblyLine.blockRejector, new Object[] { "CPC", "@R@", '@', Recipes.steel, 'R', Item.redstone, 'P', Block.pistonBase, 'C', Recipes.circuit }));
|
||||||
|
// Turntable
|
||||||
|
GameRegistry.addRecipe(new ShapedOreRecipe(AssemblyLine.blockTurntable, new Object[] { "IMI", " P ", 'M', Recipes.motor, 'P', Block.pistonBase, 'I', Recipes.steel }));
|
||||||
|
// Manipulator
|
||||||
|
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(AssemblyLine.blockManipulator, 2), new Object[] { Block.dispenser, Recipes.circuit }));
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void createStandardRecipes()
|
||||||
|
{
|
||||||
|
// Imprint
|
||||||
|
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(AssemblyLine.itemImprint, 2), new Object[] { "R", "P", "I", 'P', Item.paper, 'R', Item.redstone, 'I', new ItemStack(Item.dyePowder, 1, 0) }));
|
||||||
|
// Imprinter
|
||||||
|
GameRegistry.addRecipe(new ShapedOreRecipe(AssemblyLine.blockImprinter, new Object[] { "SIS", "SPS", "WCW", 'S', Item.ingotIron, 'C', Block.chest, 'W', Block.workbench, 'P', Block.pistonBase, 'I', new ItemStack(Item.dyePowder, 1, 0) }));
|
||||||
|
// Crate
|
||||||
|
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(AssemblyLine.blockCrate, 1, 0), new Object[] { "TST", "S S", "TST", 'S', Item.ingotIron, 'T', Block.planks }));
|
||||||
|
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(AssemblyLine.blockCrate, 1, 1), new Object[] { "TST", "SCS", "TST", 'C', new ItemStack(AssemblyLine.blockCrate, 1, 0), 'S', Recipes.steel, 'T', Block.wood }));
|
||||||
|
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(AssemblyLine.blockCrate, 1, 2), new Object[] { "TST", "SCS", "TST", 'C', new ItemStack(AssemblyLine.blockCrate, 1, 1), 'S', Recipes.steelPlate, 'T', Block.wood }));
|
||||||
|
}
|
||||||
|
}
|
|
@ -11,17 +11,15 @@ import universalelectricity.core.vector.Vector3;
|
||||||
import universalelectricity.prefab.multiblock.IMultiBlock;
|
import universalelectricity.prefab.multiblock.IMultiBlock;
|
||||||
import assemblyline.client.render.BlockRenderingHandler;
|
import assemblyline.client.render.BlockRenderingHandler;
|
||||||
import assemblyline.common.TabAssemblyLine;
|
import assemblyline.common.TabAssemblyLine;
|
||||||
import assemblyline.common.block.BlockALMachine;
|
import assemblyline.common.machine.BlockAssembly;
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
public class BlockArmbot extends BlockALMachine
|
public class BlockArmbot extends BlockAssembly
|
||||||
{
|
{
|
||||||
public BlockArmbot(int id)
|
public BlockArmbot(int id)
|
||||||
{
|
{
|
||||||
super(id, UniversalElectricity.machine);
|
super(id, UniversalElectricity.machine,"armbot");
|
||||||
this.setUnlocalizedName("armbot");
|
|
||||||
this.setCreativeTab(TabAssemblyLine.INSTANCE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -1,8 +1,5 @@
|
||||||
package assemblyline.common.armbot;
|
package assemblyline.common.armbot;
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
|
||||||
import java.io.DataInputStream;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -15,14 +12,11 @@ import net.minecraft.inventory.IInventory;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.nbt.NBTTagList;
|
import net.minecraft.nbt.NBTTagList;
|
||||||
import net.minecraft.network.INetworkManager;
|
|
||||||
import net.minecraft.network.packet.Packet;
|
import net.minecraft.network.packet.Packet;
|
||||||
import net.minecraft.network.packet.Packet250CustomPayload;
|
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.AxisAlignedBB;
|
import net.minecraft.util.AxisAlignedBB;
|
||||||
import net.minecraft.util.MathHelper;
|
import net.minecraft.util.MathHelper;
|
||||||
import net.minecraftforge.common.ForgeDirection;
|
import net.minecraftforge.common.ForgeDirection;
|
||||||
import universalelectricity.core.block.IElectricityStorage;
|
|
||||||
import universalelectricity.core.vector.Vector3;
|
import universalelectricity.core.vector.Vector3;
|
||||||
import universalelectricity.prefab.TranslationHelper;
|
import universalelectricity.prefab.TranslationHelper;
|
||||||
import universalelectricity.prefab.multiblock.IMultiBlock;
|
import universalelectricity.prefab.multiblock.IMultiBlock;
|
||||||
|
@ -39,55 +33,38 @@ import assemblyline.common.armbot.command.CommandReturn;
|
||||||
import assemblyline.common.armbot.command.CommandRotateBy;
|
import assemblyline.common.armbot.command.CommandRotateBy;
|
||||||
import assemblyline.common.armbot.command.CommandRotateTo;
|
import assemblyline.common.armbot.command.CommandRotateTo;
|
||||||
import assemblyline.common.armbot.command.CommandUse;
|
import assemblyline.common.armbot.command.CommandUse;
|
||||||
import assemblyline.common.machine.TileEntityAssemblyNetwork;
|
import assemblyline.common.machine.TileEntityAssembly;
|
||||||
import assemblyline.common.machine.encoder.ItemDisk;
|
import assemblyline.common.machine.encoder.ItemDisk;
|
||||||
|
|
||||||
import com.google.common.io.ByteArrayDataInput;
|
|
||||||
|
|
||||||
import cpw.mods.fml.common.FMLCommonHandler;
|
import cpw.mods.fml.common.FMLCommonHandler;
|
||||||
import cpw.mods.fml.common.FMLLog;
|
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
import dan200.computer.api.IComputerAccess;
|
import dan200.computer.api.IComputerAccess;
|
||||||
import dan200.computer.api.IPeripheral;
|
import dan200.computer.api.IPeripheral;
|
||||||
import dark.helpers.ItemFindingHelper;
|
import dark.helpers.ItemFindingHelper;
|
||||||
|
|
||||||
public class TileEntityArmbot extends TileEntityAssemblyNetwork implements IMultiBlock, IInventory, IPacketReceiver, IElectricityStorage, IArmbot, IPeripheral
|
public class TileEntityArmbot extends TileEntityAssembly implements IMultiBlock, IInventory, IPacketReceiver, IArmbot, IPeripheral
|
||||||
{
|
{
|
||||||
private final CommandManager commandManager = new CommandManager();
|
private final CommandManager commandManager = new CommandManager();
|
||||||
private static final int PACKET_COMMANDS = 128;
|
/** The items this container contains. */
|
||||||
|
|
||||||
/**
|
|
||||||
* The items this container contains.
|
|
||||||
*/
|
|
||||||
protected ItemStack disk = null;
|
protected ItemStack disk = null;
|
||||||
public final double WATT_REQUEST = 20;
|
public final double WATT_REQUEST = 20;
|
||||||
public double wattsReceived = 0;
|
|
||||||
private int playerUsing = 0;
|
|
||||||
private int computersAttached = 0;
|
private int computersAttached = 0;
|
||||||
private List<IComputerAccess> connectedComputers = new ArrayList<IComputerAccess>();
|
private List<IComputerAccess> connectedComputers = new ArrayList<IComputerAccess>();
|
||||||
/**
|
/** The rotation of the arms. In Degrees. */
|
||||||
* The rotation of the arms. In Degrees.
|
|
||||||
*/
|
|
||||||
public float rotationPitch = 0;
|
public float rotationPitch = 0;
|
||||||
public float rotationYaw = 0;
|
public float rotationYaw = 0;
|
||||||
public float renderPitch = 0;
|
public float renderPitch = 0;
|
||||||
public float renderYaw = 0;
|
public float renderYaw = 0;
|
||||||
private int ticksSincePower = 0;
|
|
||||||
public final float ROTATION_SPEED = 2.0f;
|
public final float ROTATION_SPEED = 2.0f;
|
||||||
|
|
||||||
private String displayText = "";
|
private String displayText = "";
|
||||||
|
|
||||||
public boolean isProvidingPower = false;
|
public boolean isProvidingPower = false;
|
||||||
|
|
||||||
/**
|
/** An entity that the Armbot is grabbed onto. Entity Items are held separately. */
|
||||||
* An entity that the Armbot is grabbed onto. Entity Items are held separately.
|
|
||||||
*/
|
|
||||||
private final List<Entity> grabbedEntities = new ArrayList<Entity>();
|
private final List<Entity> grabbedEntities = new ArrayList<Entity>();
|
||||||
private final List<ItemStack> grabbedItems = new ArrayList<ItemStack>();
|
private final List<ItemStack> grabbedItems = new ArrayList<ItemStack>();
|
||||||
|
|
||||||
/**
|
/** Client Side Object Storage */
|
||||||
* Client Side Object Storage
|
|
||||||
*/
|
|
||||||
public EntityItem renderEntityItem = null;
|
public EntityItem renderEntityItem = null;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -150,12 +127,9 @@ public class TileEntityArmbot extends TileEntityAssemblyNetwork implements IMult
|
||||||
}
|
}
|
||||||
if (!this.worldObj.isRemote)
|
if (!this.worldObj.isRemote)
|
||||||
this.commandManager.onUpdate();
|
this.commandManager.onUpdate();
|
||||||
|
|
||||||
this.ticksSincePower = 0;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
this.ticksSincePower++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!this.worldObj.isRemote)
|
if (!this.worldObj.isRemote)
|
||||||
|
@ -280,9 +254,7 @@ public class TileEntityArmbot extends TileEntityAssemblyNetwork implements IMult
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/** @return The current hand position of the armbot. */
|
||||||
* @return The current hand position of the armbot.
|
|
||||||
*/
|
|
||||||
public Vector3 getHandPosition()
|
public Vector3 getHandPosition()
|
||||||
{
|
{
|
||||||
Vector3 position = new Vector3(this);
|
Vector3 position = new Vector3(this);
|
||||||
|
@ -306,46 +278,16 @@ public class TileEntityArmbot extends TileEntityAssemblyNetwork implements IMult
|
||||||
return delta;
|
return delta;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Data */
|
||||||
@Override
|
@Override
|
||||||
public Packet getDescriptionPacket()
|
public Packet getDescriptionPacket()
|
||||||
{
|
{
|
||||||
NBTTagCompound nbt = new NBTTagCompound();
|
NBTTagCompound nbt = new NBTTagCompound();
|
||||||
writeToNBT(nbt);
|
this.writeToNBT(nbt);
|
||||||
return PacketManager.getPacket(AssemblyLine.CHANNEL, this, this.powerTransferRange, nbt);
|
return PacketManager.getPacket(AssemblyLine.CHANNEL, this, AssemblyTilePacket.NBT, nbt);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/** Inventory */
|
||||||
* Data
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void handlePacketData(INetworkManager network, int packetType, Packet250CustomPayload packet, EntityPlayer player, ByteArrayDataInput dataStream)
|
|
||||||
{
|
|
||||||
if (this.worldObj.isRemote)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
ByteArrayInputStream bis = new ByteArrayInputStream(packet.data);
|
|
||||||
DataInputStream dis = new DataInputStream(bis);
|
|
||||||
int id, x, y, z;
|
|
||||||
id = dis.readInt();
|
|
||||||
x = dis.readInt();
|
|
||||||
y = dis.readInt();
|
|
||||||
z = dis.readInt();
|
|
||||||
this.powerTransferRange = dis.readInt();
|
|
||||||
NBTTagCompound tag = Packet.readNBTTagCompound(dis);
|
|
||||||
readFromNBT(tag);
|
|
||||||
}
|
|
||||||
catch (IOException e)
|
|
||||||
{
|
|
||||||
FMLLog.severe("Failed to receive packet for Armbot");
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Inventory
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public int getSizeInventory()
|
public int getSizeInventory()
|
||||||
{
|
{
|
||||||
|
@ -358,9 +300,7 @@ public class TileEntityArmbot extends TileEntityAssemblyNetwork implements IMult
|
||||||
return TranslationHelper.getLocal("tile.armbot.name");
|
return TranslationHelper.getLocal("tile.armbot.name");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/** Inventory functions. */
|
||||||
* Inventory functions.
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public ItemStack getStackInSlot(int par1)
|
public ItemStack getStackInSlot(int par1)
|
||||||
{
|
{
|
||||||
|
@ -435,13 +375,11 @@ public class TileEntityArmbot extends TileEntityAssemblyNetwork implements IMult
|
||||||
@Override
|
@Override
|
||||||
public void openChest()
|
public void openChest()
|
||||||
{
|
{
|
||||||
this.playerUsing++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void closeChest()
|
public void closeChest()
|
||||||
{
|
{
|
||||||
this.playerUsing--;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getCommandDisplayText()
|
public String getCommandDisplayText()
|
||||||
|
@ -449,9 +387,7 @@ public class TileEntityArmbot extends TileEntityAssemblyNetwork implements IMult
|
||||||
return this.displayText;
|
return this.displayText;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/** NBT Data */
|
||||||
* NBT Data
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public void readFromNBT(NBTTagCompound nbt)
|
public void readFromNBT(NBTTagCompound nbt)
|
||||||
{
|
{
|
||||||
|
@ -506,9 +442,7 @@ public class TileEntityArmbot extends TileEntityAssemblyNetwork implements IMult
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/** Writes a tile entity to NBT. */
|
||||||
* Writes a tile entity to NBT.
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public void writeToNBT(NBTTagCompound nbt)
|
public void writeToNBT(NBTTagCompound nbt)
|
||||||
{
|
{
|
||||||
|
@ -559,24 +493,6 @@ public class TileEntityArmbot extends TileEntityAssemblyNetwork implements IMult
|
||||||
nbt.setTag("items", items);
|
nbt.setTag("items", items);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public double getJoules()
|
|
||||||
{
|
|
||||||
return this.wattsReceived;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setJoules(double joules)
|
|
||||||
{
|
|
||||||
this.wattsReceived = joules;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public double getMaxJoules()
|
|
||||||
{
|
|
||||||
return 1000;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onActivated(EntityPlayer player)
|
public boolean onActivated(EntityPlayer player)
|
||||||
{
|
{
|
||||||
|
@ -913,21 +829,22 @@ public class TileEntityArmbot extends TileEntityAssemblyNetwork implements IMult
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void dropEntity(Entity entity)
|
public void drop(Object object)
|
||||||
{
|
{
|
||||||
this.grabbedEntities.remove(entity);
|
if (object instanceof Entity)
|
||||||
|
{
|
||||||
|
this.grabbedEntities.remove((Entity) object);
|
||||||
}
|
}
|
||||||
|
if (object instanceof ItemStack)
|
||||||
@Override
|
|
||||||
public void dropItem(ItemStack itemStack)
|
|
||||||
{
|
{
|
||||||
Vector3 handPosition = this.getHandPosition();
|
Vector3 handPosition = this.getHandPosition();
|
||||||
this.worldObj.spawnEntityInWorld(new EntityItem(worldObj, handPosition.x, handPosition.y, handPosition.z, itemStack));
|
ItemFindingHelper.dropItemStackExact(worldObj, handPosition.x, handPosition.y, handPosition.z, (ItemStack) object);
|
||||||
this.grabbedItems.remove(itemStack);
|
this.grabbedItems.remove((ItemStack) object);
|
||||||
}
|
}
|
||||||
|
if (object instanceof String)
|
||||||
@Override
|
{
|
||||||
public void dropAll()
|
String string = ((String) object).toLowerCase();
|
||||||
|
if (string.equalsIgnoreCase("all"))
|
||||||
{
|
{
|
||||||
Vector3 handPosition = this.getHandPosition();
|
Vector3 handPosition = this.getHandPosition();
|
||||||
Iterator<ItemStack> it = this.grabbedItems.iterator();
|
Iterator<ItemStack> it = this.grabbedItems.iterator();
|
||||||
|
@ -940,18 +857,16 @@ public class TileEntityArmbot extends TileEntityAssemblyNetwork implements IMult
|
||||||
this.grabbedEntities.clear();
|
this.grabbedEntities.clear();
|
||||||
this.grabbedItems.clear();
|
this.grabbedItems.clear();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/** called by the block when another checks it too see if it is providing power to a direction */
|
||||||
* called by the block when another checks it too see if it is providing power to a direction
|
|
||||||
*/
|
|
||||||
public boolean isProvidingPowerSide(ForgeDirection dir)
|
public boolean isProvidingPowerSide(ForgeDirection dir)
|
||||||
{
|
{
|
||||||
return this.isProvidingPower && dir.getOpposite() == this.getFacingDirectionFromAngle();
|
return this.isProvidingPower && dir.getOpposite() == this.getFacingDirectionFromAngle();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/** gets the facing direction using the yaw angle */
|
||||||
* gets the facing direction using the yaw angle
|
|
||||||
*/
|
|
||||||
public ForgeDirection getFacingDirectionFromAngle()
|
public ForgeDirection getFacingDirectionFromAngle()
|
||||||
{
|
{
|
||||||
float angle = MathHelper.wrapAngleTo180_float(this.rotationYaw);
|
float angle = MathHelper.wrapAngleTo180_float(this.rotationYaw);
|
||||||
|
@ -993,4 +908,13 @@ public class TileEntityArmbot extends TileEntityAssemblyNetwork implements IMult
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getWattLoad()
|
||||||
|
{
|
||||||
|
if (this.getCurrentCommand() != null)
|
||||||
|
{
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
return .1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ public class CommandDrop extends Command
|
||||||
{
|
{
|
||||||
super.doTask();
|
super.doTask();
|
||||||
|
|
||||||
this.tileEntity.dropAll();
|
this.tileEntity.drop("all");
|
||||||
this.world.playSound(this.tileEntity.xCoord, this.tileEntity.yCoord, this.tileEntity.zCoord, "random.pop", 0.2F, ((this.tileEntity.worldObj.rand.nextFloat() - this.tileEntity.worldObj.rand.nextFloat()) * 0.7F + 1.0F) * 1.0F, true);
|
this.world.playSound(this.tileEntity.xCoord, this.tileEntity.yCoord, this.tileEntity.zCoord, "random.pop", 0.2F, ((this.tileEntity.worldObj.rand.nextFloat() - this.tileEntity.worldObj.rand.nextFloat()) * 0.7F + 1.0F) * 1.0F, true);
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -9,7 +9,7 @@ import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraftforge.common.ForgeDirection;
|
import net.minecraftforge.common.ForgeDirection;
|
||||||
import universalelectricity.core.vector.Vector3;
|
import universalelectricity.core.vector.Vector3;
|
||||||
import assemblyline.common.machine.InvExtractionHelper;
|
import assemblyline.common.machine.InvInteractionHelper;
|
||||||
|
|
||||||
public class CommandGive extends Command
|
public class CommandGive extends Command
|
||||||
{
|
{
|
||||||
|
@ -63,7 +63,7 @@ public class CommandGive extends Command
|
||||||
{
|
{
|
||||||
stacks.add(stack);
|
stacks.add(stack);
|
||||||
}
|
}
|
||||||
InvExtractionHelper invEx = new InvExtractionHelper(this.tileEntity.worldObj, new Vector3(this.tileEntity), stacks, false);
|
InvInteractionHelper invEx = new InvInteractionHelper(this.tileEntity.worldObj, new Vector3(this.tileEntity), stacks, false);
|
||||||
|
|
||||||
Iterator<ItemStack> targetIt = this.tileEntity.getGrabbedItems().iterator();
|
Iterator<ItemStack> targetIt = this.tileEntity.getGrabbedItems().iterator();
|
||||||
boolean flag = true;
|
boolean flag = true;
|
||||||
|
|
|
@ -90,7 +90,7 @@ public class CommandGrab extends Command
|
||||||
{
|
{
|
||||||
this.tileEntity.grabEntity(found.get(i));
|
this.tileEntity.grabEntity(found.get(i));
|
||||||
this.world.playSound(this.tileEntity.xCoord, this.tileEntity.yCoord, this.tileEntity.zCoord, "random.pop", 0.2F, ((this.tileEntity.worldObj.rand.nextFloat() - this.tileEntity.worldObj.rand.nextFloat()) * 0.7F + 1.0F) * 1.0F, true);
|
this.world.playSound(this.tileEntity.xCoord, this.tileEntity.yCoord, this.tileEntity.zCoord, "random.pop", 0.2F, ((this.tileEntity.worldObj.rand.nextFloat() - this.tileEntity.worldObj.rand.nextFloat()) * 0.7F + 1.0F) * 1.0F, true);
|
||||||
if(this.belt != null){belt.IgnoreEntity(found.get(i));}
|
if(this.belt != null){belt.ignoreEntity(found.get(i));}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,7 +47,7 @@ public class CommandPlace extends Command
|
||||||
{
|
{
|
||||||
((ItemBlock) itemStack.getItem()).placeBlockAt(itemStack, null, this.world, serachPosition.intX(), serachPosition.intY(), serachPosition.intZ(), 0, 0.5f, 0.5f, 0.5f, itemStack.getItemDamage());
|
((ItemBlock) itemStack.getItem()).placeBlockAt(itemStack, null, this.world, serachPosition.intX(), serachPosition.intY(), serachPosition.intZ(), 0, 0.5f, 0.5f, 0.5f, itemStack.getItemDamage());
|
||||||
|
|
||||||
this.tileEntity.dropEntity(entity);
|
this.tileEntity.drop(entity);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
else if (itemStack.getItem() instanceof IPlantable)
|
else if (itemStack.getItem() instanceof IPlantable)
|
||||||
|
@ -68,7 +68,7 @@ public class CommandPlace extends Command
|
||||||
{
|
{
|
||||||
Block.blocksList[blockID].onBlockPlacedBy(world, serachPosition.intX(), serachPosition.intY(), serachPosition.intZ(), null, itemStack);
|
Block.blocksList[blockID].onBlockPlacedBy(world, serachPosition.intX(), serachPosition.intY(), serachPosition.intZ(), null, itemStack);
|
||||||
Block.blocksList[blockID].onPostBlockPlaced(world, serachPosition.intX(), serachPosition.intY(), serachPosition.intZ(), blockMetadata);
|
Block.blocksList[blockID].onPostBlockPlaced(world, serachPosition.intX(), serachPosition.intY(), serachPosition.intZ(), blockMetadata);
|
||||||
this.tileEntity.dropEntity(entity);
|
this.tileEntity.drop(entity);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,7 @@ import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraftforge.common.ForgeDirection;
|
import net.minecraftforge.common.ForgeDirection;
|
||||||
import universalelectricity.core.vector.Vector3;
|
import universalelectricity.core.vector.Vector3;
|
||||||
import assemblyline.common.machine.InvExtractionHelper;
|
import assemblyline.common.machine.InvInteractionHelper;
|
||||||
|
|
||||||
public class CommandTake extends Command
|
public class CommandTake extends Command
|
||||||
{
|
{
|
||||||
|
@ -62,7 +62,7 @@ public class CommandTake extends Command
|
||||||
{
|
{
|
||||||
stacks.add(stack);
|
stacks.add(stack);
|
||||||
}
|
}
|
||||||
InvExtractionHelper invEx = new InvExtractionHelper(this.tileEntity.worldObj, new Vector3(this.tileEntity), stacks, false);
|
InvInteractionHelper invEx = new InvInteractionHelper(this.tileEntity.worldObj, new Vector3(this.tileEntity), stacks, false);
|
||||||
this.tileEntity.grabItem(invEx.tryGrabFromPosition(new Vector3(targetTile), direction, this.stack != null ? stack.stackSize : 1));
|
this.tileEntity.grabItem(invEx.tryGrabFromPosition(new Vector3(targetTile), direction, this.stack != null ? stack.stackSize : 1));
|
||||||
return !(this.tileEntity.getGrabbedItems().size() > 0);
|
return !(this.tileEntity.getGrabbedItems().size() > 0);
|
||||||
|
|
||||||
|
|
|
@ -113,7 +113,7 @@ public class GrabDictionary
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void registerList()
|
static
|
||||||
{
|
{
|
||||||
registerGrabableEntity("chicken", EntityChicken.class);
|
registerGrabableEntity("chicken", EntityChicken.class);
|
||||||
registerGrabableEntity("cow", EntityCow.class);
|
registerGrabableEntity("cow", EntityCow.class);
|
||||||
|
|
|
@ -1,42 +0,0 @@
|
||||||
package assemblyline.common.block;
|
|
||||||
|
|
||||||
import net.minecraft.block.material.Material;
|
|
||||||
import net.minecraft.client.renderer.texture.IconRegister;
|
|
||||||
import net.minecraft.util.Icon;
|
|
||||||
import net.minecraft.world.IBlockAccess;
|
|
||||||
import universalelectricity.prefab.block.BlockAdvanced;
|
|
||||||
import assemblyline.common.AssemblyLine;
|
|
||||||
import cpw.mods.fml.relauncher.Side;
|
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
|
||||||
|
|
||||||
public class BlockALMachine extends BlockAdvanced
|
|
||||||
{
|
|
||||||
public Icon machine_icon;
|
|
||||||
|
|
||||||
public BlockALMachine(int id, Material material)
|
|
||||||
{
|
|
||||||
super(id, material);
|
|
||||||
}
|
|
||||||
|
|
||||||
@SideOnly(Side.CLIENT)
|
|
||||||
@Override
|
|
||||||
public void registerIcons(IconRegister iconReg)
|
|
||||||
{
|
|
||||||
this.machine_icon = iconReg.registerIcon(AssemblyLine.TEXTURE_NAME_PREFIX + "machine");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@SideOnly(Side.CLIENT)
|
|
||||||
public Icon getBlockTexture(IBlockAccess par1iBlockAccess, int par2, int par3, int par4, int par5)
|
|
||||||
{
|
|
||||||
return this.machine_icon;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@SideOnly(Side.CLIENT)
|
|
||||||
public Icon getIcon(int par1, int par2)
|
|
||||||
{
|
|
||||||
return this.machine_icon;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -15,21 +15,19 @@ import net.minecraft.world.World;
|
||||||
import assemblyline.common.AssemblyLine;
|
import assemblyline.common.AssemblyLine;
|
||||||
import assemblyline.common.CommonProxy;
|
import assemblyline.common.CommonProxy;
|
||||||
import assemblyline.common.TabAssemblyLine;
|
import assemblyline.common.TabAssemblyLine;
|
||||||
import assemblyline.common.block.BlockALMachine;
|
import assemblyline.common.machine.BlockAssembly;
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
public class BlockImprinter extends BlockALMachine
|
public class BlockImprinter extends BlockAssembly
|
||||||
{
|
{
|
||||||
Icon imprinter_side;
|
Icon imprinter_side;
|
||||||
Icon imprinter_top;
|
Icon imprinter_top;
|
||||||
Icon imprinter_bottom;
|
Icon imprinter_bottom;
|
||||||
|
|
||||||
public BlockImprinter(int id, int texture)
|
public BlockImprinter(int id)
|
||||||
{
|
{
|
||||||
super(id, Material.wood);
|
super(id, Material.wood,"imprinter");
|
||||||
this.setUnlocalizedName("imprinter");
|
|
||||||
this.setCreativeTab(TabAssemblyLine.INSTANCE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
|
|
|
@ -11,20 +11,19 @@ import net.minecraft.util.MathHelper;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import universalelectricity.prefab.implement.IRedstoneReceptor;
|
import universalelectricity.prefab.implement.IRedstoneReceptor;
|
||||||
import assemblyline.api.IFilterable;
|
import assemblyline.api.IFilterable;
|
||||||
import assemblyline.common.block.BlockALMachine;
|
|
||||||
import assemblyline.common.imprinter.ItemImprinter;
|
import assemblyline.common.imprinter.ItemImprinter;
|
||||||
|
import assemblyline.common.machine.BlockAssembly;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Extend this block class if a filter is allowed to be placed inside of this block.
|
* Extend this block class if a filter is allowed to be placed inside of this block.
|
||||||
*
|
*
|
||||||
* @author Calclavia
|
* @author Calclavia
|
||||||
*/
|
*/
|
||||||
public abstract class BlockImprintable extends BlockALMachine
|
public abstract class BlockImprintable extends BlockAssembly
|
||||||
{
|
{
|
||||||
public BlockImprintable(String name, int id, Material material, CreativeTabs creativeTab)
|
public BlockImprintable(String name, int id, Material material, CreativeTabs creativeTab)
|
||||||
{
|
{
|
||||||
super(id, material);
|
super(id, material,name);
|
||||||
this.setUnlocalizedName(name);
|
|
||||||
this.setCreativeTab(creativeTab);
|
this.setCreativeTab(creativeTab);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,23 +20,21 @@ import universalelectricity.prefab.network.PacketManager;
|
||||||
import assemblyline.api.IFilterable;
|
import assemblyline.api.IFilterable;
|
||||||
import assemblyline.common.AssemblyLine;
|
import assemblyline.common.AssemblyLine;
|
||||||
import assemblyline.common.imprinter.ItemImprinter;
|
import assemblyline.common.imprinter.ItemImprinter;
|
||||||
import assemblyline.common.machine.TileEntityAssemblyNetwork;
|
import assemblyline.common.machine.TileEntityAssembly;
|
||||||
|
|
||||||
import com.google.common.io.ByteArrayDataInput;
|
import com.google.common.io.ByteArrayDataInput;
|
||||||
|
|
||||||
import cpw.mods.fml.common.FMLCommonHandler;
|
import cpw.mods.fml.common.FMLCommonHandler;
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
|
|
||||||
public abstract class TileEntityFilterable extends TileEntityAssemblyNetwork implements IRotatable, IFilterable, IPacketReceiver
|
public abstract class TileEntityFilterable extends TileEntityAssembly implements IRotatable, IFilterable, IPacketReceiver
|
||||||
{
|
{
|
||||||
private ItemStack filterItem;
|
private ItemStack filterItem;
|
||||||
private boolean inverted;
|
private boolean inverted;
|
||||||
|
|
||||||
/**
|
/** Looks through the things in the filter and finds out which item is being filtered.
|
||||||
* Looks through the things in the filter and finds out which item is being filtered.
|
|
||||||
*
|
*
|
||||||
* @return Is this filterable block filtering this specific ItemStack?
|
* @return Is this filterable block filtering this specific ItemStack? */
|
||||||
*/
|
|
||||||
public boolean isFiltering(ItemStack itemStack)
|
public boolean isFiltering(ItemStack itemStack)
|
||||||
{
|
{
|
||||||
if (this.getFilter() != null && itemStack != null)
|
if (this.getFilter() != null && itemStack != null)
|
||||||
|
@ -65,11 +63,7 @@ public abstract class TileEntityFilterable extends TileEntityAssemblyNetwork imp
|
||||||
public void setFilter(ItemStack filter)
|
public void setFilter(ItemStack filter)
|
||||||
{
|
{
|
||||||
this.filterItem = filter;
|
this.filterItem = filter;
|
||||||
|
this.worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
|
||||||
if (FMLCommonHandler.instance().getEffectiveSide() == Side.SERVER)
|
|
||||||
{
|
|
||||||
PacketManager.sendPacketToClients(this.getDescriptionPacket());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -81,10 +75,7 @@ public abstract class TileEntityFilterable extends TileEntityAssemblyNetwork imp
|
||||||
public void setInverted(boolean inverted)
|
public void setInverted(boolean inverted)
|
||||||
{
|
{
|
||||||
this.inverted = inverted;
|
this.inverted = inverted;
|
||||||
if (FMLCommonHandler.instance().getEffectiveSide() == Side.SERVER)
|
this.worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
|
||||||
{
|
|
||||||
PacketManager.sendPacketToClients(this.getDescriptionPacket());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isInverted()
|
public boolean isInverted()
|
||||||
|
@ -119,13 +110,11 @@ public abstract class TileEntityFilterable extends TileEntityAssemblyNetwork imp
|
||||||
return this.getDirection(worldObj, xCoord, yCoord, zCoord);
|
return this.getDirection(worldObj, xCoord, yCoord, zCoord);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/** Don't override this! Override getPackData() instead! */
|
||||||
* Don't override this! Override getPackData() instead!
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public Packet getDescriptionPacket()
|
public Packet getDescriptionPacket()
|
||||||
{
|
{
|
||||||
return PacketManager.getPacket(AssemblyLine.CHANNEL, this, this.getPacketData().toArray());
|
return PacketManager.getPacket(AssemblyLine.CHANNEL, this, AssemblyTilePacket.NBT.ordinal(), this.getPacketData().toArray());
|
||||||
}
|
}
|
||||||
|
|
||||||
public ArrayList getPacketData()
|
public ArrayList getPacketData()
|
||||||
|
@ -137,31 +126,6 @@ public abstract class TileEntityFilterable extends TileEntityAssemblyNetwork imp
|
||||||
return array;
|
return array;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void handlePacketData(INetworkManager network, int packetType, Packet250CustomPayload packet, EntityPlayer player, ByteArrayDataInput dataStream)
|
|
||||||
{
|
|
||||||
if (worldObj.isRemote)
|
|
||||||
{
|
|
||||||
ByteArrayInputStream bis = new ByteArrayInputStream(packet.data);
|
|
||||||
DataInputStream dis = new DataInputStream(bis);
|
|
||||||
int id, x, y, z;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
id = dis.readInt();
|
|
||||||
x = dis.readInt();
|
|
||||||
y = dis.readInt();
|
|
||||||
z = dis.readInt();
|
|
||||||
this.worldObj.markBlockForRenderUpdate(x, y, z);
|
|
||||||
NBTTagCompound tag = Packet.readNBTTagCompound(dis);
|
|
||||||
readFromNBT(tag);
|
|
||||||
}
|
|
||||||
catch (IOException e)
|
|
||||||
{
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeToNBT(NBTTagCompound nbt)
|
public void writeToNBT(NBTTagCompound nbt)
|
||||||
{
|
{
|
||||||
|
|
101
src/minecraft/assemblyline/common/machine/BlockAssembly.java
Normal file
101
src/minecraft/assemblyline/common/machine/BlockAssembly.java
Normal file
|
@ -0,0 +1,101 @@
|
||||||
|
package assemblyline.common.machine;
|
||||||
|
|
||||||
|
import net.minecraft.block.material.Material;
|
||||||
|
import net.minecraft.client.renderer.texture.IconRegister;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraft.util.Icon;
|
||||||
|
import net.minecraft.world.IBlockAccess;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
import universalelectricity.core.electricity.ElectricityDisplay;
|
||||||
|
import universalelectricity.core.electricity.ElectricityDisplay.ElectricUnit;
|
||||||
|
import universalelectricity.prefab.block.BlockAdvanced;
|
||||||
|
import assemblyline.common.AssemblyLine;
|
||||||
|
import assemblyline.common.TabAssemblyLine;
|
||||||
|
import cpw.mods.fml.relauncher.Side;
|
||||||
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
import dark.core.api.INetworkPart;
|
||||||
|
|
||||||
|
public class BlockAssembly extends BlockAdvanced
|
||||||
|
{
|
||||||
|
public Icon machine_icon;
|
||||||
|
|
||||||
|
public BlockAssembly(int id, Material material, String name)
|
||||||
|
{
|
||||||
|
super(AssemblyLine.CONFIGURATION.getBlock(name, id).getInt(), material);
|
||||||
|
this.setUnlocalizedName(name);
|
||||||
|
this.setCreativeTab(TabAssemblyLine.INSTANCE);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer entityPlayer, int side, float hitX, float hitY, float hitZ)
|
||||||
|
{
|
||||||
|
ItemStack stack = entityPlayer.getHeldItem();
|
||||||
|
TileEntity ent = world.getBlockTileEntity(x, y, z);
|
||||||
|
if (!world.isRemote && stack != null && stack.itemID == Item.stick.itemID && ent instanceof TileEntityAssembly && entityPlayer != null)
|
||||||
|
{
|
||||||
|
TileEntityAssembly asm = (TileEntityAssembly) ent;
|
||||||
|
String output = "Debug>>>";
|
||||||
|
output += "Channel:" + (asm.getTileNetwork() != null ? asm.getTileNetwork().toString() : "Error") + "|";
|
||||||
|
entityPlayer.sendChatToPlayer(output);
|
||||||
|
output = "Debug>>>";
|
||||||
|
output += "Powered:" + asm.running + " ";
|
||||||
|
if (asm.getTileNetwork() instanceof NetworkAssembly)
|
||||||
|
{
|
||||||
|
output += ElectricityDisplay.getDisplaySimple(((NetworkAssembly) asm.getTileNetwork()).getCurrentBattery(), ElectricUnit.WATT, 2);
|
||||||
|
output += "/";
|
||||||
|
output += ElectricityDisplay.getDisplaySimple(((NetworkAssembly) asm.getTileNetwork()).getMaxBattery(), ElectricUnit.WATT, 2);
|
||||||
|
}
|
||||||
|
entityPlayer.sendChatToPlayer(output);
|
||||||
|
}
|
||||||
|
return super.onBlockActivated(world, x, y, z, entityPlayer, side, hitX, hitY, hitZ);
|
||||||
|
}
|
||||||
|
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
@Override
|
||||||
|
public void registerIcons(IconRegister iconReg)
|
||||||
|
{
|
||||||
|
this.machine_icon = iconReg.registerIcon(AssemblyLine.TEXTURE_NAME_PREFIX + "machine");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public Icon getBlockTexture(IBlockAccess par1iBlockAccess, int par2, int par3, int par4, int par5)
|
||||||
|
{
|
||||||
|
return this.machine_icon;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public Icon getIcon(int par1, int par2)
|
||||||
|
{
|
||||||
|
return this.machine_icon;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBlockAdded(World world, int x, int y, int z)
|
||||||
|
{
|
||||||
|
super.onBlockAdded(world, x, y, z);
|
||||||
|
|
||||||
|
TileEntity tileEntity = world.getBlockTileEntity(x, y, z);
|
||||||
|
|
||||||
|
if (tileEntity instanceof INetworkPart)
|
||||||
|
{
|
||||||
|
((INetworkPart) tileEntity).updateNetworkConnections();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onNeighborBlockChange(World world, int x, int y, int z, int blockID)
|
||||||
|
{
|
||||||
|
TileEntity tileEntity = world.getBlockTileEntity(x, y, z);
|
||||||
|
|
||||||
|
if (tileEntity instanceof INetworkPart)
|
||||||
|
{
|
||||||
|
((INetworkPart) tileEntity).updateNetworkConnections();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -1,17 +0,0 @@
|
||||||
package assemblyline.common.machine;
|
|
||||||
|
|
||||||
import net.minecraft.block.material.Material;
|
|
||||||
import assemblyline.common.TabAssemblyLine;
|
|
||||||
import assemblyline.common.block.BlockALMachine;
|
|
||||||
|
|
||||||
public class BlockBeltSorter extends BlockALMachine
|
|
||||||
{
|
|
||||||
|
|
||||||
public BlockBeltSorter(int id)
|
|
||||||
{
|
|
||||||
super(id, Material.iron);
|
|
||||||
this.setCreativeTab(TabAssemblyLine.INSTANCE);
|
|
||||||
this.setUnlocalizedName("BeltSorter");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,4 +1,4 @@
|
||||||
package assemblyline.common.block;
|
package assemblyline.common.machine;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -14,7 +14,6 @@ import net.minecraft.world.IBlockAccess;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import universalelectricity.core.UniversalElectricity;
|
import universalelectricity.core.UniversalElectricity;
|
||||||
import assemblyline.common.AssemblyLine;
|
import assemblyline.common.AssemblyLine;
|
||||||
import assemblyline.common.PathfinderCrate;
|
|
||||||
import assemblyline.common.TabAssemblyLine;
|
import assemblyline.common.TabAssemblyLine;
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
@ -26,15 +25,13 @@ import cpw.mods.fml.relauncher.SideOnly;
|
||||||
* @author Calclavia
|
* @author Calclavia
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class BlockCrate extends BlockALMachine
|
public class BlockCrate extends BlockAssembly
|
||||||
{
|
{
|
||||||
Icon crate_icon;
|
Icon crate_icon;
|
||||||
|
|
||||||
public BlockCrate(int id, int texture)
|
public BlockCrate(int id)
|
||||||
{
|
{
|
||||||
super(id, UniversalElectricity.machine);
|
super(id, UniversalElectricity.machine,"crate");
|
||||||
this.setUnlocalizedName("crate");
|
|
||||||
this.setCreativeTab(TabAssemblyLine.INSTANCE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
|
@ -1,4 +1,4 @@
|
||||||
package assemblyline.common.block;
|
package assemblyline.common.machine;
|
||||||
|
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
|
@ -21,15 +21,13 @@ import assemblyline.common.TabAssemblyLine;
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
public class BlockTurntable extends BlockALMachine
|
public class BlockTurntable extends BlockAssembly
|
||||||
{
|
{
|
||||||
private Icon top;
|
private Icon top;
|
||||||
|
|
||||||
public BlockTurntable(int par1)
|
public BlockTurntable(int par1)
|
||||||
{
|
{
|
||||||
super(par1, Material.piston);
|
super(par1, Material.piston,"turntable");
|
||||||
this.setUnlocalizedName("turntable");
|
|
||||||
this.setCreativeTab(TabAssemblyLine.INSTANCE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
|
@ -13,18 +13,16 @@ import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.ForgeDirection;
|
import net.minecraftforge.common.ForgeDirection;
|
||||||
import universalelectricity.core.vector.Vector3;
|
import universalelectricity.core.vector.Vector3;
|
||||||
import universalelectricity.prefab.multiblock.TileEntityMulti;
|
import universalelectricity.prefab.multiblock.TileEntityMulti;
|
||||||
import assemblyline.common.block.BlockCrate;
|
|
||||||
import assemblyline.common.block.TileEntityCrate;
|
|
||||||
import assemblyline.common.imprinter.ItemImprinter;
|
import assemblyline.common.imprinter.ItemImprinter;
|
||||||
|
|
||||||
public class InvExtractionHelper
|
public class InvInteractionHelper
|
||||||
{
|
{
|
||||||
World world;
|
World world;
|
||||||
Vector3 location;
|
Vector3 location;
|
||||||
List<ItemStack> filterItems;
|
List<ItemStack> filterItems;
|
||||||
boolean inverted;
|
boolean inverted;
|
||||||
|
|
||||||
public InvExtractionHelper(World world, Vector3 location, List<ItemStack> filters, boolean inverted)
|
public InvInteractionHelper(World world, Vector3 location, List<ItemStack> filters, boolean inverted)
|
||||||
{
|
{
|
||||||
this.world = world;
|
this.world = world;
|
||||||
this.location = location;
|
this.location = location;
|
|
@ -1,4 +1,4 @@
|
||||||
package assemblyline.common.block;
|
package assemblyline.common.machine;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
|
@ -0,0 +1,86 @@
|
||||||
|
package assemblyline.common.machine;
|
||||||
|
|
||||||
|
import universalelectricity.core.electricity.ElectricityDisplay;
|
||||||
|
import universalelectricity.core.electricity.ElectricityDisplay.ElectricUnit;
|
||||||
|
import universalelectricity.core.electricity.ElectricityPack;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import dark.core.api.INetworkPart;
|
||||||
|
import dark.core.tile.network.NetworkPowerTiles;
|
||||||
|
import dark.core.tile.network.NetworkTileEntities;
|
||||||
|
|
||||||
|
public class NetworkAssembly extends NetworkPowerTiles
|
||||||
|
{
|
||||||
|
public NetworkAssembly(INetworkPart... parts)
|
||||||
|
{
|
||||||
|
super(parts);
|
||||||
|
}
|
||||||
|
|
||||||
|
public NetworkTileEntities newInstance()
|
||||||
|
{
|
||||||
|
return new NetworkAssembly();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Consumes power for the tile to run on
|
||||||
|
*
|
||||||
|
* @param tile - tileEntity
|
||||||
|
* @return true if the power was consumed */
|
||||||
|
public boolean consumePower(TileEntityAssembly tile)
|
||||||
|
{
|
||||||
|
if (tile != null && this.wattStored >= tile.getWattLoad())
|
||||||
|
{
|
||||||
|
this.wattStored -= tile.getWattLoad();
|
||||||
|
//System.out.println("Power| ---" + ElectricityDisplay.getDisplaySimple(tile.getWattLoad(), ElectricUnit.WATT, 2) + " A: " + ElectricityDisplay.getDisplaySimple(this.wattStored, ElectricUnit.WATT, 2));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Adds power to the network. Does not save power on area unload */
|
||||||
|
public void addPower(double d)
|
||||||
|
{
|
||||||
|
double before = this.wattStored;
|
||||||
|
this.wattStored = Math.min(this.wattStored + d, this.getMaxBattery());
|
||||||
|
System.out.println("Power| +++" + ElectricityDisplay.getDisplaySimple(d, ElectricUnit.WATT, 2) + " A: " + ElectricityDisplay.getDisplaySimple(this.wattStored, ElectricUnit.WATT, 2));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ElectricityPack getRequest(TileEntity... ents)
|
||||||
|
{
|
||||||
|
ElectricityPack pack = super.getRequest(ents);
|
||||||
|
if (pack == null || pack.voltage == 0 || pack.amperes == 0)
|
||||||
|
{
|
||||||
|
pack = new ElectricityPack(0, 120);
|
||||||
|
}
|
||||||
|
|
||||||
|
return ElectricityPack.getFromWatts(pack.getWatts() + this.getMemberRequest(), pack.voltage);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getMemberRequest()
|
||||||
|
{
|
||||||
|
double watt = 0;
|
||||||
|
for (INetworkPart part : this.getNetworkMemebers())
|
||||||
|
{
|
||||||
|
//TODO do check for ignored tiles/ents
|
||||||
|
if (part instanceof TileEntityAssembly)
|
||||||
|
{
|
||||||
|
watt += ((TileEntityAssembly) part).getWattLoad();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return watt;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isValidMember(INetworkPart part)
|
||||||
|
{
|
||||||
|
return super.isValidMember(part) && part instanceof TileEntityAssembly;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString()
|
||||||
|
{
|
||||||
|
return "AssemblyNetwork[" + this.hashCode() + "][parts:" + this.networkMember.size() + "][Power:" + ElectricityDisplay.getDisplaySimple(this.wattStored, ElectricUnit.WATT, 2) + "]";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
package assemblyline.common;
|
package assemblyline.common.machine;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -7,7 +7,6 @@ import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraftforge.common.ForgeDirection;
|
import net.minecraftforge.common.ForgeDirection;
|
||||||
import universalelectricity.core.vector.Vector3;
|
import universalelectricity.core.vector.Vector3;
|
||||||
import universalelectricity.core.vector.VectorHelper;
|
import universalelectricity.core.vector.VectorHelper;
|
||||||
import assemblyline.common.block.TileEntityCrate;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A class that allows flexible path finding in Minecraft Blocks. Back Ported from UE 1.3.0.
|
* A class that allows flexible path finding in Minecraft Blocks. Back Ported from UE 1.3.0.
|
|
@ -0,0 +1,321 @@
|
||||||
|
package assemblyline.common.machine;
|
||||||
|
|
||||||
|
import java.io.ByteArrayInputStream;
|
||||||
|
import java.io.DataInputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.network.INetworkManager;
|
||||||
|
import net.minecraft.network.packet.Packet;
|
||||||
|
import net.minecraft.network.packet.Packet250CustomPayload;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraftforge.common.ForgeDirection;
|
||||||
|
import universalelectricity.core.UniversalElectricity;
|
||||||
|
import universalelectricity.core.block.IConductor;
|
||||||
|
import universalelectricity.core.electricity.ElectricityDisplay;
|
||||||
|
import universalelectricity.core.electricity.ElectricityDisplay.ElectricUnit;
|
||||||
|
import universalelectricity.core.electricity.IElectricityNetwork;
|
||||||
|
import universalelectricity.core.vector.Vector3;
|
||||||
|
import universalelectricity.prefab.network.IPacketReceiver;
|
||||||
|
import universalelectricity.prefab.network.PacketManager;
|
||||||
|
import assemblyline.common.AssemblyLine;
|
||||||
|
import buildcraft.api.power.PowerProvider;
|
||||||
|
|
||||||
|
import com.google.common.io.ByteArrayDataInput;
|
||||||
|
|
||||||
|
import dark.core.api.INetworkPart;
|
||||||
|
import dark.core.tile.network.NetworkPowerTiles;
|
||||||
|
import dark.core.tile.network.NetworkTileEntities;
|
||||||
|
import dark.library.machine.TileEntityRunnableMachine;
|
||||||
|
|
||||||
|
/** A class to be inherited by all machines on the assembly line. This class acts as a single peace
|
||||||
|
* in a network of similar tiles allowing all to share power from one or more sources
|
||||||
|
*
|
||||||
|
* @author DarkGuardsman */
|
||||||
|
public abstract class TileEntityAssembly extends TileEntityRunnableMachine implements INetworkPart, IPacketReceiver, IConductor
|
||||||
|
{
|
||||||
|
/** Is the tile currently powered allowing it to run */
|
||||||
|
public boolean running = false;
|
||||||
|
private boolean prevRun = false;
|
||||||
|
/** Network used to link assembly machines together */
|
||||||
|
private NetworkAssembly assemblyNetwork;
|
||||||
|
/** Tiles that are connected to this */
|
||||||
|
public List<TileEntity> connectedTiles = new ArrayList<TileEntity>();
|
||||||
|
/** Random instance */
|
||||||
|
public Random random = new Random();
|
||||||
|
/** Random rate by which this tile updates its connections */
|
||||||
|
private int updateTick = 1;
|
||||||
|
|
||||||
|
public static enum AssemblyTilePacket
|
||||||
|
{
|
||||||
|
POWER(),
|
||||||
|
NBT();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void invalidate()
|
||||||
|
{
|
||||||
|
NetworkAssembly.invalidate(this);
|
||||||
|
if (this.getTileNetwork() != null)
|
||||||
|
{
|
||||||
|
this.getTileNetwork().splitNetwork(this.worldObj, this);
|
||||||
|
}
|
||||||
|
super.invalidate();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateEntity()
|
||||||
|
{
|
||||||
|
if (!this.worldObj.isRemote)
|
||||||
|
{
|
||||||
|
this.prevRun = this.running;
|
||||||
|
super.updateEntity();
|
||||||
|
if (ticks % updateTick == 0)
|
||||||
|
{
|
||||||
|
this.updateTick = ((int) random.nextInt(10) + 20);
|
||||||
|
this.updateNetworkConnections();
|
||||||
|
}
|
||||||
|
this.running = ((NetworkAssembly) this.getTileNetwork()).consumePower(this);
|
||||||
|
if (running != prevRun)
|
||||||
|
{
|
||||||
|
Packet packet = PacketManager.getPacket(AssemblyLine.CHANNEL, this, AssemblyTilePacket.POWER.ordinal(), this.running);
|
||||||
|
PacketManager.sendPacketToClients(packet, worldObj, new Vector3(this), 64);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.onUpdate();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onReceive(ForgeDirection side, double voltage, double amperes)
|
||||||
|
{
|
||||||
|
if (voltage <= 0 || amperes <= 0)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (voltage > this.getVoltage())
|
||||||
|
{
|
||||||
|
this.onDisable(2);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (this.getTileNetwork() instanceof NetworkAssembly)
|
||||||
|
{
|
||||||
|
((NetworkAssembly) this.getTileNetwork()).addPower(voltage * amperes);
|
||||||
|
//System.out.println("Tile got power Side:" + side.toString() + " " + ElectricityDisplay.getDisplaySimple(voltage, ElectricUnit.VOLTAGE, 2) + " " + ElectricityDisplay.getDisplaySimple(amperes, ElectricUnit.AMPERE, 2));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Same as updateEntity */
|
||||||
|
public abstract void onUpdate();
|
||||||
|
|
||||||
|
/** Checks to see if this assembly tile can run using several methods */
|
||||||
|
public boolean isRunning()
|
||||||
|
{
|
||||||
|
if (!this.worldObj.isRemote)
|
||||||
|
{
|
||||||
|
return this.running || AssemblyLine.REQUIRE_NO_POWER;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return this.running;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Amount of energy this tile runs on per tick */
|
||||||
|
public double getWattLoad()
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getBattery(ForgeDirection side)
|
||||||
|
{
|
||||||
|
if (this.getTileNetwork() instanceof NetworkAssembly)
|
||||||
|
{
|
||||||
|
return ((NetworkAssembly) this.getTileNetwork()).getMaxBattery();
|
||||||
|
}
|
||||||
|
return super.getBattery(side);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getCurrentBattery(ForgeDirection side)
|
||||||
|
{
|
||||||
|
if (this.getTileNetwork() instanceof NetworkAssembly)
|
||||||
|
{
|
||||||
|
return ((NetworkAssembly) this.getTileNetwork()).getCurrentBattery();
|
||||||
|
}
|
||||||
|
return super.getCurrentBattery(side);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Amount of energy the network needs at any given time */
|
||||||
|
@Override
|
||||||
|
public double getRequest(ForgeDirection side)
|
||||||
|
{
|
||||||
|
if (this.getTileNetwork() instanceof NetworkAssembly)
|
||||||
|
{
|
||||||
|
NetworkAssembly net = ((NetworkAssembly) this.getTileNetwork());
|
||||||
|
return Math.min(100 + net.getMemberRequest(), Math.max(0, net.getRequest(new Vector3(this).modifyPositionFromSide(side).getTileEntity(this.worldObj), this).getWatts()));
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canTileConnect(TileEntity entity, ForgeDirection dir)
|
||||||
|
{
|
||||||
|
return entity != null && entity instanceof TileEntityAssembly;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateNetworkConnections()
|
||||||
|
{
|
||||||
|
if (this.worldObj != null && !this.worldObj.isRemote)
|
||||||
|
{
|
||||||
|
this.connectedTiles.clear();
|
||||||
|
|
||||||
|
for (ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS)
|
||||||
|
{
|
||||||
|
TileEntity tileEntity = new Vector3(this).modifyPositionFromSide(dir).getTileEntity(this.worldObj);
|
||||||
|
if (tileEntity instanceof TileEntityAssembly && ((TileEntityAssembly) tileEntity).canTileConnect(this, dir.getOpposite()))
|
||||||
|
{
|
||||||
|
this.getTileNetwork().merge(((TileEntityAssembly) tileEntity).getTileNetwork(), this);
|
||||||
|
connectedTiles.add(tileEntity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<TileEntity> getNetworkConnections()
|
||||||
|
{
|
||||||
|
return this.connectedTiles;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public NetworkTileEntities getTileNetwork()
|
||||||
|
{
|
||||||
|
if (this.assemblyNetwork == null)
|
||||||
|
{
|
||||||
|
this.assemblyNetwork = new NetworkAssembly(this);
|
||||||
|
}
|
||||||
|
return this.assemblyNetwork;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setTileNetwork(NetworkTileEntities network)
|
||||||
|
{
|
||||||
|
if (network instanceof NetworkAssembly)
|
||||||
|
{
|
||||||
|
this.assemblyNetwork = (NetworkAssembly) network;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toString()
|
||||||
|
{
|
||||||
|
return "[AssemblyTile]@" + (new Vector3(this).toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handlePacketData(INetworkManager network, int packetType, Packet250CustomPayload packet, EntityPlayer player, ByteArrayDataInput dataStream)
|
||||||
|
{
|
||||||
|
boolean packetSize = false;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
ByteArrayInputStream bis = new ByteArrayInputStream(packet.data);
|
||||||
|
DataInputStream dis = new DataInputStream(bis);
|
||||||
|
|
||||||
|
int id = dis.readInt();
|
||||||
|
int x = dis.readInt();
|
||||||
|
int y = dis.readInt();
|
||||||
|
int z = dis.readInt();
|
||||||
|
int pId = dis.readInt();
|
||||||
|
|
||||||
|
this.simplePacket(pId, dis, player);
|
||||||
|
|
||||||
|
/** DEBUG PACKET SIZE AND INFO */
|
||||||
|
if (packetSize)
|
||||||
|
{
|
||||||
|
System.out.println("TileEntityAssembly>" + new Vector3(this) + ">>>Debug>>Packet" + pId + ">>Size>>bytes>>" + packet.data.length);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
System.out.println("Error Reading Packet for a TileEntityAssembly");
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Handles reduced data from the main packet method
|
||||||
|
*
|
||||||
|
* @param id - packet ID
|
||||||
|
* @param dis - data
|
||||||
|
* @param player - player
|
||||||
|
* @return true if the packet was used */
|
||||||
|
public boolean simplePacket(int id, DataInputStream dis, EntityPlayer player)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (this.worldObj.isRemote)
|
||||||
|
{
|
||||||
|
if (id == AssemblyTilePacket.POWER.ordinal())
|
||||||
|
{
|
||||||
|
this.running = dis.readBoolean();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (id == AssemblyTilePacket.NBT.ordinal())
|
||||||
|
{
|
||||||
|
this.readFromNBT(Packet.readNBTTagCompound(dis));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (IOException e)
|
||||||
|
{
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IElectricityNetwork getNetwork()
|
||||||
|
{
|
||||||
|
return (this.getTileNetwork() instanceof IElectricityNetwork ? (IElectricityNetwork) this.getTileNetwork() : null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setNetwork(IElectricityNetwork network)
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TileEntity[] getAdjacentConnections()
|
||||||
|
{
|
||||||
|
return new TileEntity[6];
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateAdjacentConnections()
|
||||||
|
{
|
||||||
|
this.updateNetworkConnections();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getResistance()
|
||||||
|
{
|
||||||
|
return 0.01;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getCurrentCapcity()
|
||||||
|
{
|
||||||
|
return 1000;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -1,100 +0,0 @@
|
||||||
package assemblyline.common.machine;
|
|
||||||
|
|
||||||
import net.minecraft.tileentity.TileEntity;
|
|
||||||
import net.minecraftforge.common.ForgeDirection;
|
|
||||||
import universalelectricity.core.electricity.ElectricityPack;
|
|
||||||
import universalelectricity.prefab.network.PacketManager;
|
|
||||||
import assemblyline.common.AssemblyLine;
|
|
||||||
import dark.library.machine.TileEntityRunnableMachine;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A class to be inherited by all machines on the assembly line. This will allow all machines to be
|
|
||||||
* able to be powered through the powering of only one machine.
|
|
||||||
*
|
|
||||||
* @author Calclavia
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public abstract class TileEntityAssemblyNetwork extends TileEntityRunnableMachine
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* The range in which power can be transfered.
|
|
||||||
*/
|
|
||||||
public int powerTransferRange = 0;
|
|
||||||
|
|
||||||
public boolean isRunning()
|
|
||||||
{
|
|
||||||
return AssemblyLine.REQUIRE_NO_POWER || this.powerTransferRange > 0 || this.wattsReceived > this.getRequest().getWatts();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void updatePowerTransferRange()
|
|
||||||
{
|
|
||||||
int maximumTransferRange = 0;
|
|
||||||
|
|
||||||
for (int i = 0; i < 6; i++)
|
|
||||||
{
|
|
||||||
ForgeDirection direction = ForgeDirection.getOrientation(i);
|
|
||||||
TileEntity tileEntity = worldObj.getBlockTileEntity(this.xCoord + direction.offsetX, this.yCoord + direction.offsetY, this.zCoord + direction.offsetZ);
|
|
||||||
|
|
||||||
if (tileEntity != null)
|
|
||||||
{
|
|
||||||
if (tileEntity instanceof TileEntityAssemblyNetwork)
|
|
||||||
{
|
|
||||||
TileEntityAssemblyNetwork assemblyNetwork = (TileEntityAssemblyNetwork) tileEntity;
|
|
||||||
|
|
||||||
if (assemblyNetwork.powerTransferRange > maximumTransferRange)
|
|
||||||
{
|
|
||||||
maximumTransferRange = assemblyNetwork.powerTransferRange;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
this.powerTransferRange = Math.max(maximumTransferRange - 1, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void updateEntity()
|
|
||||||
{
|
|
||||||
super.updateEntity();
|
|
||||||
|
|
||||||
this.onUpdate();
|
|
||||||
|
|
||||||
if (this.ticks % 10 == 0)
|
|
||||||
{
|
|
||||||
if (this.wattsReceived >= this.getRequest().getWatts())
|
|
||||||
{
|
|
||||||
this.wattsReceived -= getRequest().getWatts();
|
|
||||||
this.powerTransferRange = this.getMaxTransferRange();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
this.powerTransferRange = 0;
|
|
||||||
this.updatePowerTransferRange();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!this.worldObj.isRemote)
|
|
||||||
{
|
|
||||||
if (this.getDescriptionPacket() != null)
|
|
||||||
{
|
|
||||||
PacketManager.sendPacketToClients(this.getDescriptionPacket());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void onUpdate()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ElectricityPack getRequest()
|
|
||||||
{
|
|
||||||
return new ElectricityPack(1, this.getVoltage());
|
|
||||||
}
|
|
||||||
|
|
||||||
protected int getMaxTransferRange()
|
|
||||||
{
|
|
||||||
return 30;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,4 +1,4 @@
|
||||||
package assemblyline.common.block;
|
package assemblyline.common.machine;
|
||||||
|
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.inventory.IInventory;
|
import net.minecraft.inventory.IInventory;
|
|
@ -25,10 +25,10 @@ public class TileEntityManipulator extends TileEntityFilterable implements IRota
|
||||||
/** True if is currently powered by redstone */
|
/** True if is currently powered by redstone */
|
||||||
private boolean isRedstonePowered = false;
|
private boolean isRedstonePowered = false;
|
||||||
/** The class that interacts with inventories for this machine */
|
/** The class that interacts with inventories for this machine */
|
||||||
private InvExtractionHelper invExtractionHelper;
|
private InvInteractionHelper invExtractionHelper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onUpdate()
|
public void onUpdate()
|
||||||
{
|
{
|
||||||
if (!this.worldObj.isRemote)
|
if (!this.worldObj.isRemote)
|
||||||
{
|
{
|
||||||
|
@ -201,11 +201,11 @@ public class TileEntityManipulator extends TileEntityFilterable implements IRota
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Gets the class that managed extracting and placing items into inventories */
|
/** Gets the class that managed extracting and placing items into inventories */
|
||||||
public InvExtractionHelper invHelper()
|
public InvInteractionHelper invHelper()
|
||||||
{
|
{
|
||||||
if (invExtractionHelper == null || invExtractionHelper.world != this.worldObj)
|
if (invExtractionHelper == null || invExtractionHelper.world != this.worldObj)
|
||||||
{
|
{
|
||||||
this.invExtractionHelper = new InvExtractionHelper(this.worldObj, new Vector3(this), this.getFilter() != null ? ItemImprinter.getFilters(getFilter()) : null, this.isInverted());
|
this.invExtractionHelper = new InvInteractionHelper(this.worldObj, new Vector3(this), this.getFilter() != null ? ItemImprinter.getFilters(getFilter()) : null, this.isInverted());
|
||||||
}
|
}
|
||||||
return invExtractionHelper;
|
return invExtractionHelper;
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,59 +10,33 @@ import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.AxisAlignedBB;
|
import net.minecraft.util.AxisAlignedBB;
|
||||||
import net.minecraftforge.common.ForgeDirection;
|
import net.minecraftforge.common.ForgeDirection;
|
||||||
import universalelectricity.core.vector.Vector3;
|
import universalelectricity.core.vector.Vector3;
|
||||||
import universalelectricity.prefab.network.PacketManager;
|
import assemblyline.api.IBelt;
|
||||||
import assemblyline.common.imprinter.prefab.TileEntityFilterable;
|
import assemblyline.common.imprinter.prefab.TileEntityFilterable;
|
||||||
|
|
||||||
/**
|
/** @author Darkguardsman */
|
||||||
*
|
|
||||||
* @author Darkguardsman
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public class TileEntityRejector extends TileEntityFilterable
|
public class TileEntityRejector extends TileEntityFilterable
|
||||||
{
|
{
|
||||||
/**
|
/** should the piston fire, or be extended */
|
||||||
* should the piston fire, or be extended
|
|
||||||
*/
|
|
||||||
public boolean firePiston = false;
|
public boolean firePiston = false;
|
||||||
|
|
||||||
public TileEntityRejector()
|
|
||||||
{
|
|
||||||
super();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected int getMaxTransferRange()
|
|
||||||
{
|
|
||||||
return 20;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onUpdate()
|
public void onUpdate()
|
||||||
{
|
{
|
||||||
super.onUpdate();
|
/** Has to update a bit faster than a conveyer belt */
|
||||||
/**
|
|
||||||
* Has to update a bit faster than a conveyer belt
|
|
||||||
*/
|
|
||||||
if (this.ticks % 5 == 0 && !this.isDisabled())
|
if (this.ticks % 5 == 0 && !this.isDisabled())
|
||||||
{
|
{
|
||||||
int metadata = this.getBlockMetadata();
|
|
||||||
this.firePiston = false;
|
this.firePiston = false;
|
||||||
|
|
||||||
// area to search for items
|
|
||||||
Vector3 searchPosition = new Vector3(this);
|
Vector3 searchPosition = new Vector3(this);
|
||||||
searchPosition.modifyPositionFromSide(this.getDirection());
|
searchPosition.modifyPositionFromSide(this.getDirection());
|
||||||
TileEntity tileEntity = searchPosition.getTileEntity(this.worldObj);
|
TileEntity tileEntity = searchPosition.getTileEntity(this.worldObj);
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
boolean flag = false;
|
|
||||||
|
|
||||||
if (this.isRunning())
|
if (this.isRunning())
|
||||||
{
|
{
|
||||||
/**
|
/** Find all entities in the position in which this block is facing and attempt
|
||||||
* Find all entities in the position in which this block is facing and attempt
|
* to push it out of the way. */
|
||||||
* to push it out of the way.
|
|
||||||
*/
|
|
||||||
AxisAlignedBB bounds = AxisAlignedBB.getBoundingBox(searchPosition.x, searchPosition.y, searchPosition.z, searchPosition.x + 1, searchPosition.y + 1, searchPosition.z + 1);
|
AxisAlignedBB bounds = AxisAlignedBB.getBoundingBox(searchPosition.x, searchPosition.y, searchPosition.z, searchPosition.x + 1, searchPosition.y + 1, searchPosition.z + 1);
|
||||||
List<Entity> entitiesInFront = this.worldObj.getEntitiesWithinAABB(Entity.class, bounds);
|
List<Entity> entitiesInFront = this.worldObj.getEntitiesWithinAABB(Entity.class, bounds);
|
||||||
|
|
||||||
|
@ -70,8 +44,7 @@ public class TileEntityRejector extends TileEntityFilterable
|
||||||
{
|
{
|
||||||
if (this.canEntityBeThrow(entity))
|
if (this.canEntityBeThrow(entity))
|
||||||
{
|
{
|
||||||
this.throwItem(this.getDirection(), entity);
|
this.throwItem(tileEntity, this.getDirection(), entity);
|
||||||
flag = true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -83,23 +56,22 @@ public class TileEntityRejector extends TileEntityFilterable
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/** Pushs an entity in the direction in which the rejector is facing */
|
||||||
* Used to move after it has been rejected
|
public void throwItem(TileEntity tileEntity, ForgeDirection side, Entity entity)
|
||||||
*
|
|
||||||
* @param side - used to do the offset
|
|
||||||
* @param entity - Entity being thrown
|
|
||||||
*/
|
|
||||||
public void throwItem(ForgeDirection side, Entity entity)
|
|
||||||
{
|
{
|
||||||
this.firePiston = true;
|
this.firePiston = true;
|
||||||
|
//TODO add config to adjust the motion magnitude per rejector
|
||||||
entity.motionX = (double) side.offsetX * 0.1;
|
entity.motionX = (double) side.offsetX * 0.1;
|
||||||
entity.motionY += 0.10000000298023224D;
|
entity.motionY += 0.10000000298023224D;
|
||||||
entity.motionZ = (double) side.offsetZ * 0.1;
|
entity.motionZ = (double) side.offsetZ * 0.1;
|
||||||
|
|
||||||
PacketManager.sendPacketToClients(getDescriptionPacket());
|
if (!this.worldObj.isRemote && tileEntity instanceof IBelt)
|
||||||
|
{
|
||||||
|
((IBelt) tileEntity).ignoreEntity(entity);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Checks to see if the rejector can push the entity in the facing direction */
|
||||||
public boolean canEntityBeThrow(Entity entity)
|
public boolean canEntityBeThrow(Entity entity)
|
||||||
{
|
{
|
||||||
// TODO Add other things than items
|
// TODO Add other things than items
|
||||||
|
@ -114,26 +86,6 @@ public class TileEntityRejector extends TileEntityFilterable
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* NBT Data
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void readFromNBT(NBTTagCompound nbt)
|
|
||||||
{
|
|
||||||
super.readFromNBT(nbt);
|
|
||||||
this.firePiston = nbt.getBoolean("piston");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Writes a tile entity to NBT.
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void writeToNBT(NBTTagCompound nbt)
|
|
||||||
{
|
|
||||||
super.writeToNBT(nbt);
|
|
||||||
nbt.setBoolean("piston", this.firePiston);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean canConnect(ForgeDirection dir)
|
public boolean canConnect(ForgeDirection dir)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,233 +0,0 @@
|
||||||
package assemblyline.common.machine;
|
|
||||||
|
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
|
||||||
import net.minecraft.inventory.IInventory;
|
|
||||||
import net.minecraft.item.ItemStack;
|
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
|
||||||
import net.minecraft.nbt.NBTTagList;
|
|
||||||
import net.minecraft.network.INetworkManager;
|
|
||||||
import net.minecraft.network.packet.Packet250CustomPayload;
|
|
||||||
import net.minecraftforge.common.ForgeDirection;
|
|
||||||
import universalelectricity.prefab.network.IPacketReceiver;
|
|
||||||
import universalelectricity.prefab.tile.TileEntityElectricityRunnable;
|
|
||||||
import assemblyline.common.machine.belt.TileEntityConveyorBelt;
|
|
||||||
|
|
||||||
import com.google.common.io.ByteArrayDataInput;
|
|
||||||
|
|
||||||
public class TileEntityRoboticSorter extends TileEntityElectricityRunnable implements IPacketReceiver, IInventory
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* The items this container contains.
|
|
||||||
*/
|
|
||||||
protected ItemStack[] containingItems = new ItemStack[this.getSizeInventory()];
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Used to id the packet types
|
|
||||||
*/
|
|
||||||
private enum PacketTypes
|
|
||||||
{
|
|
||||||
ANIMATION, GUI, SETTINGON
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Joules required per tick.
|
|
||||||
*/
|
|
||||||
public static final int WATT_REQUEST = 10;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Stored energy
|
|
||||||
*/
|
|
||||||
public double wattsReceived = 0;
|
|
||||||
/**
|
|
||||||
* on/off value for the GUI buttons
|
|
||||||
*/
|
|
||||||
public boolean[] guiButtons = new boolean[] { true, true, true, true, true };
|
|
||||||
/**
|
|
||||||
* the belt found in the search area
|
|
||||||
*/
|
|
||||||
public TileEntityConveyorBelt[] beltSide = new TileEntityConveyorBelt[6];
|
|
||||||
|
|
||||||
private int playerUsing = 0;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getInvName()
|
|
||||||
{
|
|
||||||
return "Sorter";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getSizeInventory()
|
|
||||||
{
|
|
||||||
return 4;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Inventory functions.
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public ItemStack getStackInSlot(int par1)
|
|
||||||
{
|
|
||||||
return this.containingItems[par1];
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ItemStack decrStackSize(int par1, int par2)
|
|
||||||
{
|
|
||||||
if (this.containingItems[par1] != null)
|
|
||||||
{
|
|
||||||
ItemStack var3;
|
|
||||||
|
|
||||||
if (this.containingItems[par1].stackSize <= par2)
|
|
||||||
{
|
|
||||||
var3 = this.containingItems[par1];
|
|
||||||
this.containingItems[par1] = null;
|
|
||||||
return var3;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var3 = this.containingItems[par1].splitStack(par2);
|
|
||||||
|
|
||||||
if (this.containingItems[par1].stackSize == 0)
|
|
||||||
{
|
|
||||||
this.containingItems[par1] = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return var3;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ItemStack getStackInSlotOnClosing(int par1)
|
|
||||||
{
|
|
||||||
if (this.containingItems[par1] != null)
|
|
||||||
{
|
|
||||||
ItemStack var2 = this.containingItems[par1];
|
|
||||||
this.containingItems[par1] = null;
|
|
||||||
return var2;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setInventorySlotContents(int par1, ItemStack par2ItemStack)
|
|
||||||
{
|
|
||||||
this.containingItems[par1] = par2ItemStack;
|
|
||||||
|
|
||||||
if (par2ItemStack != null && par2ItemStack.stackSize > this.getInventoryStackLimit())
|
|
||||||
{
|
|
||||||
par2ItemStack.stackSize = this.getInventoryStackLimit();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isUseableByPlayer(EntityPlayer par1EntityPlayer)
|
|
||||||
{
|
|
||||||
return this.worldObj.getBlockTileEntity(this.xCoord, this.yCoord, this.zCoord) != this ? false : par1EntityPlayer.getDistanceSq(this.xCoord + 0.5D, this.yCoord + 0.5D, this.zCoord + 0.5D) <= 64.0D;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void openChest()
|
|
||||||
{
|
|
||||||
this.playerUsing++;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void closeChest()
|
|
||||||
{
|
|
||||||
this.playerUsing--;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* NBT Data
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void readFromNBT(NBTTagCompound nbt)
|
|
||||||
{
|
|
||||||
super.readFromNBT(nbt);
|
|
||||||
|
|
||||||
for (int i = 0; i < this.guiButtons.length; i++)
|
|
||||||
{
|
|
||||||
this.guiButtons[i] = nbt.getBoolean("guiButton" + i);
|
|
||||||
}
|
|
||||||
|
|
||||||
NBTTagList var2 = nbt.getTagList("Items");
|
|
||||||
this.containingItems = new ItemStack[this.getSizeInventory()];
|
|
||||||
|
|
||||||
for (int var3 = 0; var3 < var2.tagCount(); ++var3)
|
|
||||||
{
|
|
||||||
NBTTagCompound var4 = (NBTTagCompound) var2.tagAt(var3);
|
|
||||||
byte var5 = var4.getByte("Slot");
|
|
||||||
|
|
||||||
if (var5 >= 0 && var5 < this.containingItems.length)
|
|
||||||
{
|
|
||||||
this.containingItems[var5] = ItemStack.loadItemStackFromNBT(var4);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void handlePacketData(INetworkManager network, int packetType, Packet250CustomPayload packet, EntityPlayer player, ByteArrayDataInput dataStream)
|
|
||||||
{
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Writes a tile entity to NBT.
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void writeToNBT(NBTTagCompound nbt)
|
|
||||||
{
|
|
||||||
super.writeToNBT(nbt);
|
|
||||||
|
|
||||||
for (int i = 0; i < this.guiButtons.length; i++)
|
|
||||||
{
|
|
||||||
nbt.setBoolean("guiButton" + i, this.guiButtons[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
NBTTagList var2 = new NBTTagList();
|
|
||||||
for (int var3 = 0; var3 < this.containingItems.length; ++var3)
|
|
||||||
{
|
|
||||||
if (this.containingItems[var3] != null)
|
|
||||||
{
|
|
||||||
NBTTagCompound var4 = new NBTTagCompound();
|
|
||||||
var4.setByte("Slot", (byte) var3);
|
|
||||||
this.containingItems[var3].writeToNBT(var4);
|
|
||||||
var2.appendTag(var4);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
nbt.setTag("Items", var2);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getInventoryStackLimit()
|
|
||||||
{
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean canConnect(ForgeDirection dir)
|
|
||||||
{
|
|
||||||
return dir == ForgeDirection.DOWN;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isInvNameLocalized()
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isStackValidForSlot(int i, ItemStack itemstack)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -16,7 +16,7 @@ import net.minecraftforge.common.ForgeDirection;
|
||||||
import universalelectricity.core.UniversalElectricity;
|
import universalelectricity.core.UniversalElectricity;
|
||||||
import assemblyline.client.render.BlockRenderingHandler;
|
import assemblyline.client.render.BlockRenderingHandler;
|
||||||
import assemblyline.common.TabAssemblyLine;
|
import assemblyline.common.TabAssemblyLine;
|
||||||
import assemblyline.common.block.BlockALMachine;
|
import assemblyline.common.machine.BlockAssembly;
|
||||||
import assemblyline.common.machine.belt.TileEntityConveyorBelt.SlantType;
|
import assemblyline.common.machine.belt.TileEntityConveyorBelt.SlantType;
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
@ -26,14 +26,12 @@ import cpw.mods.fml.relauncher.SideOnly;
|
||||||
*
|
*
|
||||||
* @author Calclavia, DarkGuardsman
|
* @author Calclavia, DarkGuardsman
|
||||||
*/
|
*/
|
||||||
public class BlockConveyorBelt extends BlockALMachine
|
public class BlockConveyorBelt extends BlockAssembly
|
||||||
{
|
{
|
||||||
public BlockConveyorBelt(int id)
|
public BlockConveyorBelt(int id)
|
||||||
{
|
{
|
||||||
super(id, UniversalElectricity.machine);
|
super(id, UniversalElectricity.machine,"conveyorBelt");
|
||||||
this.setUnlocalizedName("conveyorBelt");
|
|
||||||
this.setBlockBounds(0, 0, 0, 1, 0.3f, 1);
|
this.setBlockBounds(0, 0, 0, 1, 0.3f, 1);
|
||||||
this.setCreativeTab(TabAssemblyLine.INSTANCE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -172,6 +170,7 @@ public class BlockConveyorBelt extends BlockALMachine
|
||||||
@Override
|
@Override
|
||||||
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLiving par5EntityLiving, ItemStack stack)
|
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLiving par5EntityLiving, ItemStack stack)
|
||||||
{
|
{
|
||||||
|
super.onBlockPlacedBy(world, x, y, z, par5EntityLiving, stack);
|
||||||
int angle = MathHelper.floor_double((par5EntityLiving.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;
|
int angle = MathHelper.floor_double((par5EntityLiving.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;
|
||||||
int change = 2;
|
int change = 2;
|
||||||
|
|
||||||
|
@ -246,7 +245,6 @@ public class BlockConveyorBelt extends BlockALMachine
|
||||||
public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity)
|
public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity)
|
||||||
{
|
{
|
||||||
TileEntityConveyorBelt tileEntity = (TileEntityConveyorBelt) world.getBlockTileEntity(x, y, z);
|
TileEntityConveyorBelt tileEntity = (TileEntityConveyorBelt) world.getBlockTileEntity(x, y, z);
|
||||||
tileEntity.updatePowerTransferRange();
|
|
||||||
if (tileEntity.IgnoreList.contains(entity))
|
if (tileEntity.IgnoreList.contains(entity))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
package assemblyline.common.machine.belt;
|
package assemblyline.common.machine.belt;
|
||||||
|
|
||||||
|
import java.io.DataInputStream;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
|
@ -14,129 +16,62 @@ import net.minecraft.util.AxisAlignedBB;
|
||||||
import net.minecraft.world.IBlockAccess;
|
import net.minecraft.world.IBlockAccess;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.ForgeDirection;
|
import net.minecraftforge.common.ForgeDirection;
|
||||||
|
import universalelectricity.core.vector.Vector3;
|
||||||
import universalelectricity.prefab.implement.IRotatable;
|
import universalelectricity.prefab.implement.IRotatable;
|
||||||
import universalelectricity.prefab.network.IPacketReceiver;
|
import universalelectricity.prefab.network.IPacketReceiver;
|
||||||
import universalelectricity.prefab.network.PacketManager;
|
import universalelectricity.prefab.network.PacketManager;
|
||||||
import assemblyline.api.IBelt;
|
import assemblyline.api.IBelt;
|
||||||
import assemblyline.common.AssemblyLine;
|
import assemblyline.common.AssemblyLine;
|
||||||
import assemblyline.common.machine.TileEntityAssemblyNetwork;
|
import assemblyline.common.machine.TileEntityAssembly;
|
||||||
|
|
||||||
import com.google.common.io.ByteArrayDataInput;
|
import com.google.common.io.ByteArrayDataInput;
|
||||||
|
|
||||||
import cpw.mods.fml.common.FMLCommonHandler;
|
import cpw.mods.fml.common.FMLCommonHandler;
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
|
|
||||||
public class TileEntityConveyorBelt extends TileEntityAssemblyNetwork implements IPacketReceiver, IBelt, IRotatable
|
public class TileEntityConveyorBelt extends TileEntityAssembly implements IPacketReceiver, IBelt, IRotatable
|
||||||
{
|
{
|
||||||
public enum SlantType
|
public enum SlantType
|
||||||
{
|
{
|
||||||
NONE, UP, DOWN, TOP
|
NONE,
|
||||||
|
UP,
|
||||||
|
DOWN,
|
||||||
|
TOP
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final int MAX_FRAME = 13;
|
public static final int MAX_FRAME = 13;
|
||||||
public static final int MAX_SLANT_FRAME = 23;
|
public static final int MAX_SLANT_FRAME = 23;
|
||||||
|
|
||||||
/**
|
|
||||||
* Joules required to run this thing.
|
|
||||||
*/
|
|
||||||
public final float acceleration = 0.01f;
|
public final float acceleration = 0.01f;
|
||||||
public final float maxSpeed = 0.1f;
|
public final float maxSpeed = 0.1f;
|
||||||
|
/** Current rotation of the model wheels */
|
||||||
public float wheelRotation = 0;
|
public float wheelRotation = 0;
|
||||||
private int animFrame = 0; // this is from 0 to 15
|
private int animFrame = 0; // this is from 0 to 15
|
||||||
private SlantType slantType = SlantType.NONE;
|
private SlantType slantType = SlantType.NONE;
|
||||||
|
/** Entities that are ignored allowing for other tiles to interact with them */
|
||||||
public List<Entity> IgnoreList = new ArrayList<Entity>();// Entities that need to be ignored to
|
public List<Entity> IgnoreList = new ArrayList<Entity>();
|
||||||
// prevent movement
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This function is overriden to allow conveyor belts to power belts that are diagonally going
|
|
||||||
* up.
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void updatePowerTransferRange()
|
|
||||||
{
|
|
||||||
int maximumTransferRange = 0;
|
|
||||||
|
|
||||||
for (int i = 0; i < 6; i++)
|
|
||||||
{
|
|
||||||
ForgeDirection direction = ForgeDirection.getOrientation(i);
|
|
||||||
TileEntity tileEntity = worldObj.getBlockTileEntity(this.xCoord + direction.offsetX, this.yCoord + direction.offsetY, this.zCoord + direction.offsetZ);
|
|
||||||
|
|
||||||
if (tileEntity != null)
|
|
||||||
{
|
|
||||||
if (tileEntity instanceof TileEntityAssemblyNetwork)
|
|
||||||
{
|
|
||||||
TileEntityAssemblyNetwork assemblyNetwork = (TileEntityAssemblyNetwork) tileEntity;
|
|
||||||
|
|
||||||
if (assemblyNetwork.powerTransferRange > maximumTransferRange)
|
|
||||||
{
|
|
||||||
maximumTransferRange = assemblyNetwork.powerTransferRange;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int d = 0; d <= 1; d++)
|
|
||||||
{
|
|
||||||
ForgeDirection direction = this.getDirection();
|
|
||||||
|
|
||||||
if (d == 1)
|
|
||||||
{
|
|
||||||
direction = direction.getOpposite();
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = -1; i <= 1; i++)
|
|
||||||
{
|
|
||||||
TileEntity tileEntity = worldObj.getBlockTileEntity(this.xCoord + direction.offsetX, this.yCoord + i, this.zCoord + direction.offsetZ);
|
|
||||||
if (tileEntity != null)
|
|
||||||
{
|
|
||||||
if (tileEntity instanceof TileEntityAssemblyNetwork)
|
|
||||||
{
|
|
||||||
TileEntityAssemblyNetwork assemblyNetwork = (TileEntityAssemblyNetwork) tileEntity;
|
|
||||||
|
|
||||||
if (assemblyNetwork.powerTransferRange > maximumTransferRange)
|
|
||||||
{
|
|
||||||
maximumTransferRange = assemblyNetwork.powerTransferRange;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
this.powerTransferRange = Math.max(maximumTransferRange - 1, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onUpdate()
|
public void onUpdate()
|
||||||
{
|
{
|
||||||
if (FMLCommonHandler.instance().getEffectiveSide() == Side.SERVER && this.ticks % 10 == 0)
|
|
||||||
{
|
|
||||||
PacketManager.sendPacketToClients(this.getDescriptionPacket());
|
|
||||||
}
|
|
||||||
|
|
||||||
/* PROCESSES IGNORE LIST AND REMOVES UNNEED ENTRIES */
|
/* PROCESSES IGNORE LIST AND REMOVES UNNEED ENTRIES */
|
||||||
List<Entity> newList = new ArrayList<Entity>();
|
Iterator<Entity> it = this.IgnoreList.iterator();
|
||||||
for (Entity ent : IgnoreList)
|
while (it.hasNext())
|
||||||
{
|
{
|
||||||
if (this.getAffectedEntities().contains(ent))
|
if (!this.getAffectedEntities().contains(it.next()))
|
||||||
{
|
{
|
||||||
newList.add(ent);
|
it.remove();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.IgnoreList = newList;
|
|
||||||
|
|
||||||
if (this.isRunning() && !this.worldObj.isBlockIndirectlyGettingPowered(this.xCoord, this.yCoord, this.zCoord))
|
if (this.worldObj.isRemote && this.isRunning() && !this.worldObj.isBlockIndirectlyGettingPowered(this.xCoord, this.yCoord, this.zCoord))
|
||||||
{
|
{
|
||||||
if (this.ticks % 10 == 0 && this.worldObj.isRemote && this.worldObj.getBlockId(this.xCoord - 1, this.yCoord, this.zCoord) != AssemblyLine.blockConveyorBelt.blockID && this.worldObj.getBlockId(xCoord, yCoord, zCoord - 1) != AssemblyLine.blockConveyorBelt.blockID)
|
if (this.ticks % 10 == 0 && this.worldObj.isRemote && this.worldObj.getBlockId(this.xCoord - 1, this.yCoord, this.zCoord) != AssemblyLine.blockConveyorBelt.blockID && this.worldObj.getBlockId(xCoord, yCoord, zCoord - 1) != AssemblyLine.blockConveyorBelt.blockID)
|
||||||
{
|
{
|
||||||
this.worldObj.playSound(this.xCoord, this.yCoord, this.zCoord, "mods.assemblyline.conveyor", 0.5f, 0.7f, true);
|
this.worldObj.playSound(this.xCoord, this.yCoord, this.zCoord, "mods.assemblyline.conveyor", 0.5f, 0.7f, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.wheelRotation += 40;
|
this.wheelRotation = (40 + this.wheelRotation) % 360;
|
||||||
|
|
||||||
if (this.wheelRotation > 360)
|
|
||||||
this.wheelRotation = 0;
|
|
||||||
|
|
||||||
float wheelRotPct = wheelRotation / 360f;
|
float wheelRotPct = wheelRotation / 360f;
|
||||||
|
|
||||||
|
@ -161,16 +96,10 @@ public class TileEntityConveyorBelt extends TileEntityAssemblyNetwork implements
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected int getMaxTransferRange()
|
|
||||||
{
|
|
||||||
return 20;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Packet getDescriptionPacket()
|
public Packet getDescriptionPacket()
|
||||||
{
|
{
|
||||||
return PacketManager.getPacket(AssemblyLine.CHANNEL, this, this.wattsReceived, this.slantType.ordinal());
|
return PacketManager.getPacket(AssemblyLine.CHANNEL, this, 3, this.slantType.ordinal());
|
||||||
}
|
}
|
||||||
|
|
||||||
public SlantType getSlant()
|
public SlantType getSlant()
|
||||||
|
@ -184,86 +113,69 @@ public class TileEntityConveyorBelt extends TileEntityAssemblyNetwork implements
|
||||||
{
|
{
|
||||||
slantType = SlantType.NONE;
|
slantType = SlantType.NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.slantType = slantType;
|
this.slantType = slantType;
|
||||||
|
this.worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
|
||||||
PacketManager.sendPacketToClients(this.getDescriptionPacket(), this.worldObj);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/** Is this belt in the front of a conveyor line? Used for rendering. */
|
||||||
* Is this belt in the front of a conveyor line? Used for rendering.
|
|
||||||
*/
|
|
||||||
public boolean getIsFirstBelt()
|
public boolean getIsFirstBelt()
|
||||||
{
|
{
|
||||||
|
Vector3 vec = new Vector3(this);
|
||||||
ForgeDirection front = this.getDirection();
|
TileEntity fBelt = vec.clone().modifyPositionFromSide(this.getDirection()).getTileEntity(this.worldObj);
|
||||||
ForgeDirection back = this.getDirection().getOpposite();
|
TileEntity bBelt = vec.clone().modifyPositionFromSide(this.getDirection().getOpposite()).getTileEntity(this.worldObj);
|
||||||
TileEntity fBelt = worldObj.getBlockTileEntity(xCoord + front.offsetX, yCoord + front.offsetY, zCoord + front.offsetZ);
|
if (fBelt instanceof TileEntityConveyorBelt && !(bBelt instanceof TileEntityConveyorBelt))
|
||||||
TileEntity BBelt = worldObj.getBlockTileEntity(xCoord + back.offsetX, yCoord + back.offsetY, zCoord + back.offsetZ);
|
|
||||||
if (fBelt instanceof TileEntityConveyorBelt)
|
|
||||||
{
|
{
|
||||||
ForgeDirection fD = ((TileEntityConveyorBelt) fBelt).getDirection();
|
return ((TileEntityConveyorBelt) fBelt).getDirection() == this.getDirection();
|
||||||
ForgeDirection TD = this.getDirection();
|
|
||||||
return fD == TD;
|
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/** Is this belt in the middile of two belts? Used for rendering. */
|
||||||
* Is this belt in the middile of two belts? Used for rendering.
|
|
||||||
*/
|
|
||||||
public boolean getIsMiddleBelt()
|
public boolean getIsMiddleBelt()
|
||||||
{
|
{
|
||||||
|
|
||||||
ForgeDirection front = this.getDirection();
|
Vector3 vec = new Vector3(this);
|
||||||
ForgeDirection back = this.getDirection().getOpposite();
|
TileEntity fBelt = vec.clone().modifyPositionFromSide(this.getDirection()).getTileEntity(this.worldObj);
|
||||||
TileEntity fBelt = worldObj.getBlockTileEntity(xCoord + front.offsetX, yCoord + front.offsetY, zCoord + front.offsetZ);
|
TileEntity bBelt = vec.clone().modifyPositionFromSide(this.getDirection().getOpposite()).getTileEntity(this.worldObj);
|
||||||
TileEntity BBelt = worldObj.getBlockTileEntity(xCoord + back.offsetX, yCoord + back.offsetY, zCoord + back.offsetZ);
|
if (fBelt instanceof TileEntityConveyorBelt && bBelt instanceof TileEntityConveyorBelt)
|
||||||
if (fBelt instanceof TileEntityConveyorBelt && BBelt instanceof TileEntityConveyorBelt)
|
|
||||||
{
|
{
|
||||||
ForgeDirection fD = ((TileEntityConveyorBelt) fBelt).getDirection();
|
return ((TileEntityConveyorBelt) fBelt).getDirection() == this.getDirection() && ((TileEntityConveyorBelt) bBelt).getDirection() == this.getDirection();
|
||||||
ForgeDirection BD = ((TileEntityConveyorBelt) BBelt).getDirection();
|
|
||||||
ForgeDirection TD = this.getDirection();
|
|
||||||
return fD == TD && BD == TD;
|
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/** Is this belt in the back of a conveyor line? Used for rendering. */
|
||||||
* Is this belt in the back of a conveyor line? Used for rendering.
|
|
||||||
*/
|
|
||||||
public boolean getIsLastBelt()
|
public boolean getIsLastBelt()
|
||||||
{
|
{
|
||||||
|
Vector3 vec = new Vector3(this);
|
||||||
ForgeDirection front = this.getDirection();
|
TileEntity fBelt = vec.clone().modifyPositionFromSide(this.getDirection()).getTileEntity(this.worldObj);
|
||||||
ForgeDirection back = this.getDirection().getOpposite();
|
TileEntity bBelt = vec.clone().modifyPositionFromSide(this.getDirection().getOpposite()).getTileEntity(this.worldObj);
|
||||||
TileEntity fBelt = worldObj.getBlockTileEntity(xCoord + front.offsetX, yCoord + front.offsetY, zCoord + front.offsetZ);
|
if (bBelt instanceof TileEntityConveyorBelt && !(fBelt instanceof TileEntityConveyorBelt))
|
||||||
TileEntity BBelt = worldObj.getBlockTileEntity(xCoord + back.offsetX, yCoord + back.offsetY, zCoord + back.offsetZ);
|
|
||||||
|
|
||||||
if (BBelt instanceof TileEntityConveyorBelt)
|
|
||||||
{
|
{
|
||||||
ForgeDirection BD = ((TileEntityConveyorBelt) BBelt).getDirection();
|
return ((TileEntityConveyorBelt) bBelt).getDirection() == this.getDirection().getOpposite();
|
||||||
ForgeDirection TD = this.getDirection();
|
|
||||||
return BD == TD;
|
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handlePacketData(INetworkManager network, int packetType, Packet250CustomPayload packet, EntityPlayer player, ByteArrayDataInput dataStream)
|
public boolean simplePacket(int id, DataInputStream dis, EntityPlayer player)
|
||||||
{
|
{
|
||||||
if (this.worldObj.isRemote)
|
if (!super.simplePacket(id, dis, player) && this.worldObj.isRemote)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
this.wattsReceived = dataStream.readDouble();
|
if (id == 3)
|
||||||
this.slantType = SlantType.values()[dataStream.readInt()];
|
{
|
||||||
|
this.slantType = SlantType.values()[dis.readInt()];
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -272,6 +184,11 @@ public class TileEntityConveyorBelt extends TileEntityAssemblyNetwork implements
|
||||||
this.worldObj.setBlockMetadataWithNotify(this.xCoord, this.yCoord, this.zCoord, facingDirection.ordinal(), 3);
|
this.worldObj.setBlockMetadataWithNotify(this.xCoord, this.yCoord, this.zCoord, facingDirection.ordinal(), 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setDirection(ForgeDirection facingDirection)
|
||||||
|
{
|
||||||
|
this.setDirection(worldObj, xCoord, yCoord, zCoord, facingDirection);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ForgeDirection getDirection(IBlockAccess world, int x, int y, int z)
|
public ForgeDirection getDirection(IBlockAccess world, int x, int y, int z)
|
||||||
{
|
{
|
||||||
|
@ -283,83 +200,35 @@ public class TileEntityConveyorBelt extends TileEntityAssemblyNetwork implements
|
||||||
return this.getDirection(worldObj, xCoord, yCoord, zCoord);
|
return this.getDirection(worldObj, xCoord, yCoord, zCoord);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDirection(ForgeDirection facingDirection)
|
|
||||||
{
|
|
||||||
this.setDirection(worldObj, xCoord, yCoord, zCoord, facingDirection);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Entity> getAffectedEntities()
|
public List<Entity> getAffectedEntities()
|
||||||
{
|
{
|
||||||
AxisAlignedBB bounds = AxisAlignedBB.getBoundingBox(this.xCoord, this.yCoord, this.zCoord, this.xCoord + 1, this.yCoord + 1, this.zCoord + 1);
|
return worldObj.getEntitiesWithinAABB(Entity.class, AxisAlignedBB.getBoundingBox(this.xCoord, this.yCoord, this.zCoord, this.xCoord + 1, this.yCoord + 1, this.zCoord + 1));
|
||||||
return worldObj.getEntitiesWithinAABB(Entity.class, bounds);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getAnimationFrame()
|
public int getAnimationFrame()
|
||||||
{
|
{
|
||||||
if (!this.worldObj.isBlockIndirectlyGettingPowered(this.xCoord, this.yCoord, this.zCoord))
|
|
||||||
{
|
|
||||||
TileEntity te = null;
|
|
||||||
te = this.worldObj.getBlockTileEntity(this.xCoord - 1, this.yCoord, this.zCoord);
|
|
||||||
|
|
||||||
if (te != null)
|
|
||||||
{
|
|
||||||
if (te instanceof TileEntityConveyorBelt)
|
|
||||||
{
|
|
||||||
if (((TileEntityConveyorBelt) te).getSlant() == this.slantType)
|
|
||||||
return ((TileEntityConveyorBelt) te).getAnimationFrame();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
te = this.worldObj.getBlockTileEntity(this.xCoord, this.yCoord, this.zCoord - 1);
|
|
||||||
|
|
||||||
if (te != null)
|
|
||||||
{
|
|
||||||
if (te instanceof TileEntityConveyorBelt)
|
|
||||||
{
|
|
||||||
if (((TileEntityConveyorBelt) te).getSlant() == this.slantType)
|
|
||||||
return ((TileEntityConveyorBelt) te).getAnimationFrame();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return this.animFrame;
|
return this.animFrame;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/** NBT Data */
|
||||||
* NBT Data
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public void readFromNBT(NBTTagCompound nbt)
|
public void readFromNBT(NBTTagCompound nbt)
|
||||||
{
|
{
|
||||||
super.readFromNBT(nbt);
|
super.readFromNBT(nbt);
|
||||||
this.slantType = SlantType.values()[nbt.getByte("slant")];
|
this.slantType = SlantType.values()[nbt.getByte("slant")];
|
||||||
|
|
||||||
if (worldObj != null)
|
|
||||||
{
|
|
||||||
worldObj.setBlockMetadataWithNotify(this.xCoord, this.yCoord, this.zCoord, nbt.getInteger("rotation"), 3);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/** Writes a tile entity to NBT. */
|
||||||
* Writes a tile entity to NBT.
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public void writeToNBT(NBTTagCompound nbt)
|
public void writeToNBT(NBTTagCompound nbt)
|
||||||
{
|
{
|
||||||
super.writeToNBT(nbt);
|
super.writeToNBT(nbt);
|
||||||
nbt.setByte("slant", (byte) this.slantType.ordinal());
|
nbt.setByte("slant", (byte) this.slantType.ordinal());
|
||||||
|
|
||||||
if (worldObj != null)
|
|
||||||
{
|
|
||||||
nbt.setInteger("rotation", worldObj.getBlockMetadata(this.xCoord, this.yCoord, this.zCoord));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void IgnoreEntity(Entity entity)
|
public void ignoreEntity(Entity entity)
|
||||||
{
|
{
|
||||||
if (!this.IgnoreList.contains(entity))
|
if (!this.IgnoreList.contains(entity))
|
||||||
{
|
{
|
||||||
|
@ -373,4 +242,50 @@ public class TileEntityConveyorBelt extends TileEntityAssemblyNetwork implements
|
||||||
{
|
{
|
||||||
return direction == ForgeDirection.DOWN;
|
return direction == ForgeDirection.DOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateNetworkConnections()
|
||||||
|
{
|
||||||
|
super.updateNetworkConnections();
|
||||||
|
if (this.worldObj != null && !this.worldObj.isRemote)
|
||||||
|
{
|
||||||
|
Vector3 face = new Vector3(this).modifyPositionFromSide(this.getDirection());
|
||||||
|
Vector3 back = new Vector3(this).modifyPositionFromSide(this.getDirection().getOpposite());
|
||||||
|
TileEntity front, rear;
|
||||||
|
if (this.slantType == SlantType.DOWN)
|
||||||
|
{
|
||||||
|
face.add(new Vector3(0, -1, 0));
|
||||||
|
back.add(new Vector3(0, 1, 0));
|
||||||
|
}
|
||||||
|
else if (this.slantType == SlantType.UP)
|
||||||
|
{
|
||||||
|
face.add(new Vector3(0, 1, 0));
|
||||||
|
back.add(new Vector3(0, -1, 0));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
front = face.getTileEntity(this.worldObj);
|
||||||
|
rear = back.getTileEntity(this.worldObj);
|
||||||
|
if (front instanceof TileEntityAssembly)
|
||||||
|
{
|
||||||
|
this.getTileNetwork().merge(((TileEntityAssembly) front).getTileNetwork(), this);
|
||||||
|
this.connectedTiles.add(front);
|
||||||
|
}
|
||||||
|
if (rear instanceof TileEntityAssembly)
|
||||||
|
{
|
||||||
|
this.getTileNetwork().merge(((TileEntityAssembly) rear).getTileNetwork(), this);
|
||||||
|
this.connectedTiles.add(rear);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getWattLoad()
|
||||||
|
{
|
||||||
|
return 0.1 + (0.1 * this.getAffectedEntities().size());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
package assemblyline.common.machine.belt;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* For the moment this is just a render place holder, but will be convered to prevent item pickups
|
|
||||||
* from the belts.
|
|
||||||
*
|
|
||||||
* @author Rseifert
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public class TileEntityCoveredBelt extends TileEntityConveyorBelt
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
|
@ -8,17 +8,15 @@ import net.minecraftforge.common.ForgeDirection;
|
||||||
import universalelectricity.core.UniversalElectricity;
|
import universalelectricity.core.UniversalElectricity;
|
||||||
import assemblyline.client.render.BlockRenderingHandler;
|
import assemblyline.client.render.BlockRenderingHandler;
|
||||||
import assemblyline.common.TabAssemblyLine;
|
import assemblyline.common.TabAssemblyLine;
|
||||||
import assemblyline.common.block.BlockALMachine;
|
import assemblyline.common.machine.BlockAssembly;
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
public class BlockCraneController extends BlockALMachine
|
public class BlockCraneController extends BlockAssembly
|
||||||
{
|
{
|
||||||
public BlockCraneController(int id)
|
public BlockCraneController(int id)
|
||||||
{
|
{
|
||||||
super(id, UniversalElectricity.machine);
|
super(id, UniversalElectricity.machine,"craneController");
|
||||||
this.setUnlocalizedName("craneController");
|
|
||||||
this.setCreativeTab(TabAssemblyLine.INSTANCE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -8,17 +8,15 @@ import net.minecraftforge.common.ForgeDirection;
|
||||||
import universalelectricity.core.UniversalElectricity;
|
import universalelectricity.core.UniversalElectricity;
|
||||||
import assemblyline.client.render.BlockRenderingHandler;
|
import assemblyline.client.render.BlockRenderingHandler;
|
||||||
import assemblyline.common.TabAssemblyLine;
|
import assemblyline.common.TabAssemblyLine;
|
||||||
import assemblyline.common.block.BlockALMachine;
|
import assemblyline.common.machine.BlockAssembly;
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
public class BlockCraneFrame extends BlockALMachine
|
public class BlockCraneFrame extends BlockAssembly
|
||||||
{
|
{
|
||||||
public BlockCraneFrame(int id)
|
public BlockCraneFrame(int id)
|
||||||
{
|
{
|
||||||
super(id, UniversalElectricity.machine);
|
super(id, UniversalElectricity.machine,"craneFrame");
|
||||||
this.setUnlocalizedName("craneFrame");
|
|
||||||
this.setCreativeTab(TabAssemblyLine.INSTANCE);
|
|
||||||
this.setBlockBounds(0.25f, 0.25f, 0.25f, 0.75f, 0.75f, 0.75f);
|
this.setBlockBounds(0.25f, 0.25f, 0.25f, 0.75f, 0.75f, 0.75f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,9 +7,9 @@ import net.minecraftforge.common.ForgeDirection;
|
||||||
import universalelectricity.core.vector.Vector3;
|
import universalelectricity.core.vector.Vector3;
|
||||||
import assemblyline.api.ICraneStructure;
|
import assemblyline.api.ICraneStructure;
|
||||||
import assemblyline.common.AssemblyLine;
|
import assemblyline.common.AssemblyLine;
|
||||||
import assemblyline.common.machine.TileEntityAssemblyNetwork;
|
import assemblyline.common.machine.TileEntityAssembly;
|
||||||
|
|
||||||
public class TileEntityCraneController extends TileEntityAssemblyNetwork implements ICraneStructure
|
public class TileEntityCraneController extends TileEntityAssembly implements ICraneStructure
|
||||||
{
|
{
|
||||||
int width, depth;
|
int width, depth;
|
||||||
boolean isCraneValid;
|
boolean isCraneValid;
|
||||||
|
@ -213,4 +213,10 @@ public class TileEntityCraneController extends TileEntityAssemblyNetwork impleme
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
public void onUpdate()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,9 +2,9 @@ package assemblyline.common.machine.crane;
|
||||||
|
|
||||||
import net.minecraftforge.common.ForgeDirection;
|
import net.minecraftforge.common.ForgeDirection;
|
||||||
import assemblyline.api.ICraneStructure;
|
import assemblyline.api.ICraneStructure;
|
||||||
import assemblyline.common.machine.TileEntityAssemblyNetwork;
|
import assemblyline.common.machine.TileEntityAssembly;
|
||||||
|
|
||||||
public class TileEntityCraneRail extends TileEntityAssemblyNetwork implements ICraneStructure
|
public class TileEntityCraneRail extends TileEntityAssembly implements ICraneStructure
|
||||||
{
|
{
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -19,4 +19,11 @@ public class TileEntityCraneRail extends TileEntityAssemblyNetwork implements IC
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onUpdate()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,7 +25,7 @@ public class BlockDetector extends BlockImprintable
|
||||||
Icon eye_red;
|
Icon eye_red;
|
||||||
Icon eye_green;
|
Icon eye_green;
|
||||||
|
|
||||||
public BlockDetector(int blockID, int texture)
|
public BlockDetector(int blockID)
|
||||||
{
|
{
|
||||||
super("detector", blockID, UniversalElectricity.machine, TabAssemblyLine.INSTANCE);
|
super("detector", blockID, UniversalElectricity.machine, TabAssemblyLine.INSTANCE);
|
||||||
}
|
}
|
||||||
|
|
|
@ -110,4 +110,11 @@ public class TileEntityDetector extends TileEntityFilterable
|
||||||
{
|
{
|
||||||
return direction != this.getDirection();
|
return direction != this.getDirection();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onUpdate()
|
||||||
|
{
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,20 +10,18 @@ import net.minecraft.world.World;
|
||||||
import assemblyline.common.AssemblyLine;
|
import assemblyline.common.AssemblyLine;
|
||||||
import assemblyline.common.CommonProxy;
|
import assemblyline.common.CommonProxy;
|
||||||
import assemblyline.common.TabAssemblyLine;
|
import assemblyline.common.TabAssemblyLine;
|
||||||
import assemblyline.common.block.BlockALMachine;
|
import assemblyline.common.machine.BlockAssembly;
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
public class BlockEncoder extends BlockALMachine
|
public class BlockEncoder extends BlockAssembly
|
||||||
{
|
{
|
||||||
Icon encoder_side;
|
Icon encoder_side;
|
||||||
Icon encoder_top;
|
Icon encoder_top;
|
||||||
Icon encoder_bottom;
|
Icon encoder_bottom;
|
||||||
public BlockEncoder(int id, int texture)
|
public BlockEncoder(int id)
|
||||||
{
|
{
|
||||||
super(id, Material.wood);
|
super(id, Material.wood,"encoder");
|
||||||
this.setUnlocalizedName("encoder");
|
|
||||||
this.setCreativeTab(TabAssemblyLine.INSTANCE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
|
|
Loading…
Reference in a new issue