diff --git a/common/buildcraft/robotics/ResourceIdBlock.java b/api/buildcraft/api/robots/ResourceIdBlock.java similarity index 96% rename from common/buildcraft/robotics/ResourceIdBlock.java rename to api/buildcraft/api/robots/ResourceIdBlock.java index 3cf67475..d958d4fe 100755 --- a/common/buildcraft/robotics/ResourceIdBlock.java +++ b/api/buildcraft/api/robots/ResourceIdBlock.java @@ -6,7 +6,7 @@ * License 1.0, or MMPL. Please check the contents of the license located in * http://www.mod-buildcraft.com/MMPL-1.0.txt */ -package buildcraft.robotics; +package buildcraft.api.robots; import net.minecraft.tileentity.TileEntity; diff --git a/api/buildcraft/api/robots/ResourceIdRequest.java b/api/buildcraft/api/robots/ResourceIdRequest.java index db602816..f7d138a8 100755 --- a/api/buildcraft/api/robots/ResourceIdRequest.java +++ b/api/buildcraft/api/robots/ResourceIdRequest.java @@ -6,7 +6,7 @@ * License 1.0, or MMPL. Please check the contents of the license located in * http://www.mod-buildcraft.com/MMPL-1.0.txt */ -package buildcraft.robotics; +package buildcraft.api.robots; import net.minecraft.tileentity.TileEntity; diff --git a/api/buildcraft/api/robots/RobotManager.java b/api/buildcraft/api/robots/RobotManager.java index e50eaa9d..dd39b4d8 100644 --- a/api/buildcraft/api/robots/RobotManager.java +++ b/api/buildcraft/api/robots/RobotManager.java @@ -16,19 +16,25 @@ public abstract class RobotManager { public static IRobotRegistryProvider registryProvider; public static ArrayList> aiRobots = new ArrayList>(); - private static Map, String> aiRobotsNames = - new HashMap, String>(); - private static Map> aiRobotsByNames = - new HashMap>(); - private static Map> aiRobotsByLegacyClassNames = - new HashMap>(); + static { + aiRobotsByNames = new HashMap>(); + aiRobotsNames = new HashMap, String>(); + aiRobotsByLegacyClassNames = new HashMap>(); + resourceIdNames = new HashMap, String>(); + resourceIdByNames = new HashMap>(); + resourceIdLegacyClassNames = new HashMap>(); - private static Map, String> resourceIdNames = - new HashMap, String>(); - private static Map> resourceIdByNames = - new HashMap>(); - private static Map> resourceIdLegacyClassNames = - new HashMap>(); + registerResourceId(ResourceIdBlock.class, "resourceIdBlock", "buildcraft.core.robots.ResourceIdBlock"); + registerResourceId(ResourceIdRequest.class, "resourceIdRequest", "buildcraft.core.robots.ResourceIdRequest"); + } + + private static Map, String> aiRobotsNames; + private static Map> aiRobotsByNames; + private static Map> aiRobotsByLegacyClassNames; + + private static Map, String> resourceIdNames; + private static Map> resourceIdByNames; + private static Map> resourceIdLegacyClassNames; public static void registerAIRobot(Class aiRobot, String name) { registerAIRobot(aiRobot, name, null); diff --git a/common/buildcraft/BuildCraftBuilders.java b/common/buildcraft/BuildCraftBuilders.java index e065b9f1..f396d760 100644 --- a/common/buildcraft/BuildCraftBuilders.java +++ b/common/buildcraft/BuildCraftBuilders.java @@ -67,7 +67,7 @@ import buildcraft.builders.BlockMarker; import buildcraft.builders.BlockPathMarker; import buildcraft.builders.BuilderProxy; import buildcraft.builders.EventHandlerBuilders; -import buildcraft.builders.GuiHandler; +import buildcraft.builders.BuildersGuiHandler; import buildcraft.builders.HeuristicBlockDetection; import buildcraft.builders.ItemBlueprintStandard; import buildcraft.builders.ItemBlueprintTemplate; @@ -292,7 +292,7 @@ public class BuildCraftBuilders extends BuildCraftMod { @Mod.EventHandler public void init(FMLInitializationEvent evt) { // Register gui handler - NetworkRegistry.INSTANCE.registerGuiHandler(instance, new GuiHandler()); + NetworkRegistry.INSTANCE.registerGuiHandler(instance, new BuildersGuiHandler()); // Register save handler MinecraftForge.EVENT_BUS.register(new EventHandlerBuilders()); diff --git a/common/buildcraft/BuildCraftCore.java b/common/buildcraft/BuildCraftCore.java index 072edef2..e4929a82 100644 --- a/common/buildcraft/BuildCraftCore.java +++ b/common/buildcraft/BuildCraftCore.java @@ -41,7 +41,6 @@ import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.event.FMLServerStartingEvent; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.network.NetworkRegistry; -import cpw.mods.fml.common.registry.EntityRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -72,12 +71,13 @@ import buildcraft.api.statements.StatementManager; import buildcraft.api.statements.StatementParameterItemStack; import buildcraft.api.tiles.IControllable; import buildcraft.core.AchievementManager; +import buildcraft.core.BCCreativeTab; import buildcraft.core.BlockSpring; import buildcraft.core.BuildCraftConfiguration; import buildcraft.core.CommandBuildCraft; import buildcraft.core.CoreIconProvider; import buildcraft.core.DefaultProps; -import buildcraft.core.GuiHandler; +import buildcraft.core.CoreGuiHandler; import buildcraft.core.InterModComms; import buildcraft.core.ItemGear; import buildcraft.core.ItemList; @@ -89,7 +89,6 @@ import buildcraft.core.TickHandlerCore; import buildcraft.core.Version; import buildcraft.core.blueprints.SchematicRegistry; import buildcraft.core.network.ChannelHandler; -import buildcraft.core.network.EntityIds; import buildcraft.core.network.PacketHandler; import buildcraft.core.proxy.CoreProxy; import buildcraft.core.recipes.AssemblyRecipeManager; @@ -220,6 +219,8 @@ public class BuildCraftCore extends BuildCraftMod { public void loadConfiguration(FMLPreInitializationEvent evt) { BCLog.initLog(); + new BCCreativeTab("main"); + BuildcraftRecipeRegistry.assemblyTable = AssemblyRecipeManager.INSTANCE; BuildcraftRecipeRegistry.integrationTable = IntegrationRecipeManager.INSTANCE; BuildcraftRecipeRegistry.refinery = RefineryRecipeManager.INSTANCE; @@ -361,13 +362,16 @@ public class BuildCraftCore extends BuildCraftMod { if (BuildCraftCore.loadDefaultRecipes) { loadRecipes(); } + + BCCreativeTab.get("main").setIcon(new ItemStack(BuildCraftCore.wrenchItem, 1)); + EntityList.stringToClassMapping.remove("BuildCraft|Core.bcLaser"); EntityList.stringToClassMapping.remove("BuildCraft|Core.bcEnergyLaser"); CoreProxy.proxy.initializeRendering(); CoreProxy.proxy.initializeEntityRendering(); - NetworkRegistry.INSTANCE.registerGuiHandler(instance, new GuiHandler()); + NetworkRegistry.INSTANCE.registerGuiHandler(instance, new CoreGuiHandler()); } @Mod.EventHandler diff --git a/common/buildcraft/BuildCraftEnergy.java b/common/buildcraft/BuildCraftEnergy.java index ba6094e3..51f83f4b 100644 --- a/common/buildcraft/BuildCraftEnergy.java +++ b/common/buildcraft/BuildCraftEnergy.java @@ -62,7 +62,7 @@ import buildcraft.energy.BlockEnergyReceiver; import buildcraft.energy.BlockEngine; import buildcraft.energy.BucketHandler; import buildcraft.energy.EnergyProxy; -import buildcraft.energy.GuiHandler; +import buildcraft.energy.EnergyGuiHandler; import buildcraft.energy.IMCHandlerEnergy; import buildcraft.energy.ItemBucketBuildcraft; import buildcraft.energy.ItemEngine; @@ -351,7 +351,7 @@ public class BuildCraftEnergy extends BuildCraftMod { channels = NetworkRegistry.INSTANCE.newChannel (DefaultProps.NET_CHANNEL_NAME + "-ENERGY", new ChannelHandler(), new PacketHandlerTransport()); - NetworkRegistry.INSTANCE.registerGuiHandler(instance, new GuiHandler()); + NetworkRegistry.INSTANCE.registerGuiHandler(instance, new EnergyGuiHandler()); StatementManager.registerTriggerProvider(new EnergyStatementProvider()); diff --git a/common/buildcraft/BuildCraftFactory.java b/common/buildcraft/BuildCraftFactory.java index 2647a533..7a7e68ad 100644 --- a/common/buildcraft/BuildCraftFactory.java +++ b/common/buildcraft/BuildCraftFactory.java @@ -58,7 +58,7 @@ import buildcraft.factory.BlockRefinery; import buildcraft.factory.BlockTank; import buildcraft.factory.FactoryProxy; import buildcraft.factory.FactoryProxyClient; -import buildcraft.factory.GuiHandler; +import buildcraft.factory.FactoryGuiHandler; import buildcraft.factory.PumpDimensionList; import buildcraft.factory.TileAutoWorkbench; import buildcraft.factory.TileFloodGate; @@ -147,7 +147,7 @@ public class BuildCraftFactory extends BuildCraftMod { @Mod.EventHandler public void load(FMLInitializationEvent evt) { - NetworkRegistry.INSTANCE.registerGuiHandler(instance, new GuiHandler()); + NetworkRegistry.INSTANCE.registerGuiHandler(instance, new FactoryGuiHandler()); // EntityRegistry.registerModEntity(EntityMechanicalArm.class, "bcMechanicalArm", EntityIds.MECHANICAL_ARM, instance, 50, 1, true); diff --git a/common/buildcraft/BuildCraftRobotics.java b/common/buildcraft/BuildCraftRobotics.java index f957e298..631bcec7 100644 --- a/common/buildcraft/BuildCraftRobotics.java +++ b/common/buildcraft/BuildCraftRobotics.java @@ -11,15 +11,18 @@ package buildcraft; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.stats.Achievement; +import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLInterModComms; import cpw.mods.fml.common.event.FMLMissingMappingsEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; +import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.registry.EntityRegistry; import cpw.mods.fml.common.registry.GameRegistry; import buildcraft.api.boards.RedstoneBoardRegistry; @@ -28,21 +31,22 @@ import buildcraft.api.robots.RobotManager; import buildcraft.api.statements.IActionInternal; import buildcraft.api.statements.ITriggerInternal; import buildcraft.api.statements.StatementManager; +import buildcraft.core.BCCreativeTab; +import buildcraft.core.CompatHooks; import buildcraft.core.DefaultProps; import buildcraft.core.InterModComms; import buildcraft.core.Version; import buildcraft.core.network.EntityIds; import buildcraft.core.proxy.CoreProxy; +import buildcraft.robotics.BlockRequester; +import buildcraft.robotics.BlockZonePlan; import buildcraft.robotics.BoardProgrammingRecipe; import buildcraft.robotics.EntityRobot; import buildcraft.robotics.ImplRedstoneBoardRegistry; import buildcraft.robotics.ItemRedstoneBoard; import buildcraft.robotics.ItemRobot; -import buildcraft.robotics.RobotRegistry; import buildcraft.robotics.RobotRegistryProvider; -import buildcraft.silicon.ResourceIdAssemblyTable; -import buildcraft.robotics.ResourceIdBlock; -import buildcraft.robotics.ResourceIdRequest; +import buildcraft.robotics.RoboticsGuiHandler; import buildcraft.robotics.RobotIntegrationRecipe; import buildcraft.robotics.RoboticsProxy; import buildcraft.robotics.ai.AIRobotAttack; @@ -143,6 +147,9 @@ public class BuildCraftRobotics extends BuildCraftMod { @Mod.Instance("BuildCraft|Robotics") public static BuildCraftRobotics instance; + public static BlockZonePlan zonePlanBlock; + public static BlockRequester requesterBlock; + public static ItemRedstoneBoard redstoneBoard; public static Item robotItem; @@ -172,12 +179,14 @@ public class BuildCraftRobotics extends BuildCraftMod { @Mod.EventHandler public void preInit(FMLPreInitializationEvent evt) { + new BCCreativeTab("boards"); + chipsetCostMultiplier = BuildCraftCore.mainConfiguration.getFloat("chipset.costMultiplier", "general", 1.0F, 0.001F, 1000.0F, "The multiplier for chipset recipe cost."); blacklistedRobots = new ArrayList(); blacklistedRobots.addAll(Arrays.asList(BuildCraftCore.mainConfiguration.get("general", "boards.blacklist", new String[]{}).getStringList())); - BuildCraftCore.mainConfiguration.save(); + BuildCraftCore.mainConfiguration.save(); robotItem = new ItemRobot().setUnlocalizedName("robot"); CoreProxy.proxy.registerItem(robotItem); @@ -186,6 +195,14 @@ public class BuildCraftRobotics extends BuildCraftMod { redstoneBoard.setUnlocalizedName("redstone_board"); CoreProxy.proxy.registerItem(redstoneBoard); + zonePlanBlock = (BlockZonePlan) CompatHooks.INSTANCE.getBlock(BlockZonePlan.class); + zonePlanBlock.setBlockName("zonePlan"); + CoreProxy.proxy.registerBlock(zonePlanBlock); + + requesterBlock = (BlockRequester) CompatHooks.INSTANCE.getBlock(BlockRequester.class); + requesterBlock.setBlockName("requester"); + CoreProxy.proxy.registerBlock(requesterBlock); + RedstoneBoardRegistry.instance = new ImplRedstoneBoardRegistry(); RedstoneBoardRegistry.instance.registerBoardClass(BoardRobotPickerNBT.instance, 20); @@ -207,7 +224,9 @@ public class BuildCraftRobotics extends BuildCraftMod { RedstoneBoardRegistry.instance.registerBoardClass(BoardRobotKnightNBT.instance, 1); RedstoneBoardRegistry.instance.registerBoardClass(BoardRobotBomberNBT.instance, 1); - RedstoneBoardRegistry.instance.registerBoardClass(BoardRobotBuilderNBT.instance, 0.5F); + if (Loader.isModLoaded("BuildCraft|Builders")) { + RedstoneBoardRegistry.instance.registerBoardClass(BoardRobotBuilderNBT.instance, 0.5F); + } RedstoneBoardRegistry.instance.registerBoardClass(BoardRobotStripesNBT.instance, 0.5F); StatementManager.registerActionProvider(new RobotsActionProvider()); @@ -216,17 +235,23 @@ public class BuildCraftRobotics extends BuildCraftMod { @Mod.EventHandler public void init(FMLInitializationEvent evt) { + NetworkRegistry.INSTANCE.registerGuiHandler(instance, new RoboticsGuiHandler()); + if (BuildCraftCore.loadDefaultRecipes) { loadRecipes(); } + BCCreativeTab.get("boards").setIcon(new ItemStack(BuildCraftRobotics.redstoneBoard, 1)); + EntityRegistry.registerModEntity(EntityRobot.class, "bcRobot", EntityIds.ROBOT, instance, 50, 1, true); RobotManager.registryProvider = new RobotRegistryProvider(); RobotManager.registerAIRobot(AIRobotMain.class, "aiRobotMain", "buildcraft.core.robots.AIRobotMain"); RobotManager.registerAIRobot(BoardRobotBomber.class, "boardRobotBomber", "buildcraft.core.robots.boards.BoardRobotBomber"); - RobotManager.registerAIRobot(BoardRobotBuilder.class, "boardRobotBuilder", "buildcraft.core.robots.boards.BoardRobotBuilder"); + if (Loader.isModLoaded("BuildCraft|Builders")) { + RobotManager.registerAIRobot(BoardRobotBuilder.class, "boardRobotBuilder", "buildcraft.core.robots.boards.BoardRobotBuilder"); + } RobotManager.registerAIRobot(BoardRobotButcher.class, "boardRobotButcher", "buildcraft.core.robots.boards.BoardRobotButcher"); RobotManager.registerAIRobot(BoardRobotCarrier.class, "boardRobotCarrier", "buildcraft.core.robots.boards.BoardRobotCarrier"); RobotManager.registerAIRobot(BoardRobotCrafter.class, "boardRobotCrafter", "buildcraft.core.robots.boards.BoardRobotCrafter"); @@ -280,9 +305,6 @@ public class BuildCraftRobotics extends BuildCraftMod { RobotManager.registerAIRobot(AIRobotUnload.class, "aiRobotUnload", "buildcraft.core.robots.AIRobotUnload"); RobotManager.registerAIRobot(AIRobotUnloadFluids.class, "aiRobotUnloadFluids", "buildcraft.core.robots.AIRobotUnloadFluids"); RobotManager.registerAIRobot(AIRobotUseToolOnBlock.class, "aiRobotUseToolOnBlock", "buildcraft.core.robots.AIRobotUseToolOnBlock"); - RobotManager.registerResourceId(ResourceIdAssemblyTable.class, "resourceIdAssemblyTable", "buildcraft.core.robots.ResourceIdAssemblyTable"); - RobotManager.registerResourceId(ResourceIdBlock.class, "resourceIdBlock", "buildcraft.core.robots.ResourceIdBlock"); - RobotManager.registerResourceId(ResourceIdRequest.class, "resourceIdRequest", "buildcraft.core.robots.ResourceIdRequest"); RoboticsProxy.proxy.registerRenderers(); } @@ -296,7 +318,6 @@ public class BuildCraftRobotics extends BuildCraftMod { 'R', BuildCraftSilicon.redstoneCrystal, 'C', ItemRedstoneChipset.Chipset.DIAMOND.getStack()); - CoreProxy.proxy.addCraftingRecipe(new ItemStack(redstoneBoard), "PPP", "PRP", @@ -304,6 +325,26 @@ public class BuildCraftRobotics extends BuildCraftMod { 'R', "dustRedstone", 'P', Items.paper); + CoreProxy.proxy.addCraftingRecipe(new ItemStack(zonePlanBlock, 1, 0), + "IRI", + "GMG", + "IDI", + 'M', Items.map, + 'R', "dustRedstone", + 'G', "gearGold", + 'D', "gearDiamond", + 'I', "ingotIron"); + + CoreProxy.proxy.addCraftingRecipe(new ItemStack(requesterBlock, 1, 0), + "IPI", + "GCG", + "IRI", + 'C', Blocks.chest, + 'R', "dustRedstone", + 'P', Blocks.piston, + 'G', "gearIron", + 'I', "ingotIron"); + BuildcraftRecipeRegistry.programmingTable.addRecipe(new BoardProgrammingRecipe()); BuildcraftRecipeRegistry.integrationTable.addRecipe(new RobotIntegrationRecipe("buildcraft:robotIntegration")); } @@ -312,17 +353,4 @@ public class BuildCraftRobotics extends BuildCraftMod { public void processRequests(FMLInterModComms.IMCEvent event) { InterModComms.processIMC(event); } - - @Mod.EventHandler - public void remap(FMLMissingMappingsEvent event) { - for (FMLMissingMappingsEvent.MissingMapping mapping: event.get()) { - if (mapping.type == GameRegistry.Type.ITEM) { - if (mapping.name.equals("BuildCraft|Silicon:robot")) { - mapping.remap(robotItem); - } else if (mapping.name.equals("BuildCraft|Silicon:redstone_board")) { - mapping.remap(redstoneBoard); - } - } - } - } } diff --git a/common/buildcraft/BuildCraftSilicon.java b/common/buildcraft/BuildCraftSilicon.java index f0cc0776..f6c29b1e 100644 --- a/common/buildcraft/BuildCraftSilicon.java +++ b/common/buildcraft/BuildCraftSilicon.java @@ -8,6 +8,7 @@ */ package buildcraft; +import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; @@ -25,13 +26,11 @@ import cpw.mods.fml.common.registry.GameRegistry; import net.minecraftforge.oredict.OreDictionary; import buildcraft.api.blueprints.BuilderAPI; -import buildcraft.api.boards.RedstoneBoardRegistry; import buildcraft.api.recipes.BuildcraftRecipeRegistry; +import buildcraft.api.robots.RobotManager; import buildcraft.builders.schematics.SchematicRotateMeta; -import buildcraft.commander.BlockRequester; -import buildcraft.commander.BlockZonePlan; -import buildcraft.commander.TileRequester; -import buildcraft.commander.TileZonePlan; +import buildcraft.robotics.TileRequester; +import buildcraft.robotics.TileZonePlan; import buildcraft.core.CompatHooks; import buildcraft.core.DefaultProps; import buildcraft.core.InterModComms; @@ -41,10 +40,11 @@ import buildcraft.core.network.ChannelHandler; import buildcraft.core.proxy.CoreProxy; import buildcraft.silicon.BlockLaser; import buildcraft.silicon.BlockLaserTable; -import buildcraft.silicon.GuiHandler; +import buildcraft.silicon.SiliconGuiHandler; import buildcraft.silicon.ItemLaserTable; import buildcraft.silicon.ItemRedstoneChipset; import buildcraft.silicon.ItemRedstoneChipset.Chipset; +import buildcraft.silicon.ResourceIdAssemblyTable; import buildcraft.silicon.SiliconProxy; import buildcraft.silicon.TileAdvancedCraftingTable; import buildcraft.silicon.TileAssemblyTable; @@ -62,8 +62,6 @@ public class BuildCraftSilicon extends BuildCraftMod { public static ItemRedstoneChipset redstoneChipset; public static BlockLaser laserBlock; public static BlockLaserTable assemblyTableBlock; - public static BlockZonePlan zonePlanBlock; - public static BlockRequester requesterBlock; public static Item redstoneCrystal; public static Achievement timeForSomeLogicAchievement; @@ -85,14 +83,6 @@ public class BuildCraftSilicon extends BuildCraftMod { assemblyTableBlock.setBlockName("laserTableBlock"); CoreProxy.proxy.registerBlock(assemblyTableBlock, ItemLaserTable.class); - zonePlanBlock = (BlockZonePlan) CompatHooks.INSTANCE.getBlock(BlockZonePlan.class); - zonePlanBlock.setBlockName("zonePlan"); - CoreProxy.proxy.registerBlock(zonePlanBlock); - - requesterBlock = (BlockRequester) CompatHooks.INSTANCE.getBlock(BlockRequester.class); - requesterBlock.setBlockName("requester"); - CoreProxy.proxy.registerBlock(requesterBlock); - redstoneChipset = new ItemRedstoneChipset(); redstoneChipset.setUnlocalizedName("redstoneChipset"); CoreProxy.proxy.registerItem(redstoneChipset); @@ -109,7 +99,7 @@ public class BuildCraftSilicon extends BuildCraftMod { .newChannel (DefaultProps.NET_CHANNEL_NAME + "-SILICON", new ChannelHandler(), new PacketHandlerSilicon()); - NetworkRegistry.INSTANCE.registerGuiHandler(instance, new GuiHandler()); + NetworkRegistry.INSTANCE.registerGuiHandler(instance, new SiliconGuiHandler()); CoreProxy.proxy.registerTileEntity(TileLaser.class, "net.minecraft.src.buildcraft.factory.TileLaser"); CoreProxy.proxy.registerTileEntity(TileAssemblyTable.class, "net.minecraft.src.buildcraft.factory.TileAssemblyTable"); @@ -126,6 +116,8 @@ public class BuildCraftSilicon extends BuildCraftMod { BuilderAPI.schematicRegistry.registerSchematicBlock(laserBlock, SchematicRotateMeta.class, new int[] {2, 5, 3, 4}, true); + RobotManager.registerResourceId(ResourceIdAssemblyTable.class, "resourceIdAssemblyTable", "buildcraft.core.robots.ResourceIdAssemblyTable"); + timeForSomeLogicAchievement = BuildCraftCore.achievementManager.registerAchievement(new Achievement("achievement.timeForSomeLogic", "timeForSomeLogicAchievement", 9, -2, assemblyTableBlock, BuildCraftCore.diamondGearAchievement)); tinglyLaserAchievement = BuildCraftCore.achievementManager.registerAchievement(new Achievement("achievement.tinglyLaser", "tinglyLaserAchievement", 11, -2, laserBlock, timeForSomeLogicAchievement)); @@ -192,27 +184,6 @@ public class BuildCraftSilicon extends BuildCraftMod { 'C', Items.emerald, 'G', "gearDiamond"); - // COMMANDER BLOCKS - CoreProxy.proxy.addCraftingRecipe(new ItemStack(zonePlanBlock, 1, 0), - "IRI", - "GMG", - "IDI", - 'M', Items.map, - 'R', "dustRedstone", - 'G', "gearGold", - 'D', "gearDiamond", - 'I', "ingotIron"); - - CoreProxy.proxy.addCraftingRecipe(new ItemStack(requesterBlock, 1, 0), - "IPI", - "GCG", - "IRI", - 'C', Blocks.chest, - 'R', "dustRedstone", - 'P', Blocks.piston, - 'G', "gearIron", - 'I', "ingotIron"); - // CHIPSETS BuildcraftRecipeRegistry.assemblyTable.addRecipe("buildcraft:redstoneChipset", Math.round(100000 * chipsetCostMultiplier), Chipset.RED.getStack(), "dustRedstone"); @@ -264,6 +235,25 @@ public class BuildCraftSilicon extends BuildCraftMod { mapping.remap(assemblyTableBlock); } } + + // Silicon -> Robotics migration code + if (mapping.type == GameRegistry.Type.ITEM) { + if (mapping.name.equals("BuildCraft|Silicon:robot")) { + mapping.remap((Item) Item.itemRegistry.getObject("BuildCraft|Robotics:robot")); + } else if (mapping.name.equals("BuildCraft|Silicon:redstone_board")) { + mapping.remap((Item) Item.itemRegistry.getObject("BuildCraft|Robotics:redstone_board")); + } else if (mapping.name.equals("BuildCraft|Silicon:requester")) { + mapping.remap((Item) Item.itemRegistry.getObject("BuildCraft|Robotics:requester")); + } else if (mapping.name.equals("BuildCraft|Silicon:zonePlan")) { + mapping.remap((Item) Item.itemRegistry.getObject("BuildCraft|Robotics:zonePlan")); + } + } else if (mapping.type == GameRegistry.Type.BLOCK) { + if (mapping.name.equals("BuildCraft|Silicon:requester")) { + mapping.remap(Block.getBlockFromName("BuildCraft|Robotics:requester")); + } else if (mapping.name.equals("BuildCraft|Silicon:zonePlan")) { + mapping.remap(Block.getBlockFromName("BuildCraft|Robotics:zonePlan")); + } + } } } } diff --git a/common/buildcraft/BuildCraftTransport.java b/common/buildcraft/BuildCraftTransport.java index 184f72ed..09bc19f0 100644 --- a/common/buildcraft/BuildCraftTransport.java +++ b/common/buildcraft/BuildCraftTransport.java @@ -46,7 +46,7 @@ import buildcraft.api.statements.StatementManager; import buildcraft.api.transport.PipeManager; import buildcraft.api.transport.PipeWire; import buildcraft.core.CompatHooks; -import buildcraft.core.CreativeTabBuildCraft; +import buildcraft.core.BCCreativeTab; import buildcraft.core.DefaultProps; import buildcraft.core.InterModComms; import buildcraft.core.ItemBuildCraft; @@ -61,7 +61,7 @@ import buildcraft.silicon.ItemRedstoneChipset.Chipset; import buildcraft.transport.BlockFilteredBuffer; import buildcraft.transport.BlockGenericPipe; import buildcraft.transport.FacadePluggable; -import buildcraft.transport.GuiHandler; +import buildcraft.transport.TransportGuiHandler; import buildcraft.transport.IMCHandlerTransport; import buildcraft.transport.ItemFacade; import buildcraft.transport.ItemGateCopier; @@ -263,6 +263,9 @@ public class BuildCraftTransport extends BuildCraftMod { @Mod.EventHandler public void preInit(FMLPreInitializationEvent evt) { + new BCCreativeTab("pipes"); + new BCCreativeTab("facades"); + try { Property durability = BuildCraftCore.mainConfiguration.get("general", "pipes.durability", DefaultProps.PIPES_DURABILITY); durability.comment = "How long a pipe will take to break"; @@ -333,45 +336,45 @@ public class BuildCraftTransport extends BuildCraftMod { CoreProxy.proxy.registerBlock(genericPipeBlock.setBlockName("pipeBlock"), ItemBlock.class); - pipeItemsWood = buildPipe(PipeItemsWood.class, "Wooden Transport Pipe", CreativeTabBuildCraft.PIPES, "plankWood", Blocks.glass, "plankWood"); - pipeItemsEmerald = buildPipe(PipeItemsEmerald.class, "Emerald Transport Pipe", CreativeTabBuildCraft.PIPES, "gemEmerald", Blocks.glass, "gemEmerald"); - pipeItemsCobblestone = buildPipe(PipeItemsCobblestone.class, "Cobblestone Transport Pipe", CreativeTabBuildCraft.PIPES, "cobblestone", Blocks.glass, "cobblestone"); - pipeItemsStone = buildPipe(PipeItemsStone.class, "Stone Transport Pipe", CreativeTabBuildCraft.PIPES, "stone", Blocks.glass, "stone"); - pipeItemsQuartz = buildPipe(PipeItemsQuartz.class, "Quartz Transport Pipe", CreativeTabBuildCraft.PIPES, "blockQuartz", Blocks.glass, "blockQuartz"); - pipeItemsIron = buildPipe(PipeItemsIron.class, "Iron Transport Pipe", CreativeTabBuildCraft.PIPES, "ingotIron", Blocks.glass, "ingotIron"); - pipeItemsGold = buildPipe(PipeItemsGold.class, "Golden Transport Pipe", CreativeTabBuildCraft.PIPES, "ingotGold", Blocks.glass, "ingotGold"); - pipeItemsDiamond = buildPipe(PipeItemsDiamond.class, "Diamond Transport Pipe", CreativeTabBuildCraft.PIPES, "gemDiamond", Blocks.glass, "gemDiamond"); - pipeItemsObsidian = buildPipe(PipeItemsObsidian.class, "Obsidian Transport Pipe", CreativeTabBuildCraft.PIPES, Blocks.obsidian, Blocks.glass, Blocks.obsidian); - pipeItemsLapis = buildPipe(PipeItemsLapis.class, "Lapis Transport Pipe", CreativeTabBuildCraft.PIPES, "blockLapis", Blocks.glass, "blockLapis"); - pipeItemsDaizuli = buildPipe(PipeItemsDaizuli.class, "Daizuli Transport Pipe", CreativeTabBuildCraft.PIPES, "blockLapis", Blocks.glass, "gemDiamond"); - pipeItemsSandstone = buildPipe(PipeItemsSandstone.class, "Sandstone Transport Pipe", CreativeTabBuildCraft.PIPES, Blocks.sandstone, Blocks.glass, Blocks.sandstone); - pipeItemsVoid = buildPipe(PipeItemsVoid.class, "Void Transport Pipe", CreativeTabBuildCraft.PIPES, "dyeBlack", Blocks.glass, "dustRedstone"); - pipeItemsEmzuli = buildPipe(PipeItemsEmzuli.class, "Emzuli Transport Pipe", CreativeTabBuildCraft.PIPES, "blockLapis", Blocks.glass, "gemEmerald"); - pipeItemsStripes = buildPipe(PipeItemsStripes.class, "Stripes Transport Pipe", CreativeTabBuildCraft.PIPES, "gearGold", Blocks.glass, "gearGold"); - pipeItemsClay = buildPipe(PipeItemsClay.class, "Clay Transport Pipe", CreativeTabBuildCraft.PIPES, Blocks.clay, Blocks.glass, Blocks.clay); + pipeItemsWood = buildPipe(PipeItemsWood.class, "Wooden Transport Pipe", BCCreativeTab.get("pipes"), "plankWood", Blocks.glass, "plankWood"); + pipeItemsEmerald = buildPipe(PipeItemsEmerald.class, "Emerald Transport Pipe", BCCreativeTab.get("pipes"), "gemEmerald", Blocks.glass, "gemEmerald"); + pipeItemsCobblestone = buildPipe(PipeItemsCobblestone.class, "Cobblestone Transport Pipe", BCCreativeTab.get("pipes"), "cobblestone", Blocks.glass, "cobblestone"); + pipeItemsStone = buildPipe(PipeItemsStone.class, "Stone Transport Pipe", BCCreativeTab.get("pipes"), "stone", Blocks.glass, "stone"); + pipeItemsQuartz = buildPipe(PipeItemsQuartz.class, "Quartz Transport Pipe", BCCreativeTab.get("pipes"), "blockQuartz", Blocks.glass, "blockQuartz"); + pipeItemsIron = buildPipe(PipeItemsIron.class, "Iron Transport Pipe", BCCreativeTab.get("pipes"), "ingotIron", Blocks.glass, "ingotIron"); + pipeItemsGold = buildPipe(PipeItemsGold.class, "Golden Transport Pipe", BCCreativeTab.get("pipes"), "ingotGold", Blocks.glass, "ingotGold"); + pipeItemsDiamond = buildPipe(PipeItemsDiamond.class, "Diamond Transport Pipe", BCCreativeTab.get("pipes"), "gemDiamond", Blocks.glass, "gemDiamond"); + pipeItemsObsidian = buildPipe(PipeItemsObsidian.class, "Obsidian Transport Pipe", BCCreativeTab.get("pipes"), Blocks.obsidian, Blocks.glass, Blocks.obsidian); + pipeItemsLapis = buildPipe(PipeItemsLapis.class, "Lapis Transport Pipe", BCCreativeTab.get("pipes"), "blockLapis", Blocks.glass, "blockLapis"); + pipeItemsDaizuli = buildPipe(PipeItemsDaizuli.class, "Daizuli Transport Pipe", BCCreativeTab.get("pipes"), "blockLapis", Blocks.glass, "gemDiamond"); + pipeItemsSandstone = buildPipe(PipeItemsSandstone.class, "Sandstone Transport Pipe", BCCreativeTab.get("pipes"), Blocks.sandstone, Blocks.glass, Blocks.sandstone); + pipeItemsVoid = buildPipe(PipeItemsVoid.class, "Void Transport Pipe", BCCreativeTab.get("pipes"), "dyeBlack", Blocks.glass, "dustRedstone"); + pipeItemsEmzuli = buildPipe(PipeItemsEmzuli.class, "Emzuli Transport Pipe", BCCreativeTab.get("pipes"), "blockLapis", Blocks.glass, "gemEmerald"); + pipeItemsStripes = buildPipe(PipeItemsStripes.class, "Stripes Transport Pipe", BCCreativeTab.get("pipes"), "gearGold", Blocks.glass, "gearGold"); + pipeItemsClay = buildPipe(PipeItemsClay.class, "Clay Transport Pipe", BCCreativeTab.get("pipes"), Blocks.clay, Blocks.glass, Blocks.clay); - pipeFluidsWood = buildPipe(PipeFluidsWood.class, "Wooden Waterproof Pipe", CreativeTabBuildCraft.PIPES, pipeWaterproof, pipeItemsWood); - pipeFluidsCobblestone = buildPipe(PipeFluidsCobblestone.class, "Cobblestone Waterproof Pipe", CreativeTabBuildCraft.PIPES, pipeWaterproof, pipeItemsCobblestone); - pipeFluidsStone = buildPipe(PipeFluidsStone.class, "Stone Waterproof Pipe", CreativeTabBuildCraft.PIPES, pipeWaterproof, pipeItemsStone); - pipeFluidsQuartz = buildPipe(PipeFluidsQuartz.class, "Quartz Waterproof Pipe", CreativeTabBuildCraft.PIPES, pipeWaterproof, pipeItemsQuartz); - pipeFluidsIron = buildPipe(PipeFluidsIron.class, "Iron Waterproof Pipe", CreativeTabBuildCraft.PIPES, pipeWaterproof, pipeItemsIron); - pipeFluidsGold = buildPipe(PipeFluidsGold.class, "Golden Waterproof Pipe", CreativeTabBuildCraft.PIPES, pipeWaterproof, pipeItemsGold); - pipeFluidsEmerald = buildPipe(PipeFluidsEmerald.class, "Emerald Waterproof Pipe", CreativeTabBuildCraft.PIPES, pipeWaterproof, pipeItemsEmerald); - pipeFluidsDiamond = buildPipe(PipeFluidsDiamond.class, "Diamond Waterproof Pipe", CreativeTabBuildCraft.PIPES, pipeWaterproof, pipeItemsDiamond); - pipeFluidsSandstone = buildPipe(PipeFluidsSandstone.class, "Sandstone Waterproof Pipe", CreativeTabBuildCraft.PIPES, pipeWaterproof, pipeItemsSandstone); - pipeFluidsVoid = buildPipe(PipeFluidsVoid.class, "Void Waterproof Pipe", CreativeTabBuildCraft.PIPES, pipeWaterproof, pipeItemsVoid); + pipeFluidsWood = buildPipe(PipeFluidsWood.class, "Wooden Waterproof Pipe", BCCreativeTab.get("pipes"), pipeWaterproof, pipeItemsWood); + pipeFluidsCobblestone = buildPipe(PipeFluidsCobblestone.class, "Cobblestone Waterproof Pipe", BCCreativeTab.get("pipes"), pipeWaterproof, pipeItemsCobblestone); + pipeFluidsStone = buildPipe(PipeFluidsStone.class, "Stone Waterproof Pipe", BCCreativeTab.get("pipes"), pipeWaterproof, pipeItemsStone); + pipeFluidsQuartz = buildPipe(PipeFluidsQuartz.class, "Quartz Waterproof Pipe", BCCreativeTab.get("pipes"), pipeWaterproof, pipeItemsQuartz); + pipeFluidsIron = buildPipe(PipeFluidsIron.class, "Iron Waterproof Pipe", BCCreativeTab.get("pipes"), pipeWaterproof, pipeItemsIron); + pipeFluidsGold = buildPipe(PipeFluidsGold.class, "Golden Waterproof Pipe", BCCreativeTab.get("pipes"), pipeWaterproof, pipeItemsGold); + pipeFluidsEmerald = buildPipe(PipeFluidsEmerald.class, "Emerald Waterproof Pipe", BCCreativeTab.get("pipes"), pipeWaterproof, pipeItemsEmerald); + pipeFluidsDiamond = buildPipe(PipeFluidsDiamond.class, "Diamond Waterproof Pipe", BCCreativeTab.get("pipes"), pipeWaterproof, pipeItemsDiamond); + pipeFluidsSandstone = buildPipe(PipeFluidsSandstone.class, "Sandstone Waterproof Pipe", BCCreativeTab.get("pipes"), pipeWaterproof, pipeItemsSandstone); + pipeFluidsVoid = buildPipe(PipeFluidsVoid.class, "Void Waterproof Pipe", BCCreativeTab.get("pipes"), pipeWaterproof, pipeItemsVoid); - pipePowerWood = buildPipe(PipePowerWood.class, "Wooden Kinesis Pipe", CreativeTabBuildCraft.PIPES, "dustRedstone", pipeItemsWood); - pipePowerCobblestone = buildPipe(PipePowerCobblestone.class, "Cobblestone Kinesis Pipe", CreativeTabBuildCraft.PIPES, "dustRedstone", pipeItemsCobblestone); - pipePowerStone = buildPipe(PipePowerStone.class, "Stone Kinesis Pipe", CreativeTabBuildCraft.PIPES, "dustRedstone", pipeItemsStone); - pipePowerQuartz = buildPipe(PipePowerQuartz.class, "Quartz Kinesis Pipe", CreativeTabBuildCraft.PIPES, "dustRedstone", pipeItemsQuartz); - pipePowerIron = buildPipe(PipePowerIron.class, "Iron Kinesis Pipe", CreativeTabBuildCraft.PIPES, "dustRedstone", pipeItemsIron); - pipePowerGold = buildPipe(PipePowerGold.class, "Golden Kinesis Pipe", CreativeTabBuildCraft.PIPES, "dustRedstone", pipeItemsGold); - pipePowerDiamond = buildPipe(PipePowerDiamond.class, "Diamond Kinesis Pipe", CreativeTabBuildCraft.PIPES, "dustRedstone", pipeItemsDiamond); - pipePowerEmerald = buildPipe(PipePowerEmerald.class, "Emerald Kinesis Pipe", CreativeTabBuildCraft.PIPES, "dustRedstone", pipeItemsEmerald); - pipePowerSandstone = buildPipe(PipePowerSandstone.class, "Sandstone Kinesis Pipe", CreativeTabBuildCraft.PIPES, "dustRedstone", pipeItemsSandstone); + pipePowerWood = buildPipe(PipePowerWood.class, "Wooden Kinesis Pipe", BCCreativeTab.get("pipes"), "dustRedstone", pipeItemsWood); + pipePowerCobblestone = buildPipe(PipePowerCobblestone.class, "Cobblestone Kinesis Pipe", BCCreativeTab.get("pipes"), "dustRedstone", pipeItemsCobblestone); + pipePowerStone = buildPipe(PipePowerStone.class, "Stone Kinesis Pipe", BCCreativeTab.get("pipes"), "dustRedstone", pipeItemsStone); + pipePowerQuartz = buildPipe(PipePowerQuartz.class, "Quartz Kinesis Pipe", BCCreativeTab.get("pipes"), "dustRedstone", pipeItemsQuartz); + pipePowerIron = buildPipe(PipePowerIron.class, "Iron Kinesis Pipe", BCCreativeTab.get("pipes"), "dustRedstone", pipeItemsIron); + pipePowerGold = buildPipe(PipePowerGold.class, "Golden Kinesis Pipe", BCCreativeTab.get("pipes"), "dustRedstone", pipeItemsGold); + pipePowerDiamond = buildPipe(PipePowerDiamond.class, "Diamond Kinesis Pipe", BCCreativeTab.get("pipes"), "dustRedstone", pipeItemsDiamond); + pipePowerEmerald = buildPipe(PipePowerEmerald.class, "Emerald Kinesis Pipe", BCCreativeTab.get("pipes"), "dustRedstone", pipeItemsEmerald); + pipePowerSandstone = buildPipe(PipePowerSandstone.class, "Sandstone Kinesis Pipe", BCCreativeTab.get("pipes"), "dustRedstone", pipeItemsSandstone); - pipeStructureCobblestone = buildPipe(PipeStructureCobblestone.class, "Cobblestone Structure Pipe", CreativeTabBuildCraft.PIPES, Blocks.gravel, pipeItemsCobblestone); + pipeStructureCobblestone = buildPipe(PipeStructureCobblestone.class, "Cobblestone Structure Pipe", BCCreativeTab.get("pipes"), Blocks.gravel, pipeItemsCobblestone); pipeWire = new ItemPipeWire(); CoreProxy.proxy.registerItem(pipeWire); @@ -473,6 +476,9 @@ public class BuildCraftTransport extends BuildCraftMod { new BptItemPipeFilters(pipeItemsDiamond); + BCCreativeTab.get("pipes").setIcon(new ItemStack(BuildCraftTransport.pipeItemsDiamond, 1)); + BCCreativeTab.get("facades").setIcon(facadeItem.getFacadeForBlock(Blocks.brick_block, 0)); + StatementManager.registerParameterClass(TriggerParameterSignal.class); StatementManager.registerParameterClass(ActionParameterSignal.class); StatementManager.registerTriggerProvider(new PipeTriggerProvider()); @@ -492,13 +498,13 @@ public class BuildCraftTransport extends BuildCraftMod { PipeManager.registerPipePluggable(LensPluggable.class, "lens"); PipeManager.registerPipePluggable(PlugPluggable.class, "plug"); PipeManager.registerPipePluggable(RobotStationPluggable.class, "robotStation"); - + if (BuildCraftCore.loadDefaultRecipes) { loadRecipes(); } TransportProxy.proxy.registerRenderers(); - NetworkRegistry.INSTANCE.registerGuiHandler(instance, new GuiHandler()); + NetworkRegistry.INSTANCE.registerGuiHandler(instance, new TransportGuiHandler()); } @Mod.EventHandler @@ -626,7 +632,7 @@ public class BuildCraftTransport extends BuildCraftMod { } public static Item buildPipe(Class clas, - String descr, CreativeTabBuildCraft creativeTab, + String descr, BCCreativeTab creativeTab, Object... ingredients) { ItemPipe res = BlockGenericPipe.registerPipe(clas, creativeTab); res.setUnlocalizedName(clas.getSimpleName()); diff --git a/common/buildcraft/builders/BlockArchitect.java b/common/buildcraft/builders/BlockArchitect.java index f0028e48..c9305c0d 100644 --- a/common/buildcraft/builders/BlockArchitect.java +++ b/common/buildcraft/builders/BlockArchitect.java @@ -30,7 +30,7 @@ import buildcraft.BuildCraftBuilders; import buildcraft.api.events.BlockInteractionEvent; import buildcraft.api.tools.IToolWrench; import buildcraft.core.BlockBuildCraft; -import buildcraft.core.CreativeTabBuildCraft; +import buildcraft.core.BCCreativeTab; import buildcraft.core.GuiIds; import buildcraft.core.utils.Utils; @@ -40,7 +40,7 @@ public class BlockArchitect extends BlockBuildCraft { IIcon blockTextureFront; public BlockArchitect() { - super(Material.iron, CreativeTabBuildCraft.BLOCKS); + super(Material.iron, BCCreativeTab.get("main")); } @Override diff --git a/common/buildcraft/builders/BlockBlueprintLibrary.java b/common/buildcraft/builders/BlockBlueprintLibrary.java index 932d6685..92019870 100644 --- a/common/buildcraft/builders/BlockBlueprintLibrary.java +++ b/common/buildcraft/builders/BlockBlueprintLibrary.java @@ -22,7 +22,7 @@ import cpw.mods.fml.relauncher.SideOnly; import buildcraft.BuildCraftBuilders; import buildcraft.api.events.BlockInteractionEvent; import buildcraft.core.BlockBuildCraft; -import buildcraft.core.CreativeTabBuildCraft; +import buildcraft.core.BCCreativeTab; import buildcraft.core.GuiIds; public class BlockBlueprintLibrary extends BlockBuildCraft { @@ -31,7 +31,7 @@ public class BlockBlueprintLibrary extends BlockBuildCraft { private IIcon textureSide; public BlockBlueprintLibrary() { - super(Material.wood, CreativeTabBuildCraft.BLOCKS); + super(Material.wood, BCCreativeTab.get("main")); } @Override diff --git a/common/buildcraft/builders/BlockBuilder.java b/common/buildcraft/builders/BlockBuilder.java index e0b4f47c..4c0e332e 100644 --- a/common/buildcraft/builders/BlockBuilder.java +++ b/common/buildcraft/builders/BlockBuilder.java @@ -30,7 +30,7 @@ import buildcraft.BuildCraftBuilders; import buildcraft.api.events.BlockInteractionEvent; import buildcraft.api.tools.IToolWrench; import buildcraft.core.BlockBuildCraft; -import buildcraft.core.CreativeTabBuildCraft; +import buildcraft.core.BCCreativeTab; import buildcraft.core.GuiIds; import buildcraft.core.fluids.TankUtils; import buildcraft.core.utils.Utils; @@ -44,7 +44,7 @@ public class BlockBuilder extends BlockBuildCraft { public BlockBuilder() { super(Material.iron); setHardness(5F); - setCreativeTab(CreativeTabBuildCraft.BLOCKS.get()); + setCreativeTab(BCCreativeTab.get("main")); } @Override diff --git a/common/buildcraft/builders/BlockFiller.java b/common/buildcraft/builders/BlockFiller.java index f2c40501..df87e073 100644 --- a/common/buildcraft/builders/BlockFiller.java +++ b/common/buildcraft/builders/BlockFiller.java @@ -27,7 +27,7 @@ import buildcraft.BuildCraftBuilders; import buildcraft.api.events.BlockInteractionEvent; import buildcraft.api.filler.IFillerPattern; import buildcraft.core.BlockBuildCraft; -import buildcraft.core.CreativeTabBuildCraft; +import buildcraft.core.BCCreativeTab; import buildcraft.core.GuiIds; import buildcraft.core.utils.Utils; @@ -42,7 +42,7 @@ public class BlockFiller extends BlockBuildCraft { super(Material.iron); setHardness(5F); - setCreativeTab(CreativeTabBuildCraft.BLOCKS.get()); + setCreativeTab(BCCreativeTab.get("main")); } @Override diff --git a/common/buildcraft/builders/BlockMarker.java b/common/buildcraft/builders/BlockMarker.java index 376b7967..ba921379 100644 --- a/common/buildcraft/builders/BlockMarker.java +++ b/common/buildcraft/builders/BlockMarker.java @@ -27,7 +27,7 @@ import buildcraft.BuildCraftCore; import buildcraft.api.events.BlockInteractionEvent; import buildcraft.api.items.IMapLocation; import buildcraft.core.BlockBuildCraft; -import buildcraft.core.CreativeTabBuildCraft; +import buildcraft.core.BCCreativeTab; import buildcraft.core.utils.Utils; public class BlockMarker extends BlockBuildCraft { @@ -37,7 +37,7 @@ public class BlockMarker extends BlockBuildCraft { setLightLevel(0.5F); setHardness(0.0F); - setCreativeTab(CreativeTabBuildCraft.ITEMS.get()); + setCreativeTab(BCCreativeTab.get("main")); } public static boolean canPlaceTorch(World world, int x, int y, int z, ForgeDirection side) { diff --git a/common/buildcraft/builders/GuiHandler.java b/common/buildcraft/builders/BuildersGuiHandler.java similarity index 77% rename from common/buildcraft/builders/GuiHandler.java rename to common/buildcraft/builders/BuildersGuiHandler.java index 447f76f8..edadc317 100644 --- a/common/buildcraft/builders/GuiHandler.java +++ b/common/buildcraft/builders/BuildersGuiHandler.java @@ -25,15 +25,9 @@ import buildcraft.builders.gui.GuiFiller; import buildcraft.builders.urbanism.ContainerUrbanist; import buildcraft.builders.urbanism.GuiUrbanist; import buildcraft.builders.urbanism.TileUrbanist; -import buildcraft.commander.ContainerRequester; -import buildcraft.commander.ContainerZonePlan; -import buildcraft.commander.GuiRequester; -import buildcraft.commander.GuiZonePlan; -import buildcraft.commander.TileRequester; -import buildcraft.commander.TileZonePlan; import buildcraft.core.GuiIds; -public class GuiHandler implements IGuiHandler { +public class BuildersGuiHandler implements IGuiHandler { @Override public Object getClientGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) { @@ -75,18 +69,6 @@ public class GuiHandler implements IGuiHandler { } return new GuiUrbanist(player.inventory, (TileUrbanist) tile); - case GuiIds.MAP: - if (!(tile instanceof TileZonePlan)) { - return null; - } - return new GuiZonePlan(player.inventory, (TileZonePlan) tile); - - case GuiIds.REQUESTER: - if (!(tile instanceof TileRequester)) { - return null; - } - return new GuiRequester(player.inventory, (TileRequester) tile); - default: return null; } @@ -135,20 +117,6 @@ public class GuiHandler implements IGuiHandler { return new ContainerUrbanist(player.inventory, (TileUrbanist) tile); } - case GuiIds.MAP: - if (!(tile instanceof TileZonePlan)) { - return null; - } else { - return new ContainerZonePlan(player.inventory, (TileZonePlan) tile); - } - - case GuiIds.REQUESTER: - if (!(tile instanceof TileRequester)) { - return null; - } else { - return new ContainerRequester(player.inventory, (TileRequester) tile); - } - default: return null; } diff --git a/common/buildcraft/builders/ItemBlueprint.java b/common/buildcraft/builders/ItemBlueprint.java index e7cd6781..77de256f 100644 --- a/common/buildcraft/builders/ItemBlueprint.java +++ b/common/buildcraft/builders/ItemBlueprint.java @@ -17,7 +17,7 @@ import net.minecraft.nbt.NBTTagCompound; import buildcraft.BuildCraftBuilders; import buildcraft.api.blueprints.BuildingPermission; import buildcraft.core.blueprints.BlueprintId; -import buildcraft.core.CreativeTabBuildCraft; +import buildcraft.core.BCCreativeTab; import buildcraft.core.ItemBuildCraft; import buildcraft.core.blueprints.BlueprintBase; import buildcraft.core.utils.NBTUtils; @@ -26,7 +26,7 @@ import buildcraft.core.utils.StringUtils; public abstract class ItemBlueprint extends ItemBuildCraft { public ItemBlueprint() { - super(CreativeTabBuildCraft.ITEMS); + super(BCCreativeTab.get("main")); } @Override diff --git a/common/buildcraft/builders/TileBuilder.java b/common/buildcraft/builders/TileBuilder.java index 49b22bd4..cd40b94f 100644 --- a/common/buildcraft/builders/TileBuilder.java +++ b/common/buildcraft/builders/TileBuilder.java @@ -66,6 +66,7 @@ import buildcraft.core.network.Packet; import buildcraft.core.network.CommandWriter; import buildcraft.core.network.PacketCommand; import buildcraft.core.utils.NetworkUtils; +import buildcraft.api.robots.ResourceIdRequest; public class TileBuilder extends TileAbstractBuilder implements IHasWork, IFluidHandler, IRequestProvider, IControllable { diff --git a/common/buildcraft/core/BCCreativeTab.java b/common/buildcraft/core/BCCreativeTab.java new file mode 100644 index 00000000..f196daa5 --- /dev/null +++ b/common/buildcraft/core/BCCreativeTab.java @@ -0,0 +1,56 @@ +/** + * Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team + * http://www.mod-buildcraft.com + * + * BuildCraft is distributed under the terms of the Minecraft Mod Public + * License 1.0, or MMPL. Please check the contents of the license located in + * http://www.mod-buildcraft.com/MMPL-1.0.txt + */ +package buildcraft.core; + +import java.util.HashMap; +import java.util.Map; + +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +public class BCCreativeTab extends CreativeTabs { + private static final Map tabs = new HashMap(); + + private final String name; + private ItemStack icon; + + public BCCreativeTab(String name) { + super("buildcraft." + name); + this.name = name; + + tabs.put(name, this); + } + + public static BCCreativeTab get(String name) { + return tabs.get(name); + } + + public void setIcon(ItemStack icon) { + this.icon = icon; + } + + private ItemStack getItem() { + if (icon == null || icon.getItem() == null) { + return new ItemStack(Blocks.brick_block, 1); + } + return icon; + } + + @Override + public ItemStack getIconItemStack() { + return getItem(); + } + + @Override + public Item getTabIconItem() { + return getItem().getItem(); + } +} diff --git a/common/buildcraft/core/BlockBuildCraft.java b/common/buildcraft/core/BlockBuildCraft.java index 50463003..506a4fc5 100644 --- a/common/buildcraft/core/BlockBuildCraft.java +++ b/common/buildcraft/core/BlockBuildCraft.java @@ -13,6 +13,7 @@ import java.util.Random; import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -32,12 +33,12 @@ public abstract class BlockBuildCraft extends BlockContainer { protected final Random rand = new Random(); protected BlockBuildCraft(Material material) { - this(material, CreativeTabBuildCraft.BLOCKS); + this(material, BCCreativeTab.get("main")); } - protected BlockBuildCraft(Material material, CreativeTabBuildCraft creativeTab) { + protected BlockBuildCraft(Material material, CreativeTabs creativeTab) { super(material); - setCreativeTab(creativeTab.get()); + setCreativeTab(creativeTab); setHardness(5F); } diff --git a/common/buildcraft/core/BlockSpring.java b/common/buildcraft/core/BlockSpring.java index 75170558..ee24e9f3 100644 --- a/common/buildcraft/core/BlockSpring.java +++ b/common/buildcraft/core/BlockSpring.java @@ -58,7 +58,7 @@ public class BlockSpring extends Block { disableStats(); setTickRandomly(true); - setCreativeTab(CreativeTabBuildCraft.BLOCKS.get()); + setCreativeTab(BCCreativeTab.get("main")); } @Override diff --git a/common/buildcraft/core/GuiHandler.java b/common/buildcraft/core/CoreGuiHandler.java similarity index 94% rename from common/buildcraft/core/GuiHandler.java rename to common/buildcraft/core/CoreGuiHandler.java index 2f347942..e1f622d9 100755 --- a/common/buildcraft/core/GuiHandler.java +++ b/common/buildcraft/core/CoreGuiHandler.java @@ -16,7 +16,7 @@ import cpw.mods.fml.common.network.IGuiHandler; import buildcraft.core.gui.ContainerList; import buildcraft.core.gui.GuiList; -public class GuiHandler implements IGuiHandler { +public class CoreGuiHandler implements IGuiHandler { @Override public Object getClientGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) { diff --git a/common/buildcraft/core/CreativeTabBuildCraft.java b/common/buildcraft/core/CreativeTabBuildCraft.java deleted file mode 100644 index 1691acd9..00000000 --- a/common/buildcraft/core/CreativeTabBuildCraft.java +++ /dev/null @@ -1,78 +0,0 @@ -/** - * Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team - * http://www.mod-buildcraft.com - * - * BuildCraft is distributed under the terms of the Minecraft Mod Public - * License 1.0, or MMPL. Please check the contents of the license located in - * http://www.mod-buildcraft.com/MMPL-1.0.txt - */ -package buildcraft.core; - -import java.util.Locale; - -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.init.Blocks; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -import buildcraft.BuildCraftCore; -import buildcraft.BuildCraftFactory; -import buildcraft.BuildCraftRobotics; -import buildcraft.BuildCraftSilicon; -import buildcraft.BuildCraftTransport; - -public enum CreativeTabBuildCraft { - - BLOCKS, - ITEMS, - PIPES, - FACADES, - BOARDS; - private final CreativeTabs tab; - - private CreativeTabBuildCraft() { - tab = new Tab(); - } - - public CreativeTabs get() { - return tab; - } - - private String getLabel() { - return "buildcraft." + name().toLowerCase(Locale.ENGLISH); - } - - private ItemStack getItem() { - switch (this) { - case BLOCKS: - return new ItemStack (BuildCraftFactory.quarryBlock, 1); - case ITEMS: - return new ItemStack (BuildCraftCore.wrenchItem, 1); - case PIPES: - return new ItemStack (BuildCraftTransport.pipeItemsDiamond, 1); - case FACADES: - return BuildCraftTransport.facadeItem.getFacadeForBlock(Blocks.brick_block, 0); - case BOARDS: - return new ItemStack(BuildCraftRobotics.redstoneBoard, 1); - } - - return BuildCraftTransport.facadeItem.getFacadeForBlock(Blocks.brick_block, 0); - } - - private final class Tab extends CreativeTabs { - - private Tab() { - super(getLabel()); - } - - @Override - public ItemStack getIconItemStack() { - return getItem(); - } - - @Override - public Item getTabIconItem() { - return getItem().getItem(); - } - } -} diff --git a/common/buildcraft/core/ItemBuildCraft.java b/common/buildcraft/core/ItemBuildCraft.java index c9cd0507..c112dce2 100644 --- a/common/buildcraft/core/ItemBuildCraft.java +++ b/common/buildcraft/core/ItemBuildCraft.java @@ -9,6 +9,7 @@ package buildcraft.core; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.world.World; @@ -22,13 +23,13 @@ public class ItemBuildCraft extends Item { private boolean passSneakClick = false; public ItemBuildCraft() { - this(CreativeTabBuildCraft.ITEMS); + this(BCCreativeTab.get("items")); } - public ItemBuildCraft(CreativeTabBuildCraft creativeTab) { + public ItemBuildCraft(CreativeTabs creativeTab) { super(); - setCreativeTab(creativeTab.get()); + setCreativeTab(creativeTab); } @Override diff --git a/common/buildcraft/core/ItemMapLocation.java b/common/buildcraft/core/ItemMapLocation.java index b5670877..da022507 100755 --- a/common/buildcraft/core/ItemMapLocation.java +++ b/common/buildcraft/core/ItemMapLocation.java @@ -45,7 +45,7 @@ public class ItemMapLocation extends ItemBuildCraft implements IMapLocation { public IIcon zone; public ItemMapLocation() { - super(CreativeTabBuildCraft.ITEMS); + super(BCCreativeTab.get("main")); } @Override diff --git a/common/buildcraft/energy/GuiHandler.java b/common/buildcraft/energy/EnergyGuiHandler.java similarity index 97% rename from common/buildcraft/energy/GuiHandler.java rename to common/buildcraft/energy/EnergyGuiHandler.java index 1f3c7975..4a644467 100644 --- a/common/buildcraft/energy/GuiHandler.java +++ b/common/buildcraft/energy/EnergyGuiHandler.java @@ -19,7 +19,7 @@ import buildcraft.energy.gui.ContainerEngine; import buildcraft.energy.gui.GuiCombustionEngine; import buildcraft.energy.gui.GuiStoneEngine; -public class GuiHandler implements IGuiHandler { +public class EnergyGuiHandler implements IGuiHandler { @Override public Object getClientGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) { diff --git a/common/buildcraft/energy/ItemBucketBuildcraft.java b/common/buildcraft/energy/ItemBucketBuildcraft.java index 57500a33..e71f9423 100644 --- a/common/buildcraft/energy/ItemBucketBuildcraft.java +++ b/common/buildcraft/energy/ItemBucketBuildcraft.java @@ -10,6 +10,7 @@ package buildcraft.energy; import net.minecraft.block.Block; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemBucket; @@ -17,20 +18,20 @@ import net.minecraft.item.ItemBucket; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import buildcraft.core.CreativeTabBuildCraft; +import buildcraft.core.BCCreativeTab; public class ItemBucketBuildcraft extends ItemBucket { private String iconName; public ItemBucketBuildcraft(Block block) { - this(block, CreativeTabBuildCraft.ITEMS); + this(block, BCCreativeTab.get("main")); } - public ItemBucketBuildcraft(Block block, CreativeTabBuildCraft creativeTab) { + public ItemBucketBuildcraft(Block block, CreativeTabs creativeTab) { super(block); setContainerItem(Items.bucket); - setCreativeTab(creativeTab.get()); + setCreativeTab(creativeTab); } @Override diff --git a/common/buildcraft/energy/ItemEngine.java b/common/buildcraft/energy/ItemEngine.java index c657b39f..35927267 100644 --- a/common/buildcraft/energy/ItemEngine.java +++ b/common/buildcraft/energy/ItemEngine.java @@ -11,14 +11,14 @@ package buildcraft.energy; import net.minecraft.block.Block; import net.minecraft.item.ItemStack; -import buildcraft.core.CreativeTabBuildCraft; +import buildcraft.core.BCCreativeTab; import buildcraft.core.ItemBlockBuildCraft; public class ItemEngine extends ItemBlockBuildCraft { public ItemEngine(Block block) { super(block); - setCreativeTab(CreativeTabBuildCraft.BLOCKS.get()); + setCreativeTab(BCCreativeTab.get("main")); setMaxDamage(0); setHasSubtypes(true); } diff --git a/common/buildcraft/factory/BlockRefinery.java b/common/buildcraft/factory/BlockRefinery.java index bc49875a..dac5d3f7 100644 --- a/common/buildcraft/factory/BlockRefinery.java +++ b/common/buildcraft/factory/BlockRefinery.java @@ -31,7 +31,7 @@ import buildcraft.BuildCraftFactory; import buildcraft.api.events.BlockInteractionEvent; import buildcraft.api.tools.IToolWrench; import buildcraft.core.BlockBuildCraft; -import buildcraft.core.CreativeTabBuildCraft; +import buildcraft.core.BCCreativeTab; import buildcraft.core.GuiIds; import buildcraft.core.fluids.TankUtils; import buildcraft.core.utils.Utils; @@ -44,7 +44,7 @@ public class BlockRefinery extends BlockBuildCraft { super(Material.iron); setHardness(5F); - setCreativeTab(CreativeTabBuildCraft.BLOCKS.get()); + setCreativeTab(BCCreativeTab.get("main")); } @Override diff --git a/common/buildcraft/factory/BlockTank.java b/common/buildcraft/factory/BlockTank.java index b776c8cf..dc32607b 100644 --- a/common/buildcraft/factory/BlockTank.java +++ b/common/buildcraft/factory/BlockTank.java @@ -29,7 +29,7 @@ import net.minecraftforge.fluids.IFluidContainerItem; import buildcraft.BuildCraftCore; import buildcraft.api.events.BlockInteractionEvent; import buildcraft.core.BlockBuildCraft; -import buildcraft.core.CreativeTabBuildCraft; +import buildcraft.core.BCCreativeTab; import buildcraft.core.inventory.InvUtils; public class BlockTank extends BlockBuildCraft { @@ -42,7 +42,7 @@ public class BlockTank extends BlockBuildCraft { super(Material.glass); setBlockBounds(0.125F, 0F, 0.125F, 0.875F, 1F, 0.875F); setHardness(0.5F); - setCreativeTab(CreativeTabBuildCraft.BLOCKS.get()); + setCreativeTab(BCCreativeTab.get("main")); } @Override diff --git a/common/buildcraft/factory/GuiHandler.java b/common/buildcraft/factory/FactoryGuiHandler.java similarity index 97% rename from common/buildcraft/factory/GuiHandler.java rename to common/buildcraft/factory/FactoryGuiHandler.java index 97b48631..5d91e1d2 100644 --- a/common/buildcraft/factory/GuiHandler.java +++ b/common/buildcraft/factory/FactoryGuiHandler.java @@ -22,7 +22,7 @@ import buildcraft.factory.gui.GuiAutoCrafting; import buildcraft.factory.gui.GuiHopper; import buildcraft.factory.gui.GuiRefinery; -public class GuiHandler implements IGuiHandler { +public class FactoryGuiHandler implements IGuiHandler { @Override public Object getClientGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) { diff --git a/common/buildcraft/commander/BlockRequester.java b/common/buildcraft/robotics/BlockRequester.java similarity index 94% rename from common/buildcraft/commander/BlockRequester.java rename to common/buildcraft/robotics/BlockRequester.java index 53378650..0188e68f 100755 --- a/common/buildcraft/commander/BlockRequester.java +++ b/common/buildcraft/robotics/BlockRequester.java @@ -6,7 +6,7 @@ * License 1.0, or MMPL. Please check the contents of the license located in * http://www.mod-buildcraft.com/MMPL-1.0.txt */ -package buildcraft.commander; +package buildcraft.robotics; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; @@ -23,7 +23,7 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraftforge.common.util.ForgeDirection; -import buildcraft.BuildCraftBuilders; +import buildcraft.BuildCraftRobotics; import buildcraft.api.events.BlockInteractionEvent; import buildcraft.core.BlockBuildCraft; import buildcraft.core.GuiIds; @@ -54,7 +54,7 @@ public class BlockRequester extends BlockBuildCraft { } if (!world.isRemote) { - entityplayer.openGui(BuildCraftBuilders.instance, GuiIds.REQUESTER, + entityplayer.openGui(BuildCraftRobotics.instance, GuiIds.REQUESTER, world, i, j, k); } diff --git a/common/buildcraft/commander/BlockZonePlan.java b/common/buildcraft/robotics/BlockZonePlan.java similarity index 94% rename from common/buildcraft/commander/BlockZonePlan.java rename to common/buildcraft/robotics/BlockZonePlan.java index 47778db4..959af837 100755 --- a/common/buildcraft/commander/BlockZonePlan.java +++ b/common/buildcraft/robotics/BlockZonePlan.java @@ -6,7 +6,7 @@ * License 1.0, or MMPL. Please check the contents of the license located in * http://www.mod-buildcraft.com/MMPL-1.0.txt */ -package buildcraft.commander; +package buildcraft.robotics; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; @@ -23,7 +23,7 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraftforge.common.util.ForgeDirection; -import buildcraft.BuildCraftBuilders; +import buildcraft.BuildCraftRobotics; import buildcraft.api.events.BlockInteractionEvent; import buildcraft.core.BlockBuildCraft; import buildcraft.core.GuiIds; @@ -54,7 +54,7 @@ public class BlockZonePlan extends BlockBuildCraft { } if (!world.isRemote) { - entityplayer.openGui(BuildCraftBuilders.instance, GuiIds.MAP, + entityplayer.openGui(BuildCraftRobotics.instance, GuiIds.MAP, world, i, j, k); } diff --git a/common/buildcraft/robotics/ItemRedstoneBoard.java b/common/buildcraft/robotics/ItemRedstoneBoard.java index 44030c2d..a8b890c8 100755 --- a/common/buildcraft/robotics/ItemRedstoneBoard.java +++ b/common/buildcraft/robotics/ItemRedstoneBoard.java @@ -22,10 +22,9 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import buildcraft.BuildCraftRobotics; -import buildcraft.BuildCraftSilicon; import buildcraft.api.boards.RedstoneBoardNBT; import buildcraft.api.boards.RedstoneBoardRegistry; -import buildcraft.core.CreativeTabBuildCraft; +import buildcraft.core.BCCreativeTab; import buildcraft.core.ItemBuildCraft; import buildcraft.core.utils.NBTUtils; @@ -35,7 +34,7 @@ public class ItemRedstoneBoard extends ItemBuildCraft { public IIcon unknownBoard; public ItemRedstoneBoard() { - super(CreativeTabBuildCraft.BOARDS); + super(BCCreativeTab.get("boards")); } @Override diff --git a/common/buildcraft/robotics/ItemRobot.java b/common/buildcraft/robotics/ItemRobot.java index 65cefbb2..72b3c32a 100755 --- a/common/buildcraft/robotics/ItemRobot.java +++ b/common/buildcraft/robotics/ItemRobot.java @@ -31,7 +31,7 @@ import buildcraft.api.boards.RedstoneBoardRegistry; import buildcraft.api.boards.RedstoneBoardRobotNBT; import buildcraft.api.events.RobotPlacementEvent; import buildcraft.api.robots.EntityRobotBase; -import buildcraft.core.CreativeTabBuildCraft; +import buildcraft.core.BCCreativeTab; import buildcraft.core.ItemBuildCraft; import buildcraft.core.utils.NBTUtils; import buildcraft.transport.BlockGenericPipe; @@ -40,7 +40,7 @@ import buildcraft.transport.Pipe; public class ItemRobot extends ItemBuildCraft implements IEnergyContainerItem { public ItemRobot() { - super(CreativeTabBuildCraft.BOARDS); + super(BCCreativeTab.get("boards")); } public EntityRobot createRobot(ItemStack stack, World world) { diff --git a/common/buildcraft/robotics/ItemRobotStation.java b/common/buildcraft/robotics/ItemRobotStation.java index b13a7fb8..1842f511 100755 --- a/common/buildcraft/robotics/ItemRobotStation.java +++ b/common/buildcraft/robotics/ItemRobotStation.java @@ -21,13 +21,13 @@ import net.minecraftforge.common.util.ForgeDirection; import buildcraft.api.transport.IPipe; import buildcraft.api.transport.pluggable.IPipePluggableItem; import buildcraft.api.transport.pluggable.PipePluggable; -import buildcraft.core.CreativeTabBuildCraft; +import buildcraft.core.BCCreativeTab; import buildcraft.core.ItemBuildCraft; public class ItemRobotStation extends ItemBuildCraft implements IPipePluggableItem { public ItemRobotStation() { - super(CreativeTabBuildCraft.ITEMS); + super(BCCreativeTab.get("robots")); } @Override diff --git a/common/buildcraft/robotics/RoboticsGuiHandler.java b/common/buildcraft/robotics/RoboticsGuiHandler.java new file mode 100644 index 00000000..eb6605d7 --- /dev/null +++ b/common/buildcraft/robotics/RoboticsGuiHandler.java @@ -0,0 +1,77 @@ +/** + * Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team + * http://www.mod-buildcraft.com + * + * BuildCraft is distributed under the terms of the Minecraft Mod Public + * License 1.0, or MMPL. Please check the contents of the license located in + * http://www.mod-buildcraft.com/MMPL-1.0.txt + */ +package buildcraft.robotics; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import cpw.mods.fml.common.network.IGuiHandler; +import buildcraft.core.GuiIds; +import buildcraft.robotics.gui.ContainerRequester; +import buildcraft.robotics.gui.ContainerZonePlan; +import buildcraft.robotics.gui.GuiRequester; +import buildcraft.robotics.gui.GuiZonePlan; + +public class RoboticsGuiHandler implements IGuiHandler { + @Override + public Object getClientGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) { + if (!world.blockExists(x, y, z)) { + return null; + } + + TileEntity tile = world.getTileEntity(x, y, z); + + switch (id) { + case GuiIds.MAP: + if (!(tile instanceof TileZonePlan)) { + return null; + } + return new GuiZonePlan(player.inventory, (TileZonePlan) tile); + + case GuiIds.REQUESTER: + if (!(tile instanceof TileRequester)) { + return null; + } + return new GuiRequester(player.inventory, (TileRequester) tile); + + default: + return null; + } + + } + + @Override + public Object getServerGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) { + + if (!world.blockExists(x, y, z)) { + return null; + } + + TileEntity tile = world.getTileEntity(x, y, z); + + switch (id) { + case GuiIds.MAP: + if (!(tile instanceof TileZonePlan)) { + return null; + } else { + return new ContainerZonePlan(player.inventory, (TileZonePlan) tile); + } + + case GuiIds.REQUESTER: + if (!(tile instanceof TileRequester)) { + return null; + } else { + return new ContainerRequester(player.inventory, (TileRequester) tile); + } + + default: + return null; + } + } +} diff --git a/common/buildcraft/commander/TileRequester.java b/common/buildcraft/robotics/TileRequester.java similarity index 98% rename from common/buildcraft/commander/TileRequester.java rename to common/buildcraft/robotics/TileRequester.java index f0726109..4195a7b7 100755 --- a/common/buildcraft/commander/TileRequester.java +++ b/common/buildcraft/robotics/TileRequester.java @@ -6,7 +6,7 @@ * License 1.0, or MMPL. Please check the contents of the license located in * http://www.mod-buildcraft.com/MMPL-1.0.txt */ -package buildcraft.commander; +package buildcraft.robotics; import io.netty.buffer.ByteBuf; @@ -29,8 +29,7 @@ import buildcraft.core.network.CommandWriter; import buildcraft.core.network.ICommandReceiver; import buildcraft.core.network.PacketCommand; import buildcraft.core.utils.NetworkUtils; -import buildcraft.robotics.ResourceIdRequest; -import buildcraft.robotics.RobotRegistry; +import buildcraft.api.robots.ResourceIdRequest; public class TileRequester extends TileBuildCraft implements IInventory, IRequestProvider, ICommandReceiver { public static final int NB_ITEMS = 20; diff --git a/common/buildcraft/commander/TileZonePlan.java b/common/buildcraft/robotics/TileZonePlan.java similarity index 99% rename from common/buildcraft/commander/TileZonePlan.java rename to common/buildcraft/robotics/TileZonePlan.java index 462e7d34..35265d76 100644 --- a/common/buildcraft/commander/TileZonePlan.java +++ b/common/buildcraft/robotics/TileZonePlan.java @@ -6,7 +6,7 @@ * License 1.0, or MMPL. Please check the contents of the license located in * http://www.mod-buildcraft.com/MMPL-1.0.txt */ -package buildcraft.commander; +package buildcraft.robotics; import io.netty.buffer.ByteBuf; diff --git a/common/buildcraft/robotics/ai/AIRobotCraftAssemblyTable.java b/common/buildcraft/robotics/ai/AIRobotCraftAssemblyTable.java index 06b7716a..40f5cc5a 100755 --- a/common/buildcraft/robotics/ai/AIRobotCraftAssemblyTable.java +++ b/common/buildcraft/robotics/ai/AIRobotCraftAssemblyTable.java @@ -33,8 +33,7 @@ import buildcraft.core.inventory.filters.IStackFilter; import buildcraft.robotics.DockingStation; import buildcraft.robotics.IStationFilter; import buildcraft.silicon.ResourceIdAssemblyTable; -import buildcraft.robotics.ResourceIdBlock; -import buildcraft.robotics.RobotRegistry; +import buildcraft.api.robots.ResourceIdBlock; import buildcraft.robotics.statements.ActionRobotFilter; import buildcraft.robotics.statements.ActionStationAllowCraft; import buildcraft.silicon.BlockLaserTable; diff --git a/common/buildcraft/robotics/ai/AIRobotCraftFurnace.java b/common/buildcraft/robotics/ai/AIRobotCraftFurnace.java index 893591b8..a430e137 100755 --- a/common/buildcraft/robotics/ai/AIRobotCraftFurnace.java +++ b/common/buildcraft/robotics/ai/AIRobotCraftFurnace.java @@ -27,7 +27,7 @@ import buildcraft.core.inventory.filters.ArrayStackFilter; import buildcraft.core.inventory.filters.IStackFilter; import buildcraft.robotics.DockingStation; import buildcraft.robotics.IStationFilter; -import buildcraft.robotics.ResourceIdBlock; +import buildcraft.api.robots.ResourceIdBlock; import buildcraft.robotics.statements.ActionRobotFilter; import buildcraft.robotics.statements.ActionStationAllowCraft; diff --git a/common/buildcraft/robotics/ai/AIRobotSearchBlockBase.java b/common/buildcraft/robotics/ai/AIRobotSearchBlockBase.java index f929905b..829b8b2d 100644 --- a/common/buildcraft/robotics/ai/AIRobotSearchBlockBase.java +++ b/common/buildcraft/robotics/ai/AIRobotSearchBlockBase.java @@ -11,7 +11,7 @@ import buildcraft.api.robots.EntityRobotBase; import buildcraft.core.utils.IBlockFilter; import buildcraft.core.utils.IterableAlgorithmRunner; import buildcraft.core.utils.PathFindingSearch; -import buildcraft.robotics.ResourceIdBlock; +import buildcraft.api.robots.ResourceIdBlock; public class AIRobotSearchBlockBase extends AIRobot { diff --git a/common/buildcraft/robotics/boards/BoardRobotFarmer.java b/common/buildcraft/robotics/boards/BoardRobotFarmer.java index 3282393c..37af7885 100644 --- a/common/buildcraft/robotics/boards/BoardRobotFarmer.java +++ b/common/buildcraft/robotics/boards/BoardRobotFarmer.java @@ -22,7 +22,7 @@ import buildcraft.api.robots.AIRobot; import buildcraft.api.robots.EntityRobotBase; import buildcraft.core.inventory.filters.IStackFilter; import buildcraft.core.utils.IBlockFilter; -import buildcraft.robotics.ResourceIdBlock; +import buildcraft.api.robots.ResourceIdBlock; import buildcraft.robotics.ai.AIRobotFetchAndEquipItemStack; import buildcraft.robotics.ai.AIRobotGotoBlock; import buildcraft.robotics.ai.AIRobotGotoSleep; diff --git a/common/buildcraft/robotics/boards/BoardRobotGenericBreakBlock.java b/common/buildcraft/robotics/boards/BoardRobotGenericBreakBlock.java index 1b2014a8..f08372e2 100644 --- a/common/buildcraft/robotics/boards/BoardRobotGenericBreakBlock.java +++ b/common/buildcraft/robotics/boards/BoardRobotGenericBreakBlock.java @@ -25,7 +25,7 @@ import buildcraft.api.statements.StatementParameterItemStack; import buildcraft.core.inventory.filters.IStackFilter; import buildcraft.core.utils.IBlockFilter; import buildcraft.robotics.DockingStation; -import buildcraft.robotics.ResourceIdBlock; +import buildcraft.api.robots.ResourceIdBlock; import buildcraft.robotics.ai.AIRobotBreak; import buildcraft.robotics.ai.AIRobotFetchAndEquipItemStack; import buildcraft.robotics.ai.AIRobotGotoBlock; diff --git a/common/buildcraft/robotics/boards/BoardRobotPlanter.java b/common/buildcraft/robotics/boards/BoardRobotPlanter.java index c7f396ed..2e263a0e 100644 --- a/common/buildcraft/robotics/boards/BoardRobotPlanter.java +++ b/common/buildcraft/robotics/boards/BoardRobotPlanter.java @@ -32,7 +32,7 @@ import buildcraft.core.inventory.filters.ArrayStackOrListFilter; import buildcraft.core.inventory.filters.CompositeFilter; import buildcraft.core.inventory.filters.IStackFilter; import buildcraft.core.utils.IBlockFilter; -import buildcraft.robotics.ResourceIdBlock; +import buildcraft.api.robots.ResourceIdBlock; import buildcraft.robotics.ai.AIRobotFetchAndEquipItemStack; import buildcraft.robotics.ai.AIRobotGotoBlock; import buildcraft.robotics.ai.AIRobotGotoSleep; diff --git a/common/buildcraft/robotics/boards/BoardRobotPump.java b/common/buildcraft/robotics/boards/BoardRobotPump.java index d1ac69be..a0aa3d37 100644 --- a/common/buildcraft/robotics/boards/BoardRobotPump.java +++ b/common/buildcraft/robotics/boards/BoardRobotPump.java @@ -31,7 +31,7 @@ import buildcraft.api.statements.IStatementParameter; import buildcraft.api.statements.StatementParameterItemStack; import buildcraft.core.utils.IBlockFilter; import buildcraft.robotics.DockingStation; -import buildcraft.robotics.ResourceIdBlock; +import buildcraft.api.robots.ResourceIdBlock; import buildcraft.robotics.ai.AIRobotGotoBlock; import buildcraft.robotics.ai.AIRobotGotoSleep; import buildcraft.robotics.ai.AIRobotGotoStationAndUnloadFluids; diff --git a/common/buildcraft/robotics/boards/BoardRobotStripes.java b/common/buildcraft/robotics/boards/BoardRobotStripes.java index 67ea7179..9eb92b5b 100644 --- a/common/buildcraft/robotics/boards/BoardRobotStripes.java +++ b/common/buildcraft/robotics/boards/BoardRobotStripes.java @@ -19,7 +19,7 @@ import buildcraft.api.robots.AIRobot; import buildcraft.api.robots.EntityRobotBase; import buildcraft.core.inventory.filters.IStackFilter; import buildcraft.core.utils.IBlockFilter; -import buildcraft.robotics.ResourceIdBlock; +import buildcraft.api.robots.ResourceIdBlock; import buildcraft.robotics.ai.AIRobotFetchAndEquipItemStack; import buildcraft.robotics.ai.AIRobotGotoBlock; import buildcraft.robotics.ai.AIRobotGotoSleep; diff --git a/common/buildcraft/commander/ContainerRequester.java b/common/buildcraft/robotics/gui/ContainerRequester.java similarity index 97% rename from common/buildcraft/commander/ContainerRequester.java rename to common/buildcraft/robotics/gui/ContainerRequester.java index 581780df..c128b74e 100755 --- a/common/buildcraft/commander/ContainerRequester.java +++ b/common/buildcraft/robotics/gui/ContainerRequester.java @@ -6,7 +6,7 @@ * License 1.0, or MMPL. Please check the contents of the license located in * http://www.mod-buildcraft.com/MMPL-1.0.txt */ -package buildcraft.commander; +package buildcraft.robotics.gui; import io.netty.buffer.ByteBuf; @@ -23,7 +23,7 @@ import buildcraft.core.network.CommandWriter; import buildcraft.core.network.ICommandReceiver; import buildcraft.core.network.PacketCommand; import buildcraft.core.utils.NetworkUtils; -import buildcraft.core.utils.Utils; +import buildcraft.robotics.TileRequester; public class ContainerRequester extends BuildCraftContainer implements ICommandReceiver { diff --git a/common/buildcraft/commander/ContainerZonePlan.java b/common/buildcraft/robotics/gui/ContainerZonePlan.java similarity index 98% rename from common/buildcraft/commander/ContainerZonePlan.java rename to common/buildcraft/robotics/gui/ContainerZonePlan.java index 3dd4e636..f32496dc 100755 --- a/common/buildcraft/commander/ContainerZonePlan.java +++ b/common/buildcraft/robotics/gui/ContainerZonePlan.java @@ -6,7 +6,7 @@ * License 1.0, or MMPL. Please check the contents of the license located in * http://www.mod-buildcraft.com/MMPL-1.0.txt */ -package buildcraft.commander; +package buildcraft.robotics.gui; import io.netty.buffer.ByteBuf; @@ -25,6 +25,7 @@ import buildcraft.core.gui.slots.SlotOutput; import buildcraft.core.network.CommandWriter; import buildcraft.core.network.ICommandReceiver; import buildcraft.core.network.PacketCommand; +import buildcraft.robotics.TileZonePlan; public class ContainerZonePlan extends BuildCraftContainer implements ICommandReceiver { diff --git a/common/buildcraft/commander/GuiRequester.java b/common/buildcraft/robotics/gui/GuiRequester.java similarity index 97% rename from common/buildcraft/commander/GuiRequester.java rename to common/buildcraft/robotics/gui/GuiRequester.java index aeb49ffc..66b34e58 100755 --- a/common/buildcraft/commander/GuiRequester.java +++ b/common/buildcraft/robotics/gui/GuiRequester.java @@ -6,7 +6,7 @@ * License 1.0, or MMPL. Please check the contents of the license located in * http://www.mod-buildcraft.com/MMPL-1.0.txt */ -package buildcraft.commander; +package buildcraft.robotics.gui; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; @@ -15,6 +15,7 @@ import net.minecraft.util.ResourceLocation; import buildcraft.core.DefaultProps; import buildcraft.core.gui.AdvancedSlot; import buildcraft.core.gui.GuiAdvancedInterface; +import buildcraft.robotics.TileRequester; public class GuiRequester extends GuiAdvancedInterface { diff --git a/common/buildcraft/commander/GuiZonePlan.java b/common/buildcraft/robotics/gui/GuiZonePlan.java similarity index 99% rename from common/buildcraft/commander/GuiZonePlan.java rename to common/buildcraft/robotics/gui/GuiZonePlan.java index 1dff9078..2d0a10d0 100755 --- a/common/buildcraft/commander/GuiZonePlan.java +++ b/common/buildcraft/robotics/gui/GuiZonePlan.java @@ -6,7 +6,7 @@ * License 1.0, or MMPL. Please check the contents of the license located in * http://www.mod-buildcraft.com/MMPL-1.0.txt */ -package buildcraft.commander; +package buildcraft.robotics.gui; import java.util.LinkedList; import java.util.List; @@ -35,6 +35,7 @@ import buildcraft.core.gui.tooltips.ToolTipLine; import buildcraft.core.network.CommandWriter; import buildcraft.core.network.PacketCommand; import buildcraft.core.utils.StringUtils; +import buildcraft.robotics.TileZonePlan; public class GuiZonePlan extends GuiAdvancedInterface { diff --git a/common/buildcraft/silicon/BlockLaser.java b/common/buildcraft/silicon/BlockLaser.java index 14c8222d..a0a95060 100644 --- a/common/buildcraft/silicon/BlockLaser.java +++ b/common/buildcraft/silicon/BlockLaser.java @@ -28,7 +28,7 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraftforge.common.util.ForgeDirection; import buildcraft.core.BlockBuildCraft; -import buildcraft.core.CreativeTabBuildCraft; +import buildcraft.core.BCCreativeTab; import buildcraft.core.ICustomHighlight; public class BlockLaser extends BlockBuildCraft implements ICustomHighlight { @@ -48,7 +48,7 @@ public class BlockLaser extends BlockBuildCraft implements ICustomHighlight { public BlockLaser() { super(Material.iron); setHardness(10F); - setCreativeTab(CreativeTabBuildCraft.BLOCKS.get()); + setCreativeTab(BCCreativeTab.get("main")); } @Override diff --git a/common/buildcraft/silicon/BlockLaserTable.java b/common/buildcraft/silicon/BlockLaserTable.java index 51cbb777..06e07b2f 100644 --- a/common/buildcraft/silicon/BlockLaserTable.java +++ b/common/buildcraft/silicon/BlockLaserTable.java @@ -29,7 +29,7 @@ import buildcraft.BuildCraftSilicon; import buildcraft.api.events.BlockInteractionEvent; import buildcraft.api.power.ILaserTargetBlock; import buildcraft.core.BlockBuildCraft; -import buildcraft.core.CreativeTabBuildCraft; +import buildcraft.core.BCCreativeTab; import buildcraft.core.utils.Utils; public class BlockLaserTable extends BlockBuildCraft implements ILaserTargetBlock { @@ -44,7 +44,7 @@ public class BlockLaserTable extends BlockBuildCraft implements ILaserTargetBloc setBlockBounds(0, 0, 0, 1, 9F / 16F, 1); setHardness(10F); - setCreativeTab(CreativeTabBuildCraft.BLOCKS.get()); + setCreativeTab(BCCreativeTab.get("main")); } @Override diff --git a/common/buildcraft/silicon/GuiHandler.java b/common/buildcraft/silicon/SiliconGuiHandler.java similarity index 98% rename from common/buildcraft/silicon/GuiHandler.java rename to common/buildcraft/silicon/SiliconGuiHandler.java index 12d2c7f1..f570d4e2 100644 --- a/common/buildcraft/silicon/GuiHandler.java +++ b/common/buildcraft/silicon/SiliconGuiHandler.java @@ -25,7 +25,7 @@ import buildcraft.silicon.gui.GuiChargingTable; import buildcraft.silicon.gui.GuiIntegrationTable; import buildcraft.silicon.gui.GuiProgrammingTable; -public class GuiHandler implements IGuiHandler { +public class SiliconGuiHandler implements IGuiHandler { @Override public Object getClientGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) { diff --git a/common/buildcraft/transport/BlockGenericPipe.java b/common/buildcraft/transport/BlockGenericPipe.java index a3652fe3..173f5736 100644 --- a/common/buildcraft/transport/BlockGenericPipe.java +++ b/common/buildcraft/transport/BlockGenericPipe.java @@ -62,7 +62,7 @@ import buildcraft.api.transport.pluggable.IPipePluggableItem; import buildcraft.api.transport.pluggable.PipePluggable; import buildcraft.core.BlockBuildCraft; import buildcraft.core.CoreConstants; -import buildcraft.core.CreativeTabBuildCraft; +import buildcraft.core.BCCreativeTab; import buildcraft.core.TileBuffer; import buildcraft.core.utils.MatrixTranformations; import buildcraft.core.utils.Utils; @@ -836,7 +836,7 @@ public class BlockGenericPipe extends BlockBuildCraft { } /* Registration ******************************************************** */ - public static ItemPipe registerPipe(Class clas, CreativeTabBuildCraft creativeTab) { + public static ItemPipe registerPipe(Class clas, BCCreativeTab creativeTab) { ItemPipe item = new ItemPipe(creativeTab); item.setUnlocalizedName("buildcraftPipe." + clas.getSimpleName().toLowerCase(Locale.ENGLISH)); GameRegistry.registerItem(item, item.getUnlocalizedName()); diff --git a/common/buildcraft/transport/ItemFacade.java b/common/buildcraft/transport/ItemFacade.java index 3b98a06c..52cdd476 100644 --- a/common/buildcraft/transport/ItemFacade.java +++ b/common/buildcraft/transport/ItemFacade.java @@ -42,7 +42,7 @@ import buildcraft.api.transport.PipeWire; import buildcraft.api.transport.pluggable.IPipePluggableItem; import buildcraft.api.transport.pluggable.PipePluggable; import buildcraft.core.BlockSpring; -import buildcraft.core.CreativeTabBuildCraft; +import buildcraft.core.BCCreativeTab; import buildcraft.core.ItemBuildCraft; import buildcraft.core.proxy.CoreProxy; import buildcraft.core.utils.StringUtils; @@ -145,7 +145,7 @@ public class ItemFacade extends ItemBuildCraft implements IFacadeItem, IPipePlug private static final ItemStack NO_MATCH = new ItemStack(NULL_BLOCK, 0, 0); public ItemFacade() { - super(CreativeTabBuildCraft.FACADES); + super(BCCreativeTab.get("facades")); setHasSubtypes(true); setMaxDamage(0); diff --git a/common/buildcraft/transport/ItemPipe.java b/common/buildcraft/transport/ItemPipe.java index 054b7b08..cc258b0f 100644 --- a/common/buildcraft/transport/ItemPipe.java +++ b/common/buildcraft/transport/ItemPipe.java @@ -28,7 +28,7 @@ import cpw.mods.fml.relauncher.SideOnly; import buildcraft.BuildCraftTransport; import buildcraft.api.core.BCLog; import buildcraft.api.core.IIconProvider; -import buildcraft.core.CreativeTabBuildCraft; +import buildcraft.core.BCCreativeTab; import buildcraft.core.IItemPipe; import buildcraft.core.ItemBuildCraft; import buildcraft.core.utils.ColorUtils; @@ -40,7 +40,7 @@ public class ItemPipe extends ItemBuildCraft implements IItemPipe { private IIconProvider iconProvider; private int pipeIconIndex; - protected ItemPipe(CreativeTabBuildCraft creativeTab) { + protected ItemPipe(BCCreativeTab creativeTab) { super(creativeTab); this.setMaxDamage(0); this.setHasSubtypes(true); diff --git a/common/buildcraft/transport/GuiHandler.java b/common/buildcraft/transport/TransportGuiHandler.java similarity index 98% rename from common/buildcraft/transport/GuiHandler.java rename to common/buildcraft/transport/TransportGuiHandler.java index 0b8c867d..3988282a 100644 --- a/common/buildcraft/transport/GuiHandler.java +++ b/common/buildcraft/transport/TransportGuiHandler.java @@ -34,7 +34,7 @@ import buildcraft.transport.pipes.PipeFluidsEmerald; import buildcraft.transport.pipes.PipeItemsEmerald; import buildcraft.transport.pipes.PipeItemsEmzuli; -public class GuiHandler implements IGuiHandler { +public class TransportGuiHandler implements IGuiHandler { @Override public Object getServerGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) {