From 0f672972fe10df997fed6e1ff1d831933717c258 Mon Sep 17 00:00:00 2001 From: Krapht Date: Sat, 16 Mar 2013 09:21:48 +0100 Subject: [PATCH] Started fix on actions/triggers, untested Removed Action and Trigger from API Moved IIconProvider to API Renamed Action -> BCAction Renamed Trigger -> BCTrigger --- common/buildcraft/BuildCraftCore.java | 40 +++---- common/buildcraft/BuildCraftEnergy.java | 10 +- common/buildcraft/BuildCraftTransport.java | 40 +++---- .../{ => api}/core/IIconProvider.java | 2 +- .../buildcraft/api/gates/ActionManager.java | 6 +- common/buildcraft/api/gates/IAction.java | 6 +- common/buildcraft/api/gates/ITrigger.java | 14 ++- .../core/triggers/ActionMachineControl.java | 10 +- .../core/triggers/ActionRedstoneOutput.java | 6 +- .../triggers/ActionTriggerIconProvider.java | 100 ++++++++++++++++++ .../triggers/BCAction.java} | 18 +++- .../triggers/BCTrigger.java} | 54 +++------- .../core/triggers/TriggerInventory.java | 12 +-- .../core/triggers/TriggerLiquidContainer.java | 12 +-- .../core/triggers/TriggerMachine.java | 8 +- .../buildcraft/energy/TriggerEngineHeat.java | 14 +-- common/buildcraft/energy/gui/GuiEngine.java | 6 +- .../transport/BlockGenericPipe.java | 9 ++ .../transport/GateIconProvider.java | 4 +- .../transport/IPipeRenderState.java | 2 +- .../transport/IconItemConstants.java | 44 -------- common/buildcraft/transport/ItemGate.java | 21 ++-- common/buildcraft/transport/ItemPipe.java | 2 +- common/buildcraft/transport/Pipe.java | 14 +-- .../transport/PipeIconProvider.java | 3 +- .../buildcraft/transport/TileGenericPipe.java | 2 +- .../transport/TransportProxyClient.java | 41 ------- .../transport/WireIconProvider.java | 4 +- .../transport/pipes/PipeItemsCobblestone.java | 2 +- .../transport/pipes/PipeItemsDiamond.java | 2 +- .../transport/pipes/PipeItemsGold.java | 2 +- .../transport/pipes/PipeItemsIron.java | 2 +- .../transport/pipes/PipeItemsObsidian.java | 2 +- .../transport/pipes/PipeItemsSandstone.java | 2 +- .../transport/pipes/PipeItemsStone.java | 2 +- .../transport/pipes/PipeItemsVoid.java | 2 +- .../transport/pipes/PipeItemsWood.java | 2 +- .../pipes/PipeLiquidsCobblestone.java | 2 +- .../transport/pipes/PipeLiquidsGold.java | 2 +- .../transport/pipes/PipeLiquidsIron.java | 2 +- .../transport/pipes/PipeLiquidsSandstone.java | 2 +- .../transport/pipes/PipeLiquidsStone.java | 2 +- .../transport/pipes/PipeLiquidsVoid.java | 2 +- .../transport/pipes/PipeLiquidsWood.java | 2 +- .../transport/pipes/PipePowerGold.java | 2 +- .../transport/pipes/PipePowerStone.java | 2 +- .../transport/pipes/PipePowerWood.java | 2 +- .../pipes/PipeStructureCobblestone.java | 2 +- .../transport/render/PipeWorldRenderer.java | 2 +- .../triggers/ActionEnergyPulser.java | 8 +- .../triggers/ActionSignalOutput.java | 14 +-- .../triggers/TriggerPipeContents.java | 14 +-- .../transport/triggers/TriggerPipeSignal.java | 22 ++-- .../triggers/TriggerRedstoneInput.java | 10 +- 54 files changed, 324 insertions(+), 290 deletions(-) rename common/buildcraft/{ => api}/core/IIconProvider.java (95%) create mode 100644 common/buildcraft/core/triggers/ActionTriggerIconProvider.java rename common/buildcraft/{api/gates/Action.java => core/triggers/BCAction.java} (63%) rename common/buildcraft/{api/gates/Trigger.java => core/triggers/BCTrigger.java} (56%) delete mode 100644 common/buildcraft/transport/IconItemConstants.java diff --git a/common/buildcraft/BuildCraftCore.java b/common/buildcraft/BuildCraftCore.java index b458f3eb..4d9a8e59 100644 --- a/common/buildcraft/BuildCraftCore.java +++ b/common/buildcraft/BuildCraftCore.java @@ -23,9 +23,8 @@ import net.minecraftforge.common.Configuration; import net.minecraftforge.common.IPlantable; import net.minecraftforge.common.Property; import buildcraft.api.core.BuildCraftAPI; -import buildcraft.api.gates.Action; +import buildcraft.api.core.IIconProvider; import buildcraft.api.gates.ActionManager; -import buildcraft.api.gates.Trigger; import buildcraft.api.power.PowerFramework; import buildcraft.core.BlockIndex; import buildcraft.core.BlockSpring; @@ -48,9 +47,12 @@ import buildcraft.core.network.PacketUpdate; import buildcraft.core.proxy.CoreProxy; import buildcraft.core.triggers.ActionMachineControl; import buildcraft.core.triggers.ActionMachineControl.Mode; +import buildcraft.core.triggers.ActionTriggerIconProvider; +import buildcraft.core.triggers.BCAction; import buildcraft.core.triggers.ActionRedstoneOutput; import buildcraft.core.triggers.DefaultActionProvider; import buildcraft.core.triggers.DefaultTriggerProvider; +import buildcraft.core.triggers.BCTrigger; import buildcraft.core.triggers.TriggerInventory; import buildcraft.core.triggers.TriggerLiquidContainer; import buildcraft.core.triggers.TriggerMachine; @@ -128,23 +130,23 @@ public class BuildCraftCore { public static int markerModel; public static int oilModel; - public static Trigger triggerMachineActive = new TriggerMachine(DefaultProps.TRIGGER_MACHINE_ACTIVE, true); - public static Trigger triggerMachineInactive = new TriggerMachine(DefaultProps.TRIGGER_MACHINE_INACTIVE, false); - public static Trigger triggerEmptyInventory = new TriggerInventory(DefaultProps.TRIGGER_EMPTY_INVENTORY, TriggerInventory.State.Empty); - public static Trigger triggerContainsInventory = new TriggerInventory(DefaultProps.TRIGGER_CONTAINS_INVENTORY, TriggerInventory.State.Contains); - public static Trigger triggerSpaceInventory = new TriggerInventory(DefaultProps.TRIGGER_SPACE_INVENTORY, TriggerInventory.State.Space); - public static Trigger triggerFullInventory = new TriggerInventory(DefaultProps.TRIGGER_FULL_INVENTORY, TriggerInventory.State.Full); - public static Trigger triggerEmptyLiquid = new TriggerLiquidContainer(DefaultProps.TRIGGER_EMPTY_LIQUID, TriggerLiquidContainer.State.Empty); - public static Trigger triggerContainsLiquid = new TriggerLiquidContainer(DefaultProps.TRIGGER_CONTAINS_LIQUID, TriggerLiquidContainer.State.Contains); - public static Trigger triggerSpaceLiquid = new TriggerLiquidContainer(DefaultProps.TRIGGER_SPACE_LIQUID, TriggerLiquidContainer.State.Space); - public static Trigger triggerFullLiquid = new TriggerLiquidContainer(DefaultProps.TRIGGER_FULL_LIQUID, TriggerLiquidContainer.State.Full); - public static Trigger triggerRedstoneActive = new TriggerRedstoneInput(DefaultProps.TRIGGER_REDSTONE_ACTIVE, true); - public static Trigger triggerRedstoneInactive = new TriggerRedstoneInput(DefaultProps.TRIGGER_REDSTONE_INACTIVE, false); + public static BCTrigger triggerMachineActive = new TriggerMachine(DefaultProps.TRIGGER_MACHINE_ACTIVE, true); + public static BCTrigger triggerMachineInactive = new TriggerMachine(DefaultProps.TRIGGER_MACHINE_INACTIVE, false); + public static BCTrigger triggerEmptyInventory = new TriggerInventory(DefaultProps.TRIGGER_EMPTY_INVENTORY, TriggerInventory.State.Empty); + public static BCTrigger triggerContainsInventory = new TriggerInventory(DefaultProps.TRIGGER_CONTAINS_INVENTORY, TriggerInventory.State.Contains); + public static BCTrigger triggerSpaceInventory = new TriggerInventory(DefaultProps.TRIGGER_SPACE_INVENTORY, TriggerInventory.State.Space); + public static BCTrigger triggerFullInventory = new TriggerInventory(DefaultProps.TRIGGER_FULL_INVENTORY, TriggerInventory.State.Full); + public static BCTrigger triggerEmptyLiquid = new TriggerLiquidContainer(DefaultProps.TRIGGER_EMPTY_LIQUID, TriggerLiquidContainer.State.Empty); + public static BCTrigger triggerContainsLiquid = new TriggerLiquidContainer(DefaultProps.TRIGGER_CONTAINS_LIQUID, TriggerLiquidContainer.State.Contains); + public static BCTrigger triggerSpaceLiquid = new TriggerLiquidContainer(DefaultProps.TRIGGER_SPACE_LIQUID, TriggerLiquidContainer.State.Space); + public static BCTrigger triggerFullLiquid = new TriggerLiquidContainer(DefaultProps.TRIGGER_FULL_LIQUID, TriggerLiquidContainer.State.Full); + public static BCTrigger triggerRedstoneActive = new TriggerRedstoneInput(DefaultProps.TRIGGER_REDSTONE_ACTIVE, true); + public static BCTrigger triggerRedstoneInactive = new TriggerRedstoneInput(DefaultProps.TRIGGER_REDSTONE_INACTIVE, false); - public static Action actionRedstone = new ActionRedstoneOutput(DefaultProps.ACTION_REDSTONE); - public static Action actionOn = new ActionMachineControl(DefaultProps.ACTION_ON, Mode.On); - public static Action actionOff = new ActionMachineControl(DefaultProps.ACTION_OFF, Mode.Off); - public static Action actionLoop = new ActionMachineControl(DefaultProps.ACTION_LOOP, Mode.Loop); + public static BCAction actionRedstone = new ActionRedstoneOutput(DefaultProps.ACTION_REDSTONE); + public static BCAction actionOn = new ActionMachineControl(DefaultProps.ACTION_ON, Mode.On); + public static BCAction actionOff = new ActionMachineControl(DefaultProps.ACTION_OFF, Mode.Off); + public static BCAction actionLoop = new ActionMachineControl(DefaultProps.ACTION_LOOP, Mode.Loop); public static boolean loadDefaultRecipes = true; public static boolean forcePneumaticPower = true; @@ -153,6 +155,8 @@ public class BuildCraftCore { public static BptItem[] itemBptProps = new BptItem[Item.itemsList.length]; public static Logger bcLog = Logger.getLogger("Buildcraft"); + + public IIconProvider actionTriggerIconProvider = new ActionTriggerIconProvider(); @Instance("BuildCraft|Core") public static BuildCraftCore instance; diff --git a/common/buildcraft/BuildCraftEnergy.java b/common/buildcraft/BuildCraftEnergy.java index c3d16e70..c00b61f3 100644 --- a/common/buildcraft/BuildCraftEnergy.java +++ b/common/buildcraft/BuildCraftEnergy.java @@ -24,7 +24,6 @@ import net.minecraftforge.liquids.LiquidDictionary; import net.minecraftforge.liquids.LiquidStack; import buildcraft.api.fuels.IronEngineCoolant; import buildcraft.api.fuels.IronEngineFuel; -import buildcraft.api.gates.Trigger; import buildcraft.api.recipes.RefineryRecipe; import buildcraft.core.BlockIndex; import buildcraft.core.DefaultProps; @@ -32,6 +31,7 @@ import buildcraft.core.ItemBuildCraft; import buildcraft.core.Version; import buildcraft.core.network.PacketHandler; import buildcraft.core.proxy.CoreProxy; +import buildcraft.core.triggers.BCTrigger; import buildcraft.energy.BlockEngine; import buildcraft.energy.BlockOilFlowing; import buildcraft.energy.BlockOilStill; @@ -76,10 +76,10 @@ public class BuildCraftEnergy { public static TreeMap saturationStored = new TreeMap(); - public static Trigger triggerBlueEngineHeat = new TriggerEngineHeat(DefaultProps.TRIGGER_BLUE_ENGINE_HEAT, EnergyStage.Blue); - public static Trigger triggerGreenEngineHeat = new TriggerEngineHeat(DefaultProps.TRIGGER_GREEN_ENGINE_HEAT, EnergyStage.Green); - public static Trigger triggerYellowEngineHeat = new TriggerEngineHeat(DefaultProps.TRIGGER_YELLOW_ENGINE_HEAT, EnergyStage.Yellow); - public static Trigger triggerRedEngineHeat = new TriggerEngineHeat(DefaultProps.TRIGGER_RED_ENGINE_HEAT, EnergyStage.Red); + public static BCTrigger triggerBlueEngineHeat = new TriggerEngineHeat(DefaultProps.TRIGGER_BLUE_ENGINE_HEAT, EnergyStage.Blue); + public static BCTrigger triggerGreenEngineHeat = new TriggerEngineHeat(DefaultProps.TRIGGER_GREEN_ENGINE_HEAT, EnergyStage.Green); + public static BCTrigger triggerYellowEngineHeat = new TriggerEngineHeat(DefaultProps.TRIGGER_YELLOW_ENGINE_HEAT, EnergyStage.Yellow); + public static BCTrigger triggerRedEngineHeat = new TriggerEngineHeat(DefaultProps.TRIGGER_RED_ENGINE_HEAT, EnergyStage.Red); @Instance("BuildCraft|Energy") public static BuildCraftEnergy instance; diff --git a/common/buildcraft/BuildCraftTransport.java b/common/buildcraft/BuildCraftTransport.java index 605ac78c..b2b43fc3 100644 --- a/common/buildcraft/BuildCraftTransport.java +++ b/common/buildcraft/BuildCraftTransport.java @@ -20,18 +20,18 @@ import net.minecraft.util.Icon; import net.minecraft.world.World; import net.minecraftforge.common.Configuration; import net.minecraftforge.common.Property; -import buildcraft.api.gates.Action; +import buildcraft.api.core.IIconProvider; import buildcraft.api.gates.ActionManager; -import buildcraft.api.gates.Trigger; import buildcraft.api.recipes.AssemblyRecipe; import buildcraft.api.transport.IExtractionHandler; import buildcraft.api.transport.IPipe; import buildcraft.api.transport.PipeManager; import buildcraft.core.DefaultProps; -import buildcraft.core.IIconProvider; import buildcraft.core.ItemBuildCraft; import buildcraft.core.Version; import buildcraft.core.proxy.CoreProxy; +import buildcraft.core.triggers.BCAction; +import buildcraft.core.triggers.BCTrigger; import buildcraft.transport.BlockGenericPipe; import buildcraft.transport.GateIconProvider; import buildcraft.transport.GuiHandler; @@ -147,24 +147,24 @@ public class BuildCraftTransport { public static Item pipeStructureCobblestone; public static int groupItemsTrigger; - public static Trigger triggerPipeEmpty = new TriggerPipeContents(DefaultProps.TRIGGER_PIPE_EMPTY, Kind.Empty); - public static Trigger triggerPipeItems = new TriggerPipeContents(DefaultProps.TRIGGER_PIPE_ITEMS, Kind.ContainsItems); - public static Trigger triggerPipeLiquids = new TriggerPipeContents(DefaultProps.TRIGGER_PIPE_LIQUIDS, Kind.ContainsLiquids); - public static Trigger triggerPipeEnergy = new TriggerPipeContents(DefaultProps.TRIGGER_PIPE_ENERGY, Kind.ContainsEnergy); - public static Trigger triggerRedSignalActive = new TriggerPipeSignal(DefaultProps.TRIGGER_RED_SIGNAL_ACTIVE, true, IPipe.WireColor.Red); - public static Trigger triggerRedSignalInactive = new TriggerPipeSignal(DefaultProps.TRIGGER_RED_SIGNAL_INACTIVE, false, IPipe.WireColor.Red); - public static Trigger triggerBlueSignalActive = new TriggerPipeSignal(DefaultProps.TRIGGER_BLUE_SIGNAL_ACTIVE, true, IPipe.WireColor.Blue); - public static Trigger triggerBlueSignalInactive = new TriggerPipeSignal(DefaultProps.TRIGGER_BLUE_SIGNAL_INACTIVE, false, IPipe.WireColor.Blue); - public static Trigger triggerGreenSignalActive = new TriggerPipeSignal(DefaultProps.TRIGGER_GREEN_SIGNAL_ACTIVE, true, IPipe.WireColor.Green); - public static Trigger triggerGreenSignalInactive = new TriggerPipeSignal(DefaultProps.TRIGGER_GREEN_SIGNAL_INACTIVE, false, IPipe.WireColor.Green); - public static Trigger triggerYellowSignalActive = new TriggerPipeSignal(DefaultProps.TRIGGER_YELLOW_SIGNAL_ACTIVE, true, IPipe.WireColor.Yellow); - public static Trigger triggerYellowSignalInactive = new TriggerPipeSignal(DefaultProps.TRIGGER_YELLOW_SIGNAL_INACTIVE, false, IPipe.WireColor.Yellow); + public static BCTrigger triggerPipeEmpty = new TriggerPipeContents(DefaultProps.TRIGGER_PIPE_EMPTY, Kind.Empty); + public static BCTrigger triggerPipeItems = new TriggerPipeContents(DefaultProps.TRIGGER_PIPE_ITEMS, Kind.ContainsItems); + public static BCTrigger triggerPipeLiquids = new TriggerPipeContents(DefaultProps.TRIGGER_PIPE_LIQUIDS, Kind.ContainsLiquids); + public static BCTrigger triggerPipeEnergy = new TriggerPipeContents(DefaultProps.TRIGGER_PIPE_ENERGY, Kind.ContainsEnergy); + public static BCTrigger triggerRedSignalActive = new TriggerPipeSignal(DefaultProps.TRIGGER_RED_SIGNAL_ACTIVE, true, IPipe.WireColor.Red); + public static BCTrigger triggerRedSignalInactive = new TriggerPipeSignal(DefaultProps.TRIGGER_RED_SIGNAL_INACTIVE, false, IPipe.WireColor.Red); + public static BCTrigger triggerBlueSignalActive = new TriggerPipeSignal(DefaultProps.TRIGGER_BLUE_SIGNAL_ACTIVE, true, IPipe.WireColor.Blue); + public static BCTrigger triggerBlueSignalInactive = new TriggerPipeSignal(DefaultProps.TRIGGER_BLUE_SIGNAL_INACTIVE, false, IPipe.WireColor.Blue); + public static BCTrigger triggerGreenSignalActive = new TriggerPipeSignal(DefaultProps.TRIGGER_GREEN_SIGNAL_ACTIVE, true, IPipe.WireColor.Green); + public static BCTrigger triggerGreenSignalInactive = new TriggerPipeSignal(DefaultProps.TRIGGER_GREEN_SIGNAL_INACTIVE, false, IPipe.WireColor.Green); + public static BCTrigger triggerYellowSignalActive = new TriggerPipeSignal(DefaultProps.TRIGGER_YELLOW_SIGNAL_ACTIVE, true, IPipe.WireColor.Yellow); + public static BCTrigger triggerYellowSignalInactive = new TriggerPipeSignal(DefaultProps.TRIGGER_YELLOW_SIGNAL_INACTIVE, false, IPipe.WireColor.Yellow); - public static Action actionRedSignal = new ActionSignalOutput(DefaultProps.ACTION_RED_SIGNAL, IPipe.WireColor.Red); - public static Action actionBlueSignal = new ActionSignalOutput(DefaultProps.ACTION_BLUE_SIGNAL, IPipe.WireColor.Blue); - public static Action actionGreenSignal = new ActionSignalOutput(DefaultProps.ACTION_GREEN_SIGNAL, IPipe.WireColor.Green); - public static Action actionYellowSignal = new ActionSignalOutput(DefaultProps.ACTION_YELLOW_SIGNAL, IPipe.WireColor.Yellow); - public static Action actionEnergyPulser = new ActionEnergyPulser(DefaultProps.ACTION_ENERGY_PULSER); + public static BCAction actionRedSignal = new ActionSignalOutput(DefaultProps.ACTION_RED_SIGNAL, IPipe.WireColor.Red); + public static BCAction actionBlueSignal = new ActionSignalOutput(DefaultProps.ACTION_BLUE_SIGNAL, IPipe.WireColor.Blue); + public static BCAction actionGreenSignal = new ActionSignalOutput(DefaultProps.ACTION_GREEN_SIGNAL, IPipe.WireColor.Green); + public static BCAction actionYellowSignal = new ActionSignalOutput(DefaultProps.ACTION_YELLOW_SIGNAL, IPipe.WireColor.Yellow); + public static BCAction actionEnergyPulser = new ActionEnergyPulser(DefaultProps.ACTION_ENERGY_PULSER); @Instance("BuildCraft|Transport") public static BuildCraftTransport instance; diff --git a/common/buildcraft/core/IIconProvider.java b/common/buildcraft/api/core/IIconProvider.java similarity index 95% rename from common/buildcraft/core/IIconProvider.java rename to common/buildcraft/api/core/IIconProvider.java index 9f7a4195..dc259761 100644 --- a/common/buildcraft/core/IIconProvider.java +++ b/common/buildcraft/api/core/IIconProvider.java @@ -1,4 +1,4 @@ -package buildcraft.core; +package buildcraft.api.core; import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.util.Icon; diff --git a/common/buildcraft/api/gates/ActionManager.java b/common/buildcraft/api/gates/ActionManager.java index e81bece6..4c79dede 100644 --- a/common/buildcraft/api/gates/ActionManager.java +++ b/common/buildcraft/api/gates/ActionManager.java @@ -5,11 +5,13 @@ import java.util.LinkedList; import net.minecraft.block.Block; import net.minecraft.tileentity.TileEntity; import buildcraft.api.transport.IPipe; +import buildcraft.core.triggers.BCAction; +import buildcraft.core.triggers.BCTrigger; public class ActionManager { - public static Trigger[] triggers = new Trigger[1024]; - public static Action[] actions = new Action[1024]; + public static ITrigger[] triggers = new ITrigger[1024]; + public static IAction[] actions = new IAction[1024]; private static LinkedList triggerProviders = new LinkedList(); private static LinkedList actionProviders = new LinkedList(); diff --git a/common/buildcraft/api/gates/IAction.java b/common/buildcraft/api/gates/IAction.java index 7f1097d7..c57efc69 100644 --- a/common/buildcraft/api/gates/IAction.java +++ b/common/buildcraft/api/gates/IAction.java @@ -1,5 +1,6 @@ package buildcraft.api.gates; +import buildcraft.api.core.IIconProvider; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.util.Icon; @@ -10,7 +11,10 @@ public interface IAction { @SideOnly(Side.CLIENT) Icon getTexture(); - + + @SideOnly(Side.CLIENT) + IIconProvider getIconProvider(); + boolean hasParameter(); String getDescription(); diff --git a/common/buildcraft/api/gates/ITrigger.java b/common/buildcraft/api/gates/ITrigger.java index b7f10be3..017e7ec2 100644 --- a/common/buildcraft/api/gates/ITrigger.java +++ b/common/buildcraft/api/gates/ITrigger.java @@ -1,5 +1,6 @@ package buildcraft.api.gates; +import buildcraft.api.core.IIconProvider; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.tileentity.TileEntity; @@ -13,26 +14,29 @@ public interface ITrigger { * Return the texture file for this trigger icon */ @SideOnly(Side.CLIENT) - public abstract Icon getTextureIcon(); + public Icon getTextureIcon(); + + @SideOnly(Side.CLIENT) + public IIconProvider getIconProvider(); /** * Return true if this trigger can accept parameters */ - public abstract boolean hasParameter(); + public boolean hasParameter(); /** * Return the trigger description in the UI */ - public abstract String getDescription(); + public String getDescription(); /** * Return true if the tile given in parameter activates the trigger, given the parameters. */ - public abstract boolean isTriggerActive(TileEntity tile, ITriggerParameter parameter); + public boolean isTriggerActive(TileEntity tile, ITriggerParameter parameter); /** * Create parameters for the trigger. As for now, there is only one kind of trigger parameter available so this subprogram is final. */ - public abstract ITriggerParameter createParameter(); + public ITriggerParameter createParameter(); } diff --git a/common/buildcraft/core/triggers/ActionMachineControl.java b/common/buildcraft/core/triggers/ActionMachineControl.java index 957fb495..b609d636 100644 --- a/common/buildcraft/core/triggers/ActionMachineControl.java +++ b/common/buildcraft/core/triggers/ActionMachineControl.java @@ -4,11 +4,9 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.util.Icon; import buildcraft.BuildCraftTransport; -import buildcraft.api.gates.Action; import buildcraft.core.DefaultProps; -import buildcraft.transport.IconItemConstants; -public class ActionMachineControl extends Action { +public class ActionMachineControl extends BCAction { public enum Mode { Unknown, On, Off, Loop @@ -41,11 +39,11 @@ public class ActionMachineControl extends Action { public Icon getTexture() { switch (mode) { case On: - return BuildCraftTransport.instance.itemIcons[IconItemConstants.Action_MachineControl_On]; + return getIconProvider().getIcon(ActionTriggerIconProvider.Action_MachineControl_On); case Off: - return BuildCraftTransport.instance.itemIcons[IconItemConstants.Action_MachineControl_Off]; + return getIconProvider().getIcon(ActionTriggerIconProvider.Action_MachineControl_Off); case Loop: - return BuildCraftTransport.instance.itemIcons[IconItemConstants.Action_MachineControl_Loop]; + return getIconProvider().getIcon(ActionTriggerIconProvider.Action_MachineControl_Loop); default: return null; } diff --git a/common/buildcraft/core/triggers/ActionRedstoneOutput.java b/common/buildcraft/core/triggers/ActionRedstoneOutput.java index 63df04f3..199e7b9b 100644 --- a/common/buildcraft/core/triggers/ActionRedstoneOutput.java +++ b/common/buildcraft/core/triggers/ActionRedstoneOutput.java @@ -13,11 +13,9 @@ import net.minecraft.util.Icon; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import buildcraft.BuildCraftTransport; -import buildcraft.api.gates.Action; import buildcraft.core.DefaultProps; -import buildcraft.transport.IconItemConstants; -public class ActionRedstoneOutput extends Action { +public class ActionRedstoneOutput extends BCAction { public ActionRedstoneOutput(int id) { super(id); @@ -31,6 +29,6 @@ public class ActionRedstoneOutput extends Action { @Override @SideOnly(Side.CLIENT) public Icon getTexture() { - return BuildCraftTransport.instance.itemIcons[IconItemConstants.Trigger_RedstoneInput_Active]; + return getIconProvider().getIcon(ActionTriggerIconProvider.Trigger_RedstoneInput_Active); } } diff --git a/common/buildcraft/core/triggers/ActionTriggerIconProvider.java b/common/buildcraft/core/triggers/ActionTriggerIconProvider.java new file mode 100644 index 00000000..3f6b56f9 --- /dev/null +++ b/common/buildcraft/core/triggers/ActionTriggerIconProvider.java @@ -0,0 +1,100 @@ +package buildcraft.core.triggers; + +import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.util.Icon; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import buildcraft.api.core.IIconProvider; + +public class ActionTriggerIconProvider implements IIconProvider { + + public static final int Action_MachineControl_On = 0; + public static final int Action_MachineControl_Off = 1; + public static final int Action_MachineControl_Loop = 2; + + public static final int Trigger_EngineHeat_Blue = 3; + public static final int Trigger_EngineHeat_Green = 4; + public static final int Trigger_EngineHeat_Yellow = 5; + public static final int Trigger_EngineHeat_Red = 6; + public static final int Trigger_Inventory_Empty = 7; + public static final int Trigger_Inventory_Contains = 8; + public static final int Trigger_Inventory_Space = 9; + public static final int Trigger_Inventory_Full = 10; + public static final int Trigger_LiquidContainer_Empty = 11; + public static final int Trigger_LiquidContainer_Contains = 12; + public static final int Trigger_LiquidContainer_Space = 13; + public static final int Trigger_LiquidContainer_Full = 14; + public static final int Trigger_Machine_Active = 15; + public static final int Trigger_Machine_Inactive = 16; + public static final int Trigger_PipeContents_Empty = 17; + public static final int Trigger_PipeContents_ContainsItems = 18; + public static final int Trigger_PipeContents_ContainsLiquid = 19; + public static final int Trigger_PipeContents_ContainsEnergy = 20; + public static final int Trigger_PipeSignal_Red_Active = 21; + public static final int Trigger_PipeSignal_Blue_Active = 22; + public static final int Trigger_PipeSignal_Green_Active = 23; + public static final int Trigger_PipeSignal_Yellow_Active = 24; + public static final int Trigger_PipeSignal_Red_Inactive = 25; + public static final int Trigger_PipeSignal_Blue_Inactive = 26; + public static final int Trigger_PipeSignal_Green_Inactive = 27; + public static final int Trigger_PipeSignal_Yellow_Inactive = 28; + public static final int Trigger_RedstoneInput_Active = 29; + public static final int Trigger_RedstoneInput_Inactive = 30; + + public static final int MAX = 31; + + + @SideOnly(Side.CLIENT) + private Icon[] icons; + + private boolean registered = false; + + @Override + @SideOnly(Side.CLIENT) + public Icon getIcon(int iconIndex) { + return icons[iconIndex]; + } + + @Override + @SideOnly(Side.CLIENT) + public void RegisterIcons(IconRegister iconRegister) { + if (registered) return; + registered = true; + icons = new Icon[MAX]; + + icons[ActionTriggerIconProvider.Action_MachineControl_On] = iconRegister.func_94245_a("buildcraft:triggers/action_machinecontrol_on"); + icons[ActionTriggerIconProvider.Action_MachineControl_Off] = iconRegister.func_94245_a("buildcraft:triggers/action_machinecontrol_off"); + icons[ActionTriggerIconProvider.Action_MachineControl_Loop] = iconRegister.func_94245_a("buildcraft:triggers/action_machinecontrol_loop"); + + icons[ActionTriggerIconProvider.Trigger_EngineHeat_Blue] = iconRegister.func_94245_a("buildcraft:triggers/trigger_engineheat_blue"); + icons[ActionTriggerIconProvider.Trigger_EngineHeat_Green] = iconRegister.func_94245_a("buildcraft:triggers/trigger_engineheat_green"); + icons[ActionTriggerIconProvider.Trigger_EngineHeat_Yellow] = iconRegister.func_94245_a("buildcraft:triggers/trigger_engineheat_yellow"); + icons[ActionTriggerIconProvider.Trigger_EngineHeat_Red] = iconRegister.func_94245_a("buildcraft:triggers/trigger_engineheat_red"); + icons[ActionTriggerIconProvider.Trigger_Inventory_Empty] = iconRegister.func_94245_a("buildcraft:triggers/trigger_inventory_empty"); + icons[ActionTriggerIconProvider.Trigger_Inventory_Contains] = iconRegister.func_94245_a("buildcraft:triggers/trigger_inventory_contains"); + icons[ActionTriggerIconProvider.Trigger_Inventory_Space] = iconRegister.func_94245_a("buildcraft:triggers/trigger_inventory_space"); + icons[ActionTriggerIconProvider.Trigger_Inventory_Full] = iconRegister.func_94245_a("buildcraft:triggers/trigger_inventory_full"); + icons[ActionTriggerIconProvider.Trigger_LiquidContainer_Empty] = iconRegister.func_94245_a("buildcraft:triggers/trigger_liquidcontainer_empty"); + icons[ActionTriggerIconProvider.Trigger_LiquidContainer_Contains] = iconRegister.func_94245_a("buildcraft:triggers/trigger_liquidcontainer_contains"); + icons[ActionTriggerIconProvider.Trigger_LiquidContainer_Space] = iconRegister.func_94245_a("buildcraft:triggers/trigger_liquidcontainer_space"); + icons[ActionTriggerIconProvider.Trigger_LiquidContainer_Full] = iconRegister.func_94245_a("buildcraft:triggers/trigger_liquidcontainer_full"); + icons[ActionTriggerIconProvider.Trigger_Machine_Active] = iconRegister.func_94245_a("buildcraft:triggers/trigger_machine_active"); + icons[ActionTriggerIconProvider.Trigger_Machine_Inactive] = iconRegister.func_94245_a("buildcraft:triggers/trigger_machine_inactive"); + icons[ActionTriggerIconProvider.Trigger_PipeContents_Empty] = iconRegister.func_94245_a("buildcraft:triggers/trigger_pipecontents_empty"); + icons[ActionTriggerIconProvider.Trigger_PipeContents_ContainsItems] = iconRegister.func_94245_a("buildcraft:triggers/trigger_pipecontents_containsitems"); + icons[ActionTriggerIconProvider.Trigger_PipeContents_ContainsLiquid] = iconRegister.func_94245_a("buildcraft:triggers/trigger_pipecontents_containsliquid"); + icons[ActionTriggerIconProvider.Trigger_PipeContents_ContainsEnergy] = iconRegister.func_94245_a("buildcraft:triggers/trigger_pipecontents_containsenergy"); + icons[ActionTriggerIconProvider.Trigger_PipeSignal_Red_Active] = iconRegister.func_94245_a("buildcraft:triggers/trigger_pipesignal_red_active"); + icons[ActionTriggerIconProvider.Trigger_PipeSignal_Red_Inactive] = iconRegister.func_94245_a("buildcraft:triggers/trigger_pipesignal_red_inactive"); + icons[ActionTriggerIconProvider.Trigger_PipeSignal_Blue_Active] = iconRegister.func_94245_a("buildcraft:triggers/trigger_pipesignal_blue_active"); + icons[ActionTriggerIconProvider.Trigger_PipeSignal_Blue_Inactive] = iconRegister.func_94245_a("buildcraft:triggers/trigger_pipesignal_blue_inactive"); + icons[ActionTriggerIconProvider.Trigger_PipeSignal_Green_Active] = iconRegister.func_94245_a("buildcraft:triggers/trigger_pipesignal_green_active"); + icons[ActionTriggerIconProvider.Trigger_PipeSignal_Green_Inactive] = iconRegister.func_94245_a("buildcraft:triggers/trigger_pipesignal_green_inactive"); + icons[ActionTriggerIconProvider.Trigger_PipeSignal_Yellow_Active] = iconRegister.func_94245_a("buildcraft:triggers/trigger_pipesignal_yellow_active"); + icons[ActionTriggerIconProvider.Trigger_PipeSignal_Yellow_Inactive] = iconRegister.func_94245_a("buildcraft:triggers/trigger_pipesignal_yellow_inactive"); + icons[ActionTriggerIconProvider.Trigger_RedstoneInput_Active] = iconRegister.func_94245_a("buildcraft:triggers/trigger_redstoneinput_active"); + icons[ActionTriggerIconProvider.Trigger_RedstoneInput_Inactive] = iconRegister.func_94245_a("buildcraft:triggers/trigger_redstoneinput_inactive"); + + } + +} diff --git a/common/buildcraft/api/gates/Action.java b/common/buildcraft/core/triggers/BCAction.java similarity index 63% rename from common/buildcraft/api/gates/Action.java rename to common/buildcraft/core/triggers/BCAction.java index b0a1e6d7..2feb3fd1 100644 --- a/common/buildcraft/api/gates/Action.java +++ b/common/buildcraft/core/triggers/BCAction.java @@ -7,17 +7,21 @@ * http://www.mod-buildcraft.com/MMPL-1.0.txt */ -package buildcraft.api.gates; +package buildcraft.core.triggers; +import buildcraft.BuildCraftCore; +import buildcraft.api.core.IIconProvider; +import buildcraft.api.gates.ActionManager; +import buildcraft.api.gates.IAction; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.util.Icon; -public abstract class Action implements IAction { +public abstract class BCAction implements IAction { protected int id; - public Action(int id) { + public BCAction(int id) { this.id = id; ActionManager.actions[id] = this; } @@ -40,4 +44,12 @@ public abstract class Action implements IAction { public String getDescription() { return ""; } + + @Override + @SideOnly(Side.CLIENT) + public IIconProvider getIconProvider() { + return BuildCraftCore.instance.actionTriggerIconProvider; + } + + } diff --git a/common/buildcraft/api/gates/Trigger.java b/common/buildcraft/core/triggers/BCTrigger.java similarity index 56% rename from common/buildcraft/api/gates/Trigger.java rename to common/buildcraft/core/triggers/BCTrigger.java index 1f26b7e3..7e607abf 100644 --- a/common/buildcraft/api/gates/Trigger.java +++ b/common/buildcraft/core/triggers/BCTrigger.java @@ -7,8 +7,14 @@ * http://www.mod-buildcraft.com/MMPL-1.0.txt */ -package buildcraft.api.gates; +package buildcraft.core.triggers; +import buildcraft.BuildCraftCore; +import buildcraft.api.core.IIconProvider; +import buildcraft.api.gates.ActionManager; +import buildcraft.api.gates.ITrigger; +import buildcraft.api.gates.ITriggerParameter; +import buildcraft.api.gates.TriggerParameter; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.tileentity.TileEntity; @@ -18,73 +24,45 @@ import net.minecraft.util.Icon; * This class has to be implemented to create new triggers kinds to BuildCraft gates. There is an instance per kind, which will get called wherever the trigger * can be active. */ -public abstract class Trigger implements ITrigger { +public abstract class BCTrigger implements ITrigger { protected int id; - /** - * Creates a new triggers, and stores it in the trigger list - */ - public Trigger(int id) { + public BCTrigger(int id) { this.id = id; ActionManager.triggers[id] = this; } - /* - * (non-Javadoc) - * - * @see net.minecraft.src.buildcraft.api.gates.ITrigger#getId() - */ @Override public int getId() { return this.id; } - /* - * (non-Javadoc) - * - * @see net.minecraft.src.buildcraft.api.gates.ITrigger#getTextureFile() - */ - @SideOnly(Side.CLIENT) @Override + @SideOnly(Side.CLIENT) public abstract Icon getTextureIcon(); + + @Override + @SideOnly(Side.CLIENT) + public IIconProvider getIconProvider() { + return BuildCraftCore.instance.actionTriggerIconProvider; + } - /* - * (non-Javadoc) - * - * @see net.minecraft.src.buildcraft.api.gates.ITrigger#hasParameter() - */ @Override public boolean hasParameter() { return false; } - /* - * (non-Javadoc) - * - * @see net.minecraft.src.buildcraft.api.gates.ITrigger#getDescription() - */ @Override public String getDescription() { return ""; } - /* - * (non-Javadoc) - * - * @see net.minecraft.src.buildcraft.api.gates.ITrigger#isTriggerActive(net.minecraft.src.TileEntity, - * net.minecraft.src.buildcraft.api.gates.TriggerParameter) - */ @Override public boolean isTriggerActive(TileEntity tile, ITriggerParameter parameter) { return false; } - /* - * (non-Javadoc) - * - * @see net.minecraft.src.buildcraft.api.gates.ITrigger#createParameter() - */ @Override public final ITriggerParameter createParameter() { return new TriggerParameter(); diff --git a/common/buildcraft/core/triggers/TriggerInventory.java b/common/buildcraft/core/triggers/TriggerInventory.java index 8dbdb111..515d95f0 100644 --- a/common/buildcraft/core/triggers/TriggerInventory.java +++ b/common/buildcraft/core/triggers/TriggerInventory.java @@ -20,13 +20,11 @@ import net.minecraftforge.common.ISidedInventory; import buildcraft.BuildCraftTransport; import buildcraft.api.gates.ITriggerDirectional; import buildcraft.api.gates.ITriggerParameter; -import buildcraft.api.gates.Trigger; import buildcraft.core.DefaultProps; import buildcraft.core.utils.SidedInventoryAdapter; import buildcraft.core.utils.Utils; -import buildcraft.transport.IconItemConstants; -public class TriggerInventory extends Trigger implements ITriggerDirectional { +public class TriggerInventory extends BCTrigger implements ITriggerDirectional { public enum State { Empty, Contains, Space, Full @@ -129,13 +127,13 @@ public class TriggerInventory extends Trigger implements ITriggerDirectional { public Icon getTextureIcon() { switch (state) { case Empty: - return BuildCraftTransport.instance.itemIcons[IconItemConstants.Trigger_Inventory_Empty]; + return getIconProvider().getIcon(ActionTriggerIconProvider.Trigger_Inventory_Empty); case Contains: - return BuildCraftTransport.instance.itemIcons[IconItemConstants.Trigger_Inventory_Contains]; + return getIconProvider().getIcon(ActionTriggerIconProvider.Trigger_Inventory_Contains); case Space: - return BuildCraftTransport.instance.itemIcons[IconItemConstants.Trigger_Inventory_Space]; + return getIconProvider().getIcon(ActionTriggerIconProvider.Trigger_Inventory_Space); default: - return BuildCraftTransport.instance.itemIcons[IconItemConstants.Trigger_Inventory_Full]; + return getIconProvider().getIcon(ActionTriggerIconProvider.Trigger_Inventory_Full); } } } diff --git a/common/buildcraft/core/triggers/TriggerLiquidContainer.java b/common/buildcraft/core/triggers/TriggerLiquidContainer.java index c767a26c..35153105 100644 --- a/common/buildcraft/core/triggers/TriggerLiquidContainer.java +++ b/common/buildcraft/core/triggers/TriggerLiquidContainer.java @@ -20,11 +20,9 @@ import net.minecraftforge.liquids.LiquidContainerRegistry; import net.minecraftforge.liquids.LiquidStack; import buildcraft.BuildCraftTransport; import buildcraft.api.gates.ITriggerParameter; -import buildcraft.api.gates.Trigger; import buildcraft.core.DefaultProps; -import buildcraft.transport.IconItemConstants; -public class TriggerLiquidContainer extends Trigger { +public class TriggerLiquidContainer extends BCTrigger { public enum State { Empty, Contains, Space, Full @@ -132,13 +130,13 @@ public class TriggerLiquidContainer extends Trigger { public Icon getTextureIcon() { switch (state) { case Empty: - return BuildCraftTransport.instance.itemIcons[IconItemConstants.Trigger_LiquidContainer_Empty]; + return getIconProvider().getIcon(ActionTriggerIconProvider.Trigger_LiquidContainer_Empty); case Contains: - return BuildCraftTransport.instance.itemIcons[IconItemConstants.Trigger_LiquidContainer_Contains]; + return getIconProvider().getIcon(ActionTriggerIconProvider.Trigger_LiquidContainer_Contains); case Space: - return BuildCraftTransport.instance.itemIcons[IconItemConstants.Trigger_LiquidContainer_Space]; + return getIconProvider().getIcon(ActionTriggerIconProvider.Trigger_LiquidContainer_Space); default: - return BuildCraftTransport.instance.itemIcons[IconItemConstants.Trigger_LiquidContainer_Full]; + return getIconProvider().getIcon(ActionTriggerIconProvider.Trigger_LiquidContainer_Full); } } } diff --git a/common/buildcraft/core/triggers/TriggerMachine.java b/common/buildcraft/core/triggers/TriggerMachine.java index 7bdf92ec..132b2186 100644 --- a/common/buildcraft/core/triggers/TriggerMachine.java +++ b/common/buildcraft/core/triggers/TriggerMachine.java @@ -15,12 +15,10 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Icon; import buildcraft.BuildCraftTransport; import buildcraft.api.gates.ITriggerParameter; -import buildcraft.api.gates.Trigger; import buildcraft.core.DefaultProps; import buildcraft.core.IMachine; -import buildcraft.transport.IconItemConstants; -public class TriggerMachine extends Trigger { +public class TriggerMachine extends BCTrigger { boolean active; @@ -56,8 +54,8 @@ public class TriggerMachine extends Trigger { @SideOnly(Side.CLIENT) public Icon getTextureIcon() { if (active) - return BuildCraftTransport.instance.itemIcons[IconItemConstants.Trigger_Machine_Active]; + return getIconProvider().getIcon(ActionTriggerIconProvider.Trigger_Machine_Active); else - return BuildCraftTransport.instance.itemIcons[IconItemConstants.Trigger_Machine_Inactive]; + return getIconProvider().getIcon(ActionTriggerIconProvider.Trigger_Machine_Inactive); } } diff --git a/common/buildcraft/energy/TriggerEngineHeat.java b/common/buildcraft/energy/TriggerEngineHeat.java index 4395093a..db723c3c 100644 --- a/common/buildcraft/energy/TriggerEngineHeat.java +++ b/common/buildcraft/energy/TriggerEngineHeat.java @@ -15,11 +15,11 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Icon; import buildcraft.BuildCraftTransport; import buildcraft.api.gates.ITriggerParameter; -import buildcraft.api.gates.Trigger; import buildcraft.core.DefaultProps; -import buildcraft.transport.IconItemConstants; +import buildcraft.core.triggers.ActionTriggerIconProvider; +import buildcraft.core.triggers.BCTrigger; -public class TriggerEngineHeat extends Trigger { +public class TriggerEngineHeat extends BCTrigger { public Engine.EnergyStage stage; @@ -59,13 +59,13 @@ public class TriggerEngineHeat extends Trigger { public Icon getTextureIcon() { switch (stage) { case Blue: - return BuildCraftTransport.instance.itemIcons[IconItemConstants.Trigger_EngineHeat_Blue]; + return getIconProvider().getIcon(ActionTriggerIconProvider.Trigger_EngineHeat_Blue); case Green: - return BuildCraftTransport.instance.itemIcons[IconItemConstants.Trigger_EngineHeat_Green]; + return getIconProvider().getIcon(ActionTriggerIconProvider.Trigger_EngineHeat_Green); case Yellow: - return BuildCraftTransport.instance.itemIcons[IconItemConstants.Trigger_EngineHeat_Yellow]; + return getIconProvider().getIcon(ActionTriggerIconProvider.Trigger_EngineHeat_Yellow); default: - return BuildCraftTransport.instance.itemIcons[IconItemConstants.Trigger_EngineHeat_Red]; + return getIconProvider().getIcon(ActionTriggerIconProvider.Trigger_EngineHeat_Red); } } } diff --git a/common/buildcraft/energy/gui/GuiEngine.java b/common/buildcraft/energy/gui/GuiEngine.java index b2e8269a..14ee284f 100644 --- a/common/buildcraft/energy/gui/GuiEngine.java +++ b/common/buildcraft/energy/gui/GuiEngine.java @@ -1,6 +1,9 @@ package buildcraft.energy.gui; +import net.minecraft.block.Block; import net.minecraft.inventory.IInventory; +import net.minecraft.item.Item; +import buildcraft.BuildCraftTransport; import buildcraft.core.DefaultProps; import buildcraft.core.gui.BuildCraftContainer; import buildcraft.core.gui.GuiBuildCraft; @@ -30,7 +33,8 @@ public abstract class GuiEngine extends GuiBuildCraft { drawBackground(x, y); // Draw icon - drawIcon(DefaultProps.TEXTURE_ICONS, 0, x + 3, y + 4); + //drawIcon(DefaultProps.TEXTURE_ICONS, 0, x + 3, y + 4); + drawIcon(BuildCraftTransport.instance.wireIconProvider.getIcon(0), x + 3, y + 4); if (!isFullyOpened()) return; diff --git a/common/buildcraft/transport/BlockGenericPipe.java b/common/buildcraft/transport/BlockGenericPipe.java index 4d80eb1d..95d4e04f 100644 --- a/common/buildcraft/transport/BlockGenericPipe.java +++ b/common/buildcraft/transport/BlockGenericPipe.java @@ -35,6 +35,9 @@ import net.minecraft.world.World; import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftCore; import buildcraft.BuildCraftTransport; +import buildcraft.api.gates.ActionManager; +import buildcraft.api.gates.IAction; +import buildcraft.api.gates.ITrigger; import buildcraft.api.tools.IToolWrench; import buildcraft.api.transport.IPipe; import buildcraft.core.BlockIndex; @@ -61,6 +64,8 @@ public class BlockGenericPipe extends BlockContainer { public MovingObjectPosition movingObjectPosition; } + private boolean skippedFirstIconRegister; + /* Defined subprograms ************************************************* */ public BlockGenericPipe(int i) { @@ -855,6 +860,10 @@ public class BlockGenericPipe extends BlockContainer { @SideOnly(Side.CLIENT) public void func_94332_a(IconRegister iconRegister) { + if (!skippedFirstIconRegister){ + skippedFirstIconRegister = true; + return; + } BuildCraftTransport.instance.gateIconProvider.RegisterIcons(iconRegister); BuildCraftTransport.instance.wireIconProvider.RegisterIcons(iconRegister); for (int i : pipes.keySet()){ diff --git a/common/buildcraft/transport/GateIconProvider.java b/common/buildcraft/transport/GateIconProvider.java index 605ab39f..b3a2e257 100644 --- a/common/buildcraft/transport/GateIconProvider.java +++ b/common/buildcraft/transport/GateIconProvider.java @@ -4,7 +4,7 @@ import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.util.Icon; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import buildcraft.core.IIconProvider; +import buildcraft.api.core.IIconProvider; public class GateIconProvider implements IIconProvider { @@ -55,6 +55,8 @@ public class GateIconProvider implements IIconProvider { @SideOnly(Side.CLIENT) public void RegisterIcons(IconRegister iconRegister) { if (registered) return; + registered = true; + icons = new Icon[MAX]; icons[GateIconProvider.Gate_Dark] = iconRegister.func_94245_a("buildcraft:gate_dark"); icons[GateIconProvider.Gate_Lit] = iconRegister.func_94245_a("buildcraft:gate_lit"); diff --git a/common/buildcraft/transport/IPipeRenderState.java b/common/buildcraft/transport/IPipeRenderState.java index 0141effa..8c748259 100644 --- a/common/buildcraft/transport/IPipeRenderState.java +++ b/common/buildcraft/transport/IPipeRenderState.java @@ -1,6 +1,6 @@ package buildcraft.transport; -import buildcraft.core.IIconProvider; +import buildcraft.api.core.IIconProvider; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.util.Icon; diff --git a/common/buildcraft/transport/IconItemConstants.java b/common/buildcraft/transport/IconItemConstants.java deleted file mode 100644 index 5f1baae7..00000000 --- a/common/buildcraft/transport/IconItemConstants.java +++ /dev/null @@ -1,44 +0,0 @@ -package buildcraft.transport; - -public class IconItemConstants { - - - - - public static final int Action_MachineControl_On = 14; - public static final int Action_MachineControl_Off = 15; - public static final int Action_MachineControl_Loop = 16; - - public static final int Trigger_EngineHeat_Blue = 18; - public static final int Trigger_EngineHeat_Green = 19; - public static final int Trigger_EngineHeat_Yellow = 20; - public static final int Trigger_EngineHeat_Red = 21; - public static final int Trigger_Inventory_Empty = 22; - public static final int Trigger_Inventory_Contains = 23; - public static final int Trigger_Inventory_Space = 24; - public static final int Trigger_Inventory_Full = 25; - public static final int Trigger_LiquidContainer_Empty = 26; - public static final int Trigger_LiquidContainer_Contains = 27; - public static final int Trigger_LiquidContainer_Space = 28; - public static final int Trigger_LiquidContainer_Full = 29; - public static final int Trigger_Machine_Active = 30; - public static final int Trigger_Machine_Inactive = 31; - public static final int Trigger_PipeContents_Empty = 32; - public static final int Trigger_PipeContents_ContainsItems = 33; - public static final int Trigger_PipeContents_ContainsLiquid = 34; - public static final int Trigger_PipeContents_ContainsEnergy = 35; - public static final int Trigger_PipeSignal_Red_Active = 36; - public static final int Trigger_PipeSignal_Blue_Active = 37; - public static final int Trigger_PipeSignal_Green_Active = 38; - public static final int Trigger_PipeSignal_Yellow_Active = 39; - public static final int Trigger_PipeSignal_Red_Inactive = 40; - public static final int Trigger_PipeSignal_Blue_Inactive = 41; - public static final int Trigger_PipeSignal_Green_Inactive = 42; - public static final int Trigger_PipeSignal_Yellow_Inactive = 43; - public static final int Trigger_RedstoneInput_Active = 44; - public static final int Trigger_RedstoneInput_Inactive = 45; - - public static final int MAX = 46; - - -} diff --git a/common/buildcraft/transport/ItemGate.java b/common/buildcraft/transport/ItemGate.java index f3a33b57..e203db61 100644 --- a/common/buildcraft/transport/ItemGate.java +++ b/common/buildcraft/transport/ItemGate.java @@ -10,6 +10,9 @@ import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.ItemStack; import net.minecraft.util.Icon; import buildcraft.BuildCraftTransport; +import buildcraft.api.gates.ActionManager; +import buildcraft.api.gates.IAction; +import buildcraft.api.gates.ITrigger; import buildcraft.core.CreativeTabBuildCraft; import buildcraft.core.ItemBuildCraft; @@ -52,13 +55,6 @@ public class ItemGate extends ItemBuildCraft { @Override @SideOnly(Side.CLIENT) public Icon getIconFromDamage(int i) { - int n = 0; - if (series > 0) { - n = 3; - } else { - n = 2; - } - if (series == 0){ //Normal Gates switch (i) { case 0: @@ -119,6 +115,17 @@ public class ItemGate extends ItemBuildCraft { @SideOnly(Side.CLIENT) public void func_94581_a(IconRegister iconRegister) { + + for (IAction action : ActionManager.actions){ + if (action == null) continue; + action.getIconProvider().RegisterIcons(iconRegister); + } + + for (ITrigger trigger : ActionManager.triggers){ + if (trigger == null) continue; + trigger.getIconProvider().RegisterIcons(iconRegister); + } + icons = new Icon[ItemGate.MAX]; icons[ItemGate.Gate] = iconRegister.func_94245_a("buildcraft:gate"); icons[ItemGate.Gate_Iron_And] = iconRegister.func_94245_a("buildcraft:gate_iron_and"); diff --git a/common/buildcraft/transport/ItemPipe.java b/common/buildcraft/transport/ItemPipe.java index 904c6cd7..5fab1dfc 100644 --- a/common/buildcraft/transport/ItemPipe.java +++ b/common/buildcraft/transport/ItemPipe.java @@ -18,8 +18,8 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.Icon; import net.minecraft.world.World; import buildcraft.BuildCraftTransport; +import buildcraft.api.core.IIconProvider; import buildcraft.core.CreativeTabBuildCraft; -import buildcraft.core.IIconProvider; import buildcraft.core.IItemPipe; import buildcraft.core.ItemBuildCraft; import buildcraft.BuildCraftCore; diff --git a/common/buildcraft/transport/Pipe.java b/common/buildcraft/transport/Pipe.java index 8b2f01a0..410b1e24 100644 --- a/common/buildcraft/transport/Pipe.java +++ b/common/buildcraft/transport/Pipe.java @@ -28,21 +28,21 @@ import net.minecraft.util.Icon; import net.minecraft.world.World; import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftTransport; +import buildcraft.api.core.IIconProvider; import buildcraft.api.core.SafeTimeTracker; -import buildcraft.api.gates.Action; import buildcraft.api.gates.ActionManager; import buildcraft.api.gates.IAction; import buildcraft.api.gates.IActionReceptor; import buildcraft.api.gates.ITrigger; import buildcraft.api.gates.ITriggerDirectional; import buildcraft.api.gates.ITriggerParameter; -import buildcraft.api.gates.Trigger; import buildcraft.api.gates.TriggerParameter; import buildcraft.api.transport.IPipe; import buildcraft.core.IDropControlInventory; -import buildcraft.core.IIconProvider; import buildcraft.core.network.TilePacketWrapper; +import buildcraft.core.triggers.BCAction; import buildcraft.core.triggers.ActionRedstoneOutput; +import buildcraft.core.triggers.BCTrigger; import buildcraft.core.utils.Utils; import buildcraft.transport.Gate.GateConditional; import buildcraft.transport.pipes.PipeLogic; @@ -71,9 +71,9 @@ public abstract class Pipe implements IPipe, IDropControlInventory { @SuppressWarnings("rawtypes") private static Map networkWrappers = new HashMap(); - public ITrigger[] activatedTriggers = new Trigger[8]; + public ITrigger[] activatedTriggers = new BCTrigger[8]; public ITriggerParameter[] triggerParameters = new ITriggerParameter[8]; - public IAction[] activatedActions = new Action[8]; + public IAction[] activatedActions = new BCAction[8]; public boolean broadcastSignal[] = new boolean[] { false, false, false, false }; public boolean broadcastRedstone = false; @@ -529,9 +529,9 @@ public abstract class Pipe implements IPipe, IDropControlInventory { public void resetGate() { gate = null; - activatedTriggers = new Trigger[activatedTriggers.length]; + activatedTriggers = new BCTrigger[activatedTriggers.length]; triggerParameters = new ITriggerParameter[triggerParameters.length]; - activatedActions = new Action[activatedActions.length]; + activatedActions = new BCAction[activatedActions.length]; broadcastSignal = new boolean[] { false, false, false, false }; if (broadcastRedstone) { updateNeighbors(true); diff --git a/common/buildcraft/transport/PipeIconProvider.java b/common/buildcraft/transport/PipeIconProvider.java index 3f1ab00c..156a3f0d 100644 --- a/common/buildcraft/transport/PipeIconProvider.java +++ b/common/buildcraft/transport/PipeIconProvider.java @@ -4,7 +4,7 @@ import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.util.Icon; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import buildcraft.core.IIconProvider; +import buildcraft.api.core.IIconProvider; public class PipeIconProvider implements IIconProvider { @@ -60,6 +60,7 @@ public class PipeIconProvider implements IIconProvider { @SideOnly(Side.CLIENT) public void RegisterIcons(IconRegister iconRegister) { if (registered) return; + registered = true; _icons = new Icon[PipeIconProvider.MAX]; diff --git a/common/buildcraft/transport/TileGenericPipe.java b/common/buildcraft/transport/TileGenericPipe.java index 27249f9f..d6cf554f 100644 --- a/common/buildcraft/transport/TileGenericPipe.java +++ b/common/buildcraft/transport/TileGenericPipe.java @@ -30,6 +30,7 @@ import net.minecraftforge.liquids.ITankContainer; import net.minecraftforge.liquids.LiquidStack; import buildcraft.BuildCraftCore; import buildcraft.BuildCraftTransport; +import buildcraft.api.core.IIconProvider; import buildcraft.api.core.Position; import buildcraft.api.core.SafeTimeTracker; import buildcraft.api.gates.IOverrideDefaultTriggers; @@ -45,7 +46,6 @@ import buildcraft.api.transport.IPipedItem; import buildcraft.core.DefaultProps; import buildcraft.core.EntityPassiveItem; import buildcraft.core.IDropControlInventory; -import buildcraft.core.IIconProvider; import buildcraft.core.ITileBufferHolder; import buildcraft.core.TileBuffer; import buildcraft.core.network.IClientState; diff --git a/common/buildcraft/transport/TransportProxyClient.java b/common/buildcraft/transport/TransportProxyClient.java index bdf6378d..88bb0a4e 100644 --- a/common/buildcraft/transport/TransportProxyClient.java +++ b/common/buildcraft/transport/TransportProxyClient.java @@ -65,45 +65,4 @@ public class TransportProxyClient extends TransportProxy { public void setIconProviderFromPipe(ItemPipe item, Pipe dummyPipe) { item.setPipesIcons(dummyPipe.getIconProvider()); } - -// -// @Override -// public void loadItemIcons(BuildCraftTransport instance) { -// TextureMap itemTextures = Minecraft.getMinecraft().renderEngine.field_94155_m; -// -// -// instance.itemIcons[IconItemConstants.Action_MachineControl_On] = itemTextures.func_94245_a("buildcraft:triggers/action_machinecontrol_on"); -// instance.itemIcons[IconItemConstants.Action_MachineControl_Off] = itemTextures.func_94245_a("buildcraft:triggers/action_machinecontrol_off"); -// instance.itemIcons[IconItemConstants.Action_MachineControl_Loop] = itemTextures.func_94245_a("buildcraft:triggers/action_machinecontrol_loop"); -// -// instance.itemIcons[IconItemConstants.Trigger_EngineHeat_Blue] = itemTextures.func_94245_a("buildcraft:triggers/trigger_engineheat_blue"); -// instance.itemIcons[IconItemConstants.Trigger_EngineHeat_Green] = itemTextures.func_94245_a("buildcraft:triggers/trigger_engineheat_green"); -// instance.itemIcons[IconItemConstants.Trigger_EngineHeat_Yellow] = itemTextures.func_94245_a("buildcraft:triggers/trigger_engineheat_yellow"); -// instance.itemIcons[IconItemConstants.Trigger_EngineHeat_Red] = itemTextures.func_94245_a("buildcraft:triggers/trigger_engineheat_red"); -// instance.itemIcons[IconItemConstants.Trigger_Inventory_Empty] = itemTextures.func_94245_a("buildcraft:triggers/trigger_inventory_empty"); -// instance.itemIcons[IconItemConstants.Trigger_Inventory_Contains] = itemTextures.func_94245_a("buildcraft:triggers/trigger_inventory_contains"); -// instance.itemIcons[IconItemConstants.Trigger_Inventory_Space] = itemTextures.func_94245_a("buildcraft:triggers/trigger_inventory_space"); -// instance.itemIcons[IconItemConstants.Trigger_Inventory_Full] = itemTextures.func_94245_a("buildcraft:triggers/trigger_inventory_full"); -// instance.itemIcons[IconItemConstants.Trigger_LiquidContainer_Empty] = itemTextures.func_94245_a("buildcraft:triggers/trigger_liquidcontainer_empty"); -// instance.itemIcons[IconItemConstants.Trigger_LiquidContainer_Contains] = itemTextures.func_94245_a("buildcraft:triggers/trigger_liquidcontainer_contains"); -// instance.itemIcons[IconItemConstants.Trigger_LiquidContainer_Space] = itemTextures.func_94245_a("buildcraft:triggers/trigger_liquidcontainer_space"); -// instance.itemIcons[IconItemConstants.Trigger_LiquidContainer_Full] = itemTextures.func_94245_a("buildcraft:triggers/trigger_liquidcontainer_full"); -// instance.itemIcons[IconItemConstants.Trigger_Machine_Active] = itemTextures.func_94245_a("buildcraft:triggers/trigger_machine_active"); -// instance.itemIcons[IconItemConstants.Trigger_Machine_Inactive] = itemTextures.func_94245_a("buildcraft:triggers/trigger_machine_inactive"); -// instance.itemIcons[IconItemConstants.Trigger_PipeContents_Empty] = itemTextures.func_94245_a("buildcraft:triggers/trigger_pipecontents_empty"); -// instance.itemIcons[IconItemConstants.Trigger_PipeContents_ContainsItems] = itemTextures.func_94245_a("buildcraft:triggers/trigger_pipecontents_containsitems"); -// instance.itemIcons[IconItemConstants.Trigger_PipeContents_ContainsLiquid] = itemTextures.func_94245_a("buildcraft:triggers/trigger_pipecontents_containsliquid"); -// instance.itemIcons[IconItemConstants.Trigger_PipeContents_ContainsEnergy] = itemTextures.func_94245_a("buildcraft:triggers/trigger_pipecontents_containsenergy"); -// instance.itemIcons[IconItemConstants.Trigger_PipeSignal_Red_Active] = itemTextures.func_94245_a("buildcraft:triggers/trigger_pipesignal_red_active"); -// instance.itemIcons[IconItemConstants.Trigger_PipeSignal_Red_Inactive] = itemTextures.func_94245_a("buildcraft:triggers/trigger_pipesignal_red_inactive"); -// instance.itemIcons[IconItemConstants.Trigger_PipeSignal_Blue_Active] = itemTextures.func_94245_a("buildcraft:triggers/trigger_pipesignal_blue_active"); -// instance.itemIcons[IconItemConstants.Trigger_PipeSignal_Blue_Inactive] = itemTextures.func_94245_a("buildcraft:triggers/trigger_pipesignal_blue_inactive"); -// instance.itemIcons[IconItemConstants.Trigger_PipeSignal_Green_Active] = itemTextures.func_94245_a("buildcraft:triggers/trigger_pipesignal_green_active"); -// instance.itemIcons[IconItemConstants.Trigger_PipeSignal_Green_Inactive] = itemTextures.func_94245_a("buildcraft:triggers/trigger_pipesignal_green_inactive"); -// instance.itemIcons[IconItemConstants.Trigger_PipeSignal_Yellow_Active] = itemTextures.func_94245_a("buildcraft:triggers/trigger_pipesignal_yellow_active"); -// instance.itemIcons[IconItemConstants.Trigger_PipeSignal_Yellow_Inactive] = itemTextures.func_94245_a("buildcraft:triggers/trigger_pipesignal_yellow_inactive"); -// instance.itemIcons[IconItemConstants.Trigger_RedstoneInput_Active] = itemTextures.func_94245_a("buildcraft:triggers/trigger_redstoneinput_active"); -// instance.itemIcons[IconItemConstants.Trigger_RedstoneInput_Inactive] = itemTextures.func_94245_a("buildcraft:triggers/trigger_redstoneinput_inactive"); -// -// } } diff --git a/common/buildcraft/transport/WireIconProvider.java b/common/buildcraft/transport/WireIconProvider.java index cb5eb191..332becf3 100644 --- a/common/buildcraft/transport/WireIconProvider.java +++ b/common/buildcraft/transport/WireIconProvider.java @@ -4,7 +4,7 @@ import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.util.Icon; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import buildcraft.core.IIconProvider; +import buildcraft.api.core.IIconProvider; public class WireIconProvider implements IIconProvider { @@ -34,6 +34,8 @@ public class WireIconProvider implements IIconProvider { @SideOnly(Side.CLIENT) public void RegisterIcons(IconRegister iconRegister) { if (registered) return; + registered = true; + icons = new Icon[MAX]; icons[WireIconProvider.Texture_Red_Dark] = iconRegister.func_94245_a("buildcraft:texture_red_dark"); diff --git a/common/buildcraft/transport/pipes/PipeItemsCobblestone.java b/common/buildcraft/transport/pipes/PipeItemsCobblestone.java index 961f293f..2f693abe 100644 --- a/common/buildcraft/transport/pipes/PipeItemsCobblestone.java +++ b/common/buildcraft/transport/pipes/PipeItemsCobblestone.java @@ -10,7 +10,7 @@ package buildcraft.transport.pipes; import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftTransport; -import buildcraft.core.IIconProvider; +import buildcraft.api.core.IIconProvider; import buildcraft.transport.Pipe; import buildcraft.transport.PipeIconProvider; import buildcraft.transport.PipeTransportItems; diff --git a/common/buildcraft/transport/pipes/PipeItemsDiamond.java b/common/buildcraft/transport/pipes/PipeItemsDiamond.java index 25064219..e8f2abac 100644 --- a/common/buildcraft/transport/pipes/PipeItemsDiamond.java +++ b/common/buildcraft/transport/pipes/PipeItemsDiamond.java @@ -19,9 +19,9 @@ import net.minecraft.nbt.NBTBase; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftTransport; +import buildcraft.api.core.IIconProvider; import buildcraft.api.core.Position; import buildcraft.api.transport.IPipedItem; -import buildcraft.core.IIconProvider; import buildcraft.core.network.IClientState; import buildcraft.transport.IPipeTransportItemsHook; import buildcraft.transport.Pipe; diff --git a/common/buildcraft/transport/pipes/PipeItemsGold.java b/common/buildcraft/transport/pipes/PipeItemsGold.java index c3745db1..d39653a7 100644 --- a/common/buildcraft/transport/pipes/PipeItemsGold.java +++ b/common/buildcraft/transport/pipes/PipeItemsGold.java @@ -12,9 +12,9 @@ import java.util.LinkedList; import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftTransport; +import buildcraft.api.core.IIconProvider; import buildcraft.api.core.Position; import buildcraft.api.transport.IPipedItem; -import buildcraft.core.IIconProvider; import buildcraft.core.utils.Utils; import buildcraft.transport.IPipeTransportItemsHook; import buildcraft.transport.Pipe; diff --git a/common/buildcraft/transport/pipes/PipeItemsIron.java b/common/buildcraft/transport/pipes/PipeItemsIron.java index 2ac44b3e..8fd64a62 100644 --- a/common/buildcraft/transport/pipes/PipeItemsIron.java +++ b/common/buildcraft/transport/pipes/PipeItemsIron.java @@ -10,7 +10,7 @@ package buildcraft.transport.pipes; import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftTransport; -import buildcraft.core.IIconProvider; +import buildcraft.api.core.IIconProvider; import buildcraft.transport.Pipe; import buildcraft.transport.PipeIconProvider; import buildcraft.transport.PipeTransportItems; diff --git a/common/buildcraft/transport/pipes/PipeItemsObsidian.java b/common/buildcraft/transport/pipes/PipeItemsObsidian.java index 486d8e3e..d8e070db 100644 --- a/common/buildcraft/transport/pipes/PipeItemsObsidian.java +++ b/common/buildcraft/transport/pipes/PipeItemsObsidian.java @@ -20,13 +20,13 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftTransport; +import buildcraft.api.core.IIconProvider; import buildcraft.api.core.Position; import buildcraft.api.power.IPowerProvider; import buildcraft.api.power.IPowerReceptor; import buildcraft.api.power.PowerFramework; import buildcraft.api.transport.IPipedItem; import buildcraft.core.EntityPassiveItem; -import buildcraft.core.IIconProvider; import buildcraft.core.proxy.CoreProxy; import buildcraft.core.utils.Utils; import buildcraft.transport.Pipe; diff --git a/common/buildcraft/transport/pipes/PipeItemsSandstone.java b/common/buildcraft/transport/pipes/PipeItemsSandstone.java index 8e9cb18e..dd2a79e6 100644 --- a/common/buildcraft/transport/pipes/PipeItemsSandstone.java +++ b/common/buildcraft/transport/pipes/PipeItemsSandstone.java @@ -11,7 +11,7 @@ package buildcraft.transport.pipes; import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftTransport; -import buildcraft.core.IIconProvider; +import buildcraft.api.core.IIconProvider; import buildcraft.transport.Pipe; import buildcraft.transport.PipeIconProvider; import buildcraft.transport.PipeTransportItems; diff --git a/common/buildcraft/transport/pipes/PipeItemsStone.java b/common/buildcraft/transport/pipes/PipeItemsStone.java index 699f476a..0b07ac2d 100644 --- a/common/buildcraft/transport/pipes/PipeItemsStone.java +++ b/common/buildcraft/transport/pipes/PipeItemsStone.java @@ -12,9 +12,9 @@ import java.util.LinkedList; import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftTransport; +import buildcraft.api.core.IIconProvider; import buildcraft.api.core.Position; import buildcraft.api.transport.IPipedItem; -import buildcraft.core.IIconProvider; import buildcraft.core.utils.Utils; import buildcraft.transport.IPipeTransportItemsHook; import buildcraft.transport.Pipe; diff --git a/common/buildcraft/transport/pipes/PipeItemsVoid.java b/common/buildcraft/transport/pipes/PipeItemsVoid.java index 40a601fd..225aa334 100644 --- a/common/buildcraft/transport/pipes/PipeItemsVoid.java +++ b/common/buildcraft/transport/pipes/PipeItemsVoid.java @@ -12,7 +12,7 @@ package buildcraft.transport.pipes; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftTransport; -import buildcraft.core.IIconProvider; +import buildcraft.api.core.IIconProvider; import buildcraft.transport.EntityData; import buildcraft.transport.IItemTravelingHook; import buildcraft.transport.Pipe; diff --git a/common/buildcraft/transport/pipes/PipeItemsWood.java b/common/buildcraft/transport/pipes/PipeItemsWood.java index df3198fa..777dae89 100644 --- a/common/buildcraft/transport/pipes/PipeItemsWood.java +++ b/common/buildcraft/transport/pipes/PipeItemsWood.java @@ -15,6 +15,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.common.ISidedInventory; import buildcraft.BuildCraftTransport; +import buildcraft.api.core.IIconProvider; import buildcraft.api.core.Position; import buildcraft.api.inventory.ISpecialInventory; import buildcraft.api.power.IPowerProvider; @@ -23,7 +24,6 @@ import buildcraft.api.power.PowerFramework; import buildcraft.api.transport.IPipedItem; import buildcraft.api.transport.PipeManager; import buildcraft.core.EntityPassiveItem; -import buildcraft.core.IIconProvider; import buildcraft.core.RedstonePowerFramework; import buildcraft.core.utils.Utils; import buildcraft.transport.Pipe; diff --git a/common/buildcraft/transport/pipes/PipeLiquidsCobblestone.java b/common/buildcraft/transport/pipes/PipeLiquidsCobblestone.java index f8aba53e..ff9fca16 100644 --- a/common/buildcraft/transport/pipes/PipeLiquidsCobblestone.java +++ b/common/buildcraft/transport/pipes/PipeLiquidsCobblestone.java @@ -10,7 +10,7 @@ package buildcraft.transport.pipes; import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftTransport; -import buildcraft.core.IIconProvider; +import buildcraft.api.core.IIconProvider; import buildcraft.transport.Pipe; import buildcraft.transport.PipeIconProvider; import buildcraft.transport.PipeTransportLiquids; diff --git a/common/buildcraft/transport/pipes/PipeLiquidsGold.java b/common/buildcraft/transport/pipes/PipeLiquidsGold.java index 614b5420..dfe2372f 100644 --- a/common/buildcraft/transport/pipes/PipeLiquidsGold.java +++ b/common/buildcraft/transport/pipes/PipeLiquidsGold.java @@ -10,7 +10,7 @@ package buildcraft.transport.pipes; import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftTransport; -import buildcraft.core.IIconProvider; +import buildcraft.api.core.IIconProvider; import buildcraft.transport.Pipe; import buildcraft.transport.PipeIconProvider; import buildcraft.transport.PipeTransportLiquids; diff --git a/common/buildcraft/transport/pipes/PipeLiquidsIron.java b/common/buildcraft/transport/pipes/PipeLiquidsIron.java index 1b615307..a7cf4990 100644 --- a/common/buildcraft/transport/pipes/PipeLiquidsIron.java +++ b/common/buildcraft/transport/pipes/PipeLiquidsIron.java @@ -10,7 +10,7 @@ package buildcraft.transport.pipes; import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftTransport; -import buildcraft.core.IIconProvider; +import buildcraft.api.core.IIconProvider; import buildcraft.transport.Pipe; import buildcraft.transport.PipeIconProvider; import buildcraft.transport.PipeTransportLiquids; diff --git a/common/buildcraft/transport/pipes/PipeLiquidsSandstone.java b/common/buildcraft/transport/pipes/PipeLiquidsSandstone.java index 00a47c0a..b787858c 100644 --- a/common/buildcraft/transport/pipes/PipeLiquidsSandstone.java +++ b/common/buildcraft/transport/pipes/PipeLiquidsSandstone.java @@ -12,7 +12,7 @@ package buildcraft.transport.pipes; import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.liquids.LiquidStack; import buildcraft.BuildCraftTransport; -import buildcraft.core.IIconProvider; +import buildcraft.api.core.IIconProvider; import buildcraft.transport.IPipeTransportLiquidsHook; import buildcraft.transport.Pipe; import buildcraft.transport.PipeIconProvider; diff --git a/common/buildcraft/transport/pipes/PipeLiquidsStone.java b/common/buildcraft/transport/pipes/PipeLiquidsStone.java index 8e1420b5..51e8c37f 100644 --- a/common/buildcraft/transport/pipes/PipeLiquidsStone.java +++ b/common/buildcraft/transport/pipes/PipeLiquidsStone.java @@ -10,7 +10,7 @@ package buildcraft.transport.pipes; import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftTransport; -import buildcraft.core.IIconProvider; +import buildcraft.api.core.IIconProvider; import buildcraft.transport.Pipe; import buildcraft.transport.PipeIconProvider; import buildcraft.transport.PipeTransportLiquids; diff --git a/common/buildcraft/transport/pipes/PipeLiquidsVoid.java b/common/buildcraft/transport/pipes/PipeLiquidsVoid.java index 6a191027..56665e95 100644 --- a/common/buildcraft/transport/pipes/PipeLiquidsVoid.java +++ b/common/buildcraft/transport/pipes/PipeLiquidsVoid.java @@ -12,7 +12,7 @@ package buildcraft.transport.pipes; import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.liquids.LiquidStack; import buildcraft.BuildCraftTransport; -import buildcraft.core.IIconProvider; +import buildcraft.api.core.IIconProvider; import buildcraft.transport.IPipeTransportLiquidsHook; import buildcraft.transport.Pipe; import buildcraft.transport.PipeIconProvider; diff --git a/common/buildcraft/transport/pipes/PipeLiquidsWood.java b/common/buildcraft/transport/pipes/PipeLiquidsWood.java index d2193dda..6acaea61 100644 --- a/common/buildcraft/transport/pipes/PipeLiquidsWood.java +++ b/common/buildcraft/transport/pipes/PipeLiquidsWood.java @@ -15,12 +15,12 @@ import net.minecraftforge.liquids.ITankContainer; import net.minecraftforge.liquids.LiquidContainerRegistry; import net.minecraftforge.liquids.LiquidStack; import buildcraft.BuildCraftTransport; +import buildcraft.api.core.IIconProvider; import buildcraft.api.core.Position; import buildcraft.api.power.IPowerProvider; import buildcraft.api.power.IPowerReceptor; import buildcraft.api.power.PowerFramework; import buildcraft.api.transport.PipeManager; -import buildcraft.core.IIconProvider; import buildcraft.core.RedstonePowerFramework; import buildcraft.core.network.TileNetworkData; import buildcraft.transport.Pipe; diff --git a/common/buildcraft/transport/pipes/PipePowerGold.java b/common/buildcraft/transport/pipes/PipePowerGold.java index 0e0b9d55..3d673b1f 100644 --- a/common/buildcraft/transport/pipes/PipePowerGold.java +++ b/common/buildcraft/transport/pipes/PipePowerGold.java @@ -10,7 +10,7 @@ package buildcraft.transport.pipes; import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftTransport; -import buildcraft.core.IIconProvider; +import buildcraft.api.core.IIconProvider; import buildcraft.transport.Pipe; import buildcraft.transport.PipeIconProvider; import buildcraft.transport.PipeTransportPower; diff --git a/common/buildcraft/transport/pipes/PipePowerStone.java b/common/buildcraft/transport/pipes/PipePowerStone.java index 8b6c91f0..082fdbab 100644 --- a/common/buildcraft/transport/pipes/PipePowerStone.java +++ b/common/buildcraft/transport/pipes/PipePowerStone.java @@ -10,7 +10,7 @@ package buildcraft.transport.pipes; import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftTransport; -import buildcraft.core.IIconProvider; +import buildcraft.api.core.IIconProvider; import buildcraft.transport.Pipe; import buildcraft.transport.PipeIconProvider; import buildcraft.transport.PipeTransportPower; diff --git a/common/buildcraft/transport/pipes/PipePowerWood.java b/common/buildcraft/transport/pipes/PipePowerWood.java index 010742a0..e152a07f 100644 --- a/common/buildcraft/transport/pipes/PipePowerWood.java +++ b/common/buildcraft/transport/pipes/PipePowerWood.java @@ -11,10 +11,10 @@ package buildcraft.transport.pipes; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftTransport; +import buildcraft.api.core.IIconProvider; import buildcraft.api.power.IPowerProvider; import buildcraft.api.power.IPowerReceptor; import buildcraft.api.power.PowerFramework; -import buildcraft.core.IIconProvider; import buildcraft.core.utils.Utils; import buildcraft.transport.Pipe; import buildcraft.transport.PipeIconProvider; diff --git a/common/buildcraft/transport/pipes/PipeStructureCobblestone.java b/common/buildcraft/transport/pipes/PipeStructureCobblestone.java index 0808df28..450051ba 100644 --- a/common/buildcraft/transport/pipes/PipeStructureCobblestone.java +++ b/common/buildcraft/transport/pipes/PipeStructureCobblestone.java @@ -2,7 +2,7 @@ package buildcraft.transport.pipes; import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftTransport; -import buildcraft.core.IIconProvider; +import buildcraft.api.core.IIconProvider; import buildcraft.transport.Pipe; import buildcraft.transport.PipeIconProvider; import buildcraft.transport.PipeTransportStructure; diff --git a/common/buildcraft/transport/render/PipeWorldRenderer.java b/common/buildcraft/transport/render/PipeWorldRenderer.java index 4361c90e..0da895bd 100644 --- a/common/buildcraft/transport/render/PipeWorldRenderer.java +++ b/common/buildcraft/transport/render/PipeWorldRenderer.java @@ -6,9 +6,9 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.world.IBlockAccess; import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftTransport; +import buildcraft.api.core.IIconProvider; import buildcraft.api.transport.IPipe; import buildcraft.api.transport.IPipe.WireColor; -import buildcraft.core.IIconProvider; import buildcraft.core.utils.Utils; import buildcraft.transport.IPipeRenderState; import buildcraft.transport.PipeIconProvider; diff --git a/common/buildcraft/transport/triggers/ActionEnergyPulser.java b/common/buildcraft/transport/triggers/ActionEnergyPulser.java index 870b1e1b..5b8aca85 100644 --- a/common/buildcraft/transport/triggers/ActionEnergyPulser.java +++ b/common/buildcraft/transport/triggers/ActionEnergyPulser.java @@ -4,11 +4,11 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.util.Icon; import buildcraft.BuildCraftTransport; -import buildcraft.api.gates.Action; import buildcraft.core.DefaultProps; -import buildcraft.transport.IconItemConstants; +import buildcraft.core.triggers.ActionTriggerIconProvider; +import buildcraft.core.triggers.BCAction; -public class ActionEnergyPulser extends Action { +public class ActionEnergyPulser extends BCAction { public ActionEnergyPulser(int id) { super(id); @@ -17,7 +17,7 @@ public class ActionEnergyPulser extends Action { @Override @SideOnly(Side.CLIENT) public Icon getTexture() { - return BuildCraftTransport.instance.itemIcons[IconItemConstants.Trigger_Machine_Active]; + return getIconProvider().getIcon(ActionTriggerIconProvider.Trigger_Machine_Active); } @Override diff --git a/common/buildcraft/transport/triggers/ActionSignalOutput.java b/common/buildcraft/transport/triggers/ActionSignalOutput.java index 2febaf54..8fb7feeb 100644 --- a/common/buildcraft/transport/triggers/ActionSignalOutput.java +++ b/common/buildcraft/transport/triggers/ActionSignalOutput.java @@ -13,12 +13,12 @@ import net.minecraft.util.Icon; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import buildcraft.BuildCraftTransport; -import buildcraft.api.gates.Action; import buildcraft.api.transport.IPipe; import buildcraft.core.DefaultProps; -import buildcraft.transport.IconItemConstants; +import buildcraft.core.triggers.ActionTriggerIconProvider; +import buildcraft.core.triggers.BCAction; -public class ActionSignalOutput extends Action { +public class ActionSignalOutput extends BCAction { public IPipe.WireColor color; @@ -49,13 +49,13 @@ public class ActionSignalOutput extends Action { public Icon getTexture() { switch (color) { case Red: - return BuildCraftTransport.instance.itemIcons[IconItemConstants.Trigger_PipeSignal_Red_Active]; + return getIconProvider().getIcon(ActionTriggerIconProvider.Trigger_PipeSignal_Red_Active); case Blue: - return BuildCraftTransport.instance.itemIcons[IconItemConstants.Trigger_PipeSignal_Blue_Active]; + return getIconProvider().getIcon(ActionTriggerIconProvider.Trigger_PipeSignal_Blue_Active); case Green: - return BuildCraftTransport.instance.itemIcons[IconItemConstants.Trigger_PipeSignal_Green_Active]; + return getIconProvider().getIcon(ActionTriggerIconProvider.Trigger_PipeSignal_Green_Active); case Yellow: - return BuildCraftTransport.instance.itemIcons[IconItemConstants.Trigger_PipeSignal_Yellow_Active]; + return getIconProvider().getIcon(ActionTriggerIconProvider.Trigger_PipeSignal_Yellow_Active); } return null; diff --git a/common/buildcraft/transport/triggers/TriggerPipeContents.java b/common/buildcraft/transport/triggers/TriggerPipeContents.java index 1bd4858e..fc562626 100644 --- a/common/buildcraft/transport/triggers/TriggerPipeContents.java +++ b/common/buildcraft/transport/triggers/TriggerPipeContents.java @@ -18,17 +18,17 @@ import net.minecraftforge.liquids.LiquidContainerRegistry; import net.minecraftforge.liquids.LiquidStack; import buildcraft.BuildCraftTransport; import buildcraft.api.gates.ITriggerParameter; -import buildcraft.api.gates.Trigger; import buildcraft.core.DefaultProps; +import buildcraft.core.triggers.ActionTriggerIconProvider; +import buildcraft.core.triggers.BCTrigger; import buildcraft.transport.EntityData; import buildcraft.transport.ITriggerPipe; -import buildcraft.transport.IconItemConstants; import buildcraft.transport.Pipe; import buildcraft.transport.PipeTransportItems; import buildcraft.transport.PipeTransportLiquids; import buildcraft.transport.PipeTransportPower; -public class TriggerPipeContents extends Trigger implements ITriggerPipe { +public class TriggerPipeContents extends BCTrigger implements ITriggerPipe { public enum Kind { Empty, ContainsItems, ContainsLiquids, ContainsEnergy @@ -133,13 +133,13 @@ public class TriggerPipeContents extends Trigger implements ITriggerPipe { public Icon getTextureIcon() { switch (kind) { case Empty: - return BuildCraftTransport.instance.itemIcons[IconItemConstants.Trigger_PipeContents_Empty]; + return getIconProvider().getIcon(ActionTriggerIconProvider.Trigger_PipeContents_Empty); case ContainsItems: - return BuildCraftTransport.instance.itemIcons[IconItemConstants.Trigger_PipeContents_ContainsItems]; + return getIconProvider().getIcon(ActionTriggerIconProvider.Trigger_PipeContents_ContainsItems); case ContainsLiquids: - return BuildCraftTransport.instance.itemIcons[IconItemConstants.Trigger_PipeContents_ContainsLiquid]; + return getIconProvider().getIcon(ActionTriggerIconProvider.Trigger_PipeContents_ContainsLiquid); case ContainsEnergy: - return BuildCraftTransport.instance.itemIcons[IconItemConstants.Trigger_PipeContents_ContainsEnergy]; + return getIconProvider().getIcon(ActionTriggerIconProvider.Trigger_PipeContents_ContainsEnergy); } return null; } diff --git a/common/buildcraft/transport/triggers/TriggerPipeSignal.java b/common/buildcraft/transport/triggers/TriggerPipeSignal.java index 7a167b30..515cabfe 100644 --- a/common/buildcraft/transport/triggers/TriggerPipeSignal.java +++ b/common/buildcraft/transport/triggers/TriggerPipeSignal.java @@ -14,14 +14,14 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.util.Icon; import buildcraft.BuildCraftTransport; import buildcraft.api.gates.ITriggerParameter; -import buildcraft.api.gates.Trigger; import buildcraft.api.transport.IPipe; import buildcraft.core.DefaultProps; +import buildcraft.core.triggers.ActionTriggerIconProvider; +import buildcraft.core.triggers.BCTrigger; import buildcraft.transport.ITriggerPipe; -import buildcraft.transport.IconItemConstants; import buildcraft.transport.Pipe; -public class TriggerPipeSignal extends Trigger implements ITriggerPipe { +public class TriggerPipeSignal extends BCTrigger implements ITriggerPipe { boolean active; IPipe.WireColor color; @@ -81,24 +81,24 @@ public class TriggerPipeSignal extends Trigger implements ITriggerPipe { if (active) { switch (color) { case Red: - return BuildCraftTransport.instance.itemIcons[IconItemConstants.Trigger_PipeSignal_Red_Active]; + return getIconProvider().getIcon(ActionTriggerIconProvider.Trigger_PipeSignal_Red_Active); case Blue: - return BuildCraftTransport.instance.itemIcons[IconItemConstants.Trigger_PipeSignal_Blue_Active]; + return getIconProvider().getIcon(ActionTriggerIconProvider.Trigger_PipeSignal_Blue_Active); case Green: - return BuildCraftTransport.instance.itemIcons[IconItemConstants.Trigger_PipeSignal_Green_Active]; + return getIconProvider().getIcon(ActionTriggerIconProvider.Trigger_PipeSignal_Green_Active); case Yellow: - return BuildCraftTransport.instance.itemIcons[IconItemConstants.Trigger_PipeSignal_Yellow_Active]; + return getIconProvider().getIcon(ActionTriggerIconProvider.Trigger_PipeSignal_Yellow_Active); } } else { switch (color) { case Red: - return BuildCraftTransport.instance.itemIcons[IconItemConstants.Trigger_PipeSignal_Red_Inactive]; + return getIconProvider().getIcon(ActionTriggerIconProvider.Trigger_PipeSignal_Red_Inactive); case Blue: - return BuildCraftTransport.instance.itemIcons[IconItemConstants.Trigger_PipeSignal_Blue_Inactive]; + return getIconProvider().getIcon(ActionTriggerIconProvider.Trigger_PipeSignal_Blue_Inactive); case Green: - return BuildCraftTransport.instance.itemIcons[IconItemConstants.Trigger_PipeSignal_Green_Inactive]; + return getIconProvider().getIcon(ActionTriggerIconProvider.Trigger_PipeSignal_Green_Inactive); case Yellow: - return BuildCraftTransport.instance.itemIcons[IconItemConstants.Trigger_PipeSignal_Yellow_Inactive]; + return getIconProvider().getIcon(ActionTriggerIconProvider.Trigger_PipeSignal_Yellow_Inactive); } } diff --git a/common/buildcraft/transport/triggers/TriggerRedstoneInput.java b/common/buildcraft/transport/triggers/TriggerRedstoneInput.java index 399af203..56352739 100644 --- a/common/buildcraft/transport/triggers/TriggerRedstoneInput.java +++ b/common/buildcraft/transport/triggers/TriggerRedstoneInput.java @@ -14,13 +14,13 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import buildcraft.BuildCraftTransport; import buildcraft.api.gates.ITriggerParameter; -import buildcraft.api.gates.Trigger; import buildcraft.core.DefaultProps; +import buildcraft.core.triggers.ActionTriggerIconProvider; +import buildcraft.core.triggers.BCTrigger; import buildcraft.transport.ITriggerPipe; -import buildcraft.transport.IconItemConstants; import buildcraft.transport.Pipe; -public class TriggerRedstoneInput extends Trigger implements ITriggerPipe { +public class TriggerRedstoneInput extends BCTrigger implements ITriggerPipe { boolean active; @@ -50,8 +50,8 @@ public class TriggerRedstoneInput extends Trigger implements ITriggerPipe { @SideOnly(Side.CLIENT) public Icon getTextureIcon() { if (active) - return BuildCraftTransport.instance.itemIcons[IconItemConstants.Trigger_RedstoneInput_Active]; + return getIconProvider().getIcon(ActionTriggerIconProvider.Trigger_RedstoneInput_Active); else - return BuildCraftTransport.instance.itemIcons[IconItemConstants.Trigger_RedstoneInput_Inactive]; + return getIconProvider().getIcon(ActionTriggerIconProvider.Trigger_RedstoneInput_Inactive); } }