diff --git a/build.xml b/build.xml index 992c735e..8172a20a 100644 --- a/build.xml +++ b/build.xml @@ -18,8 +18,8 @@ - - + + diff --git a/buildcraft_resources/lang/buildcraft/en_US.properties b/buildcraft_resources/lang/buildcraft/en_US.properties index 34959879..e3d8307b 100644 --- a/buildcraft_resources/lang/buildcraft/en_US.properties +++ b/buildcraft_resources/lang/buildcraft/en_US.properties @@ -34,7 +34,7 @@ item.diamondGearItem=Diamond Gear item.templateItem=Template item.wrenchItem=Wrench item.fuel=Fuel -item.pipeWaterproof=Pipe Waterproof +item.pipeWaterproof=Pipe Sealant item.pipeGate.0=Gate item.pipeGate.1=Iron AND Gate item.pipeGate.2=Iron OR Gate @@ -68,24 +68,24 @@ item.PipeItemsGold=Golden Transport Pipe item.PipeItemsDiamond=Diamond Transport Pipe item.PipeItemsObsidian=Obsidian Transport Pipe item.PipeItemsEmerald=Emerald Transport Pipe -item.PipeLiquidsWood=Wooden Waterproof Pipe -item.PipeLiquidsCobblestone=Cobblestone Waterproof Pipe -item.PipeLiquidsStone=Stone Waterproof Pipe -item.PipeLiquidsIron=Iron Waterproof Pipe -item.PipeLiquidsGold=Golden Waterproof Pipe -item.PipeLiquidsEmerald=Emerald Waterproof Pipe -item.PipePowerWood=Wooden Conductive Pipe -item.PipePowerCobblestone=Cobblestone Conductive Pipe -item.PipePowerStone=Stone Conductive Pipe -item.PipePowerQuartz=Quartz Conductive Pipe -item.PipePowerGold=Golden Conductive Pipe -item.PipePowerDiamond=Diamond Conductive Pipe +item.PipeLiquidsWood=Wooden Fluid Pipe +item.PipeLiquidsCobblestone=Cobblestone Fluid Pipe +item.PipeLiquidsStone=Stone Fluid Pipe +item.PipeLiquidsIron=Iron Fluid Pipe +item.PipeLiquidsGold=Golden Fluid Pipe +item.PipeLiquidsEmerald=Emerald Fluid Pipe +item.PipePowerWood=Wooden Kinesis Pipe +item.PipePowerCobblestone=Cobblestone Kinesis Pipe +item.PipePowerStone=Stone Kinesis Pipe +item.PipePowerQuartz=Quartz Kinesis Pipe +item.PipePowerGold=Golden Kinesis Pipe +item.PipePowerDiamond=Diamond Kinesis Pipe item.PipeItemsStripes=Stripes Transport Pipe item.PipeStructureCobblestone=Cobblestone Structure Pipe item.PipeItemsVoid=Void Transport Pipe -item.PipeLiquidsVoid=Void Waterproof Pipe +item.PipeLiquidsVoid=Void Fluid Pipe item.PipeItemsSandstone=Sandstone Transport Pipe -item.PipeLiquidsSandstone=Sandstone Waterproof Pipe +item.PipeLiquidsSandstone=Sandstone Fluid Pipe item.Facade=Facade item.PipePlug=Pipe Plug tile.miningWellBlock=Mining Well diff --git a/common/buildcraft/BuildCraftBuilders.java b/common/buildcraft/BuildCraftBuilders.java index 4c0d3207..b18cb4a6 100644 --- a/common/buildcraft/BuildCraftBuilders.java +++ b/common/buildcraft/BuildCraftBuilders.java @@ -7,32 +7,17 @@ */ package buildcraft; -import java.io.IOException; -import java.util.LinkedList; -import java.util.TreeMap; - -import net.minecraft.block.Block; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.client.event.TextureStitchEvent; -import net.minecraftforge.common.Configuration; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.common.Property; -import net.minecraftforge.event.ForgeSubscribe; import buildcraft.api.blueprints.BptBlock; import buildcraft.api.bptblocks.BptBlockBed; import buildcraft.api.bptblocks.BptBlockCustomStack; import buildcraft.api.bptblocks.BptBlockDelegate; import buildcraft.api.bptblocks.BptBlockDirt; import buildcraft.api.bptblocks.BptBlockDoor; +import buildcraft.api.bptblocks.BptBlockFluid; import buildcraft.api.bptblocks.BptBlockIgnore; import buildcraft.api.bptblocks.BptBlockIgnoreMeta; import buildcraft.api.bptblocks.BptBlockInventory; import buildcraft.api.bptblocks.BptBlockLever; -import buildcraft.api.bptblocks.BptBlockLiquid; import buildcraft.api.bptblocks.BptBlockPiston; import buildcraft.api.bptblocks.BptBlockPumpkin; import buildcraft.api.bptblocks.BptBlockRedstoneRepeater; @@ -76,9 +61,8 @@ import buildcraft.core.blueprints.BptPlayerIndex; import buildcraft.core.blueprints.BptRootIndex; import buildcraft.core.proxy.CoreProxy; import cpw.mods.fml.common.Mod; -import cpw.mods.fml.common.Mod.Init; +import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.Mod.Instance; -import cpw.mods.fml.common.Mod.PreInit; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.event.FMLServerStoppingEvent; @@ -88,6 +72,19 @@ import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.LanguageRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import java.io.IOException; +import java.util.LinkedList; +import java.util.TreeMap; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.client.event.TextureStitchEvent; +import net.minecraftforge.common.Configuration; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.common.Property; +import net.minecraftforge.event.ForgeSubscribe; @Mod(name = "BuildCraft Builders", version = Version.VERSION, useMetadata = false, modid = "BuildCraft|Builders", dependencies = DefaultProps.DEPENDENCY_CORE) @NetworkMod(channels = {DefaultProps.NET_CHANNEL_NAME}, packetHandler = PacketHandlerBuilders.class, clientSideRequired = true, serverSideRequired = true) @@ -112,7 +109,7 @@ public class BuildCraftBuilders { @Instance("BuildCraft|Builders") public static BuildCraftBuilders instance; - @Init + @EventHandler public void load(FMLInitializationEvent evt) { // Create filler registry FillerManager.registry = new FillerRegistry(); @@ -171,10 +168,10 @@ public class BuildCraftBuilders { new BptBlockRedstoneRepeater(Block.redstoneRepeaterActive.blockID); new BptBlockRedstoneRepeater(Block.redstoneRepeaterIdle.blockID); - new BptBlockLiquid(Block.waterStill.blockID, new ItemStack(Item.bucketWater)); - new BptBlockLiquid(Block.waterMoving.blockID, new ItemStack(Item.bucketWater)); - new BptBlockLiquid(Block.lavaStill.blockID, new ItemStack(Item.bucketLava)); - new BptBlockLiquid(Block.lavaMoving.blockID, new ItemStack(Item.bucketLava)); + new BptBlockFluid(Block.waterStill.blockID, new ItemStack(Item.bucketWater)); + new BptBlockFluid(Block.waterMoving.blockID, new ItemStack(Item.bucketWater)); + new BptBlockFluid(Block.lavaStill.blockID, new ItemStack(Item.bucketLava)); + new BptBlockFluid(Block.lavaMoving.blockID, new ItemStack(Item.bucketLava)); new BptBlockIgnoreMeta(Block.rail.blockID); new BptBlockIgnoreMeta(Block.railPowered.blockID); @@ -217,7 +214,7 @@ public class BuildCraftBuilders { } - @PreInit + @EventHandler public void initialize(FMLPreInitializationEvent evt) { Property templateItemId = BuildCraftCore.mainConfiguration.getItem("templateItem.id", DefaultProps.TEMPLATE_ITEM_ID); Property blueprintItemId = BuildCraftCore.mainConfiguration.getItem("blueprintItem.id", DefaultProps.BLUEPRINT_ITEM_ID); @@ -312,12 +309,10 @@ public class BuildCraftBuilders { new ItemStack(Item.dyePowder, 1, 0), Character.valueOf('t'), markerBlock, Character.valueOf('y'), new ItemStack(Item.dyePowder, 1, 11), Character.valueOf('c'), Block.workbench, Character.valueOf('g'), BuildCraftCore.goldGearItem, Character.valueOf('C'), Block.chest}); - CoreProxy.proxy.addCraftingRecipe(new ItemStack(builderBlock, 1), new Object[]{"btb", "ycy", "gCg", Character.valueOf('b'), new ItemStack(Item.dyePowder, 1, 0), Character.valueOf('t'), markerBlock, Character.valueOf('y'), new ItemStack(Item.dyePowder, 1, 11), Character.valueOf('c'), Block.workbench, Character.valueOf('g'), BuildCraftCore.diamondGearItem, Character.valueOf('C'), Block.chest}); - CoreProxy.proxy.addCraftingRecipe(new ItemStack(architectBlock, 1), new Object[]{"btb", "ycy", "gCg", Character.valueOf('b'), new ItemStack(Item.dyePowder, 1, 0), Character.valueOf('t'), markerBlock, Character.valueOf('y'), new ItemStack(Item.dyePowder, 1, 11), Character.valueOf('c'), Block.workbench, Character.valueOf('g'), BuildCraftCore.diamondGearItem, Character.valueOf('C'), @@ -326,6 +321,7 @@ public class BuildCraftBuilders { CoreProxy.proxy.addCraftingRecipe(new ItemStack(libraryBlock, 1), new Object[]{"bbb", "bBb", "bbb", Character.valueOf('b'), new ItemStack(blueprintItem), Character.valueOf('B'), Block.bookShelf}); + // / INIT FILLER PATTERNS FillerManager.registry.addRecipe(new FillerFillAll(), new Object[]{"bbb", "bbb", "bbb", 'g', Block.glass, 'b', Block.brick}); FillerManager.registry.addRecipe(new FillerFlattener(), new Object[]{"ggg", "bbb", "bbb", 'g', Block.glass, 'b', Block.brick}); @@ -386,7 +382,7 @@ public class BuildCraftBuilders { } } - @Mod.ServerStopping + @EventHandler public void ServerStop(FMLServerStoppingEvent event) { TilePathMarker.clearAvailableMarkersList(); } @@ -394,7 +390,7 @@ public class BuildCraftBuilders { @ForgeSubscribe @SideOnly(Side.CLIENT) public void loadTextures(TextureStitchEvent.Pre evt) { - if (evt.map == Minecraft.getMinecraft().renderEngine.textureMapBlocks) { + if (evt.map.textureType == 0) { TextureMap terrainMap = evt.map; BuilderProxyClient.fillerFillAllTexture = terrainMap.registerIcon("buildcraft:fillerPatterns/fillAll"); BuilderProxyClient.fillerClearTexture = terrainMap.registerIcon("buildcraft:fillerPatterns/clear"); diff --git a/common/buildcraft/BuildCraftCore.java b/common/buildcraft/BuildCraftCore.java index cc0048d5..3ae25d47 100644 --- a/common/buildcraft/BuildCraftCore.java +++ b/common/buildcraft/BuildCraftCore.java @@ -8,27 +8,11 @@ package buildcraft; -import buildcraft.builders.blueprints.BlueprintDatabase; -import java.io.File; -import java.util.TreeMap; -import java.util.logging.Logger; -import net.minecraft.block.Block; -import net.minecraft.block.BlockFluid; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.EntityList; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.Icon; -import net.minecraftforge.client.event.TextureStitchEvent; -import net.minecraftforge.common.Configuration; -import net.minecraftforge.common.IPlantable; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.common.Property; -import net.minecraftforge.event.ForgeSubscribe; import buildcraft.api.core.BuildCraftAPI; import buildcraft.api.core.IIconProvider; import buildcraft.api.gates.ActionManager; +import buildcraft.builders.blueprints.BlueprintDatabase; import buildcraft.core.BlockIndex; import buildcraft.core.BlockSpring; import buildcraft.core.BuildCraftConfiguration; @@ -57,18 +41,15 @@ import buildcraft.core.triggers.BCAction; import buildcraft.core.triggers.BCTrigger; import buildcraft.core.triggers.DefaultActionProvider; import buildcraft.core.triggers.DefaultTriggerProvider; +import buildcraft.core.triggers.TriggerFluidContainer; import buildcraft.core.triggers.TriggerInventory; -import buildcraft.core.triggers.TriggerLiquidContainer; import buildcraft.core.triggers.TriggerMachine; import buildcraft.core.utils.Localization; import buildcraft.transport.triggers.TriggerRedstoneInput; import cpw.mods.fml.common.FMLLog; import cpw.mods.fml.common.Mod; -import cpw.mods.fml.common.Mod.Init; +import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.Mod.Instance; -import cpw.mods.fml.common.Mod.PostInit; -import cpw.mods.fml.common.Mod.PreInit; -import cpw.mods.fml.common.Mod.ServerStarting; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; @@ -80,6 +61,21 @@ import cpw.mods.fml.common.registry.LanguageRegistry; import cpw.mods.fml.common.registry.TickRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import java.io.File; +import java.util.TreeMap; +import java.util.logging.Logger; +import net.minecraft.block.Block; +import net.minecraft.block.BlockFluid; +import net.minecraft.entity.EntityList; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.Icon; +import net.minecraftforge.client.event.TextureStitchEvent; +import net.minecraftforge.common.Configuration; +import net.minecraftforge.common.IPlantable; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.common.Property; +import net.minecraftforge.event.ForgeSubscribe; @Mod(name = "BuildCraft", version = Version.VERSION, useMetadata = false, modid = "BuildCraft|Core", dependencies = "required-after:Forge@[7.7.2.682,)") @NetworkMod(channels = { DefaultProps.NET_CHANNEL_NAME }, packetHandler = PacketHandler.class, clientSideRequired = true, serverSideRequired = true) @@ -142,10 +138,10 @@ public class BuildCraftCore { 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 triggerEmptyFluid = new TriggerFluidContainer(DefaultProps.TRIGGER_EMPTY_LIQUID, TriggerFluidContainer.State.Empty); + public static BCTrigger triggerContainsFluid = new TriggerFluidContainer(DefaultProps.TRIGGER_CONTAINS_LIQUID, TriggerFluidContainer.State.Contains); + public static BCTrigger triggerSpaceFluid = new TriggerFluidContainer(DefaultProps.TRIGGER_SPACE_LIQUID, TriggerFluidContainer.State.Space); + public static BCTrigger triggerFullFluid = new TriggerFluidContainer(DefaultProps.TRIGGER_FULL_LIQUID, TriggerFluidContainer.State.Full); public static BCTrigger triggerRedstoneActive = new TriggerRedstoneInput(DefaultProps.TRIGGER_REDSTONE_ACTIVE, true); public static BCTrigger triggerRedstoneInactive = new TriggerRedstoneInput(DefaultProps.TRIGGER_REDSTONE_INACTIVE, false); @@ -167,7 +163,7 @@ public class BuildCraftCore { @Instance("BuildCraft|Core") public static BuildCraftCore instance; - @PreInit + @EventHandler public void loadConfiguration(FMLPreInitializationEvent evt) { Version.check(); @@ -264,8 +260,8 @@ public class BuildCraftCore { } } - @Init - public void initialize(FMLInitializationEvent evt) { + @EventHandler + public void initialize(FMLInitializationEvent evt) { // MinecraftForge.registerConnectionHandler(new ConnectionHandler()); ActionManager.registerTriggerProvider(new DefaultTriggerProvider()); ActionManager.registerActionProvider(new DefaultActionProvider()); @@ -294,7 +290,7 @@ public class BuildCraftCore { } - @PostInit + @EventHandler public void postInit(FMLPostInitializationEvent event) { for (Block block : Block.blocksList) { if (block instanceof BlockFluid || block instanceof IPlantable) { @@ -309,19 +305,19 @@ public class BuildCraftCore { } - @ServerStarting - public void serverStarting(FMLServerStartingEvent event) { + @EventHandler + public void serverStarting(FMLServerStartingEvent event) { event.registerServerCommand(new CommandBuildCraft()); } @ForgeSubscribe @SideOnly(Side.CLIENT) public void textureHook(TextureStitchEvent.Pre event){ - if (event.map == Minecraft.getMinecraft().renderEngine.textureMapItems) { + if (event.map.textureType == 1) { iconProvider = new CoreIconProvider(); iconProvider.registerIcons(event.map); actionTriggerIconProvider.registerIcons(event.map); - } else if (event.map == Minecraft.getMinecraft().renderEngine.textureMapBlocks) { + } else if (event.map.textureType == 0) { BuildCraftCore.redLaserTexture = event.map.registerIcon("buildcraft:blockRedLaser"); BuildCraftCore.blueLaserTexture = event.map.registerIcon("buildcraft:blockBlueLaser"); BuildCraftCore.stripesLaserTexture = event.map.registerIcon("buildcraft:blockStripesLaser"); diff --git a/common/buildcraft/BuildCraftEnergy.java b/common/buildcraft/BuildCraftEnergy.java index 85bf64ba..83fcc4ad 100644 --- a/common/buildcraft/BuildCraftEnergy.java +++ b/common/buildcraft/BuildCraftEnergy.java @@ -7,56 +7,33 @@ */ package buildcraft; -import java.util.TreeMap; -import java.util.logging.Level; -import java.util.logging.Logger; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.Minecraft; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.biome.BiomeGenBase; -import net.minecraftforge.client.event.TextureStitchEvent; -import net.minecraftforge.common.Configuration; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.common.Property; -import net.minecraftforge.event.ForgeSubscribe; -import net.minecraftforge.liquids.LiquidContainerData; -import net.minecraftforge.liquids.LiquidContainerRegistry; -import net.minecraftforge.liquids.LiquidDictionary; -import net.minecraftforge.liquids.LiquidStack; import buildcraft.api.fuels.IronEngineCoolant; import buildcraft.api.fuels.IronEngineFuel; import buildcraft.api.recipes.RefineryRecipe; import buildcraft.core.BlockIndex; import buildcraft.core.BlockSpring; import buildcraft.core.DefaultProps; -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.BlockBuildcraftFluid; import buildcraft.energy.BlockEngine; -import buildcraft.energy.BlockOilFlowing; -import buildcraft.energy.BlockOilStill; import buildcraft.energy.BptBlockEngine; import buildcraft.energy.EnergyProxy; import buildcraft.energy.GuiHandler; -import buildcraft.energy.ItemBucketOil; +import buildcraft.energy.ItemBucketBuildcraft; import buildcraft.energy.ItemEngine; -import buildcraft.energy.OilBucketHandler; +import buildcraft.energy.BucketHandler; import buildcraft.energy.TileEngine.EnergyStage; -import buildcraft.energy.worldgen.BiomeGenOilDesert; -import buildcraft.energy.worldgen.OilPopulate; import buildcraft.energy.TriggerEngineHeat; +import buildcraft.energy.worldgen.BiomeGenOilDesert; import buildcraft.energy.worldgen.BiomeGenOilOcean; import buildcraft.energy.worldgen.BiomeInitializer; +import buildcraft.energy.worldgen.OilPopulate; import cpw.mods.fml.common.Mod; -import cpw.mods.fml.common.Mod.Init; +import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.Mod.Instance; -import cpw.mods.fml.common.Mod.PostInit; -import cpw.mods.fml.common.Mod.PreInit; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLInterModComms; import cpw.mods.fml.common.event.FMLPostInitializationEvent; @@ -66,6 +43,22 @@ import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.registry.LanguageRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import java.util.TreeMap; +import java.util.logging.Level; +import java.util.logging.Logger; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraftforge.client.event.TextureStitchEvent; +import net.minecraftforge.common.Configuration; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.common.Property; +import net.minecraftforge.event.ForgeSubscribe; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidContainerRegistry; +import net.minecraftforge.fluids.FluidRegistry; @Mod(name = "BuildCraft Energy", version = Version.VERSION, useMetadata = false, modid = "BuildCraft|Energy", dependencies = DefaultProps.DEPENDENCY_CORE) @NetworkMod(channels = {DefaultProps.NET_CHANNEL_NAME}, packetHandler = PacketHandler.class, clientSideRequired = true, serverSideRequired = true) @@ -77,13 +70,15 @@ public class BuildCraftEnergy { public static BiomeGenOilDesert biomeOilDesert; public static BiomeGenOilOcean biomeOilOcean; public static BlockEngine engineBlock; - public static Block oilMoving; - public static Block oilStill; + private static Fluid buildcraftFluidOil; + private static Fluid buildcraftFluidFuel; + public static Fluid fluidOil; + public static Fluid fluidFuel; + public static Block blockOil; + public static Block blockFuel; public static Item bucketOil; public static Item bucketFuel; public static Item fuel; - public static LiquidStack oilLiquid; - public static LiquidStack fuelLiquid; public static boolean canOilBurn; public static TreeMap saturationStored = new TreeMap(); public static BCTrigger triggerBlueEngineHeat = new TriggerEngineHeat(DefaultProps.TRIGGER_BLUE_ENGINE_HEAT, EnergyStage.BLUE); @@ -93,16 +88,23 @@ public class BuildCraftEnergy { @Instance("BuildCraft|Energy") public static BuildCraftEnergy instance; - @PreInit + @EventHandler public void preInit(FMLPreInitializationEvent evt) { Property engineId = BuildCraftCore.mainConfiguration.getBlock("engine.id", DefaultProps.ENGINE_ID); - Property oilStillId = BuildCraftCore.mainConfiguration.getBlock("oilStill.id", DefaultProps.OIL_STILL_ID); - Property oilMovingId = BuildCraftCore.mainConfiguration.getBlock("oilMoving.id", DefaultProps.OIL_MOVING_ID); - Property bucketOilId = BuildCraftCore.mainConfiguration.get(Configuration.CATEGORY_ITEM, "bucketOil.id", DefaultProps.BUCKET_OIL_ID); - Property bucketFuelId = BuildCraftCore.mainConfiguration.get(Configuration.CATEGORY_ITEM, "bucketFuel.id", DefaultProps.BUCKET_FUEL_ID); - Property itemFuelId = BuildCraftCore.mainConfiguration.get(Configuration.CATEGORY_ITEM, "fuel.id", DefaultProps.FUEL_ID); - Property oilDesertBiomeId = BuildCraftCore.mainConfiguration.get("biomes", "oilDesert", 160); - Property oilOceanBiomeId = BuildCraftCore.mainConfiguration.get("biomes", "oilOcean", 161); + + // Update oil tag + int defaultOilId = DefaultProps.OIL_ID; + if (BuildCraftCore.mainConfiguration.hasKey(Configuration.CATEGORY_BLOCK, "oilStill.id")) { + defaultOilId = BuildCraftCore.mainConfiguration.get(Configuration.CATEGORY_BLOCK, "oilStill.id", defaultOilId).getInt(defaultOilId); + BuildCraftCore.mainConfiguration.getCategory(Configuration.CATEGORY_BLOCK).remove("oilStill.id"); + } + int blockOilId = BuildCraftCore.mainConfiguration.getBlock("oil.id", defaultOilId).getInt(defaultOilId); + + int blockFuelId = BuildCraftCore.mainConfiguration.getBlock("fuel.id", DefaultProps.FUEL_ID).getInt(DefaultProps.FUEL_ID); + int bucketOilId = BuildCraftCore.mainConfiguration.getItem("bucketOil.id", DefaultProps.BUCKET_OIL_ID).getInt(DefaultProps.BUCKET_OIL_ID); + int bucketFuelId = BuildCraftCore.mainConfiguration.getItem("bucketFuel.id", DefaultProps.BUCKET_FUEL_ID).getInt(DefaultProps.BUCKET_FUEL_ID); + int oilDesertBiomeId = BuildCraftCore.mainConfiguration.get("biomes", "oilDesert", DefaultProps.BIOME_OIL_DESERT).getInt(DefaultProps.BIOME_OIL_DESERT); + int oilOceanBiomeId = BuildCraftCore.mainConfiguration.get("biomes", "oilOcean", DefaultProps.BIOME_OIL_OCEAN).getInt(DefaultProps.BIOME_OIL_OCEAN); canOilBurn = BuildCraftCore.mainConfiguration.get(Configuration.CATEGORY_GENERAL, "burnOil", true, "Can oil burn?").getBoolean(true); BuildCraftCore.mainConfiguration.save(); @@ -113,20 +115,18 @@ public class BuildCraftEnergy { } } - int oilDesertId = oilDesertBiomeId.getInt(); - if (oilDesertId > 0) { - if (BiomeGenBase.biomeList[oilDesertId] != null) { - throw new BiomeIdException("oilDesert", oilDesertId); + if (oilDesertBiomeId > 0) { + if (BiomeGenBase.biomeList[oilDesertBiomeId] != null) { + throw new BiomeIdException("oilDesert", oilDesertBiomeId); } - biomeOilDesert = BiomeGenOilDesert.makeBiome(oilDesertId); + biomeOilDesert = BiomeGenOilDesert.makeBiome(oilDesertBiomeId); } - int oilOceanId = oilOceanBiomeId.getInt(); - if (oilOceanId > 0) { - if (BiomeGenBase.biomeList[oilOceanId] != null) { - throw new BiomeIdException("oilOcean", oilOceanId); + if (oilOceanBiomeId > 0) { + if (BiomeGenBase.biomeList[oilOceanBiomeId] != null) { + throw new BiomeIdException("oilOcean", oilOceanBiomeId); } - biomeOilOcean = BiomeGenOilOcean.makeBiome(oilOceanId); + biomeOilOcean = BiomeGenOilOcean.makeBiome(oilOceanBiomeId); } @@ -137,58 +137,79 @@ public class BuildCraftEnergy { LanguageRegistry.addName(new ItemStack(engineBlock, 1, 1), "Steam Engine"); LanguageRegistry.addName(new ItemStack(engineBlock, 1, 2), "Combustion Engine"); - oilStill = (new BlockOilStill(oilStillId.getInt(DefaultProps.OIL_STILL_ID), Material.water)).setUnlocalizedName("oil"); - CoreProxy.proxy.addName(oilStill.setUnlocalizedName("oilStill"), "Oil"); - CoreProxy.proxy.registerBlock(oilStill); - Property oilSpringsProp = BuildCraftCore.mainConfiguration.get(Configuration.CATEGORY_GENERAL, "oilSprings", true); - spawnOilSprings = oilSpringsProp.getBoolean(true); - BlockSpring.EnumSpring.OIL.canGen = spawnOilSprings; - BlockSpring.EnumSpring.OIL.liquidBlock = oilStill; - - oilMoving = (new BlockOilFlowing(oilMovingId.getInt(DefaultProps.OIL_MOVING_ID), Material.water)).setUnlocalizedName("oil"); - CoreProxy.proxy.addName(oilMoving.setUnlocalizedName("oilMoving"), "Oil"); - CoreProxy.proxy.registerBlock(oilMoving); // Oil and fuel - if (oilMoving.blockID + 1 != oilStill.blockID) { - throw new RuntimeException("Oil Still id must be Oil Moving id + 1"); + buildcraftFluidOil = new Fluid("oil"); + FluidRegistry.registerFluid(buildcraftFluidOil); + fluidOil = FluidRegistry.getFluid("oil"); + + buildcraftFluidFuel = new Fluid("fuel"); + FluidRegistry.registerFluid(buildcraftFluidFuel); + fluidFuel = FluidRegistry.getFluid("fuel"); + + if (fluidOil.getBlockID() == -1) { + if (blockOilId > 0) { + blockOil = new BlockBuildcraftFluid(blockOilId, fluidOil, Material.water); + blockOil.setUnlocalizedName("blockOil"); + CoreProxy.proxy.addName(blockOil, "Oil"); + CoreProxy.proxy.registerBlock(blockOil); + fluidOil.setBlockID(blockOil); + } + } else { + blockOil = Block.blocksList[fluidOil.getBlockID()]; } - fuel = new ItemBuildCraft(itemFuelId.getInt(DefaultProps.FUEL_ID)).setUnlocalizedName("fuel"); - LanguageRegistry.addName(fuel, "Fuel"); + if (blockOil != null) { + Property oilSpringsProp = BuildCraftCore.mainConfiguration.get(Configuration.CATEGORY_GENERAL, "oilSprings", true); + spawnOilSprings = oilSpringsProp.getBoolean(true); + BlockSpring.EnumSpring.OIL.canGen = spawnOilSprings; + BlockSpring.EnumSpring.OIL.liquidBlock = blockOil; + } - MinecraftForge.EVENT_BUS.register(new OilBucketHandler()); + if (fluidFuel.getBlockID() == -1) { + if (blockFuelId > 0) { + blockFuel = new BlockBuildcraftFluid(blockFuelId, fluidFuel, Material.water); + blockFuel.setUnlocalizedName("blockFuel"); + CoreProxy.proxy.addName(blockFuel, "Fuel"); + CoreProxy.proxy.registerBlock(blockFuel); + fluidFuel.setBlockID(blockFuel); + } + } else { + blockFuel = Block.blocksList[fluidOil.getBlockID()]; + } - bucketOil = (new ItemBucketOil(bucketOilId.getInt(DefaultProps.BUCKET_OIL_ID))).setUnlocalizedName("bucketOil").setContainerItem(Item.bucketEmpty); - LanguageRegistry.addName(bucketOil, "Oil Bucket"); + // Buckets + MinecraftForge.EVENT_BUS.register(BucketHandler.INSTANCE); - bucketFuel = new ItemBuildCraft(bucketFuelId.getInt()).setUnlocalizedName("bucketFuel").setContainerItem(Item.bucketEmpty); - bucketFuel.setMaxStackSize(1); - LanguageRegistry.addName(bucketFuel, "Fuel Bucket"); + if (blockOil != null && bucketOilId > 0) { + bucketOil = new ItemBucketBuildcraft(bucketOilId, blockOil.blockID); + bucketOil.setUnlocalizedName("bucketOil").setContainerItem(Item.bucketEmpty); + LanguageRegistry.addName(bucketOil, "Oil Bucket"); + FluidContainerRegistry.registerFluidContainer(FluidRegistry.getFluidStack("oil", FluidContainerRegistry.BUCKET_VOLUME), new ItemStack(bucketOil), new ItemStack(Item.bucketEmpty)); + } - oilLiquid = LiquidDictionary.getOrCreateLiquid("Oil", new LiquidStack(oilStill, 1)); - fuelLiquid = LiquidDictionary.getOrCreateLiquid("Fuel", new LiquidStack(fuel, 1)); + if (blockFuel != null && bucketFuelId > 0) { + bucketFuel = new ItemBucketBuildcraft(bucketFuelId, blockFuel.blockID); + bucketFuel.setUnlocalizedName("bucketFuel").setContainerItem(Item.bucketEmpty); + LanguageRegistry.addName(bucketFuel, "Fuel Bucket"); + FluidContainerRegistry.registerFluidContainer(FluidRegistry.getFluidStack("fuel", FluidContainerRegistry.BUCKET_VOLUME), new ItemStack(bucketFuel), new ItemStack(Item.bucketEmpty)); + } - RefineryRecipe.registerRefineryRecipe(new RefineryRecipe(LiquidDictionary.getLiquid("Oil", 1), null, LiquidDictionary.getLiquid("Fuel", 1), 12, 1)); + RefineryRecipe.registerRefineryRecipe(new RefineryRecipe(FluidRegistry.getFluid("oil"), null, FluidRegistry.getFluid("fuel"), 12, 1)); // Iron Engine Fuels - IronEngineFuel.fuels.add(new IronEngineFuel(Block.lavaStill.blockID, 1, 20000)); - IronEngineFuel.fuels.add(new IronEngineFuel(LiquidDictionary.getLiquid("Oil", LiquidContainerRegistry.BUCKET_VOLUME), 3, 20000)); - IronEngineFuel.fuels.add(new IronEngineFuel(LiquidDictionary.getLiquid("Fuel", LiquidContainerRegistry.BUCKET_VOLUME), 6, 100000)); + IronEngineFuel.addFuel(FluidRegistry.getFluid("lava"), 1, 20000); + IronEngineFuel.addFuel(FluidRegistry.getFluid("oil"), 3, 20000); + IronEngineFuel.addFuel(FluidRegistry.getFluid("fuel"), 6, 100000); // Iron Engine Coolants - IronEngineCoolant.addCoolant(new LiquidStack(Block.waterStill, LiquidContainerRegistry.BUCKET_VOLUME), 0.0023F); - IronEngineCoolant.addCoolant(Block.ice.blockID, 0, new LiquidStack(Block.waterStill, LiquidContainerRegistry.BUCKET_VOLUME * 2)); - - LiquidContainerRegistry.registerLiquid(new LiquidContainerData(LiquidDictionary.getLiquid("Oil", LiquidContainerRegistry.BUCKET_VOLUME), new ItemStack( - bucketOil), new ItemStack(Item.bucketEmpty))); - LiquidContainerRegistry.registerLiquid(new LiquidContainerData(LiquidDictionary.getLiquid("Fuel", LiquidContainerRegistry.BUCKET_VOLUME), - new ItemStack(bucketFuel), new ItemStack(Item.bucketEmpty))); + IronEngineCoolant.addCoolant(FluidRegistry.getFluid("water"), 0.0023F); + IronEngineCoolant.addCoolant(Block.ice.blockID, 0, FluidRegistry.getFluidStack("water", FluidContainerRegistry.BUCKET_VOLUME * 2)); MinecraftForge.EVENT_BUS.register(this); } - @Init + @EventHandler public void init(FMLInitializationEvent evt) { NetworkRegistry.instance().registerGuiHandler(instance, new GuiHandler()); @@ -201,7 +222,7 @@ public class BuildCraftEnergy { EnergyProxy.proxy.registerTileEntities(); } - @PostInit + @EventHandler public void postInit(FMLPostInitializationEvent evt) { if (BuildCraftCore.modifyWorld) { MinecraftForge.EVENT_BUS.register(OilPopulate.INSTANCE); @@ -212,10 +233,9 @@ public class BuildCraftEnergy { @ForgeSubscribe @SideOnly(Side.CLIENT) public void textureHook(TextureStitchEvent.Post event) { - if (event.map == Minecraft.getMinecraft().renderEngine.textureMapItems) { - LiquidDictionary.getCanonicalLiquid("Fuel").setRenderingIcon(fuel.getIconFromDamage(0)).setTextureSheet("/gui/items.png"); - } else { - LiquidDictionary.getCanonicalLiquid("Oil").setRenderingIcon(oilStill.getBlockTextureFromSide(1)).setTextureSheet("/terrain.png"); + if (event.map.textureType == 0) { + buildcraftFluidOil.setIcons(blockOil.getBlockTextureFromSide(1)); + buildcraftFluidFuel.setIcons(blockFuel.getBlockTextureFromSide(1)); } } diff --git a/common/buildcraft/BuildCraftFactory.java b/common/buildcraft/BuildCraftFactory.java index a4733148..36237f0b 100644 --- a/common/buildcraft/BuildCraftFactory.java +++ b/common/buildcraft/BuildCraftFactory.java @@ -8,21 +8,6 @@ package buildcraft; -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraftforge.client.event.TextureStitchEvent; -import net.minecraftforge.common.Configuration; -import net.minecraftforge.common.ForgeChunkManager; -import net.minecraftforge.common.ForgeChunkManager.Ticket; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.common.Property; -import net.minecraftforge.event.ForgeSubscribe; import buildcraft.core.DefaultProps; import buildcraft.core.Version; import buildcraft.core.proxy.CoreProxy; @@ -51,14 +36,10 @@ import buildcraft.factory.TileQuarry; import buildcraft.factory.TileRefinery; import buildcraft.factory.TileTank; import buildcraft.factory.network.PacketHandlerFactory; - import com.google.common.collect.Lists; - import cpw.mods.fml.common.Mod; -import cpw.mods.fml.common.Mod.Init; +import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.Mod.Instance; -import cpw.mods.fml.common.Mod.PostInit; -import cpw.mods.fml.common.Mod.PreInit; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; @@ -66,6 +47,19 @@ import cpw.mods.fml.common.network.NetworkMod; import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import java.util.List; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import net.minecraftforge.client.event.TextureStitchEvent; +import net.minecraftforge.common.Configuration; +import net.minecraftforge.common.ForgeChunkManager; +import net.minecraftforge.common.ForgeChunkManager.Ticket; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.common.Property; +import net.minecraftforge.event.ForgeSubscribe; @Mod(name = "BuildCraft Factory", version = Version.VERSION, useMetadata = false, modid = "BuildCraft|Factory", dependencies = DefaultProps.DEPENDENCY_CORE) @NetworkMod(channels = { DefaultProps.NET_CHANNEL_NAME }, packetHandler = PacketHandlerFactory.class, clientSideRequired = true, serverSideRequired = true) @@ -83,13 +77,13 @@ public class BuildCraftFactory { public static boolean hopperDisabled; public static boolean allowMining = true; - + public static PumpDimensionList pumpDimensionList; @Instance("BuildCraft|Factory") public static BuildCraftFactory instance; - @PostInit + @EventHandler public void postInit(FMLPostInitializationEvent evt) { FactoryProxy.proxy.initializeNEIIntegration(); ForgeChunkManager.setForcedChunkLoadingCallback(instance, new QuarryChunkloadCallback()); @@ -126,7 +120,7 @@ public class BuildCraftFactory { } - @Init + @EventHandler public void load(FMLInitializationEvent evt) { NetworkRegistry.instance().registerGuiHandler(instance, new GuiHandler()); @@ -155,10 +149,10 @@ public class BuildCraftFactory { } } - @PreInit + @EventHandler public void initialize(FMLPreInitializationEvent evt) { allowMining = BuildCraftCore.mainConfiguration.get(Configuration.CATEGORY_GENERAL, "mining.enabled", true).getBoolean(true); - + pumpDimensionList = new PumpDimensionList(BuildCraftCore.mainConfiguration.get(Configuration.CATEGORY_GENERAL, "pumping.controlList", DefaultProps.PUMP_DIMENSION_LIST).getString()); Property miningWellId = BuildCraftCore.mainConfiguration.getBlock("miningWell.id", DefaultProps.MINING_WELL_ID); @@ -246,7 +240,7 @@ public class BuildCraftFactory { Character.valueOf('i'), Item.ingotIron, Character.valueOf('T'), tankBlock, Character.valueOf('g'), BuildCraftCore.ironGearItem, - Character.valueOf('p'), BuildCraftTransport.pipeLiquidsGold }); + Character.valueOf('p'), BuildCraftTransport.pipeFluidsGold }); } CoreProxy.proxy.addCraftingRecipe(new ItemStack(autoWorkbenchBlock), new Object[] { " g ", "gwg", " g ", Character.valueOf('w'), Block.workbench, @@ -271,7 +265,7 @@ public class BuildCraftFactory { @ForgeSubscribe @SideOnly(Side.CLIENT) public void loadTextures(TextureStitchEvent.Pre evt) { - if (evt.map == Minecraft.getMinecraft().renderEngine.textureMapBlocks) { + if (evt.map.textureType == 0) { TextureMap terrainTextures = evt.map; FactoryProxyClient.pumpTexture = terrainTextures.registerIcon("buildcraft:pump_tube"); FactoryProxyClient.drillTexture = terrainTextures.registerIcon("buildcraft:blockDrillTexture"); diff --git a/common/buildcraft/BuildCraftSilicon.java b/common/buildcraft/BuildCraftSilicon.java index 00e15c8d..a936e587 100644 --- a/common/buildcraft/BuildCraftSilicon.java +++ b/common/buildcraft/BuildCraftSilicon.java @@ -8,10 +8,6 @@ package buildcraft; -import net.minecraft.block.Block; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraftforge.common.Property; import buildcraft.api.bptblocks.BptBlockInventory; import buildcraft.api.bptblocks.BptBlockRotateMeta; import buildcraft.api.recipes.AssemblyRecipe; @@ -19,8 +15,8 @@ import buildcraft.core.DefaultProps; import buildcraft.core.ItemRedstoneChipset; import buildcraft.core.Version; import buildcraft.core.proxy.CoreProxy; -import buildcraft.silicon.BlockLaserTable; import buildcraft.silicon.BlockLaser; +import buildcraft.silicon.BlockLaserTable; import buildcraft.silicon.GuiHandler; import buildcraft.silicon.ItemLaserTable; import buildcraft.silicon.SiliconProxy; @@ -36,8 +32,11 @@ import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.network.NetworkMod; import cpw.mods.fml.common.network.NetworkRegistry; -import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.LanguageRegistry; +import net.minecraft.block.Block; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraftforge.common.Property; @Mod(name = "BuildCraft Silicon", version = Version.VERSION, useMetadata = false, modid = "BuildCraft|Silicon", dependencies = DefaultProps.DEPENDENCY_TRANSPORT) @NetworkMod(channels = { DefaultProps.NET_CHANNEL_NAME }, packetHandler = PacketHandlerSilicon.class, clientSideRequired = true, serverSideRequired = true) diff --git a/common/buildcraft/BuildCraftTransport.java b/common/buildcraft/BuildCraftTransport.java index 6d3f9ca3..bc18435e 100644 --- a/common/buildcraft/BuildCraftTransport.java +++ b/common/buildcraft/BuildCraftTransport.java @@ -7,16 +7,6 @@ */ package buildcraft; -import java.util.LinkedList; -import java.util.logging.Level; -import java.util.logging.Logger; - -import net.minecraft.block.Block; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraftforge.common.Configuration; -import net.minecraftforge.common.Property; import buildcraft.api.core.IIconProvider; import buildcraft.api.gates.ActionManager; import buildcraft.api.recipes.AssemblyRecipe; @@ -49,6 +39,14 @@ import buildcraft.transport.blueprints.BptItemPipeEmerald; import buildcraft.transport.blueprints.BptItemPipeIron; import buildcraft.transport.blueprints.BptItemPipeWooden; import buildcraft.transport.network.PacketHandlerTransport; +import buildcraft.transport.pipes.PipeFluidsCobblestone; +import buildcraft.transport.pipes.PipeFluidsEmerald; +import buildcraft.transport.pipes.PipeFluidsGold; +import buildcraft.transport.pipes.PipeFluidsIron; +import buildcraft.transport.pipes.PipeFluidsSandstone; +import buildcraft.transport.pipes.PipeFluidsStone; +import buildcraft.transport.pipes.PipeFluidsVoid; +import buildcraft.transport.pipes.PipeFluidsWood; import buildcraft.transport.pipes.PipeItemsCobblestone; import buildcraft.transport.pipes.PipeItemsDiamond; import buildcraft.transport.pipes.PipeItemsEmerald; @@ -60,14 +58,6 @@ import buildcraft.transport.pipes.PipeItemsSandstone; import buildcraft.transport.pipes.PipeItemsStone; import buildcraft.transport.pipes.PipeItemsVoid; import buildcraft.transport.pipes.PipeItemsWood; -import buildcraft.transport.pipes.PipeLiquidsCobblestone; -import buildcraft.transport.pipes.PipeLiquidsEmerald; -import buildcraft.transport.pipes.PipeLiquidsGold; -import buildcraft.transport.pipes.PipeLiquidsIron; -import buildcraft.transport.pipes.PipeLiquidsSandstone; -import buildcraft.transport.pipes.PipeLiquidsStone; -import buildcraft.transport.pipes.PipeLiquidsVoid; -import buildcraft.transport.pipes.PipeLiquidsWood; import buildcraft.transport.pipes.PipePowerCobblestone; import buildcraft.transport.pipes.PipePowerDiamond; import buildcraft.transport.pipes.PipePowerGold; @@ -82,11 +72,9 @@ import buildcraft.transport.triggers.TriggerFilteredBufferInventoryLevel; import buildcraft.transport.triggers.TriggerPipeContents; import buildcraft.transport.triggers.TriggerPipeContents.Kind; import buildcraft.transport.triggers.TriggerPipeSignal; - import com.google.common.base.Splitter; import com.google.common.collect.Iterables; import com.google.common.primitives.Ints; - import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.IMCCallback; import cpw.mods.fml.common.Mod.Init; @@ -102,13 +90,21 @@ import cpw.mods.fml.common.network.NetworkMod; import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.LanguageRegistry; +import java.util.LinkedList; +import java.util.logging.Level; +import java.util.logging.Logger; +import net.minecraft.block.Block; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import net.minecraftforge.common.Configuration; +import net.minecraftforge.common.Property; @Mod(version = Version.VERSION, modid = "BuildCraft|Transport", name = "Buildcraft Transport", dependencies = DefaultProps.DEPENDENCY_CORE) @NetworkMod(channels = {DefaultProps.NET_CHANNEL_NAME}, packetHandler = PacketHandlerTransport.class) public class BuildCraftTransport { public static BlockGenericPipe genericPipeBlock; - public static int maxItemsInPipes; public static float pipeDurability; public static Item pipeWaterproof; public static Item pipeGate; @@ -128,21 +124,21 @@ public class BuildCraftTransport { public static Item pipeItemsObsidian; public static Item pipeItemsVoid; public static Item pipeItemsSandstone; - public static Item pipeLiquidsWood; - public static Item pipeLiquidsCobblestone; - public static Item pipeLiquidsStone; - public static Item pipeLiquidsIron; - public static Item pipeLiquidsGold; - public static Item pipeLiquidsVoid; - public static Item pipeLiquidsSandstone; - public static Item pipeLiquidsEmerald; + public static Item pipeFluidsWood; + public static Item pipeFluidsCobblestone; + public static Item pipeFluidsStone; + public static Item pipeFluidsIron; + public static Item pipeFluidsGold; + public static Item pipeFluidsVoid; + public static Item pipeFluidsSandstone; + public static Item pipeFluidsEmerald; public static Item pipePowerWood; public static Item pipePowerCobblestone; public static Item pipePowerStone; public static Item pipePowerQuartz; public static Item pipePowerGold; public static Item pipePowerDiamond; - public static Item facadeItem; + public static ItemFacade facadeItem; public static Item plugItem; public static BlockFilteredBuffer filteredBufferBlock; // public static Item pipeItemsStipes; @@ -150,7 +146,7 @@ public class BuildCraftTransport { public static int groupItemsTrigger; 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 triggerPipeFluids = new TriggerPipeContents(DefaultProps.TRIGGER_PIPE_LIQUIDS, Kind.ContainsFluids); public static BCTrigger triggerPipeContainsEnergy = new TriggerPipeContents(DefaultProps.TRIGGER_PIPE_CONTAINS_ENERGY, Kind.ContainsEnergy); public static BCTrigger triggerPipeRequestsEnergy = new TriggerPipeContents(DefaultProps.TRIGGER_PIPE_REQUESTS_ENERGY, Kind.RequestsEnergy); public static BCTrigger triggerPipeTooMuchEnergy = new TriggerPipeContents(DefaultProps.TRIGGER_PIPE_TOO_MUCH_ENERGY, Kind.TooMuchEnergy); @@ -200,7 +196,7 @@ public class BuildCraftTransport { } @Override - public boolean canExtractLiquids(Object extractor, World world, int i, int j, int k) { + public boolean canExtractFluids(Object extractor, World world, int i, int j, int k) { return testStrings(liquids, world, i, j, k); } @@ -242,26 +238,20 @@ public class BuildCraftTransport { } else excludedItemBlocks = new String[0]; - Property exclusionLiquidList = BuildCraftCore.mainConfiguration.get(Configuration.CATEGORY_BLOCK, "woodenPipe.liquid.exclusion", new String[0]); + Property exclusionFluidList = BuildCraftCore.mainConfiguration.get(Configuration.CATEGORY_BLOCK, "woodenPipe.liquid.exclusion", new String[0]); - String[] excludedLiquidBlocks = exclusionLiquidList.getStringList(); - if (excludedLiquidBlocks != null) { - for (int j = 0; j < excludedLiquidBlocks.length; ++j) { - excludedLiquidBlocks[j] = excludedLiquidBlocks[j].trim(); + String[] excludedFluidBlocks = exclusionFluidList.getStringList(); + if (excludedFluidBlocks != null) { + for (int j = 0; j < excludedFluidBlocks.length; ++j) { + excludedFluidBlocks[j] = excludedFluidBlocks[j].trim(); } } else - excludedLiquidBlocks = new String[0]; + excludedFluidBlocks = new String[0]; - PipeManager.registerExtractionHandler(new ExtractionHandler(excludedItemBlocks, excludedLiquidBlocks)); - - Property maxItemInPipesProp = BuildCraftCore.mainConfiguration.get(Configuration.CATEGORY_GENERAL, "pipes.maxItems", 100); - maxItemInPipesProp.comment = "pipes containing more than this amount of items will explode, not dropping any item"; - - maxItemsInPipes = maxItemInPipesProp.getInt(); + PipeManager.registerExtractionHandler(new ExtractionHandler(excludedItemBlocks, excludedFluidBlocks)); Property groupItemsTriggerProp = BuildCraftCore.mainConfiguration.get(Configuration.CATEGORY_GENERAL, "pipes.groupItemsTrigger", 32); groupItemsTriggerProp.comment = "when reaching this amount of objects in a pipes, items will be automatically grouped"; - groupItemsTrigger = groupItemsTriggerProp.getInt(); @@ -289,14 +279,14 @@ public class BuildCraftTransport { pipeItemsSandstone = buildPipe(DefaultProps.PIPE_ITEMS_SANDSTONE_ID, PipeItemsSandstone.class, "Sandstone Transport Pipe", Block.sandStone, Block.glass, Block.sandStone); pipeItemsVoid = buildPipe(DefaultProps.PIPE_ITEMS_VOID_ID, PipeItemsVoid.class, "Void Transport Pipe", "dyeBlack", Block.glass, Item.redstone); - pipeLiquidsWood = buildPipe(DefaultProps.PIPE_LIQUIDS_WOOD_ID, PipeLiquidsWood.class, "Wooden Waterproof Pipe", pipeWaterproof, pipeItemsWood); - pipeLiquidsCobblestone = buildPipe(DefaultProps.PIPE_LIQUIDS_COBBLESTONE_ID, PipeLiquidsCobblestone.class, "Cobblestone Waterproof Pipe", pipeWaterproof, pipeItemsCobblestone); - pipeLiquidsStone = buildPipe(DefaultProps.PIPE_LIQUIDS_STONE_ID, PipeLiquidsStone.class, "Stone Waterproof Pipe", pipeWaterproof, pipeItemsStone); - pipeLiquidsIron = buildPipe(DefaultProps.PIPE_LIQUIDS_IRON_ID, PipeLiquidsIron.class, "Iron Waterproof Pipe", pipeWaterproof, pipeItemsIron); - pipeLiquidsGold = buildPipe(DefaultProps.PIPE_LIQUIDS_GOLD_ID, PipeLiquidsGold.class, "Golden Waterproof Pipe", pipeWaterproof, pipeItemsGold); - pipeLiquidsEmerald = buildPipe(DefaultProps.PIPE_LIQUIDS_EMERALD_ID, PipeLiquidsEmerald.class, "Emerald Waterproof Pipe", pipeWaterproof, pipeItemsEmerald); - pipeLiquidsSandstone = buildPipe(DefaultProps.PIPE_LIQUIDS_SANDSTONE_ID, PipeLiquidsSandstone.class, "Sandstone Waterproof Pipe", pipeWaterproof, pipeItemsSandstone); - pipeLiquidsVoid = buildPipe(DefaultProps.PIPE_LIQUIDS_VOID_ID, PipeLiquidsVoid.class, "Void Waterproof Pipe", pipeWaterproof, pipeItemsVoid); + pipeFluidsWood = buildPipe(DefaultProps.PIPE_LIQUIDS_WOOD_ID, PipeFluidsWood.class, "Wooden Waterproof Pipe", pipeWaterproof, pipeItemsWood); + pipeFluidsCobblestone = buildPipe(DefaultProps.PIPE_LIQUIDS_COBBLESTONE_ID, PipeFluidsCobblestone.class, "Cobblestone Waterproof Pipe", pipeWaterproof, pipeItemsCobblestone); + pipeFluidsStone = buildPipe(DefaultProps.PIPE_LIQUIDS_STONE_ID, PipeFluidsStone.class, "Stone Waterproof Pipe", pipeWaterproof, pipeItemsStone); + pipeFluidsIron = buildPipe(DefaultProps.PIPE_LIQUIDS_IRON_ID, PipeFluidsIron.class, "Iron Waterproof Pipe", pipeWaterproof, pipeItemsIron); + pipeFluidsGold = buildPipe(DefaultProps.PIPE_LIQUIDS_GOLD_ID, PipeFluidsGold.class, "Golden Waterproof Pipe", pipeWaterproof, pipeItemsGold); + pipeFluidsEmerald = buildPipe(DefaultProps.PIPE_LIQUIDS_EMERALD_ID, PipeFluidsEmerald.class, "Emerald Waterproof Pipe", pipeWaterproof, pipeItemsEmerald); + pipeFluidsSandstone = buildPipe(DefaultProps.PIPE_LIQUIDS_SANDSTONE_ID, PipeFluidsSandstone.class, "Sandstone Waterproof Pipe", pipeWaterproof, pipeItemsSandstone); + pipeFluidsVoid = buildPipe(DefaultProps.PIPE_LIQUIDS_VOID_ID, PipeFluidsVoid.class, "Void Waterproof Pipe", pipeWaterproof, pipeItemsVoid); pipePowerWood = buildPipe(DefaultProps.PIPE_POWER_WOOD_ID, PipePowerWood.class, "Wooden Conductive Pipe", Item.redstone, pipeItemsWood); pipePowerCobblestone = buildPipe(DefaultProps.PIPE_POWER_COBBLESTONE_ID, PipePowerCobblestone.class, "Cobblestone Conductive Pipe", Item.redstone, pipeItemsCobblestone); @@ -355,7 +345,7 @@ public class BuildCraftTransport { Property pipePlugId = BuildCraftCore.mainConfiguration.get(Configuration.CATEGORY_ITEM, "pipePlug.id", DefaultProps.PIPE_PLUG_ID); plugItem = new ItemPlug(pipePlugId.getInt()); plugItem.setUnlocalizedName("pipePlug"); - + Property filteredBufferId = BuildCraftCore.mainConfiguration.getBlock("filteredBuffer.id", DefaultProps.FILTERED_BUFFER); filteredBufferBlock = new BlockFilteredBuffer(filteredBufferId.getInt()); CoreProxy.proxy.registerBlock(filteredBufferBlock.setUnlocalizedName("filteredBufferBlock")); @@ -390,9 +380,9 @@ public class BuildCraftTransport { new BptBlockPipe(genericPipeBlock.blockID); BuildCraftCore.itemBptProps[pipeItemsWood.itemID] = new BptItemPipeWooden(); - BuildCraftCore.itemBptProps[pipeLiquidsWood.itemID] = new BptItemPipeWooden(); + BuildCraftCore.itemBptProps[pipeFluidsWood.itemID] = new BptItemPipeWooden(); BuildCraftCore.itemBptProps[pipeItemsIron.itemID] = new BptItemPipeIron(); - BuildCraftCore.itemBptProps[pipeLiquidsIron.itemID] = new BptItemPipeIron(); + BuildCraftCore.itemBptProps[pipeFluidsIron.itemID] = new BptItemPipeIron(); BuildCraftCore.itemBptProps[pipeItemsDiamond.itemID] = new BptItemPipeDiamond(); BuildCraftCore.itemBptProps[pipeItemsEmerald.itemID] = new BptItemPipeEmerald(); @@ -429,6 +419,9 @@ public class BuildCraftTransport { new Object[] { "wdw", "wcw", "wpw", Character.valueOf('w'), "plankWood", Character.valueOf('d'), BuildCraftTransport.pipeItemsDiamond, Character.valueOf('c'), Block.chest, Character.valueOf('p'), Block.pistonBase }); + + //Facade turning helper + GameRegistry.addRecipe(facadeItem.new FacadeRecipe()); } @IMCCallback diff --git a/common/buildcraft/api/blueprints/BlueprintManager.java b/common/buildcraft/api/blueprints/BlueprintManager.java index 9bab365b..c71b710e 100644 --- a/common/buildcraft/api/blueprints/BlueprintManager.java +++ b/common/buildcraft/api/blueprints/BlueprintManager.java @@ -1,9 +1,9 @@ package buildcraft.api.blueprints; +import buildcraft.api.core.BuildCraftAPI; import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import buildcraft.api.core.BuildCraftAPI; @Deprecated public class BlueprintManager { diff --git a/common/buildcraft/api/blueprints/BptBlock.java b/common/buildcraft/api/blueprints/BptBlock.java index 3e281012..4f48d35e 100644 --- a/common/buildcraft/api/blueprints/BptBlock.java +++ b/common/buildcraft/api/blueprints/BptBlock.java @@ -9,15 +9,14 @@ package buildcraft.api.blueprints; +import buildcraft.api.core.BuildCraftAPI; import java.util.ArrayList; import java.util.LinkedList; - import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; -import buildcraft.api.core.BuildCraftAPI; /** * This class allow to specify specific behavior for blocks stored in blueprints: diff --git a/common/buildcraft/api/blueprints/BptBlockUtils.java b/common/buildcraft/api/blueprints/BptBlockUtils.java index a2d4ec19..a46d9b12 100644 --- a/common/buildcraft/api/blueprints/BptBlockUtils.java +++ b/common/buildcraft/api/blueprints/BptBlockUtils.java @@ -10,7 +10,6 @@ package buildcraft.api.blueprints; import java.util.LinkedList; - import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; diff --git a/common/buildcraft/api/blueprints/BptSlotInfo.java b/common/buildcraft/api/blueprints/BptSlotInfo.java index 32d5962f..799a3b4f 100644 --- a/common/buildcraft/api/blueprints/BptSlotInfo.java +++ b/common/buildcraft/api/blueprints/BptSlotInfo.java @@ -10,7 +10,6 @@ package buildcraft.api.blueprints; import java.util.LinkedList; - import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; diff --git a/common/buildcraft/api/blueprints/IBptContext.java b/common/buildcraft/api/blueprints/IBptContext.java index 4b8c6715..8498bfd3 100644 --- a/common/buildcraft/api/blueprints/IBptContext.java +++ b/common/buildcraft/api/blueprints/IBptContext.java @@ -9,10 +9,10 @@ package buildcraft.api.blueprints; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; import buildcraft.api.core.IBox; import buildcraft.api.core.Position; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; /** * This interface provide contextual information when building or initializing blueprint slots. diff --git a/common/buildcraft/api/bptblocks/BptBlockBed.java b/common/buildcraft/api/bptblocks/BptBlockBed.java index 904f1a9f..e2dae05c 100644 --- a/common/buildcraft/api/bptblocks/BptBlockBed.java +++ b/common/buildcraft/api/bptblocks/BptBlockBed.java @@ -9,13 +9,12 @@ package buildcraft.api.bptblocks; -import java.util.LinkedList; - -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; import buildcraft.api.blueprints.BptBlock; import buildcraft.api.blueprints.BptSlotInfo; import buildcraft.api.blueprints.IBptContext; +import java.util.LinkedList; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; @Deprecated public class BptBlockBed extends BptBlock { diff --git a/common/buildcraft/api/bptblocks/BptBlockCustomStack.java b/common/buildcraft/api/bptblocks/BptBlockCustomStack.java index 959b7eba..79aef15c 100644 --- a/common/buildcraft/api/bptblocks/BptBlockCustomStack.java +++ b/common/buildcraft/api/bptblocks/BptBlockCustomStack.java @@ -9,12 +9,11 @@ package buildcraft.api.bptblocks; -import java.util.LinkedList; - -import net.minecraft.item.ItemStack; import buildcraft.api.blueprints.BptBlock; import buildcraft.api.blueprints.BptSlotInfo; import buildcraft.api.blueprints.IBptContext; +import java.util.LinkedList; +import net.minecraft.item.ItemStack; @Deprecated public class BptBlockCustomStack extends BptBlock { diff --git a/common/buildcraft/api/bptblocks/BptBlockDelegate.java b/common/buildcraft/api/bptblocks/BptBlockDelegate.java index c6b5ad33..035dc556 100644 --- a/common/buildcraft/api/bptblocks/BptBlockDelegate.java +++ b/common/buildcraft/api/bptblocks/BptBlockDelegate.java @@ -9,13 +9,12 @@ package buildcraft.api.bptblocks; -import java.util.LinkedList; - -import net.minecraft.item.ItemStack; import buildcraft.api.blueprints.BlueprintManager; import buildcraft.api.blueprints.BptBlock; import buildcraft.api.blueprints.BptSlotInfo; import buildcraft.api.blueprints.IBptContext; +import java.util.LinkedList; +import net.minecraft.item.ItemStack; @Deprecated public class BptBlockDelegate extends BptBlock { diff --git a/common/buildcraft/api/bptblocks/BptBlockDirt.java b/common/buildcraft/api/bptblocks/BptBlockDirt.java index 61643d64..365cbc45 100644 --- a/common/buildcraft/api/bptblocks/BptBlockDirt.java +++ b/common/buildcraft/api/bptblocks/BptBlockDirt.java @@ -9,13 +9,12 @@ package buildcraft.api.bptblocks; -import java.util.LinkedList; - -import net.minecraft.block.Block; -import net.minecraft.item.ItemStack; import buildcraft.api.blueprints.BptBlock; import buildcraft.api.blueprints.BptSlotInfo; import buildcraft.api.blueprints.IBptContext; +import java.util.LinkedList; +import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; @Deprecated public class BptBlockDirt extends BptBlock { diff --git a/common/buildcraft/api/bptblocks/BptBlockDoor.java b/common/buildcraft/api/bptblocks/BptBlockDoor.java index ffd0bbef..196e83b3 100644 --- a/common/buildcraft/api/bptblocks/BptBlockDoor.java +++ b/common/buildcraft/api/bptblocks/BptBlockDoor.java @@ -9,12 +9,11 @@ package buildcraft.api.bptblocks; -import java.util.LinkedList; - -import net.minecraft.item.ItemStack; import buildcraft.api.blueprints.BptBlock; import buildcraft.api.blueprints.BptSlotInfo; import buildcraft.api.blueprints.IBptContext; +import java.util.LinkedList; +import net.minecraft.item.ItemStack; @Deprecated public class BptBlockDoor extends BptBlock { diff --git a/common/buildcraft/api/bptblocks/BptBlockLiquid.java b/common/buildcraft/api/bptblocks/BptBlockFluid.java similarity index 92% rename from common/buildcraft/api/bptblocks/BptBlockLiquid.java rename to common/buildcraft/api/bptblocks/BptBlockFluid.java index 49172957..1769c394 100644 --- a/common/buildcraft/api/bptblocks/BptBlockLiquid.java +++ b/common/buildcraft/api/bptblocks/BptBlockFluid.java @@ -9,19 +9,18 @@ package buildcraft.api.bptblocks; -import java.util.LinkedList; - -import net.minecraft.item.ItemStack; import buildcraft.api.blueprints.BptBlock; import buildcraft.api.blueprints.BptSlotInfo; import buildcraft.api.blueprints.IBptContext; +import java.util.LinkedList; +import net.minecraft.item.ItemStack; @Deprecated -public class BptBlockLiquid extends BptBlock { +public class BptBlockFluid extends BptBlock { private final ItemStack bucketStack; - public BptBlockLiquid(int blockId, ItemStack bucketStack) { + public BptBlockFluid(int blockId, ItemStack bucketStack) { super(blockId); this.bucketStack = bucketStack; diff --git a/common/buildcraft/api/bptblocks/BptBlockIgnore.java b/common/buildcraft/api/bptblocks/BptBlockIgnore.java index dd58463d..12a058bc 100644 --- a/common/buildcraft/api/bptblocks/BptBlockIgnore.java +++ b/common/buildcraft/api/bptblocks/BptBlockIgnore.java @@ -9,12 +9,11 @@ package buildcraft.api.bptblocks; -import java.util.LinkedList; - -import net.minecraft.item.ItemStack; import buildcraft.api.blueprints.BptBlock; import buildcraft.api.blueprints.BptSlotInfo; import buildcraft.api.blueprints.IBptContext; +import java.util.LinkedList; +import net.minecraft.item.ItemStack; @Deprecated public class BptBlockIgnore extends BptBlock { diff --git a/common/buildcraft/api/bptblocks/BptBlockIgnoreMeta.java b/common/buildcraft/api/bptblocks/BptBlockIgnoreMeta.java index 0e490463..7f39f637 100644 --- a/common/buildcraft/api/bptblocks/BptBlockIgnoreMeta.java +++ b/common/buildcraft/api/bptblocks/BptBlockIgnoreMeta.java @@ -9,12 +9,11 @@ package buildcraft.api.bptblocks; -import java.util.LinkedList; - -import net.minecraft.item.ItemStack; import buildcraft.api.blueprints.BptBlock; import buildcraft.api.blueprints.BptSlotInfo; import buildcraft.api.blueprints.IBptContext; +import java.util.LinkedList; +import net.minecraft.item.ItemStack; @Deprecated public class BptBlockIgnoreMeta extends BptBlock { diff --git a/common/buildcraft/api/bptblocks/BptBlockInventory.java b/common/buildcraft/api/bptblocks/BptBlockInventory.java index e4ebf709..0cebe58f 100644 --- a/common/buildcraft/api/bptblocks/BptBlockInventory.java +++ b/common/buildcraft/api/bptblocks/BptBlockInventory.java @@ -1,9 +1,9 @@ package buildcraft.api.bptblocks; -import net.minecraft.inventory.IInventory; import buildcraft.api.blueprints.BptBlock; import buildcraft.api.blueprints.BptSlotInfo; import buildcraft.api.blueprints.IBptContext; +import net.minecraft.inventory.IInventory; @Deprecated public class BptBlockInventory extends BptBlock { diff --git a/common/buildcraft/api/bptblocks/BptBlockLever.java b/common/buildcraft/api/bptblocks/BptBlockLever.java index 0a1eab23..b9a8e1c4 100644 --- a/common/buildcraft/api/bptblocks/BptBlockLever.java +++ b/common/buildcraft/api/bptblocks/BptBlockLever.java @@ -9,11 +9,10 @@ package buildcraft.api.bptblocks; -import java.util.LinkedList; - -import net.minecraft.item.ItemStack; import buildcraft.api.blueprints.BptSlotInfo; import buildcraft.api.blueprints.IBptContext; +import java.util.LinkedList; +import net.minecraft.item.ItemStack; @Deprecated public class BptBlockLever extends BptBlockWallSide { diff --git a/common/buildcraft/api/bptblocks/BptBlockPumpkin.java b/common/buildcraft/api/bptblocks/BptBlockPumpkin.java index 43473f98..16049346 100644 --- a/common/buildcraft/api/bptblocks/BptBlockPumpkin.java +++ b/common/buildcraft/api/bptblocks/BptBlockPumpkin.java @@ -9,12 +9,11 @@ package buildcraft.api.bptblocks; -import java.util.LinkedList; - -import net.minecraft.item.ItemStack; import buildcraft.api.blueprints.BptBlock; import buildcraft.api.blueprints.BptSlotInfo; import buildcraft.api.blueprints.IBptContext; +import java.util.LinkedList; +import net.minecraft.item.ItemStack; @Deprecated public class BptBlockPumpkin extends BptBlock { diff --git a/common/buildcraft/api/bptblocks/BptBlockRedstoneRepeater.java b/common/buildcraft/api/bptblocks/BptBlockRedstoneRepeater.java index 67ca97c3..8ac4f023 100644 --- a/common/buildcraft/api/bptblocks/BptBlockRedstoneRepeater.java +++ b/common/buildcraft/api/bptblocks/BptBlockRedstoneRepeater.java @@ -9,13 +9,12 @@ package buildcraft.api.bptblocks; -import java.util.LinkedList; - -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; import buildcraft.api.blueprints.BptBlock; import buildcraft.api.blueprints.BptSlotInfo; import buildcraft.api.blueprints.IBptContext; +import java.util.LinkedList; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; @Deprecated public class BptBlockRedstoneRepeater extends BptBlock { diff --git a/common/buildcraft/api/bptblocks/BptBlockRotateInventory.java b/common/buildcraft/api/bptblocks/BptBlockRotateInventory.java index 319fcf7e..6fcc30a8 100644 --- a/common/buildcraft/api/bptblocks/BptBlockRotateInventory.java +++ b/common/buildcraft/api/bptblocks/BptBlockRotateInventory.java @@ -1,8 +1,8 @@ package buildcraft.api.bptblocks; -import net.minecraft.inventory.IInventory; import buildcraft.api.blueprints.BptSlotInfo; import buildcraft.api.blueprints.IBptContext; +import net.minecraft.inventory.IInventory; @Deprecated public class BptBlockRotateInventory extends BptBlockRotateMeta { diff --git a/common/buildcraft/api/bptblocks/BptBlockRotateMeta.java b/common/buildcraft/api/bptblocks/BptBlockRotateMeta.java index eb846df5..4352b660 100644 --- a/common/buildcraft/api/bptblocks/BptBlockRotateMeta.java +++ b/common/buildcraft/api/bptblocks/BptBlockRotateMeta.java @@ -9,12 +9,11 @@ package buildcraft.api.bptblocks; -import java.util.LinkedList; - -import net.minecraft.item.ItemStack; import buildcraft.api.blueprints.BptBlock; import buildcraft.api.blueprints.BptSlotInfo; import buildcraft.api.blueprints.IBptContext; +import java.util.LinkedList; +import net.minecraft.item.ItemStack; @Deprecated public class BptBlockRotateMeta extends BptBlock { diff --git a/common/buildcraft/api/bptblocks/BptBlockSign.java b/common/buildcraft/api/bptblocks/BptBlockSign.java index 84a3996a..f7bd1338 100644 --- a/common/buildcraft/api/bptblocks/BptBlockSign.java +++ b/common/buildcraft/api/bptblocks/BptBlockSign.java @@ -9,15 +9,14 @@ package buildcraft.api.bptblocks; -import java.util.LinkedList; - -import net.minecraft.block.Block; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; import buildcraft.api.blueprints.BlockSignature; import buildcraft.api.blueprints.BptBlock; import buildcraft.api.blueprints.BptSlotInfo; import buildcraft.api.blueprints.IBptContext; +import java.util.LinkedList; +import net.minecraft.block.Block; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; @Deprecated public class BptBlockSign extends BptBlock { diff --git a/common/buildcraft/api/bptblocks/BptBlockStairs.java b/common/buildcraft/api/bptblocks/BptBlockStairs.java index 8ade4a4d..4dc061a4 100644 --- a/common/buildcraft/api/bptblocks/BptBlockStairs.java +++ b/common/buildcraft/api/bptblocks/BptBlockStairs.java @@ -9,12 +9,11 @@ package buildcraft.api.bptblocks; -import java.util.LinkedList; - -import net.minecraft.item.ItemStack; import buildcraft.api.blueprints.BptBlock; import buildcraft.api.blueprints.BptSlotInfo; import buildcraft.api.blueprints.IBptContext; +import java.util.LinkedList; +import net.minecraft.item.ItemStack; @Deprecated public class BptBlockStairs extends BptBlock { diff --git a/common/buildcraft/api/bptblocks/BptBlockWallSide.java b/common/buildcraft/api/bptblocks/BptBlockWallSide.java index 8178d0f1..74ff3f0f 100644 --- a/common/buildcraft/api/bptblocks/BptBlockWallSide.java +++ b/common/buildcraft/api/bptblocks/BptBlockWallSide.java @@ -9,12 +9,11 @@ package buildcraft.api.bptblocks; -import java.util.LinkedList; - -import net.minecraft.item.ItemStack; import buildcraft.api.blueprints.BptBlock; import buildcraft.api.blueprints.BptSlotInfo; import buildcraft.api.blueprints.IBptContext; +import java.util.LinkedList; +import net.minecraft.item.ItemStack; @Deprecated public class BptBlockWallSide extends BptBlock { diff --git a/common/buildcraft/api/core/IIconProvider.java b/common/buildcraft/api/core/IIconProvider.java index 04833918..666d32e3 100644 --- a/common/buildcraft/api/core/IIconProvider.java +++ b/common/buildcraft/api/core/IIconProvider.java @@ -1,9 +1,9 @@ package buildcraft.api.core; -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 net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.util.Icon; public interface IIconProvider { diff --git a/common/buildcraft/api/filler/IFillerPattern.java b/common/buildcraft/api/filler/IFillerPattern.java index 71b1e411..dd5862bb 100644 --- a/common/buildcraft/api/filler/IFillerPattern.java +++ b/common/buildcraft/api/filler/IFillerPattern.java @@ -1,11 +1,11 @@ package buildcraft.api.filler; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Icon; import buildcraft.api.core.IBox; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Icon; public interface IFillerPattern { diff --git a/common/buildcraft/api/fuels/IronEngineCoolant.java b/common/buildcraft/api/fuels/IronEngineCoolant.java index 5ddb3d2e..b3e2f5bb 100644 --- a/common/buildcraft/api/fuels/IronEngineCoolant.java +++ b/common/buildcraft/api/fuels/IronEngineCoolant.java @@ -1,38 +1,29 @@ package buildcraft.api.fuels; +import com.google.common.collect.BiMap; +import com.google.common.collect.HashBiMap; import java.util.HashMap; import java.util.Map; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraftforge.liquids.LiquidDictionary; - -import net.minecraftforge.liquids.LiquidStack; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidStack; public final class IronEngineCoolant { - public static Map liquidCoolants = new HashMap(); - public static Map solidCoolants = new HashMap(); + public static BiMap liquidCoolants = HashBiMap.create(); + public static Map solidCoolants = new HashMap(); - public static LiquidStack getLiquidCoolant(ItemStack stack) { + public static FluidStack getFluidCoolant(ItemStack stack) { return solidCoolants.get(new ItemData(stack.itemID, stack.getItemDamage())); } public static Coolant getCoolant(ItemStack stack) { - return getCoolant(getLiquidCoolant(stack)); + return getCoolant(getFluidCoolant(stack)); } - public static Coolant getCoolant(LiquidStack liquid) { - if (liquid == null) - return null; - if (liquid.itemID <= 0) - return null; - - String fluidId = LiquidDictionary.findLiquidName(liquid); - if (fluidId != null) { - return liquidCoolants.get(fluidId); - } - - return null; + public static Coolant getCoolant(FluidStack liquid) { + return liquid != null ? liquidCoolants.get(liquid.getFluid().getName()) : null; } private IronEngineCoolant() { @@ -43,10 +34,9 @@ public final class IronEngineCoolant { float getDegreesCoolingPerMB(float currentHeat); } - public static void addCoolant(final LiquidStack liquid, final float degreesCoolingPerMB) { - String fluidId = LiquidDictionary.findLiquidName(liquid); - if (fluidId != null) { - liquidCoolants.put(fluidId, new Coolant() { + public static void addCoolant(final Fluid liquid, final float degreesCoolingPerMB) { + if (liquid != null) { + liquidCoolants.put(liquid.getName(), new Coolant() { @Override public float getDegreesCoolingPerMB(float currentHeat) { return degreesCoolingPerMB; @@ -55,8 +45,8 @@ public final class IronEngineCoolant { } } - public static void addCoolant(final int itemId, final int metadata, final LiquidStack coolant) { - if (Item.itemsList[itemId] != null && coolant != null && coolant.amount > 0) { + public static void addCoolant(final int itemId, final int metadata, final FluidStack coolant) { + if (Item.itemsList[itemId] != null && coolant != null) { solidCoolants.put(new ItemData(itemId, metadata), coolant); } } @@ -92,4 +82,9 @@ public final class IronEngineCoolant { return true; } } + + public static boolean isCoolant(Fluid fluid) + { + return liquidCoolants.inverse().containsKey(fluid); + } } diff --git a/common/buildcraft/api/fuels/IronEngineFuel.java b/common/buildcraft/api/fuels/IronEngineFuel.java index 09981e41..5b51bd6f 100644 --- a/common/buildcraft/api/fuels/IronEngineFuel.java +++ b/common/buildcraft/api/fuels/IronEngineFuel.java @@ -1,47 +1,43 @@ -/** +/** * Copyright (c) SpaceToad, 2011 * http://www.mod-buildcraft.com - * - * BuildCraft is distributed under the terms of the Minecraft Mod Public + * + * 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.api.fuels; -import java.util.LinkedList; - -import net.minecraftforge.liquids.LiquidContainerRegistry; -import net.minecraftforge.liquids.LiquidStack; +import com.google.common.collect.Maps; +import java.util.Map; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidRegistry; public class IronEngineFuel { - public static LinkedList fuels = new LinkedList(); + public static Map fuels = Maps.newHashMap(); - public static IronEngineFuel getFuelForLiquid(LiquidStack liquid) { - if (liquid == null) - return null; - if (liquid.itemID <= 0) - return null; - - for (IronEngineFuel fuel : fuels) - if (fuel.liquid.isLiquidEqual(liquid)) - return fuel; - - return null; + public static IronEngineFuel getFuelForFluid(Fluid liquid) { + return liquid == null ? null : fuels.get(liquid.getName()); } - public final LiquidStack liquid; + public final Fluid liquid; public final float powerPerCycle; public final int totalBurningTime; - public IronEngineFuel(int liquidId, float powerPerCycle, int totalBurningTime) { - this(new LiquidStack(liquidId, LiquidContainerRegistry.BUCKET_VOLUME, 0), powerPerCycle, totalBurningTime); + public IronEngineFuel(String fluidName, float powerPerCycle, int totalBurningTime) { + this(FluidRegistry.getFluid(fluidName), powerPerCycle, totalBurningTime); } - public IronEngineFuel(LiquidStack liquid, float powerPerCycle, int totalBurningTime) { + public IronEngineFuel(Fluid liquid, float powerPerCycle, int totalBurningTime) { this.liquid = liquid; this.powerPerCycle = powerPerCycle; this.totalBurningTime = totalBurningTime; + fuels.put(liquid.getName(), this); + } + + public static void addFuel(Fluid fluid, float powerPerCycle, int totalBurningTime) { + new IronEngineFuel(fluid, powerPerCycle, totalBurningTime); } } diff --git a/common/buildcraft/api/gates/ActionManager.java b/common/buildcraft/api/gates/ActionManager.java index 34a558ec..cc238113 100644 --- a/common/buildcraft/api/gates/ActionManager.java +++ b/common/buildcraft/api/gates/ActionManager.java @@ -1,10 +1,9 @@ package buildcraft.api.gates; +import buildcraft.api.transport.IPipe; import java.util.LinkedList; - import net.minecraft.block.Block; import net.minecraft.tileentity.TileEntity; -import buildcraft.api.transport.IPipe; public class ActionManager { diff --git a/common/buildcraft/api/gates/IActionProvider.java b/common/buildcraft/api/gates/IActionProvider.java index ce737996..6c64b57e 100644 --- a/common/buildcraft/api/gates/IActionProvider.java +++ b/common/buildcraft/api/gates/IActionProvider.java @@ -10,7 +10,6 @@ package buildcraft.api.gates; import java.util.LinkedList; - import net.minecraft.block.Block; import net.minecraft.tileentity.TileEntity; diff --git a/common/buildcraft/api/gates/ITrigger.java b/common/buildcraft/api/gates/ITrigger.java index 1517532b..205a0ba5 100644 --- a/common/buildcraft/api/gates/ITrigger.java +++ b/common/buildcraft/api/gates/ITrigger.java @@ -1,10 +1,10 @@ package buildcraft.api.gates; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.ForgeDirection; import buildcraft.api.core.IIconProvider; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.ForgeDirection; public interface ITrigger { diff --git a/common/buildcraft/api/gates/ITriggerProvider.java b/common/buildcraft/api/gates/ITriggerProvider.java index 81ddcd5d..fe2271e0 100644 --- a/common/buildcraft/api/gates/ITriggerProvider.java +++ b/common/buildcraft/api/gates/ITriggerProvider.java @@ -9,11 +9,10 @@ package buildcraft.api.gates; +import buildcraft.api.transport.IPipe; import java.util.LinkedList; - import net.minecraft.block.Block; import net.minecraft.tileentity.TileEntity; -import buildcraft.api.transport.IPipe; public interface ITriggerProvider { diff --git a/common/buildcraft/api/power/PowerHandler.java b/common/buildcraft/api/power/PowerHandler.java index 1b408238..fde0902f 100644 --- a/common/buildcraft/api/power/PowerHandler.java +++ b/common/buildcraft/api/power/PowerHandler.java @@ -7,9 +7,9 @@ */ package buildcraft.api.power; +import buildcraft.api.core.SafeTimeTracker; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.ForgeDirection; -import buildcraft.api.core.SafeTimeTracker; public final class PowerHandler { @@ -22,8 +22,9 @@ public final class PowerHandler { case MACHINE: case STORAGE: return true; + default: + return false; } - return false; } public boolean eatsEngineExcess() { @@ -31,8 +32,9 @@ public final class PowerHandler { case MACHINE: case STORAGE: return true; + default: + return false; } - return false; } } diff --git a/common/buildcraft/api/recipes/AssemblyRecipe.java b/common/buildcraft/api/recipes/AssemblyRecipe.java index a56dad9b..573db282 100644 --- a/common/buildcraft/api/recipes/AssemblyRecipe.java +++ b/common/buildcraft/api/recipes/AssemblyRecipe.java @@ -1,7 +1,6 @@ package buildcraft.api.recipes; import java.util.LinkedList; - import net.minecraft.item.ItemStack; public class AssemblyRecipe { diff --git a/common/buildcraft/api/recipes/RefineryRecipe.java b/common/buildcraft/api/recipes/RefineryRecipe.java index d4039dde..452755a7 100644 --- a/common/buildcraft/api/recipes/RefineryRecipe.java +++ b/common/buildcraft/api/recipes/RefineryRecipe.java @@ -1,19 +1,20 @@ -/** +/** * Copyright (c) SpaceToad, 2011 * http://www.mod-buildcraft.com - * - * BuildCraft is distributed under the terms of the Minecraft Mod Public + * + * 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.api.recipes; +import com.google.common.base.Objects; +import com.google.common.collect.ComparisonChain; import java.util.Collections; import java.util.SortedSet; import java.util.TreeSet; - -import net.minecraftforge.liquids.LiquidStack; +import net.minecraftforge.fluids.Fluid; public class RefineryRecipe implements Comparable { @@ -29,7 +30,7 @@ public class RefineryRecipe implements Comparable { return Collections.unmodifiableSortedSet(recipes); } - public static RefineryRecipe findRefineryRecipe(LiquidStack liquid1, LiquidStack liquid2) { + public static RefineryRecipe findRefineryRecipe(Fluid liquid1, Fluid liquid2) { for (RefineryRecipe recipe : recipes) if (recipe.matches(liquid1, liquid2)) return recipe; @@ -37,43 +38,22 @@ public class RefineryRecipe implements Comparable { return null; } - public final LiquidStack ingredient1; - public final LiquidStack ingredient2; - public final LiquidStack result; + public final Fluid ingredient1; + public final Fluid ingredient2; + public final Fluid result; public final int energy; public final int delay; - public RefineryRecipe(int ingredientId1, int ingredientQty1, int ingredientId2, int ingredientQty2, int resultId, int resultQty, int energy, int delay) { - this(new LiquidStack(ingredientId1, ingredientQty1, 0), new LiquidStack(ingredientId2, ingredientQty2, 0), new LiquidStack(resultId, resultQty, 0), - energy, delay); - } - - public RefineryRecipe(LiquidStack ingredient1, LiquidStack ingredient2, LiquidStack result, int energy, int delay) { - - // Sort starting materials. - if (ingredient1 != null && ingredient2 != null) { - if ((ingredient1.itemID > ingredient2.itemID) || (ingredient1.itemID == ingredient2.itemID && ingredient1.itemMeta > ingredient2.itemMeta)) { - this.ingredient1 = ingredient2; - this.ingredient2 = ingredient1; - } else { - this.ingredient1 = ingredient1; - this.ingredient2 = ingredient2; - } - } else if (ingredient2 != null) { - this.ingredient1 = ingredient2; - this.ingredient2 = ingredient1; - } else { - this.ingredient1 = ingredient1; - this.ingredient2 = ingredient2; - } - + public RefineryRecipe(Fluid ingredient1, Fluid ingredient2, Fluid result, int energy, int delay) { + this.ingredient1 = ingredient1; + this.ingredient2 = ingredient2; this.result = result; this.energy = energy; this.delay = delay; } - public boolean matches(LiquidStack liquid1, LiquidStack liquid2) { + public boolean matches(Fluid liquid1, Fluid liquid2) { // No inputs, return. if (liquid1 == null && liquid2 == null) @@ -84,15 +64,14 @@ public class RefineryRecipe implements Comparable { return false; if (ingredient1 != null) { - if (ingredient2 == null) - return ingredient1.isLiquidEqual(liquid1) || ingredient1.isLiquidEqual(liquid2); + return ingredient1.getName().equals(liquid1) || ingredient1.getName().equals(liquid2); else - return (ingredient1.isLiquidEqual(liquid1) && ingredient2.isLiquidEqual(liquid2)) - || (ingredient2.isLiquidEqual(liquid1) && ingredient1.isLiquidEqual(liquid2)); + return (ingredient1.getName().equals(liquid1) && ingredient2.getName().equals(liquid2)) + || (ingredient2.getName().equals(liquid1) && ingredient1.getName().equals(liquid2)); } else if (ingredient2 != null) - return ingredient2.isLiquidEqual(liquid1) || ingredient2.isLiquidEqual(liquid2); + return ingredient2.getName().equals(liquid1) || ingredient2.getName().equals(liquid2); else return false; @@ -103,51 +82,23 @@ public class RefineryRecipe implements Comparable { // the failure of matching two-ingredient recipes which include that liquid. @Override public int compareTo(RefineryRecipe other) { - - if (other == null) - return -1; - else if (ingredient1 == null) { - if (other.ingredient1 == null) - return 0; - else - return 1; - } else if (other.ingredient1 == null) - return -1; - else if (ingredient1.itemID != other.ingredient1.itemID) - return ingredient1.itemID - other.ingredient1.itemID; - else if (ingredient1.itemMeta != other.ingredient1.itemMeta) - return ingredient1.itemMeta - other.ingredient1.itemMeta; - else if (ingredient2 == null) { - if (other.ingredient2 == null) - return 0; - else - return 1; - } else if (other.ingredient2 == null) - return -1; - else if (ingredient2.itemID != other.ingredient2.itemID) - return ingredient2.itemID - other.ingredient2.itemID; - else if (ingredient2.itemMeta != other.ingredient2.itemMeta) - return ingredient2.itemMeta - other.ingredient2.itemMeta; - - return 0; + return ComparisonChain.start() + .compare(ingredient1.getName(), other.ingredient1.getName()) + .compare(ingredient2.getName(), other.ingredient2.getName()) + .result(); } // equals() should be consistent with compareTo(). @Override public boolean equals(Object obj) { - if (obj != null && obj instanceof RefineryRecipe) - return this.compareTo((RefineryRecipe) obj) == 0; - return false; + return obj instanceof RefineryRecipe && + Objects.equal(ingredient1, ((RefineryRecipe)obj).ingredient1) && + Objects.equal(ingredient1, ((RefineryRecipe)obj).ingredient2); } // hashCode() should be overridden because equals() was overridden. @Override public int hashCode() { - if (ingredient1 == null) - return 0; - else if (ingredient2 == null) - return ingredient1.itemID ^ ingredient1.itemMeta; - - return ingredient1.itemID ^ ingredient1.itemMeta ^ ingredient2.itemID ^ ingredient2.itemMeta; + return Objects.hashCode(ingredient1, ingredient2); } } diff --git a/common/buildcraft/api/tools/IToolPipette.java b/common/buildcraft/api/tools/IToolPipette.java index 2596aa07..d636523d 100644 --- a/common/buildcraft/api/tools/IToolPipette.java +++ b/common/buildcraft/api/tools/IToolPipette.java @@ -1,7 +1,7 @@ package buildcraft.api.tools; import net.minecraft.item.ItemStack; -import net.minecraftforge.liquids.LiquidStack; +import net.minecraftforge.fluids.FluidStack; public interface IToolPipette { @@ -20,21 +20,21 @@ public interface IToolPipette { /** * Fills the pipette with the given liquid stack. - * + * * @param pipette * @param liquid * @param doFill * @return Amount of liquid used in filling the pipette. */ - int fill(ItemStack pipette, LiquidStack liquid, boolean doFill); + int fill(ItemStack pipette, FluidStack liquid, boolean doFill); /** * Drains liquid from the pipette - * + * * @param pipette * @param maxDrain * @param doDrain - * @return Liquid stack representing the liquid and amount drained from the pipette. + * @return Fluid stack representing the liquid and amount drained from the pipette. */ - LiquidStack drain(ItemStack pipette, int maxDrain, boolean doDrain); + FluidStack drain(ItemStack pipette, int maxDrain, boolean doDrain); } diff --git a/common/buildcraft/api/transport/FacadeManager.java b/common/buildcraft/api/transport/FacadeManager.java index f5333921..28cbdd1a 100644 --- a/common/buildcraft/api/transport/FacadeManager.java +++ b/common/buildcraft/api/transport/FacadeManager.java @@ -1,7 +1,6 @@ package buildcraft.api.transport; import java.lang.reflect.Method; - import net.minecraft.item.ItemStack; /** diff --git a/common/buildcraft/api/transport/IExtractionHandler.java b/common/buildcraft/api/transport/IExtractionHandler.java index 863cc312..e912f65b 100644 --- a/common/buildcraft/api/transport/IExtractionHandler.java +++ b/common/buildcraft/api/transport/IExtractionHandler.java @@ -17,5 +17,5 @@ public interface IExtractionHandler { * Can this pipe extract liquids from the block located at these coordinates? * param extractor can be null */ - boolean canExtractLiquids(Object extractor, World world, int i, int j, int k); + boolean canExtractFluids(Object extractor, World world, int i, int j, int k); } diff --git a/common/buildcraft/api/transport/IPipedItem.java b/common/buildcraft/api/transport/IPipedItem.java index 5dc85792..cce264ca 100644 --- a/common/buildcraft/api/transport/IPipedItem.java +++ b/common/buildcraft/api/transport/IPipedItem.java @@ -1,12 +1,12 @@ package buildcraft.api.transport; +import buildcraft.api.core.Position; import net.minecraft.entity.item.EntityItem; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.ForgeDirection; -import buildcraft.api.core.Position; public interface IPipedItem { diff --git a/common/buildcraft/api/transport/PipeManager.java b/common/buildcraft/api/transport/PipeManager.java index 10736d63..c78c86e2 100644 --- a/common/buildcraft/api/transport/PipeManager.java +++ b/common/buildcraft/api/transport/PipeManager.java @@ -2,7 +2,6 @@ package buildcraft.api.transport; import java.util.ArrayList; import java.util.List; - import net.minecraft.world.World; public abstract class PipeManager { @@ -27,9 +26,9 @@ public abstract class PipeManager { /** * param extractor can be null */ - public static boolean canExtractLiquids(Object extractor, World world, int i, int j, int k) { + public static boolean canExtractFluids(Object extractor, World world, int i, int j, int k) { for (IExtractionHandler handler : extractionHandlers) - if (!handler.canExtractLiquids(extractor, world, i, j, k)) + if (!handler.canExtractFluids(extractor, world, i, j, k)) return false; return true; diff --git a/common/buildcraft/builders/BlockArchitect.java b/common/buildcraft/builders/BlockArchitect.java index 390cc98f..06f9c3f4 100644 --- a/common/buildcraft/builders/BlockArchitect.java +++ b/common/buildcraft/builders/BlockArchitect.java @@ -9,20 +9,6 @@ package buildcraft.builders; -import java.util.ArrayList; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Icon; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftBuilders; import buildcraft.api.core.Position; import buildcraft.api.tools.IToolWrench; @@ -31,6 +17,19 @@ import buildcraft.core.proxy.CoreProxy; import buildcraft.core.utils.Utils; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import java.util.ArrayList; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Icon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.ForgeDirection; public class BlockArchitect extends BlockContainer { @@ -100,7 +99,7 @@ public class BlockArchitect extends BlockContainer { } @Override - public void onBlockPlacedBy(World world, int i, int j, int k, EntityLiving entityliving, ItemStack stack) { + public void onBlockPlacedBy(World world, int i, int j, int k, EntityLivingBase entityliving, ItemStack stack) { super.onBlockPlacedBy(world, i, j, k, entityliving, stack); ForgeDirection orientation = Utils.get2dOrientation(new Position(entityliving.posX, entityliving.posY, entityliving.posZ), new Position(i, j, k)); diff --git a/common/buildcraft/builders/BlockBlueprintLibrary.java b/common/buildcraft/builders/BlockBlueprintLibrary.java index c71f623d..7ccf77d0 100644 --- a/common/buildcraft/builders/BlockBlueprintLibrary.java +++ b/common/buildcraft/builders/BlockBlueprintLibrary.java @@ -9,22 +9,21 @@ package buildcraft.builders; -import java.util.ArrayList; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Icon; -import net.minecraft.world.World; import buildcraft.BuildCraftBuilders; import buildcraft.core.GuiIds; import buildcraft.core.proxy.CoreProxy; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import java.util.ArrayList; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Icon; +import net.minecraft.world.World; public class BlockBlueprintLibrary extends BlockContainer { @@ -72,7 +71,7 @@ public class BlockBlueprintLibrary extends BlockContainer { } @Override - public void onBlockPlacedBy(World world, int i, int j, int k, EntityLiving entityliving, ItemStack stack) { + public void onBlockPlacedBy(World world, int i, int j, int k, EntityLivingBase entityliving, ItemStack stack) { if (CoreProxy.proxy.isSimulating(world) && entityliving instanceof EntityPlayer) { TileBlueprintLibrary tile = (TileBlueprintLibrary) world.getBlockTileEntity(i, j, k); tile.owner = ((EntityPlayer) entityliving).username; diff --git a/common/buildcraft/builders/BlockBuilder.java b/common/buildcraft/builders/BlockBuilder.java index 6dea73f2..da4c4972 100644 --- a/common/buildcraft/builders/BlockBuilder.java +++ b/common/buildcraft/builders/BlockBuilder.java @@ -9,19 +9,6 @@ package buildcraft.builders; -import java.util.ArrayList; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Icon; -import net.minecraft.world.World; -import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftBuilders; import buildcraft.api.core.Position; import buildcraft.api.tools.IToolWrench; @@ -31,6 +18,18 @@ import buildcraft.core.proxy.CoreProxy; import buildcraft.core.utils.Utils; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import java.util.ArrayList; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Icon; +import net.minecraft.world.World; +import net.minecraftforge.common.ForgeDirection; public class BlockBuilder extends BlockContainer { @@ -107,7 +106,7 @@ public class BlockBuilder extends BlockContainer { } @Override - public void onBlockPlacedBy(World world, int i, int j, int k, EntityLiving entityliving, ItemStack stack) { + public void onBlockPlacedBy(World world, int i, int j, int k, EntityLivingBase entityliving, ItemStack stack) { super.onBlockPlacedBy(world, i, j, k, entityliving, stack); ForgeDirection orientation = Utils.get2dOrientation(new Position(entityliving.posX, entityliving.posY, entityliving.posZ), new Position(i, j, k)); diff --git a/common/buildcraft/builders/BlockFiller.java b/common/buildcraft/builders/BlockFiller.java index bcb95ddf..0c223c17 100644 --- a/common/buildcraft/builders/BlockFiller.java +++ b/common/buildcraft/builders/BlockFiller.java @@ -9,8 +9,15 @@ package buildcraft.builders; +import buildcraft.BuildCraftBuilders; +import buildcraft.api.filler.IFillerPattern; +import buildcraft.core.CreativeTabBuildCraft; +import buildcraft.core.GuiIds; +import buildcraft.core.proxy.CoreProxy; +import buildcraft.core.utils.Utils; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import java.util.ArrayList; - import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IconRegister; @@ -20,14 +27,6 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Icon; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import buildcraft.BuildCraftBuilders; -import buildcraft.api.filler.IFillerPattern; -import buildcraft.core.CreativeTabBuildCraft; -import buildcraft.core.GuiIds; -import buildcraft.core.proxy.CoreProxy; -import buildcraft.core.utils.Utils; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; public class BlockFiller extends BlockContainer { diff --git a/common/buildcraft/builders/BlockMarker.java b/common/buildcraft/builders/BlockMarker.java index 3243420c..adfc49e7 100644 --- a/common/buildcraft/builders/BlockMarker.java +++ b/common/buildcraft/builders/BlockMarker.java @@ -7,8 +7,13 @@ */ package buildcraft.builders; +import buildcraft.BuildCraftBuilders; +import buildcraft.BuildCraftCore; +import buildcraft.core.CreativeTabBuildCraft; +import buildcraft.core.utils.Utils; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import java.util.ArrayList; - import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IconRegister; @@ -18,14 +23,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import buildcraft.BuildCraftBuilders; -import buildcraft.BuildCraftCore; -import buildcraft.core.CreativeTabBuildCraft; -import buildcraft.core.utils.Utils; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import net.minecraftforge.common.ForgeDirection; -import static net.minecraftforge.common.ForgeDirection.*; public class BlockMarker extends BlockContainer { diff --git a/common/buildcraft/builders/BlockPathMarker.java b/common/buildcraft/builders/BlockPathMarker.java index 23595389..7389ac49 100644 --- a/common/buildcraft/builders/BlockPathMarker.java +++ b/common/buildcraft/builders/BlockPathMarker.java @@ -9,17 +9,16 @@ package buildcraft.builders; +import buildcraft.core.utils.Utils; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import java.util.ArrayList; - import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Icon; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import buildcraft.core.utils.Utils; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; public class BlockPathMarker extends BlockMarker { diff --git a/common/buildcraft/builders/BptBlockFiller.java b/common/buildcraft/builders/BptBlockFiller.java index c3ae883f..4b645033 100644 --- a/common/buildcraft/builders/BptBlockFiller.java +++ b/common/buildcraft/builders/BptBlockFiller.java @@ -9,10 +9,6 @@ package buildcraft.builders; -import java.util.LinkedList; - -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import buildcraft.BuildCraftBuilders; import buildcraft.api.blueprints.BptBlock; import buildcraft.api.blueprints.BptBlockUtils; @@ -21,6 +17,9 @@ import buildcraft.api.blueprints.IBptContext; import buildcraft.api.core.LaserKind; import buildcraft.api.core.Position; import buildcraft.core.Box; +import java.util.LinkedList; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; @Deprecated public class BptBlockFiller extends BptBlock { diff --git a/common/buildcraft/builders/BuilderProxyClient.java b/common/buildcraft/builders/BuilderProxyClient.java index 060eb8b8..c1f3cafc 100644 --- a/common/buildcraft/builders/BuilderProxyClient.java +++ b/common/buildcraft/builders/BuilderProxyClient.java @@ -1,7 +1,7 @@ package buildcraft.builders; -import net.minecraft.util.Icon; import buildcraft.BuildCraftBuilders; +import net.minecraft.util.Icon; public class BuilderProxyClient extends BuilderProxy { public static Icon fillerFillAllTexture; diff --git a/common/buildcraft/builders/ClientBuilderHook.java b/common/buildcraft/builders/ClientBuilderHook.java index b83814b8..d68e43b1 100644 --- a/common/buildcraft/builders/ClientBuilderHook.java +++ b/common/buildcraft/builders/ClientBuilderHook.java @@ -1,11 +1,10 @@ package buildcraft.builders; -import java.io.IOException; - import buildcraft.BuildCraftBuilders; import buildcraft.core.blueprints.BptPlayerIndex; import buildcraft.core.blueprints.BptRootIndex; import buildcraft.core.proxy.CoreProxy; +import java.io.IOException; public class ClientBuilderHook implements IBuilderHook { diff --git a/common/buildcraft/builders/EventHandlerBuilders.java b/common/buildcraft/builders/EventHandlerBuilders.java index b98f1426..be4ac781 100644 --- a/common/buildcraft/builders/EventHandlerBuilders.java +++ b/common/buildcraft/builders/EventHandlerBuilders.java @@ -8,10 +8,10 @@ package buildcraft.builders; -import net.minecraftforge.event.ForgeSubscribe; -import net.minecraftforge.event.world.WorldEvent; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.relauncher.Side; +import net.minecraftforge.event.ForgeSubscribe; +import net.minecraftforge.event.world.WorldEvent; public class EventHandlerBuilders { diff --git a/common/buildcraft/builders/FillerFillAll.java b/common/buildcraft/builders/FillerFillAll.java index b74c271a..884566d2 100644 --- a/common/buildcraft/builders/FillerFillAll.java +++ b/common/buildcraft/builders/FillerFillAll.java @@ -9,12 +9,12 @@ package buildcraft.builders; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Icon; import buildcraft.api.core.IBox; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Icon; public class FillerFillAll extends FillerPattern { diff --git a/common/buildcraft/builders/FillerFillPyramid.java b/common/buildcraft/builders/FillerFillPyramid.java index 293348a2..7450cdd1 100644 --- a/common/buildcraft/builders/FillerFillPyramid.java +++ b/common/buildcraft/builders/FillerFillPyramid.java @@ -9,12 +9,12 @@ package buildcraft.builders; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Icon; import buildcraft.api.core.IBox; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Icon; public class FillerFillPyramid extends FillerPattern { diff --git a/common/buildcraft/builders/FillerFillStairs.java b/common/buildcraft/builders/FillerFillStairs.java index dca31535..21aff72e 100644 --- a/common/buildcraft/builders/FillerFillStairs.java +++ b/common/buildcraft/builders/FillerFillStairs.java @@ -9,12 +9,12 @@ package buildcraft.builders; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Icon; import buildcraft.api.core.IBox; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Icon; public class FillerFillStairs extends FillerPattern { diff --git a/common/buildcraft/builders/FillerFillWalls.java b/common/buildcraft/builders/FillerFillWalls.java index f057e14a..06684e25 100644 --- a/common/buildcraft/builders/FillerFillWalls.java +++ b/common/buildcraft/builders/FillerFillWalls.java @@ -9,12 +9,12 @@ package buildcraft.builders; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Icon; import buildcraft.api.core.IBox; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Icon; public class FillerFillWalls extends FillerPattern { diff --git a/common/buildcraft/builders/FillerFlattener.java b/common/buildcraft/builders/FillerFlattener.java index 73c5be91..d5b0e00b 100644 --- a/common/buildcraft/builders/FillerFlattener.java +++ b/common/buildcraft/builders/FillerFlattener.java @@ -7,12 +7,12 @@ */ package buildcraft.builders; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Icon; import buildcraft.api.core.IBox; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Icon; public class FillerFlattener extends FillerPattern { diff --git a/common/buildcraft/builders/FillerHorizon.java b/common/buildcraft/builders/FillerHorizon.java index 3f51f948..512479bd 100644 --- a/common/buildcraft/builders/FillerHorizon.java +++ b/common/buildcraft/builders/FillerHorizon.java @@ -7,12 +7,12 @@ */ package buildcraft.builders; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Icon; import buildcraft.api.core.IBox; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Icon; public class FillerHorizon extends FillerPattern { diff --git a/common/buildcraft/builders/FillerPattern.java b/common/buildcraft/builders/FillerPattern.java index 260a909c..078532fb 100644 --- a/common/buildcraft/builders/FillerPattern.java +++ b/common/buildcraft/builders/FillerPattern.java @@ -7,10 +7,6 @@ */ package buildcraft.builders; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Icon; -import net.minecraft.world.World; import buildcraft.BuildCraftBuilders; import buildcraft.api.core.IBox; import buildcraft.api.filler.IFillerPattern; @@ -18,6 +14,10 @@ import buildcraft.core.proxy.CoreProxy; import buildcraft.core.utils.BlockUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Icon; +import net.minecraft.world.World; public abstract class FillerPattern implements IFillerPattern { diff --git a/common/buildcraft/builders/FillerRegistry.java b/common/buildcraft/builders/FillerRegistry.java index ad15d3d6..c8325a2b 100644 --- a/common/buildcraft/builders/FillerRegistry.java +++ b/common/buildcraft/builders/FillerRegistry.java @@ -9,15 +9,14 @@ package buildcraft.builders; +import buildcraft.api.filler.IFillerPattern; +import buildcraft.api.filler.IFillerRegistry; import java.util.HashMap; import java.util.LinkedList; - import net.minecraft.block.Block; import net.minecraft.inventory.IInventory; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import buildcraft.api.filler.IFillerPattern; -import buildcraft.api.filler.IFillerRegistry; public class FillerRegistry implements IFillerRegistry { diff --git a/common/buildcraft/builders/FillerRemover.java b/common/buildcraft/builders/FillerRemover.java index 226ab765..8caee5b8 100644 --- a/common/buildcraft/builders/FillerRemover.java +++ b/common/buildcraft/builders/FillerRemover.java @@ -9,12 +9,12 @@ package buildcraft.builders; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Icon; import buildcraft.api.core.IBox; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Icon; public class FillerRemover extends FillerPattern { diff --git a/common/buildcraft/builders/GuiHandler.java b/common/buildcraft/builders/GuiHandler.java index e5fe1534..7bd4a078 100644 --- a/common/buildcraft/builders/GuiHandler.java +++ b/common/buildcraft/builders/GuiHandler.java @@ -1,8 +1,5 @@ package buildcraft.builders; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; import buildcraft.builders.gui.ContainerBlueprintLibrary; import buildcraft.builders.gui.ContainerBuilder; import buildcraft.builders.gui.ContainerFiller; @@ -13,6 +10,9 @@ import buildcraft.builders.gui.GuiFiller; import buildcraft.builders.gui.GuiTemplate; import buildcraft.core.GuiIds; import cpw.mods.fml.common.network.IGuiHandler; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; public class GuiHandler implements IGuiHandler { diff --git a/common/buildcraft/builders/IBuilderHook.java b/common/buildcraft/builders/IBuilderHook.java index 7fe9b727..4a7ae238 100644 --- a/common/buildcraft/builders/IBuilderHook.java +++ b/common/buildcraft/builders/IBuilderHook.java @@ -1,8 +1,7 @@ package buildcraft.builders; -import java.io.IOException; - import buildcraft.core.blueprints.BptRootIndex; +import java.io.IOException; public interface IBuilderHook { diff --git a/common/buildcraft/builders/ItemBptBase.java b/common/buildcraft/builders/ItemBptBase.java index 44509d71..4f623d20 100644 --- a/common/buildcraft/builders/ItemBptBase.java +++ b/common/buildcraft/builders/ItemBptBase.java @@ -9,18 +9,17 @@ package buildcraft.builders; -import java.util.List; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.Icon; -import net.minecraft.world.World; import buildcraft.BuildCraftBuilders; import buildcraft.core.CreativeTabBuildCraft; import buildcraft.core.ItemBuildCraft; import buildcraft.core.blueprints.BptBase; import buildcraft.core.proxy.CoreProxy; +import java.util.List; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.Icon; +import net.minecraft.world.World; public abstract class ItemBptBase extends ItemBuildCraft { diff --git a/common/buildcraft/builders/ItemBptBluePrint.java b/common/buildcraft/builders/ItemBptBluePrint.java index 13de9643..aa50c903 100644 --- a/common/buildcraft/builders/ItemBptBluePrint.java +++ b/common/buildcraft/builders/ItemBptBluePrint.java @@ -9,10 +9,10 @@ package buildcraft.builders; -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 net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.util.Icon; public class ItemBptBluePrint extends ItemBptBase { diff --git a/common/buildcraft/builders/ItemBptTemplate.java b/common/buildcraft/builders/ItemBptTemplate.java index fbf946a7..8f0557f6 100644 --- a/common/buildcraft/builders/ItemBptTemplate.java +++ b/common/buildcraft/builders/ItemBptTemplate.java @@ -1,9 +1,9 @@ package buildcraft.builders; -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 net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.util.Icon; public class ItemBptTemplate extends ItemBptBase { private Icon usedTemplate; diff --git a/common/buildcraft/builders/TileArchitect.java b/common/buildcraft/builders/TileArchitect.java index df58273d..d6133fb4 100644 --- a/common/buildcraft/builders/TileArchitect.java +++ b/common/buildcraft/builders/TileArchitect.java @@ -1,22 +1,25 @@ /** +<<<<<<< HEAD * Copyright (c) SpaceToad, 2011 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 +======= + * Copyright (c) SpaceToad, 2011 + * 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 +>>>>>>> mc16 * http://www.mod-buildcraft.com/MMPL-1.0.txt */ package buildcraft.builders; -import buildcraft.builders.blueprints.Blueprint; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraftforge.common.ForgeDirection; + import buildcraft.BuildCraftBuilders; import buildcraft.api.core.IAreaProvider; import buildcraft.api.core.LaserKind; +import buildcraft.builders.blueprints.Blueprint; import buildcraft.core.Box; import buildcraft.core.TileBuildCraft; import buildcraft.core.blueprints.BptBase; @@ -27,6 +30,13 @@ import buildcraft.core.network.TileNetworkData; import buildcraft.core.proxy.CoreProxy; import buildcraft.core.utils.Utils; import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraftforge.common.ForgeDirection; + public class TileArchitect extends TileBuildCraft implements IInventory { @@ -240,7 +250,7 @@ public class TileArchitect extends TileBuildCraft implements IInventory { } @Override - public boolean isStackValidForSlot(int i, ItemStack itemstack) { + public boolean isItemValidForSlot(int i, ItemStack itemstack) { // TODO Auto-generated method stub return false; } diff --git a/common/buildcraft/builders/TileBlueprintLibrary.java b/common/buildcraft/builders/TileBlueprintLibrary.java index b96e38d0..d5b87120 100644 --- a/common/buildcraft/builders/TileBlueprintLibrary.java +++ b/common/buildcraft/builders/TileBlueprintLibrary.java @@ -1,12 +1,5 @@ package buildcraft.builders; -import java.io.IOException; -import java.util.ArrayList; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import buildcraft.BuildCraftBuilders; import buildcraft.core.TileBuildCraft; import buildcraft.core.blueprints.BptBase; @@ -14,6 +7,12 @@ import buildcraft.core.blueprints.BptPlayerIndex; import buildcraft.core.network.TileNetworkData; import buildcraft.core.proxy.CoreProxy; import buildcraft.core.utils.Utils; +import java.io.IOException; +import java.util.ArrayList; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; public class TileBlueprintLibrary extends TileBuildCraft implements IInventory { public static final int COMMAND_NEXT = 1, COMMAND_PREV = 2, COMMAND_LOCK_UPDATE = 3, COMMAND_DELETE = 4; @@ -227,9 +226,9 @@ public class TileBlueprintLibrary extends TileBuildCraft implements IInventory { public int getInventoryStackLimit() { return 64; } - + @Override - public boolean isStackValidForSlot(int i, ItemStack itemstack) { + public boolean isItemValidForSlot(int i, ItemStack itemstack) { // TODO Auto-generated method stub return false; } diff --git a/common/buildcraft/builders/TileBuilder.java b/common/buildcraft/builders/TileBuilder.java index 0f7149fc..e5283439 100644 --- a/common/buildcraft/builders/TileBuilder.java +++ b/common/buildcraft/builders/TileBuilder.java @@ -7,17 +7,6 @@ */ package buildcraft.builders; -import java.util.Collection; -import java.util.Iterator; -import java.util.LinkedList; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftBuilders; import buildcraft.api.core.LaserKind; import buildcraft.api.core.Position; @@ -45,6 +34,16 @@ import buildcraft.core.network.PacketUpdate; import buildcraft.core.network.TileNetworkData; import buildcraft.core.proxy.CoreProxy; import buildcraft.core.utils.Utils; +import java.util.Collection; +import java.util.Iterator; +import java.util.LinkedList; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraftforge.common.ForgeDirection; public class TileBuilder extends TileBuildCraft implements IBuilderInventory, IPowerReceptor, IMachine { @@ -221,7 +220,7 @@ public class TileBuilder extends TileBuildCraft implements IBuilderInventory, IP EntityPowerLaser laser = new EntityPowerLaser(worldObj, new Position(previous.i + 0.5, previous.j + 0.5, previous.k + 0.5), new Position( b.i + 0.5, b.j + 0.5, b.k + 0.5)); - laser.setTexture(DefaultProps.TEXTURE_PATH_ENTITIES + "/laser_1.png"); + laser.setTexture(0); laser.show(); worldObj.spawnEntityInWorld(laser); pathLasers.add(laser); @@ -435,7 +434,7 @@ public class TileBuilder extends TileBuildCraft implements IBuilderInventory, IP } @Override - public boolean isStackValidForSlot(int i, ItemStack itemstack) { + public boolean isItemValidForSlot(int i, ItemStack itemstack) { return true; } @@ -585,7 +584,7 @@ public class TileBuilder extends TileBuildCraft implements IBuilderInventory, IP } @Override - public boolean manageLiquids() { + public boolean manageFluids() { return false; } diff --git a/common/buildcraft/builders/TileFiller.java b/common/buildcraft/builders/TileFiller.java index 6b5bcfdc..22526a41 100644 --- a/common/buildcraft/builders/TileFiller.java +++ b/common/buildcraft/builders/TileFiller.java @@ -7,10 +7,6 @@ */ package buildcraft.builders; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftCore; import buildcraft.api.core.IAreaProvider; import buildcraft.api.core.LaserKind; @@ -32,7 +28,11 @@ import buildcraft.core.triggers.ActionMachineControl; import buildcraft.core.triggers.ActionMachineControl.Mode; import buildcraft.core.utils.Utils; import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.common.ForgeDirection; public class TileFiller extends TileBuildCraft implements ISidedInventory, IPowerReceptor, IMachine, IActionReceptor { @@ -334,7 +334,7 @@ public class TileFiller extends TileBuildCraft implements ISidedInventory, IPowe } @Override - public boolean manageLiquids() { + public boolean manageFluids() { return false; } @@ -368,7 +368,7 @@ public class TileFiller extends TileBuildCraft implements ISidedInventory, IPowe } @Override - public boolean isStackValidForSlot(int slot, ItemStack stack) { + public boolean isItemValidForSlot(int slot, ItemStack stack) { if (slot < 9) { if (getStackInSlot(slot) != null) return false; @@ -387,7 +387,7 @@ public class TileFiller extends TileBuildCraft implements ISidedInventory, IPowe @Override public boolean canInsertItem(int slot, ItemStack stack, int side) { - return isStackValidForSlot(slot, stack); + return isItemValidForSlot(slot, stack); } @Override diff --git a/common/buildcraft/builders/TileMarker.java b/common/buildcraft/builders/TileMarker.java index 41d92b05..fe952079 100644 --- a/common/buildcraft/builders/TileMarker.java +++ b/common/buildcraft/builders/TileMarker.java @@ -9,8 +9,6 @@ package buildcraft.builders; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; import buildcraft.BuildCraftBuilders; import buildcraft.api.core.IAreaProvider; import buildcraft.api.core.LaserKind; @@ -21,6 +19,8 @@ import buildcraft.core.network.PacketUpdate; import buildcraft.core.network.TileNetworkData; import buildcraft.core.proxy.CoreProxy; import buildcraft.core.utils.Utils; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; public class TileMarker extends TileBuildCraft implements IAreaProvider { diff --git a/common/buildcraft/builders/TilePathMarker.java b/common/buildcraft/builders/TilePathMarker.java index 6548289b..ae44c377 100644 --- a/common/buildcraft/builders/TilePathMarker.java +++ b/common/buildcraft/builders/TilePathMarker.java @@ -1,12 +1,5 @@ package buildcraft.builders; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.TreeSet; - -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; import buildcraft.api.core.Position; import buildcraft.core.BlockIndex; import buildcraft.core.DefaultProps; @@ -15,6 +8,12 @@ import buildcraft.core.EntityPowerLaser; import buildcraft.core.network.PacketUpdate; import buildcraft.core.network.TileNetworkData; import buildcraft.core.proxy.CoreProxy; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.TreeSet; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; public class TilePathMarker extends TileMarker { @@ -63,7 +62,7 @@ public class TilePathMarker extends TileMarker { pathMarker.yCoord + 0.5, pathMarker.zCoord + 0.5)); laser.show(); - laser.setTexture(DefaultProps.TEXTURE_PATH_ENTITIES + "/laser_1.png"); + laser.setTexture(0); worldObj.spawnEntityInWorld(laser); connect(pathMarker, laser); diff --git a/common/buildcraft/builders/gui/ContainerBlueprintLibrary.java b/common/buildcraft/builders/gui/ContainerBlueprintLibrary.java index 59478181..e3ad35bc 100644 --- a/common/buildcraft/builders/gui/ContainerBlueprintLibrary.java +++ b/common/buildcraft/builders/gui/ContainerBlueprintLibrary.java @@ -9,12 +9,12 @@ package buildcraft.builders.gui; +import buildcraft.builders.TileBlueprintLibrary; +import buildcraft.core.gui.BuildCraftContainer; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ICrafting; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; -import buildcraft.builders.TileBlueprintLibrary; -import buildcraft.core.gui.BuildCraftContainer; public class ContainerBlueprintLibrary extends BuildCraftContainer { diff --git a/common/buildcraft/builders/gui/ContainerBuilder.java b/common/buildcraft/builders/gui/ContainerBuilder.java index 74145592..3e9e1ac7 100644 --- a/common/buildcraft/builders/gui/ContainerBuilder.java +++ b/common/buildcraft/builders/gui/ContainerBuilder.java @@ -9,11 +9,11 @@ package buildcraft.builders.gui; +import buildcraft.builders.TileBuilder; +import buildcraft.core.gui.BuildCraftContainer; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; -import buildcraft.builders.TileBuilder; -import buildcraft.core.gui.BuildCraftContainer; public class ContainerBuilder extends BuildCraftContainer { diff --git a/common/buildcraft/builders/gui/ContainerFiller.java b/common/buildcraft/builders/gui/ContainerFiller.java index ec07d875..7c94d7f7 100644 --- a/common/buildcraft/builders/gui/ContainerFiller.java +++ b/common/buildcraft/builders/gui/ContainerFiller.java @@ -9,12 +9,12 @@ package buildcraft.builders.gui; +import buildcraft.core.gui.BuildCraftContainer; +import buildcraft.core.gui.slots.SlotLimited; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; -import buildcraft.core.gui.BuildCraftContainer; -import buildcraft.core.gui.slots.SlotLimited; public class ContainerFiller extends BuildCraftContainer { diff --git a/common/buildcraft/builders/gui/ContainerTemplate.java b/common/buildcraft/builders/gui/ContainerTemplate.java index 060fa920..9d813283 100644 --- a/common/buildcraft/builders/gui/ContainerTemplate.java +++ b/common/buildcraft/builders/gui/ContainerTemplate.java @@ -9,12 +9,12 @@ package buildcraft.builders.gui; +import buildcraft.builders.TileArchitect; +import buildcraft.core.gui.BuildCraftContainer; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ICrafting; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; -import buildcraft.builders.TileArchitect; -import buildcraft.core.gui.BuildCraftContainer; public class ContainerTemplate extends BuildCraftContainer { diff --git a/common/buildcraft/builders/gui/GuiBlueprintLibrary.java b/common/buildcraft/builders/gui/GuiBlueprintLibrary.java index 2613eda9..b73a5abe 100644 --- a/common/buildcraft/builders/gui/GuiBlueprintLibrary.java +++ b/common/buildcraft/builders/gui/GuiBlueprintLibrary.java @@ -1,19 +1,12 @@ /** - * Copyright (c) SpaceToad, 2011 - * http://www.mod-buildcraft.com + * Copyright (c) SpaceToad, 2011 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 + * 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.builders.gui; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.entity.player.EntityPlayer; - -import org.lwjgl.opengl.GL11; - import buildcraft.BuildCraftBuilders; import buildcraft.builders.TileBlueprintLibrary; import buildcraft.builders.network.PacketLibraryAction; @@ -24,16 +17,18 @@ import buildcraft.core.network.PacketIds; import buildcraft.core.network.PacketPayload; import buildcraft.core.proxy.CoreProxy; import buildcraft.core.utils.StringUtils; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.opengl.GL11; public class GuiBlueprintLibrary extends GuiBuildCraft { + private static final ResourceLocation TEXTURE = new ResourceLocation("buildcraft", DefaultProps.TEXTURE_PATH_GUI + "/template_gui.png"); EntityPlayer player; TileBlueprintLibrary library; - ContainerBlueprintLibrary container; - boolean computeInput; - BptPlayerIndex index; public GuiBlueprintLibrary(EntityPlayer player, TileBlueprintLibrary library) { @@ -47,7 +42,6 @@ public class GuiBlueprintLibrary extends GuiBuildCraft { index = BuildCraftBuilders.getPlayerIndex(player.username); } - private GuiButton nextPageButton; private GuiButton prevPageButton; private GuiButton lockButton; @@ -110,8 +104,8 @@ public class GuiBlueprintLibrary extends GuiBuildCraft { @Override protected void drawGuiContainerBackgroundLayer(float f, int x, int y) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - mc.renderEngine.bindTexture(DefaultProps.TEXTURE_PATH_GUI + "/library_rw.png"); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + mc.renderEngine.func_110577_a(TEXTURE); int j = (width - xSize) / 2; int k = (height - ySize) / 2; @@ -164,7 +158,7 @@ public class GuiBlueprintLibrary extends GuiBuildCraft { if (ySlot >= 0 && ySlot <= 11) { if (ySlot < library.currentNames.length) { PacketPayload payload = new PacketPayload(); - payload.intPayload = new int[] { ySlot }; + payload.intPayload = new int[]{ySlot}; PacketLibraryAction packet = new PacketLibraryAction(PacketIds.LIBRARY_SELECT, library.xCoord, library.yCoord, library.zCoord); packet.actionId = ySlot; CoreProxy.proxy.sendToServer(packet.getPacket()); diff --git a/common/buildcraft/builders/gui/GuiBuilder.java b/common/buildcraft/builders/gui/GuiBuilder.java index f80fb91c..01c0a7d6 100644 --- a/common/buildcraft/builders/gui/GuiBuilder.java +++ b/common/buildcraft/builders/gui/GuiBuilder.java @@ -1,28 +1,26 @@ /** - * Copyright (c) SpaceToad, 2011 - * http://www.mod-buildcraft.com + * Copyright (c) SpaceToad, 2011 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 + * 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.builders.gui; -import java.util.Collection; - -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; - -import org.lwjgl.opengl.GL11; - import buildcraft.builders.TileBuilder; import buildcraft.core.DefaultProps; import buildcraft.core.gui.GuiAdvancedInterface; import buildcraft.core.utils.StringUtils; +import java.util.Collection; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.opengl.GL11; public class GuiBuilder extends GuiAdvancedInterface { + private static final ResourceLocation TEXTURE = new ResourceLocation("buildcraft", DefaultProps.TEXTURE_PATH_GUI + "/builder.png"); + private static final ResourceLocation BLUEPRINT_TEXTURE = new ResourceLocation("buildcraft", DefaultProps.TEXTURE_PATH_GUI + "/builder_blueprint.png"); IInventory playerInventory; TileBuilder builder; @@ -60,16 +58,16 @@ public class GuiBuilder extends GuiAdvancedInterface { @Override protected void drawGuiContainerBackgroundLayer(float f, int x, int y) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); int j = (width - xSize) / 2; int k = (height - ySize) / 2; int realXSize = 0; if (builder.isBuildingBlueprint()) { - mc.renderEngine.bindTexture(DefaultProps.TEXTURE_PATH_GUI + "/builder_blueprint.png"); + mc.renderEngine.func_110577_a(BLUEPRINT_TEXTURE); realXSize = 256; } else { - mc.renderEngine.bindTexture(DefaultProps.TEXTURE_PATH_GUI + "/builder.png"); + mc.renderEngine.func_110577_a(TEXTURE); realXSize = 176; } @@ -96,6 +94,5 @@ public class GuiBuilder extends GuiAdvancedInterface { drawBackgroundSlots(); } - int inventoryRows = 6; } diff --git a/common/buildcraft/builders/gui/GuiFiller.java b/common/buildcraft/builders/gui/GuiFiller.java index 1ca1d910..3f457a23 100644 --- a/common/buildcraft/builders/gui/GuiFiller.java +++ b/common/buildcraft/builders/gui/GuiFiller.java @@ -1,25 +1,24 @@ /** - * Copyright (c) SpaceToad, 2011 - * http://www.mod-buildcraft.com + * Copyright (c) SpaceToad, 2011 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 + * 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.builders.gui; -import net.minecraft.inventory.IInventory; - -import org.lwjgl.opengl.GL11; - import buildcraft.builders.TileFiller; import buildcraft.core.DefaultProps; import buildcraft.core.gui.GuiBuildCraft; import buildcraft.core.utils.StringUtils; +import net.minecraft.inventory.IInventory; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.opengl.GL11; public class GuiFiller extends GuiBuildCraft { + private static final ResourceLocation TEXTURE = new ResourceLocation("buildcraft", DefaultProps.TEXTURE_PATH_GUI + "/filler.png"); + private static final ResourceLocation BLOCK_TEXTURE = new ResourceLocation("/terrain.png"); IInventory playerInventory; TileFiller filler; @@ -46,13 +45,13 @@ public class GuiFiller extends GuiBuildCraft { @Override protected void drawGuiContainerBackgroundLayer(float f, int x, int y) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - mc.renderEngine.bindTexture(DefaultProps.TEXTURE_PATH_GUI + "/filler.png"); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + mc.renderEngine.func_110577_a(TEXTURE); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); if (filler.currentPattern != null) { - mc.renderEngine.bindTexture("/terrain.png"); + mc.renderEngine.func_110577_a(BLOCK_TEXTURE); drawTexturedModelRectFromIcon(guiLeft + patternSymbolX, guiTop + patternSymbolY, filler.currentPattern.getTexture(), 16, 16); } @@ -87,10 +86,8 @@ public class GuiFiller extends GuiBuildCraft { lastX = i; lastY = j; } - private int lastX = 0; private int lastY = 0; - public final int patternSymbolX = 125; public final int patternSymbolY = 34; } diff --git a/common/buildcraft/builders/gui/GuiTemplate.java b/common/buildcraft/builders/gui/GuiTemplate.java index 559c648c..dd49a17c 100644 --- a/common/buildcraft/builders/gui/GuiTemplate.java +++ b/common/buildcraft/builders/gui/GuiTemplate.java @@ -1,20 +1,12 @@ /** - * Copyright (c) SpaceToad, 2011 - * http://www.mod-buildcraft.com + * Copyright (c) SpaceToad, 2011 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 + * 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.builders.gui; -import java.util.Date; - -import net.minecraft.inventory.IInventory; - -import org.lwjgl.opengl.GL11; - import buildcraft.builders.TileArchitect; import buildcraft.core.DefaultProps; import buildcraft.core.gui.GuiBuildCraft; @@ -23,12 +15,16 @@ import buildcraft.core.network.PacketPayload; import buildcraft.core.network.PacketUpdate; import buildcraft.core.proxy.CoreProxy; import buildcraft.core.utils.StringUtils; +import java.util.Date; +import net.minecraft.inventory.IInventory; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.opengl.GL11; public class GuiTemplate extends GuiBuildCraft { + private static final ResourceLocation TEXTURE = new ResourceLocation("buildcraft", DefaultProps.TEXTURE_PATH_GUI + "/template_gui.png"); IInventory playerInventory; TileArchitect template; - boolean editMode = false; public GuiTemplate(IInventory playerInventory, TileArchitect template) { @@ -54,8 +50,8 @@ public class GuiTemplate extends GuiBuildCraft { @Override protected void drawGuiContainerBackgroundLayer(float f, int x, int y) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - mc.renderEngine.bindTexture(DefaultProps.TEXTURE_PATH_GUI + "/template_gui.png"); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + mc.renderEngine.func_110577_a(TEXTURE); int j = (width - xSize) / 2; int k = (height - ySize) / 2; drawTexturedModalRect(j, k, 0, 0, xSize, ySize); @@ -88,7 +84,7 @@ public class GuiTemplate extends GuiBuildCraft { return; } PacketPayload payload = new PacketPayload(); - payload.intPayload = new int[] { c }; + payload.intPayload = new int[]{c}; PacketUpdate packet = new PacketUpdate(PacketIds.ARCHITECT_NAME, template.xCoord, template.yCoord, template.zCoord, payload); CoreProxy.proxy.sendToServer(packet.getPacket()); } else { diff --git a/common/buildcraft/builders/network/PacketHandlerBuilders.java b/common/buildcraft/builders/network/PacketHandlerBuilders.java index 8692c958..50ed17e9 100644 --- a/common/buildcraft/builders/network/PacketHandlerBuilders.java +++ b/common/buildcraft/builders/network/PacketHandlerBuilders.java @@ -1,18 +1,17 @@ package buildcraft.builders.network; -import java.io.ByteArrayInputStream; -import java.io.DataInputStream; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.network.INetworkManager; -import net.minecraft.network.packet.Packet250CustomPayload; -import net.minecraft.tileentity.TileEntity; import buildcraft.builders.TileArchitect; import buildcraft.builders.TileBlueprintLibrary; import buildcraft.core.network.PacketIds; import buildcraft.core.network.PacketUpdate; import cpw.mods.fml.common.network.IPacketHandler; import cpw.mods.fml.common.network.Player; +import java.io.ByteArrayInputStream; +import java.io.DataInputStream; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.network.INetworkManager; +import net.minecraft.network.packet.Packet250CustomPayload; +import net.minecraft.tileentity.TileEntity; public class PacketHandlerBuilders implements IPacketHandler { diff --git a/common/buildcraft/builders/network/PacketLibraryAction.java b/common/buildcraft/builders/network/PacketLibraryAction.java index 4e64e856..5aa18491 100644 --- a/common/buildcraft/builders/network/PacketLibraryAction.java +++ b/common/buildcraft/builders/network/PacketLibraryAction.java @@ -1,11 +1,10 @@ package buildcraft.builders.network; +import buildcraft.core.network.PacketCoordinates; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; -import buildcraft.core.network.PacketCoordinates; - public class PacketLibraryAction extends PacketCoordinates { public int actionId; diff --git a/common/buildcraft/core/BlockBuildCraft.java b/common/buildcraft/core/BlockBuildCraft.java index c0cb4705..74e84669 100644 --- a/common/buildcraft/core/BlockBuildCraft.java +++ b/common/buildcraft/core/BlockBuildCraft.java @@ -1,11 +1,10 @@ package buildcraft.core; +import buildcraft.core.utils.Utils; import java.util.Random; - import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.world.World; -import buildcraft.core.utils.Utils; public abstract class BlockBuildCraft extends BlockContainer { diff --git a/common/buildcraft/core/BlockSpring.java b/common/buildcraft/core/BlockSpring.java index d438a5ee..d4e2115a 100644 --- a/common/buildcraft/core/BlockSpring.java +++ b/common/buildcraft/core/BlockSpring.java @@ -1,16 +1,15 @@ package buildcraft.core; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import java.util.List; import java.util.Random; - import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.ItemStack; import net.minecraft.world.World; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; public class BlockSpring extends Block { diff --git a/common/buildcraft/core/Box.java b/common/buildcraft/core/Box.java index ccd92244..5369d735 100644 --- a/common/buildcraft/core/Box.java +++ b/common/buildcraft/core/Box.java @@ -9,11 +9,6 @@ package buildcraft.core; -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; import buildcraft.api.core.IAreaProvider; import buildcraft.api.core.IBox; import buildcraft.api.core.LaserKind; @@ -21,6 +16,10 @@ import buildcraft.api.core.Position; import buildcraft.core.network.TileNetworkData; import buildcraft.core.proxy.CoreProxy; import buildcraft.core.utils.Utils; +import java.util.ArrayList; +import java.util.List; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; public class Box implements IBox { diff --git a/common/buildcraft/core/BuildCraftConfiguration.java b/common/buildcraft/core/BuildCraftConfiguration.java index af53ef39..9f925e9f 100644 --- a/common/buildcraft/core/BuildCraftConfiguration.java +++ b/common/buildcraft/core/BuildCraftConfiguration.java @@ -10,7 +10,6 @@ package buildcraft.core; import java.io.File; - import net.minecraftforge.common.Configuration; import net.minecraftforge.common.Property; diff --git a/common/buildcraft/core/CommandBuildCraft.java b/common/buildcraft/core/CommandBuildCraft.java index b7102ca7..b9567c03 100644 --- a/common/buildcraft/core/CommandBuildCraft.java +++ b/common/buildcraft/core/CommandBuildCraft.java @@ -1,12 +1,11 @@ package buildcraft.core; +import buildcraft.core.proxy.CoreProxy; import java.util.List; - import net.minecraft.command.CommandBase; import net.minecraft.command.ICommand; import net.minecraft.command.ICommandSender; import net.minecraft.command.WrongUsageException; -import buildcraft.core.proxy.CoreProxy; public class CommandBuildCraft extends CommandBase { diff --git a/common/buildcraft/core/CoreIconProvider.java b/common/buildcraft/core/CoreIconProvider.java index 69de9650..7b288956 100644 --- a/common/buildcraft/core/CoreIconProvider.java +++ b/common/buildcraft/core/CoreIconProvider.java @@ -1,10 +1,10 @@ package buildcraft.core; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.util.Icon; import buildcraft.api.core.IIconProvider; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.util.Icon; public class CoreIconProvider implements IIconProvider { diff --git a/common/buildcraft/core/CreativeTabBuildCraft.java b/common/buildcraft/core/CreativeTabBuildCraft.java index d0e81c30..dcb77115 100644 --- a/common/buildcraft/core/CreativeTabBuildCraft.java +++ b/common/buildcraft/core/CreativeTabBuildCraft.java @@ -1,8 +1,8 @@ package buildcraft.core; +import buildcraft.BuildCraftCore; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.ItemStack; -import buildcraft.BuildCraftCore; public class CreativeTabBuildCraft extends CreativeTabs { diff --git a/common/buildcraft/core/DefaultProps.java b/common/buildcraft/core/DefaultProps.java index bc658c81..ce3e017f 100644 --- a/common/buildcraft/core/DefaultProps.java +++ b/common/buildcraft/core/DefaultProps.java @@ -25,11 +25,6 @@ public class DefaultProps { public static String TEXTURE_PATH_BLOCKS = "/gfx/buildcraft/blocks"; public static String TEXTURE_PATH_ENTITIES = "/gfx/buildcraft/entities"; - public static String TEXTURE_BLOCKS = TEXTURE_PATH_BLOCKS + "/blocks.png"; - public static String TEXTURE_ITEMS = "/gfx/buildcraft/items/items.png"; - public static String TEXTURE_ICONS = TEXTURE_PATH_GUI + "/icons.png"; - public static String TEXTURE_TRIGGERS = TEXTURE_PATH_GUI + "/triggers.png"; - public static final String DEFAULT_LANGUAGE = "en_US"; public static String PUMP_DIMENSION_LIST = "+/*/*,+/-1/Lava"; @@ -42,7 +37,6 @@ public class DefaultProps { public static int TEMPLATE_ITEM_ID = 19105; public static int WRENCH_ID = 19106; public static int BUCKET_OIL_ID = 19107; - public static int FUEL_ID = 19108; public static int PIPE_WATERPROOF_ID = 19109; public static int BUCKET_FUEL_ID = 19110; public static int GATE_ID = 19111; @@ -113,15 +107,16 @@ public class DefaultProps { public static int ASSEMBLY_TABLE_ID = 1517; public static int PATH_MARKER_ID = 1518; public static int HOPPER_ID = 1519; - public static int OIL_MOVING_ID = 1520; - public static int OIL_STILL_ID = 1521; public static int SPRING_ID = 1522; public static int FILTERED_BUFFER = 1523; + + public static int OIL_ID = 1530; + public static int FUEL_ID = 1531; public static boolean CURRENT_CONTINUOUS = false; public static double PIPES_DURABILITY = 0.25D; public static boolean FILLER_DESTROY = false; - + public static final int FILLER_LIFESPAN_TOUGH = 20; public static final int FILLER_LIFESPAN_NORMAL = 6000; @@ -170,4 +165,6 @@ public class DefaultProps { public static int ACTION_ENERGY_PULSER = 9; public static int ACTION_SINGLE_ENERGY_PULSE = 10; + public static int BIOME_OIL_OCEAN = 160; + public static int BIOME_OIL_DESERT = 161; } diff --git a/common/buildcraft/core/EntityBlock.java b/common/buildcraft/core/EntityBlock.java index a52c0e78..6c833306 100644 --- a/common/buildcraft/core/EntityBlock.java +++ b/common/buildcraft/core/EntityBlock.java @@ -7,12 +7,12 @@ */ package buildcraft.core; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.Entity; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.Icon; import net.minecraft.world.World; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; public class EntityBlock extends Entity { diff --git a/common/buildcraft/core/EntityEnergyLaser.java b/common/buildcraft/core/EntityEnergyLaser.java index 92b5f68e..4248ddc2 100644 --- a/common/buildcraft/core/EntityEnergyLaser.java +++ b/common/buildcraft/core/EntityEnergyLaser.java @@ -1,22 +1,21 @@ /** - * Copyright (c) SpaceToad, 2011 - * http://www.mod-buildcraft.com + * Copyright (c) SpaceToad, 2011 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 + * 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 net.minecraft.world.World; import buildcraft.api.core.Position; +import static buildcraft.core.EntityLaser.LASER_TEXTURES; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; public class EntityEnergyLaser extends EntityLaser { public static final short POWER_AVERAGING = 100; public int displayStage = 0; - private final float power[] = new float[POWER_AVERAGING]; private int powerIndex = 0; private float powerAverage = 0; @@ -46,16 +45,15 @@ public class EntityEnergyLaser extends EntityLaser { } @Override - public String getTexture() { - + public ResourceLocation getTexture() { if (getPowerAverage() <= 1.0) - return DefaultProps.TEXTURE_PATH_ENTITIES + "/laser_1.png"; + return LASER_TEXTURES[0]; else if (getPowerAverage() <= 2.0) - return DefaultProps.TEXTURE_PATH_ENTITIES + "/laser_2.png"; + return LASER_TEXTURES[1]; else if (getPowerAverage() <= 3.0) - return DefaultProps.TEXTURE_PATH_ENTITIES + "/laser_3.png"; + return LASER_TEXTURES[2]; else - return DefaultProps.TEXTURE_PATH_ENTITIES + "/laser_4.png"; + return LASER_TEXTURES[3]; } @Override diff --git a/common/buildcraft/core/EntityLaser.java b/common/buildcraft/core/EntityLaser.java index 12cca57c..f0fc3260 100644 --- a/common/buildcraft/core/EntityLaser.java +++ b/common/buildcraft/core/EntityLaser.java @@ -7,14 +7,20 @@ */ package buildcraft.core; -import net.minecraft.entity.Entity; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; import buildcraft.api.core.Position; import buildcraft.core.proxy.CoreProxy; +import net.minecraft.entity.Entity; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; public abstract class EntityLaser extends Entity { + public static final ResourceLocation[] LASER_TEXTURES = new ResourceLocation[]{ + new ResourceLocation("buildcraft", DefaultProps.TEXTURE_PATH_ENTITIES + "/laser_1.png"), + new ResourceLocation("buildcraft", DefaultProps.TEXTURE_PATH_ENTITIES + "/laser_2.png"), + new ResourceLocation("buildcraft", DefaultProps.TEXTURE_PATH_ENTITIES + "/laser_3.png"), + new ResourceLocation("buildcraft", DefaultProps.TEXTURE_PATH_ENTITIES + "/laser_4.png")}; protected Position head, tail; public double renderSize = 0; public double angleY = 0; @@ -142,7 +148,7 @@ public abstract class EntityLaser extends Entity { return this.isVisible; } - public abstract String getTexture(); + public abstract ResourceLocation getTexture(); protected int encodeDouble(double d) { return (int) (d * 8192); diff --git a/common/buildcraft/core/EntityPassiveItem.java b/common/buildcraft/core/EntityPassiveItem.java index e3854caf..fb159336 100644 --- a/common/buildcraft/core/EntityPassiveItem.java +++ b/common/buildcraft/core/EntityPassiveItem.java @@ -9,8 +9,12 @@ package buildcraft.core; +import buildcraft.BuildCraftCore; +import buildcraft.api.core.Position; +import buildcraft.api.transport.IPassiveItemContribution; +import buildcraft.api.transport.IPipedItem; +import buildcraft.core.proxy.CoreProxy; import java.util.TreeMap; - import net.minecraft.entity.item.EntityItem; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -20,11 +24,6 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraftforge.common.ForgeDirection; -import buildcraft.BuildCraftCore; -import buildcraft.api.core.Position; -import buildcraft.api.transport.IPassiveItemContribution; -import buildcraft.api.transport.IPipedItem; -import buildcraft.core.proxy.CoreProxy; public class EntityPassiveItem implements IPipedItem { diff --git a/common/buildcraft/core/EntityPowerLaser.java b/common/buildcraft/core/EntityPowerLaser.java index 91e1c63c..edf3f424 100644 --- a/common/buildcraft/core/EntityPowerLaser.java +++ b/common/buildcraft/core/EntityPowerLaser.java @@ -1,10 +1,12 @@ package buildcraft.core; -import net.minecraft.world.World; import buildcraft.api.core.Position; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; public class EntityPowerLaser extends EntityLaser { - private String texture; + + private byte texture; public EntityPowerLaser(World world) { super(world); @@ -17,23 +19,23 @@ public class EntityPowerLaser extends EntityLaser { @Override protected void entityInit() { super.entityInit(); - dataWatcher.addObject(15, ""); + dataWatcher.addObject(15, (byte) 0); } @Override - public String getTexture() { - return texture; + public ResourceLocation getTexture() { + return LASER_TEXTURES[texture]; } - public void setTexture(String texture) { - this.texture = texture; + public void setTexture(int texture) { + this.texture = (byte) texture; needsUpdate = true; } @Override protected void updateDataClient() { super.updateDataClient(); - texture = dataWatcher.getWatchableObjectString(15); + texture = dataWatcher.getWatchableObjectByte(15); } @Override diff --git a/common/buildcraft/core/EntityRobot.java b/common/buildcraft/core/EntityRobot.java index 397aa376..2c01b917 100644 --- a/common/buildcraft/core/EntityRobot.java +++ b/common/buildcraft/core/EntityRobot.java @@ -7,23 +7,20 @@ */ package buildcraft.core; -import java.util.ArrayList; -import java.util.LinkedList; -import java.util.List; - -import net.minecraft.entity.Entity; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; import buildcraft.BuildCraftCore; import buildcraft.builders.blueprints.BlueprintBuilder.SchematicBuilder; import buildcraft.api.core.Position; import buildcraft.core.proxy.CoreProxy; import buildcraft.core.utils.BlockUtil; - import com.google.common.io.ByteArrayDataInput; import com.google.common.io.ByteArrayDataOutput; - import cpw.mods.fml.common.registry.IEntityAdditionalSpawnData; +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import net.minecraft.entity.Entity; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; public class EntityRobot extends Entity implements IEntityAdditionalSpawnData { diff --git a/common/buildcraft/core/IBptContributor.java b/common/buildcraft/core/IBptContributor.java index e7d6670d..2e008e4b 100644 --- a/common/buildcraft/core/IBptContributor.java +++ b/common/buildcraft/core/IBptContributor.java @@ -1,8 +1,8 @@ package buildcraft.core; -import net.minecraft.tileentity.TileEntity; import buildcraft.api.blueprints.BptSlotInfo; import buildcraft.core.blueprints.BptBase; +import net.minecraft.tileentity.TileEntity; public interface IBptContributor { diff --git a/common/buildcraft/core/IMachine.java b/common/buildcraft/core/IMachine.java index 0f8a2aa0..3ced98a9 100644 --- a/common/buildcraft/core/IMachine.java +++ b/common/buildcraft/core/IMachine.java @@ -15,7 +15,7 @@ public interface IMachine { public boolean isActive(); - public boolean manageLiquids(); + public boolean manageFluids(); public boolean manageSolids(); diff --git a/common/buildcraft/core/ItemBlockBuildCraft.java b/common/buildcraft/core/ItemBlockBuildCraft.java index b589b9d9..31f5df78 100644 --- a/common/buildcraft/core/ItemBlockBuildCraft.java +++ b/common/buildcraft/core/ItemBlockBuildCraft.java @@ -1,8 +1,8 @@ package buildcraft.core; +import buildcraft.core.utils.StringUtils; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; -import buildcraft.core.utils.StringUtils; public class ItemBlockBuildCraft extends ItemBlock { diff --git a/common/buildcraft/core/ItemBuildCraft.java b/common/buildcraft/core/ItemBuildCraft.java index 4150d35f..42a8467b 100644 --- a/common/buildcraft/core/ItemBuildCraft.java +++ b/common/buildcraft/core/ItemBuildCraft.java @@ -9,12 +9,12 @@ package buildcraft.core; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; import buildcraft.core.utils.StringUtils; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; public class ItemBuildCraft extends Item { diff --git a/common/buildcraft/core/ItemRedstoneChipset.java b/common/buildcraft/core/ItemRedstoneChipset.java index 96db80e7..ff3bd7e5 100644 --- a/common/buildcraft/core/ItemRedstoneChipset.java +++ b/common/buildcraft/core/ItemRedstoneChipset.java @@ -1,13 +1,12 @@ package buildcraft.core; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import java.util.List; - import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.ItemStack; import net.minecraft.util.Icon; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; public class ItemRedstoneChipset extends ItemBuildCraft { diff --git a/common/buildcraft/core/ItemSpring.java b/common/buildcraft/core/ItemSpring.java index 95013b06..53317134 100644 --- a/common/buildcraft/core/ItemSpring.java +++ b/common/buildcraft/core/ItemSpring.java @@ -10,7 +10,6 @@ package buildcraft.core; import java.util.Locale; - import net.minecraft.item.ItemStack; public class ItemSpring extends ItemBlockBuildCraft { diff --git a/common/buildcraft/core/ItemWrench.java b/common/buildcraft/core/ItemWrench.java index 4bb3cb7e..8dace6f9 100644 --- a/common/buildcraft/core/ItemWrench.java +++ b/common/buildcraft/core/ItemWrench.java @@ -1,11 +1,11 @@ package buildcraft.core; +import buildcraft.api.tools.IToolWrench; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.world.World; import net.minecraftforge.common.ForgeDirection; -import buildcraft.api.tools.IToolWrench; public class ItemWrench extends ItemBuildCraft implements IToolWrench { diff --git a/common/buildcraft/core/SpringPopulate.java b/common/buildcraft/core/SpringPopulate.java index 309692d3..b536409b 100644 --- a/common/buildcraft/core/SpringPopulate.java +++ b/common/buildcraft/core/SpringPopulate.java @@ -7,15 +7,14 @@ */ package buildcraft.core; +import buildcraft.BuildCraftCore; import java.util.Random; - import net.minecraft.block.Block; import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; import net.minecraftforge.event.ForgeSubscribe; import net.minecraftforge.event.terraingen.PopulateChunkEvent; import net.minecraftforge.event.terraingen.TerrainGen; -import buildcraft.BuildCraftCore; public class SpringPopulate { diff --git a/common/buildcraft/core/TickHandlerCoreClient.java b/common/buildcraft/core/TickHandlerCoreClient.java index 97b80506..bd99976c 100644 --- a/common/buildcraft/core/TickHandlerCoreClient.java +++ b/common/buildcraft/core/TickHandlerCoreClient.java @@ -1,11 +1,10 @@ package buildcraft.core; -import java.util.EnumSet; - -import net.minecraft.entity.player.EntityPlayer; import buildcraft.core.proxy.CoreProxy; import cpw.mods.fml.common.ITickHandler; import cpw.mods.fml.common.TickType; +import java.util.EnumSet; +import net.minecraft.entity.player.EntityPlayer; public class TickHandlerCoreClient implements ITickHandler { diff --git a/common/buildcraft/core/TileBuffer.java b/common/buildcraft/core/TileBuffer.java index 88d7d22e..cd5a78a8 100644 --- a/common/buildcraft/core/TileBuffer.java +++ b/common/buildcraft/core/TileBuffer.java @@ -7,10 +7,10 @@ */ package buildcraft.core; +import buildcraft.api.core.SafeTimeTracker; import net.minecraft.block.Block; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; -import buildcraft.api.core.SafeTimeTracker; import net.minecraftforge.common.ForgeDirection; public final class TileBuffer { diff --git a/common/buildcraft/core/TileBuildCraft.java b/common/buildcraft/core/TileBuildCraft.java index 6db37aba..092e6ccf 100644 --- a/common/buildcraft/core/TileBuildCraft.java +++ b/common/buildcraft/core/TileBuildCraft.java @@ -7,11 +7,6 @@ */ package buildcraft.core; -import java.util.HashMap; -import java.util.Map; - -import net.minecraft.network.packet.Packet; -import net.minecraft.tileentity.TileEntity; import buildcraft.api.power.IPowerReceptor; import buildcraft.core.network.ISynchronizedTile; import buildcraft.core.network.PacketPayload; @@ -20,7 +15,10 @@ import buildcraft.core.network.PacketUpdate; import buildcraft.core.network.TilePacketWrapper; import buildcraft.core.proxy.CoreProxy; import buildcraft.core.utils.Utils; -import net.minecraft.world.World; +import java.util.HashMap; +import java.util.Map; +import net.minecraft.network.packet.Packet; +import net.minecraft.tileentity.TileEntity; public abstract class TileBuildCraft extends TileEntity implements ISynchronizedTile { diff --git a/common/buildcraft/core/Version.java b/common/buildcraft/core/Version.java index b6110953..35f75fd9 100644 --- a/common/buildcraft/core/Version.java +++ b/common/buildcraft/core/Version.java @@ -1,14 +1,13 @@ package buildcraft.core; +import buildcraft.BuildCraftCore; +import buildcraft.core.proxy.CoreProxy; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.util.ArrayList; - import net.minecraftforge.common.Property; -import buildcraft.BuildCraftCore; -import buildcraft.core.proxy.CoreProxy; public class Version implements Runnable { diff --git a/common/buildcraft/core/blueprints/BptBase.java b/common/buildcraft/core/blueprints/BptBase.java index d2105a0f..22f09ff3 100644 --- a/common/buildcraft/core/blueprints/BptBase.java +++ b/common/buildcraft/core/blueprints/BptBase.java @@ -9,6 +9,10 @@ package buildcraft.core.blueprints; +import buildcraft.BuildCraftCore; +import buildcraft.core.Box; +import buildcraft.core.Version; +import buildcraft.core.proxy.CoreProxy; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; @@ -20,11 +24,6 @@ import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.UnsupportedEncodingException; -import buildcraft.BuildCraftCore; -import buildcraft.core.Box; -import buildcraft.core.Version; -import buildcraft.core.proxy.CoreProxy; - public abstract class BptBase { BptSlot contents[][][]; diff --git a/common/buildcraft/core/blueprints/BptBlueprint.java b/common/buildcraft/core/blueprints/BptBlueprint.java index ce08322b..e52aeeac 100644 --- a/common/buildcraft/core/blueprints/BptBlueprint.java +++ b/common/buildcraft/core/blueprints/BptBlueprint.java @@ -9,20 +9,6 @@ package buildcraft.core.blueprints; -import java.io.BufferedReader; -import java.io.BufferedWriter; -import java.io.IOException; -import java.io.StringReader; -import java.util.TreeSet; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTBase; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.tileentity.TileEntity; import buildcraft.BuildCraftCore; import buildcraft.api.blueprints.BlockSignature; import buildcraft.api.blueprints.BlueprintManager; @@ -31,6 +17,19 @@ import buildcraft.api.blueprints.BptSlotInfo; import buildcraft.api.blueprints.IBptContext; import buildcraft.api.blueprints.ItemSignature; import buildcraft.core.IBptContributor; +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.IOException; +import java.io.StringReader; +import java.util.TreeSet; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTBase; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.tileentity.TileEntity; public class BptBlueprint extends BptBase { diff --git a/common/buildcraft/core/blueprints/BptBuilderBase.java b/common/buildcraft/core/blueprints/BptBuilderBase.java index 874e53b0..c3be6bb0 100644 --- a/common/buildcraft/core/blueprints/BptBuilderBase.java +++ b/common/buildcraft/core/blueprints/BptBuilderBase.java @@ -9,11 +9,11 @@ package buildcraft.core.blueprints; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; import buildcraft.api.core.IAreaProvider; import buildcraft.core.Box; import buildcraft.core.IBuilderInventory; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; public abstract class BptBuilderBase implements IAreaProvider { diff --git a/common/buildcraft/core/blueprints/BptBuilderBlueprint.java b/common/buildcraft/core/blueprints/BptBuilderBlueprint.java index e1ae8827..9b888f5a 100644 --- a/common/buildcraft/core/blueprints/BptBuilderBlueprint.java +++ b/common/buildcraft/core/blueprints/BptBuilderBlueprint.java @@ -9,21 +9,20 @@ package buildcraft.core.blueprints; +import buildcraft.BuildCraftCore; +import buildcraft.core.IBuilderInventory; +import buildcraft.core.blueprints.BptSlot.Mode; +import buildcraft.core.utils.BlockUtil; import java.util.Comparator; import java.util.LinkedList; import java.util.ListIterator; import java.util.TreeMap; import java.util.TreeSet; - import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.world.EnumGameType; import net.minecraft.world.World; -import buildcraft.BuildCraftCore; -import buildcraft.core.IBuilderInventory; -import buildcraft.core.blueprints.BptSlot.Mode; -import buildcraft.core.utils.BlockUtil; public class BptBuilderBlueprint extends BptBuilderBase { diff --git a/common/buildcraft/core/blueprints/BptBuilderTemplate.java b/common/buildcraft/core/blueprints/BptBuilderTemplate.java index 2f4d76f3..c1ba8cde 100644 --- a/common/buildcraft/core/blueprints/BptBuilderTemplate.java +++ b/common/buildcraft/core/blueprints/BptBuilderTemplate.java @@ -9,12 +9,11 @@ package buildcraft.core.blueprints; -import java.util.LinkedList; - -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; import buildcraft.core.IBuilderInventory; import buildcraft.core.blueprints.BptSlot.Mode; +import java.util.LinkedList; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; public class BptBuilderTemplate extends BptBuilderBase { diff --git a/common/buildcraft/core/blueprints/BptContext.java b/common/buildcraft/core/blueprints/BptContext.java index 45bdd3c6..ff74dfdd 100644 --- a/common/buildcraft/core/blueprints/BptContext.java +++ b/common/buildcraft/core/blueprints/BptContext.java @@ -9,12 +9,12 @@ package buildcraft.core.blueprints; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; import buildcraft.api.blueprints.IBptContext; import buildcraft.api.core.IBox; import buildcraft.api.core.Position; import buildcraft.core.Box; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; public class BptContext implements IBptContext { diff --git a/common/buildcraft/core/blueprints/BptItem.java b/common/buildcraft/core/blueprints/BptItem.java index f6fbf916..59329dc9 100644 --- a/common/buildcraft/core/blueprints/BptItem.java +++ b/common/buildcraft/core/blueprints/BptItem.java @@ -9,11 +9,10 @@ package buildcraft.core.blueprints; -import java.util.LinkedList; - -import net.minecraft.item.ItemStack; import buildcraft.api.blueprints.BptSlotInfo; import buildcraft.api.blueprints.IBptContext; +import java.util.LinkedList; +import net.minecraft.item.ItemStack; public class BptItem { diff --git a/common/buildcraft/core/blueprints/BptPlayerIndex.java b/common/buildcraft/core/blueprints/BptPlayerIndex.java index 3eccf675..dd38205c 100644 --- a/common/buildcraft/core/blueprints/BptPlayerIndex.java +++ b/common/buildcraft/core/blueprints/BptPlayerIndex.java @@ -1,5 +1,6 @@ package buildcraft.core.blueprints; +import buildcraft.core.proxy.CoreProxy; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; @@ -10,8 +11,6 @@ import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.TreeMap; -import buildcraft.core.proxy.CoreProxy; - public class BptPlayerIndex { private TreeMap bluePrintsFile = new TreeMap(); diff --git a/common/buildcraft/core/blueprints/BptRootIndex.java b/common/buildcraft/core/blueprints/BptRootIndex.java index dd30d145..275562ec 100644 --- a/common/buildcraft/core/blueprints/BptRootIndex.java +++ b/common/buildcraft/core/blueprints/BptRootIndex.java @@ -9,6 +9,7 @@ package buildcraft.core.blueprints; +import buildcraft.core.proxy.CoreProxy; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; @@ -19,8 +20,6 @@ import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.TreeMap; -import buildcraft.core.proxy.CoreProxy; - public class BptRootIndex { private TreeMap bluePrintsFile = new TreeMap(); diff --git a/common/buildcraft/core/blueprints/BptSlot.java b/common/buildcraft/core/blueprints/BptSlot.java index b402148a..f34f1a8a 100644 --- a/common/buildcraft/core/blueprints/BptSlot.java +++ b/common/buildcraft/core/blueprints/BptSlot.java @@ -1,12 +1,11 @@ package buildcraft.core.blueprints; -import java.util.LinkedList; - -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import buildcraft.api.blueprints.BlueprintManager; import buildcraft.api.blueprints.BptSlotInfo; import buildcraft.api.blueprints.IBptContext; +import java.util.LinkedList; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; public class BptSlot extends BptSlotInfo { diff --git a/common/buildcraft/core/gui/GuiAdvancedInterface.java b/common/buildcraft/core/gui/GuiAdvancedInterface.java index 5f69c49a..52909de0 100644 --- a/common/buildcraft/core/gui/GuiAdvancedInterface.java +++ b/common/buildcraft/core/gui/GuiAdvancedInterface.java @@ -2,10 +2,10 @@ package buildcraft.core.gui; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.util.Icon; - import org.lwjgl.opengl.GL11; public abstract class GuiAdvancedInterface extends GuiBuildCraft { @@ -45,7 +45,7 @@ public abstract class GuiAdvancedInterface extends GuiBuildCraft { if (getItemStack() != null) { drawStack(getItemStack()); } else if (getTexture() != null) { - mc.renderEngine.bindTexture("/gui/items.png"); + mc.renderEngine.func_110577_a(TextureMap.field_110576_c); //System.out.printf("Drawing advanced sprite %s (%d,%d) at %d %d\n", getTexture().getIconName(), getTexture().getOriginX(),getTexture().getOriginY(),cornerX + x, cornerY + y); drawTexturedModelRectFromIcon(cornerX + x, cornerY + y, getTexture(), 16, 16); } diff --git a/common/buildcraft/core/gui/GuiBuildCraft.java b/common/buildcraft/core/gui/GuiBuildCraft.java index 8c47fbff..86baf703 100644 --- a/common/buildcraft/core/gui/GuiBuildCraft.java +++ b/common/buildcraft/core/gui/GuiBuildCraft.java @@ -1,26 +1,25 @@ package buildcraft.core.gui; -import java.util.ArrayList; - -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Icon; - -import org.lwjgl.opengl.GL11; - import buildcraft.core.DefaultProps; import buildcraft.core.gui.buttons.GuiBetterButton; import buildcraft.core.gui.slots.SlotBase; import buildcraft.core.gui.tooltips.ToolTip; import buildcraft.core.gui.tooltips.ToolTipLine; import buildcraft.core.utils.SessionVars; +import java.util.ArrayList; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Icon; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.opengl.GL11; public abstract class GuiBuildCraft extends GuiContainer { + public static final ResourceLocation LEDGER_TEXTURE = new ResourceLocation("buildcraft", DefaultProps.TEXTURE_PATH_GUI + "/ledger.png"); // / LEDGERS protected LedgerManager ledgerManager = new LedgerManager(this); @@ -210,7 +209,7 @@ public abstract class GuiBuildCraft extends GuiContainer { GL11.glColor4f(colorR, colorG, colorB, 1.0F); - mc.renderEngine.bindTexture(DefaultProps.TEXTURE_PATH_GUI + "/ledger.png"); + mc.renderEngine.func_110577_a(LEDGER_TEXTURE); drawTexturedModalRect(x, y, 0, 256 - currentHeight, 4, currentHeight); drawTexturedModalRect(x + 4, y, 256 - currentWidth + 4, 0, currentWidth - 4, 4); // Add in top left corner again diff --git a/common/buildcraft/core/gui/buttons/GuiBetterButton.java b/common/buildcraft/core/gui/buttons/GuiBetterButton.java index 07f390ae..7b24f659 100644 --- a/common/buildcraft/core/gui/buttons/GuiBetterButton.java +++ b/common/buildcraft/core/gui/buttons/GuiBetterButton.java @@ -1,14 +1,14 @@ package buildcraft.core.gui.buttons; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.GuiButton; - -import org.lwjgl.opengl.GL11; - +import buildcraft.core.DefaultProps; import buildcraft.core.gui.tooltips.ToolTip; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.opengl.GL11; /** * @@ -17,7 +17,7 @@ import cpw.mods.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) public class GuiBetterButton extends GuiButton { - public static final String BUTTON_TEXTURES = "/gfx/buildcraft/gui/buttons.png"; + public static final ResourceLocation BUTTON_TEXTURES = new ResourceLocation("buildcraft", DefaultProps.TEXTURE_PATH_GUI + "/buttons.png"); protected final IButtonTextureSet texture; private ToolTip toolTip; @@ -57,7 +57,7 @@ public class GuiBetterButton extends GuiButton { } protected void bindButtonTextures(Minecraft minecraft) { - minecraft.renderEngine.bindTexture(BUTTON_TEXTURES); + minecraft.renderEngine.func_110577_a(BUTTON_TEXTURES); } @Override diff --git a/common/buildcraft/core/gui/buttons/GuiMultiButton.java b/common/buildcraft/core/gui/buttons/GuiMultiButton.java index 9c0e0352..d5928ff2 100644 --- a/common/buildcraft/core/gui/buttons/GuiMultiButton.java +++ b/common/buildcraft/core/gui/buttons/GuiMultiButton.java @@ -1,12 +1,10 @@ package buildcraft.core.gui.buttons; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; - -import org.lwjgl.opengl.GL11; - import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +import org.lwjgl.opengl.GL11; /** * diff --git a/common/buildcraft/core/gui/slots/SlotValidated.java b/common/buildcraft/core/gui/slots/SlotValidated.java index af58c72c..b3e1a89f 100644 --- a/common/buildcraft/core/gui/slots/SlotValidated.java +++ b/common/buildcraft/core/gui/slots/SlotValidated.java @@ -1,6 +1,6 @@ /* * Copyright (c) CovertJaguar, 2011 http://railcraft.info - * + * * This code is the property of CovertJaguar * and may only be used with explicit written * permission unless otherwise specified on the @@ -24,6 +24,6 @@ public class SlotValidated extends Slot { @Override public boolean isItemValid(ItemStack itemStack) { - return inventory.isStackValidForSlot(this.getSlotIndex(), itemStack); + return inventory.isItemValidForSlot(this.getSlotIndex(), itemStack); } } diff --git a/common/buildcraft/core/gui/tooltips/ToolTip.java b/common/buildcraft/core/gui/tooltips/ToolTip.java index 48c304df..48ab984d 100644 --- a/common/buildcraft/core/gui/tooltips/ToolTip.java +++ b/common/buildcraft/core/gui/tooltips/ToolTip.java @@ -1,10 +1,9 @@ package buildcraft.core.gui.tooltips; +import com.google.common.collect.ForwardingList; import java.util.ArrayList; import java.util.List; -import com.google.common.collect.ForwardingList; - /** * * @author CovertJaguar diff --git a/common/buildcraft/core/inventory/InventoryConcatenator.java b/common/buildcraft/core/inventory/InventoryConcatenator.java new file mode 100644 index 00000000..f2119dd9 --- /dev/null +++ b/common/buildcraft/core/inventory/InventoryConcatenator.java @@ -0,0 +1,103 @@ +/* + * Copyright (c) SpaceToad, 2011-2012 + * 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.inventory; + +import java.util.ArrayList; +import java.util.List; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; + +/** + * Allows you to deal with multiple inventories through a single interface. + * + * @author CovertJaguar + */ +public class InventoryConcatenator implements IInventory { + + private final List slotMap = new ArrayList(); + private final List invMap = new ArrayList(); + + private InventoryConcatenator() { + } + + public static InventoryConcatenator make() { + return new InventoryConcatenator(); + } + + public InventoryConcatenator add(IInventory inv) { + for (int slot = 0; slot < inv.getSizeInventory(); slot++) { + slotMap.add(slot); + invMap.add(inv); + } + return this; + } + + @Override + public int getSizeInventory() { + return slotMap.size(); + } + + @Override + public ItemStack getStackInSlot(int slot) { + return invMap.get(slot).getStackInSlot(slotMap.get(slot)); + } + + @Override + public ItemStack decrStackSize(int slot, int amount) { + return invMap.get(slot).decrStackSize(slotMap.get(slot), amount); + } + + @Override + public ItemStack getStackInSlotOnClosing(int slot) { + return invMap.get(slot).getStackInSlotOnClosing(slotMap.get(slot)); + } + + @Override + public void setInventorySlotContents(int slot, ItemStack stack) { + invMap.get(slot).setInventorySlotContents(slotMap.get(slot), stack); + } + + @Override + public String getInvName() { + return ""; + } + + @Override + public boolean isInvNameLocalized() { + return false; + } + + @Override + public int getInventoryStackLimit() { + return 64; + } + + @Override + public void onInventoryChanged() { + } + + @Override + public boolean isUseableByPlayer(EntityPlayer entityplayer) { + return true; + } + + @Override + public void openChest() { + } + + @Override + public void closeChest() { + } + + @Override + public boolean isItemValidForSlot(int slot, ItemStack stack) { + return invMap.get(slot).isItemValidForSlot(slotMap.get(slot), stack); + } +} diff --git a/common/buildcraft/core/inventory/InventoryCopy.java b/common/buildcraft/core/inventory/InventoryCopy.java index 258dcffc..8acd85b9 100644 --- a/common/buildcraft/core/inventory/InventoryCopy.java +++ b/common/buildcraft/core/inventory/InventoryCopy.java @@ -105,8 +105,8 @@ public class InventoryCopy implements IInventory { } @Override - public boolean isStackValidForSlot(int slot, ItemStack stack) { - return orignal.isStackValidForSlot(slot, stack); + public boolean isItemValidForSlot(int slot, ItemStack stack) { + return orignal.isItemValidForSlot(slot, stack); } public ItemStack[] getItemStacks() { diff --git a/common/buildcraft/core/inventory/InventoryIterator.java b/common/buildcraft/core/inventory/InventoryIterator.java index d0ff6935..124a682e 100644 --- a/common/buildcraft/core/inventory/InventoryIterator.java +++ b/common/buildcraft/core/inventory/InventoryIterator.java @@ -1,6 +1,5 @@ package buildcraft.core.inventory; -import buildcraft.core.inventory.InventoryIterator.IInvSlot; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; diff --git a/common/buildcraft/core/inventory/InventoryIteratorSimple.java b/common/buildcraft/core/inventory/InventoryIteratorSimple.java index 96e0f940..5d8c2428 100644 --- a/common/buildcraft/core/inventory/InventoryIteratorSimple.java +++ b/common/buildcraft/core/inventory/InventoryIteratorSimple.java @@ -58,7 +58,7 @@ class InventoryIteratorSimple implements Iterable { @Override public boolean canPutStackInSlot(ItemStack stack) { - return inv.isStackValidForSlot(slot, stack); + return inv.isItemValidForSlot(slot, stack); } @Override diff --git a/common/buildcraft/core/inventory/InventoryMapper.java b/common/buildcraft/core/inventory/InventoryMapper.java index eaf2f9ee..f6107012 100644 --- a/common/buildcraft/core/inventory/InventoryMapper.java +++ b/common/buildcraft/core/inventory/InventoryMapper.java @@ -107,9 +107,9 @@ public class InventoryMapper implements IInventory { } @Override - public boolean isStackValidForSlot(int slot, ItemStack stack) { + public boolean isItemValidForSlot(int slot, ItemStack stack) { if (checkItems) { - return inv.isStackValidForSlot(start + slot, stack); + return inv.isItemValidForSlot(start + slot, stack); } return true; } diff --git a/common/buildcraft/core/inventory/InventoryWrapper.java b/common/buildcraft/core/inventory/InventoryWrapper.java index 0dc718e5..38b5d479 100644 --- a/common/buildcraft/core/inventory/InventoryWrapper.java +++ b/common/buildcraft/core/inventory/InventoryWrapper.java @@ -1,19 +1,19 @@ package buildcraft.core.inventory; +import buildcraft.core.utils.Utils; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; -import buildcraft.core.utils.Utils; public abstract class InventoryWrapper implements ISidedInventory { IInventory inventory; - + public InventoryWrapper(IInventory inventory) { this.inventory = inventory; } - + /* DIRECT MAPPING */ @Override public int getSizeInventory() { return inventory.getSizeInventory(); } @Override public ItemStack getStackInSlot(int slotIndex) { return inventory.getStackInSlot(slotIndex); } @@ -27,7 +27,7 @@ public abstract class InventoryWrapper implements ISidedInventory { @Override public boolean isUseableByPlayer(EntityPlayer entityplayer) { return inventory.isUseableByPlayer(entityplayer); } @Override public void openChest() { inventory.openChest(); } @Override public void closeChest() { inventory.closeChest(); } - @Override public boolean isStackValidForSlot(int slotIndex, ItemStack itemstack) { return inventory.isStackValidForSlot(slotIndex, itemstack); } + @Override public boolean isItemValidForSlot(int slotIndex, ItemStack itemstack) { return inventory.isItemValidForSlot(slotIndex, itemstack); } /* STATIC HELPER */ public static ISidedInventory getWrappedInventory(Object inventory) { diff --git a/common/buildcraft/core/inventory/InventoryWrapperForge.java b/common/buildcraft/core/inventory/InventoryWrapperForge.java index 5fea0219..91f2ba8c 100644 --- a/common/buildcraft/core/inventory/InventoryWrapperForge.java +++ b/common/buildcraft/core/inventory/InventoryWrapperForge.java @@ -1,8 +1,8 @@ package buildcraft.core.inventory; +import buildcraft.core.utils.Utils; import net.minecraft.item.ItemStack; import net.minecraftforge.common.ForgeDirection; -import buildcraft.core.utils.Utils; public class InventoryWrapperForge extends InventoryWrapper { diff --git a/common/buildcraft/core/inventory/InventoryWrapperSimple.java b/common/buildcraft/core/inventory/InventoryWrapperSimple.java index 24e61f1e..2da6af71 100644 --- a/common/buildcraft/core/inventory/InventoryWrapperSimple.java +++ b/common/buildcraft/core/inventory/InventoryWrapperSimple.java @@ -1,18 +1,18 @@ package buildcraft.core.inventory; +import buildcraft.core.utils.Utils; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; -import buildcraft.core.utils.Utils; public class InventoryWrapperSimple extends InventoryWrapper { private final int[] slots; - + public InventoryWrapperSimple(IInventory inventory) { super(inventory); slots = Utils.createSlotArray(0, inventory.getSizeInventory()); } - + @Override public int[] getAccessibleSlotsFromSide(int var1) { return slots; @@ -20,7 +20,7 @@ public class InventoryWrapperSimple extends InventoryWrapper { @Override public boolean canInsertItem(int slotIndex, ItemStack itemstack, int side) { - return isStackValidForSlot(slotIndex, itemstack); + return isItemValidForSlot(slotIndex, itemstack); } @Override diff --git a/common/buildcraft/core/inventory/SimpleInventory.java b/common/buildcraft/core/inventory/SimpleInventory.java index e88e0a60..244c2869 100644 --- a/common/buildcraft/core/inventory/SimpleInventory.java +++ b/common/buildcraft/core/inventory/SimpleInventory.java @@ -163,7 +163,7 @@ public class SimpleInventory implements IInventory, INBTTagable { } @Override - public boolean isStackValidForSlot(int i, ItemStack itemstack) { + public boolean isItemValidForSlot(int i, ItemStack itemstack) { return true; } } diff --git a/common/buildcraft/core/inventory/Transactor.java b/common/buildcraft/core/inventory/Transactor.java index c4b47fc2..fd2df49e 100644 --- a/common/buildcraft/core/inventory/Transactor.java +++ b/common/buildcraft/core/inventory/Transactor.java @@ -1,11 +1,11 @@ package buildcraft.core.inventory; +import buildcraft.api.inventory.ISpecialInventory; +import buildcraft.core.utils.Utils; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraftforge.common.ForgeDirection; -import buildcraft.api.inventory.ISpecialInventory; -import buildcraft.core.utils.Utils; public abstract class Transactor implements ITransactor { diff --git a/common/buildcraft/core/inventory/TransactorSpecial.java b/common/buildcraft/core/inventory/TransactorSpecial.java index 0db7891c..bd1c7f03 100644 --- a/common/buildcraft/core/inventory/TransactorSpecial.java +++ b/common/buildcraft/core/inventory/TransactorSpecial.java @@ -1,9 +1,9 @@ package buildcraft.core.inventory; -import net.minecraft.item.ItemStack; -import net.minecraftforge.common.ForgeDirection; import buildcraft.api.inventory.ISpecialInventory; import buildcraft.core.inventory.filters.IStackFilter; +import net.minecraft.item.ItemStack; +import net.minecraftforge.common.ForgeDirection; public class TransactorSpecial extends Transactor { diff --git a/common/buildcraft/core/liquids/LiquidUtils.java b/common/buildcraft/core/liquids/FluidUtils.java similarity index 68% rename from common/buildcraft/core/liquids/LiquidUtils.java rename to common/buildcraft/core/liquids/FluidUtils.java index 0b34a9e1..1903ff2c 100644 --- a/common/buildcraft/core/liquids/LiquidUtils.java +++ b/common/buildcraft/core/liquids/FluidUtils.java @@ -4,24 +4,24 @@ import buildcraft.core.utils.Utils; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraftforge.common.ForgeDirection; -import net.minecraftforge.liquids.ITankContainer; -import net.minecraftforge.liquids.LiquidContainerRegistry; -import net.minecraftforge.liquids.LiquidStack; +import net.minecraftforge.fluids.FluidContainerRegistry; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.IFluidHandler; /** * * @author CovertJaguar */ -public class LiquidUtils { +public class FluidUtils { - public static boolean handleRightClick(ITankContainer tank, ForgeDirection side, EntityPlayer player, boolean fill, boolean drain) { + public static boolean handleRightClick(IFluidHandler tank, ForgeDirection side, EntityPlayer player, boolean fill, boolean drain) { if (player == null) { return false; } ItemStack current = player.inventory.getCurrentItem(); if (current != null) { - LiquidStack liquid = LiquidContainerRegistry.getLiquidForFilledItem(current); + FluidStack liquid = FluidContainerRegistry.getFluidForFilledItem(current); if (fill && liquid != null) { int used = tank.fill(side, liquid, true); @@ -35,11 +35,11 @@ public class LiquidUtils { } else if (drain) { - LiquidStack available = tank.drain(side, Integer.MAX_VALUE, false); + FluidStack available = tank.drain(side, Integer.MAX_VALUE, false); if (available != null) { - ItemStack filled = LiquidContainerRegistry.fillLiquidContainer(available, current); + ItemStack filled = FluidContainerRegistry.fillFluidContainer(available, current); - liquid = LiquidContainerRegistry.getLiquidForFilledItem(filled); + liquid = FluidContainerRegistry.getFluidForFilledItem(filled); if (liquid != null) { if (current.stackSize > 1) { diff --git a/common/buildcraft/core/network/BuildCraftPacket.java b/common/buildcraft/core/network/BuildCraftPacket.java index 8624833b..e1712054 100644 --- a/common/buildcraft/core/network/BuildCraftPacket.java +++ b/common/buildcraft/core/network/BuildCraftPacket.java @@ -1,13 +1,12 @@ package buildcraft.core.network; +import buildcraft.core.DefaultProps; import java.io.ByteArrayOutputStream; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; - import net.minecraft.network.packet.Packet; import net.minecraft.network.packet.Packet250CustomPayload; -import buildcraft.core.DefaultProps; public abstract class BuildCraftPacket { diff --git a/common/buildcraft/core/network/ClassMapping.java b/common/buildcraft/core/network/ClassMapping.java index a18030b7..5e1899ed 100644 --- a/common/buildcraft/core/network/ClassMapping.java +++ b/common/buildcraft/core/network/ClassMapping.java @@ -9,14 +9,13 @@ package buildcraft.core.network; +import buildcraft.BuildCraftCore; +import buildcraft.core.ByteBuffer; import java.lang.reflect.Field; import java.lang.reflect.Type; import java.util.LinkedList; import java.util.TreeMap; -import buildcraft.BuildCraftCore; -import buildcraft.core.ByteBuffer; - public class ClassMapping { public static class Reporter { diff --git a/common/buildcraft/core/network/PacketHandler.java b/common/buildcraft/core/network/PacketHandler.java index a9d5a21d..8e291c9e 100644 --- a/common/buildcraft/core/network/PacketHandler.java +++ b/common/buildcraft/core/network/PacketHandler.java @@ -1,15 +1,14 @@ package buildcraft.core.network; +import cpw.mods.fml.common.network.IPacketHandler; +import cpw.mods.fml.common.network.Player; import java.io.ByteArrayInputStream; import java.io.DataInputStream; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.network.INetworkManager; import net.minecraft.network.packet.Packet250CustomPayload; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; -import cpw.mods.fml.common.network.IPacketHandler; -import cpw.mods.fml.common.network.Player; public class PacketHandler implements IPacketHandler { diff --git a/common/buildcraft/core/network/PacketNBT.java b/common/buildcraft/core/network/PacketNBT.java index 4fb6f9a2..0cf5a19a 100644 --- a/common/buildcraft/core/network/PacketNBT.java +++ b/common/buildcraft/core/network/PacketNBT.java @@ -3,7 +3,6 @@ package buildcraft.core.network; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; - import net.minecraft.nbt.CompressedStreamTools; import net.minecraft.nbt.NBTTagCompound; diff --git a/common/buildcraft/core/network/PacketSlotChange.java b/common/buildcraft/core/network/PacketSlotChange.java index 4fbf36a9..43aa772b 100644 --- a/common/buildcraft/core/network/PacketSlotChange.java +++ b/common/buildcraft/core/network/PacketSlotChange.java @@ -3,7 +3,6 @@ package buildcraft.core.network; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; - import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompressedStreamTools; diff --git a/common/buildcraft/core/network/TilePacketWrapper.java b/common/buildcraft/core/network/TilePacketWrapper.java index 4a51421b..5e8349b2 100644 --- a/common/buildcraft/core/network/TilePacketWrapper.java +++ b/common/buildcraft/core/network/TilePacketWrapper.java @@ -9,9 +9,9 @@ package buildcraft.core.network; -import net.minecraft.tileentity.TileEntity; import buildcraft.core.ByteBuffer; import buildcraft.core.network.ClassMapping.Indexes; +import net.minecraft.tileentity.TileEntity; public class TilePacketWrapper { diff --git a/common/buildcraft/core/proxy/CoreProxy.java b/common/buildcraft/core/proxy/CoreProxy.java index b30c2546..ffde5076 100644 --- a/common/buildcraft/core/proxy/CoreProxy.java +++ b/common/buildcraft/core/proxy/CoreProxy.java @@ -7,10 +7,16 @@ */ package buildcraft.core.proxy; +import buildcraft.api.core.LaserKind; +import buildcraft.core.EntityBlock; +import buildcraft.core.ItemBlockBuildCraft; +import buildcraft.core.network.BuildCraftPacket; +import cpw.mods.fml.common.Loader; +import cpw.mods.fml.common.SidedProxy; +import cpw.mods.fml.common.registry.GameRegistry; import java.io.File; import java.util.List; import java.util.Random; - import net.minecraft.block.Block; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; @@ -24,16 +30,10 @@ import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.CraftingManager; import net.minecraft.network.packet.Packet; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatMessageComponent; import net.minecraft.util.ChunkCoordinates; import net.minecraft.world.World; import net.minecraftforge.oredict.ShapedOreRecipe; -import buildcraft.api.core.LaserKind; -import buildcraft.core.EntityBlock; -import buildcraft.core.ItemBlockBuildCraft; -import buildcraft.core.network.BuildCraftPacket; -import cpw.mods.fml.common.Loader; -import cpw.mods.fml.common.SidedProxy; -import cpw.mods.fml.common.registry.GameRegistry; public class CoreProxy { @@ -101,7 +101,7 @@ public class CoreProxy { public void registerBlock(Block block) { registerBlock(block, ItemBlockBuildCraft.class); } - + public void registerBlock(Block block, Class item) { GameRegistry.registerBlock(block, item, block.getUnlocalizedName().replace("tile.", "")); } @@ -174,9 +174,9 @@ public class CoreProxy { } private EntityPlayer createNewPlayer(World world) { - EntityPlayer player = new EntityPlayer(world) { + EntityPlayer player = new EntityPlayer(world, "[BuildCraft]") { @Override - public void sendChatToPlayer(String var1) { + public void sendChatToPlayer(ChatMessageComponent var1) { } @Override @@ -189,14 +189,13 @@ public class CoreProxy { return null; } }; - player.username = "[BuildCraft]"; return player; } private EntityPlayer createNewPlayer(World world, int x, int y, int z) { - EntityPlayer player = new EntityPlayer(world) { + EntityPlayer player = new EntityPlayer(world, "[BuildCraft]") { @Override - public void sendChatToPlayer(String var1) { + public void sendChatToPlayer(ChatMessageComponent var1) { } @Override @@ -209,7 +208,6 @@ public class CoreProxy { return null; } }; - player.username = "[BuildCraft]"; player.posX = x; player.posY = y; player.posZ = z; diff --git a/common/buildcraft/core/proxy/CoreProxyClient.java b/common/buildcraft/core/proxy/CoreProxyClient.java index 0e23290a..11f333c7 100644 --- a/common/buildcraft/core/proxy/CoreProxyClient.java +++ b/common/buildcraft/core/proxy/CoreProxyClient.java @@ -9,23 +9,6 @@ package buildcraft.core.proxy; -import java.io.File; -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.client.Minecraft; -import net.minecraft.client.multiplayer.WorldClient; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.Entity; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.network.packet.Packet; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ChunkCoordinates; -import net.minecraft.util.StringTranslate; -import net.minecraft.world.World; import buildcraft.BuildCraftCore; import buildcraft.api.core.LaserKind; import buildcraft.core.EntityBlock; @@ -43,14 +26,33 @@ import buildcraft.transport.render.TileEntityPickupFX; import cpw.mods.fml.client.FMLClientHandler; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.registry.LanguageRegistry; +import java.io.File; +import java.util.List; +import net.minecraft.block.Block; +import net.minecraft.client.Minecraft; +import net.minecraft.client.multiplayer.WorldClient; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.Entity; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.network.packet.Packet; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatMessageComponent; +import net.minecraft.util.ChunkCoordinates; +import net.minecraft.util.StringTranslate; +import net.minecraft.world.World; public class CoreProxyClient extends CoreProxy { /* INSTANCES */ + @Override public Object getClient() { return FMLClientHandler.instance().getClient(); } + @Override public World getClientWorld() { return FMLClientHandler.instance().getClient().theWorld; } @@ -67,6 +69,7 @@ public class CoreProxyClient extends CoreProxy { /* WRAPPER */ @SuppressWarnings("rawtypes") + @Override public void feedSubBlocks(int id, CreativeTabs tab, List itemList) { if (Block.blocksList[id] == null) return; @@ -119,7 +122,7 @@ public class CoreProxyClient extends CoreProxy { @Override public void initializeEntityRendering() { - RenderingRegistry.registerEntityRenderingHandler(EntityBlock.class, new RenderEntityBlock()); + RenderingRegistry.registerEntityRenderingHandler(EntityBlock.class, RenderEntityBlock.INSTANCE); RenderingRegistry.registerEntityRenderingHandler(EntityPowerLaser.class, new RenderLaser()); RenderingRegistry.registerEntityRenderingHandler(EntityEnergyLaser.class, new RenderEnergyLaser()); RenderingRegistry.registerEntityRenderingHandler(EntityRobot.class, new RenderRobot()); @@ -132,6 +135,7 @@ public class CoreProxyClient extends CoreProxy { } /* FILE SYSTEM */ + @Override public File getBuildCraftBase() { return Minecraft.getMinecraftDir(); } @@ -143,9 +147,9 @@ public class CoreProxyClient extends CoreProxy { } private EntityPlayer createNewPlayer(World world) { - EntityPlayer player = new EntityPlayer(world) { + EntityPlayer player = new EntityPlayer(world, "[BuildCraft]") { @Override - public void sendChatToPlayer(String var1) { + public void sendChatToPlayer(ChatMessageComponent var1) { } @Override @@ -158,7 +162,6 @@ public class CoreProxyClient extends CoreProxy { return null; } }; - player.username = "[BuildCraft]"; return player; } @@ -170,7 +173,7 @@ public class CoreProxyClient extends CoreProxy { return CoreProxy.buildCraftPlayer; } - + @Override public EntityBlock newEntityBlock(World world, double i, double j, double k, double iSize, double jSize, double kSize, LaserKind laserKind) { EntityBlock eb = super.newEntityBlock(world, i, j, k, iSize, jSize, kSize, laserKind); diff --git a/common/buildcraft/core/render/FluidRenderer.java b/common/buildcraft/core/render/FluidRenderer.java new file mode 100644 index 00000000..8ab5f0c3 --- /dev/null +++ b/common/buildcraft/core/render/FluidRenderer.java @@ -0,0 +1,125 @@ +/** + * Copyright (c) SpaceToad, 2011 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.render; + +import buildcraft.core.render.RenderEntityBlock.BlockInterface; +import java.util.HashMap; +import java.util.Map; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.GLAllocation; +import net.minecraft.util.Icon; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; +import org.lwjgl.opengl.GL11; + +/** + * + * @author CovertJaguar + */ +public class FluidRenderer { + + private static final ResourceLocation BLOCK_TEXTURE = new ResourceLocation("/terrain.png"); + private static Map flowingRenderCache = new HashMap(); + private static Map stillRenderCache = new HashMap(); + public static final int DISPLAY_STAGES = 100; + private static final BlockInterface liquidBlock = new BlockInterface(); + + public static class MissingFluidTextureException extends RuntimeException { + + private final FluidStack fluidStack; + + public MissingFluidTextureException(FluidStack fluidStack) { + super(); + this.fluidStack = fluidStack; + } + + @Override + public String getMessage() { + String fluidName = FluidRegistry.getFluidName(fluidStack); + return String.format("Fluid %s has no icon. Please contact the author of the mod the fluid came from.", fluidName); + } + } + + public static Icon getFluidTexture(FluidStack fluidStack, boolean flowing) { + if (fluidStack == null) { + return null; + } + Fluid fluid = fluidStack.getFluid(); + Icon icon = flowing ? fluid.getFlowingIcon() : fluid.getStillIcon(); + if (icon == null) { + throw new MissingFluidTextureException(fluidStack); + } + return icon; + } + + public static ResourceLocation getFluidSheet(FluidStack liquid) { + return BLOCK_TEXTURE; + } + + public static int[] getFluidDisplayLists(FluidStack fluidStack, World world, boolean flowing) { + if (fluidStack == null) { + return null; + } + Fluid fluid = fluidStack.getFluid(); + if (fluid == null) { + return null; + } + Map cache = flowing ? flowingRenderCache : stillRenderCache; + int[] diplayLists = cache.get(fluid); + if (diplayLists != null) { + return diplayLists; + } + + diplayLists = new int[DISPLAY_STAGES]; + + if (fluid.getBlockID() > 0) { + liquidBlock.baseBlock = Block.blocksList[fluid.getBlockID()]; + liquidBlock.texture = getFluidTexture(fluidStack, flowing); + } else { + liquidBlock.baseBlock = Block.waterStill; + liquidBlock.texture = getFluidTexture(fluidStack, flowing); + } + + cache.put(fluid, diplayLists); + + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_BLEND); + GL11.glDisable(GL11.GL_CULL_FACE); + int color = fluid.getColor(fluidStack); + float c1 = (float) (color >> 16 & 255) / 255.0F; + float c2 = (float) (color >> 8 & 255) / 255.0F; + float c3 = (float) (color & 255) / 255.0F; + GL11.glColor4f(c1, c2, c3, 1); + for (int s = 0; s < DISPLAY_STAGES; ++s) { + diplayLists[s] = GLAllocation.generateDisplayLists(1); + GL11.glNewList(diplayLists[s], 4864 /*GL_COMPILE*/); + + liquidBlock.minX = 0.01f; + liquidBlock.minY = 0; + liquidBlock.minZ = 0.01f; + + liquidBlock.maxX = 0.99f; + liquidBlock.maxY = (float) s / (float) DISPLAY_STAGES; + liquidBlock.maxZ = 0.99f; + + RenderEntityBlock.INSTANCE.renderBlock(liquidBlock, world, 0, 0, 0, false, true); + + GL11.glEndList(); + } + + GL11.glColor4f(1, 1, 1, 1); + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glEnable(GL11.GL_BLEND); + GL11.glEnable(GL11.GL_LIGHTING); + + return diplayLists; + } +} diff --git a/common/buildcraft/core/render/LiquidRenderer.java b/common/buildcraft/core/render/LiquidRenderer.java deleted file mode 100644 index 03b25cd1..00000000 --- a/common/buildcraft/core/render/LiquidRenderer.java +++ /dev/null @@ -1,164 +0,0 @@ -/** - * Copyright (c) SpaceToad, 2011 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.render; - -import java.util.HashMap; -import java.util.Map; - -import net.minecraft.block.Block; -import net.minecraft.client.renderer.GLAllocation; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.Icon; -import net.minecraft.world.World; -import net.minecraftforge.liquids.LiquidDictionary; -import net.minecraftforge.liquids.LiquidStack; - -import org.lwjgl.opengl.GL11; - -import buildcraft.core.render.RenderEntityBlock.BlockInterface; - -/** - * - * @author CovertJaguar - */ -public class LiquidRenderer { - - private static Map flowingRenderCache = new HashMap(); - private static Map stillRenderCache = new HashMap(); - public static final int DISPLAY_STAGES = 100; - private static final BlockInterface liquidBlock = new BlockInterface(); - - public static class LiquidTextureException extends RuntimeException { - - private final LiquidStack liquid; - - public LiquidTextureException(LiquidStack liquid) { - super(); - this.liquid = liquid; - } - - @Override - public String getMessage() { - String liquidName = LiquidDictionary.findLiquidName(liquid); - if (liquidName == null) { - liquidName = String.format("ID: %d Meta: %d", liquid.itemID, liquid.itemMeta); - } - return String.format("Liquid %s has no icon. Please contact the author of the mod the liquid came from.", liquidName); - } - } - - public static class LiquidCanonException extends RuntimeException { - - private final LiquidStack liquid; - - public LiquidCanonException(LiquidStack liquid) { - super(); - this.liquid = liquid; - } - - @Override - public String getMessage() { - String liquidName = LiquidDictionary.findLiquidName(liquid); - if (liquidName == null) { - liquidName = String.format("ID: %d Meta: %d", liquid.itemID, liquid.itemMeta); - } - return String.format("Liquid %s is not registered with the Liquid Dictionary. Please contact the author of the mod the liquid came from.", liquidName); - } - } - - public static Icon getLiquidTexture(LiquidStack liquid) { - if (liquid == null || liquid.itemID <= 0) { - return null; - } - LiquidStack canon = liquid.canonical(); - if (canon == null) { - throw new LiquidCanonException(liquid); - } - Icon icon = canon.getRenderingIcon(); - if (icon == null) { - throw new LiquidTextureException(liquid); - } - return icon; - } - - public static String getLiquidSheet(LiquidStack liquid) { - if (liquid == null || liquid.itemID <= 0) { - return "/terrain.png"; - } - LiquidStack canon = liquid.canonical(); - if (canon == null) { - throw new LiquidCanonException(liquid); - } - return canon.getTextureSheet(); - } - - public static int[] getLiquidDisplayLists(LiquidStack liquid, World world, boolean flowing) { - if (liquid == null) { - return null; - } - liquid = liquid.canonical(); - if(liquid == null){ - throw new LiquidCanonException(liquid); - } - Map cache = flowing ? flowingRenderCache : stillRenderCache; - int[] diplayLists = cache.get(liquid); - if (diplayLists != null) { - return diplayLists; - } - - diplayLists = new int[DISPLAY_STAGES]; - - if (liquid.itemID < Block.blocksList.length && Block.blocksList[liquid.itemID] != null) { - liquidBlock.baseBlock = Block.blocksList[liquid.itemID]; - if (!flowing) { - liquidBlock.texture = getLiquidTexture(liquid); - } - } else if (Item.itemsList[liquid.itemID] != null) { - liquidBlock.baseBlock = Block.waterStill; - liquidBlock.texture = getLiquidTexture(liquid); - } else { - return null; - } - - cache.put(liquid, diplayLists); - - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_BLEND); - GL11.glDisable(GL11.GL_CULL_FACE); - ItemStack stack = liquid.asItemStack(); - int color = stack.getItem().getColorFromItemStack(stack, 0); - float c1 = (float) (color >> 16 & 255) / 255.0F; - float c2 = (float) (color >> 8 & 255) / 255.0F; - float c3 = (float) (color & 255) / 255.0F; - GL11.glColor4f(c1, c2, c3, 1); - for (int s = 0; s < DISPLAY_STAGES; ++s) { - diplayLists[s] = GLAllocation.generateDisplayLists(1); - GL11.glNewList(diplayLists[s], 4864 /*GL_COMPILE*/); - - liquidBlock.minX = 0.01f; - liquidBlock.minY = 0; - liquidBlock.minZ = 0.01f; - - liquidBlock.maxX = 0.99f; - liquidBlock.maxY = (float) s / (float) DISPLAY_STAGES; - liquidBlock.maxZ = 0.99f; - - RenderEntityBlock.renderBlock(liquidBlock, world, 0, 0, 0, false, true); - - GL11.glEndList(); - } - - GL11.glColor4f(1, 1, 1, 1); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_BLEND); - GL11.glEnable(GL11.GL_LIGHTING); - - return diplayLists; - } -} diff --git a/common/buildcraft/core/render/RenderEnergyLaser.java b/common/buildcraft/core/render/RenderEnergyLaser.java index 1799ed25..7c3027dc 100644 --- a/common/buildcraft/core/render/RenderEnergyLaser.java +++ b/common/buildcraft/core/render/RenderEnergyLaser.java @@ -9,9 +9,9 @@ package buildcraft.core.render; -import net.minecraft.client.model.ModelRenderer; import buildcraft.core.EntityEnergyLaser; import buildcraft.core.EntityLaser; +import net.minecraft.client.model.ModelRenderer; public class RenderEnergyLaser extends RenderLaser { diff --git a/common/buildcraft/core/render/RenderEntityBlock.java b/common/buildcraft/core/render/RenderEntityBlock.java index 2ccc4f4a..6c967381 100644 --- a/common/buildcraft/core/render/RenderEntityBlock.java +++ b/common/buildcraft/core/render/RenderEntityBlock.java @@ -1,32 +1,33 @@ /** - * Copyright (c) SpaceToad, 2011 - * http://www.mod-buildcraft.com + * Copyright (c) SpaceToad, 2011 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 + * 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.render; +import buildcraft.core.EntityBlock; import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.entity.Render; +import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.entity.Entity; import net.minecraft.util.Icon; +import net.minecraft.util.ResourceLocation; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; - import org.lwjgl.opengl.GL11; -import buildcraft.core.EntityBlock; - public class RenderEntityBlock extends Render { + + public static RenderEntityBlock INSTANCE = new RenderEntityBlock(); + + @Override + protected ResourceLocation func_110775_a(Entity entity) { + throw new UnsupportedOperationException("Not supported yet."); + } - private static RenderBlocks renderBlocks = new RenderBlocks(); - static { - } public static class BlockInterface { public double minX; @@ -35,9 +36,7 @@ public class RenderEntityBlock extends Render { public double maxX; public double maxY; public double maxZ; - public Block baseBlock = Block.sand; - public Icon texture = null; public Icon getBlockTextureFromSide(int i) { @@ -52,7 +51,7 @@ public class RenderEntityBlock extends Render { } } - public RenderEntityBlock() { + private RenderEntityBlock() { } @Override @@ -68,7 +67,7 @@ public class RenderEntityBlock extends Render { World world = entity.worldObj; BlockInterface util = new BlockInterface(); util.texture = entity.texture; - loadTexture("/terrain.png"); + func_110776_a(TextureMap.field_110575_b); for (int iBase = 0; iBase < entity.iSize; ++iBase) { for (int jBase = 0; jBase < entity.jSize; ++jBase) { @@ -109,19 +108,19 @@ public class RenderEntityBlock extends Render { } } - public static void renderBlock(BlockInterface block, IBlockAccess blockAccess, int i, int j, int k, boolean doLight, boolean doTessellating) { + public void renderBlock(BlockInterface block, IBlockAccess blockAccess, int i, int j, int k, boolean doLight, boolean doTessellating) { float f = 0.5F; float f1 = 1.0F; float f2 = 0.8F; float f3 = 0.6F; - renderBlocks.renderMaxX = block.maxX; - renderBlocks.renderMinX = block.minX; - renderBlocks.renderMaxY = block.maxY; - renderBlocks.renderMinY = block.minY; - renderBlocks.renderMaxZ = block.maxZ; - renderBlocks.renderMinZ = block.minZ; - renderBlocks.enableAO = false; + renderBlocks.renderMaxX = block.maxX; + renderBlocks.renderMinX = block.minX; + renderBlocks.renderMaxY = block.maxY; + renderBlocks.renderMinY = block.minY; + renderBlocks.renderMaxZ = block.maxZ; + renderBlocks.renderMinZ = block.minZ; + renderBlocks.enableAO = false; Tessellator tessellator = Tessellator.instance; diff --git a/common/buildcraft/core/render/RenderLaser.java b/common/buildcraft/core/render/RenderLaser.java index 82052715..b74ae911 100644 --- a/common/buildcraft/core/render/RenderLaser.java +++ b/common/buildcraft/core/render/RenderLaser.java @@ -1,15 +1,14 @@ package buildcraft.core.render; +import buildcraft.api.core.Position; +import buildcraft.core.EntityLaser; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelRenderer; import net.minecraft.client.renderer.entity.Render; import net.minecraft.entity.Entity; - +import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import buildcraft.api.core.Position; -import buildcraft.core.EntityLaser; - public class RenderLaser extends Render { protected ModelBase model = new ModelBase() { @@ -38,7 +37,8 @@ public class RenderLaser extends Render { return; GL11.glPushMatrix(); - GL11.glDisable(2896 /* GL_LIGHTING */); + GL11.glPushAttrib(GL11.GL_ENABLE_BIT); + GL11.glDisable(GL11.GL_LIGHTING); Position offset = laser.renderOffset(); GL11.glTranslated(x + offset.x, y + offset.y, z + offset.z); @@ -46,7 +46,7 @@ public class RenderLaser extends Render { GL11.glRotatef((float) laser.angleZ, 0, 1, 0); GL11.glRotatef((float) laser.angleY, 0, 0, 1); - renderManager.renderEngine.bindTexture(laser.getTexture()); + renderManager.renderEngine.func_110577_a(laser.getTexture()); float factor = (float) (1.0 / 16.0); @@ -65,16 +65,20 @@ public class RenderLaser extends Render { iterate(laser); + GL11.glPopAttrib(); GL11.glPopMatrix(); } protected void iterate(EntityLaser laser) { - } protected ModelRenderer getBox(EntityLaser laser) { return box; } + @Override + protected ResourceLocation func_110775_a(Entity entity) { + return ((EntityLaser) entity).getTexture(); + } } diff --git a/common/buildcraft/core/render/RenderRobot.java b/common/buildcraft/core/render/RenderRobot.java index f2ea96c7..1aae2e11 100644 --- a/common/buildcraft/core/render/RenderRobot.java +++ b/common/buildcraft/core/render/RenderRobot.java @@ -1,17 +1,17 @@ package buildcraft.core.render; +import buildcraft.core.DefaultProps; +import buildcraft.core.EntityRobot; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelRenderer; import net.minecraft.client.renderer.entity.Render; import net.minecraft.entity.Entity; - +import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import buildcraft.core.DefaultProps; -import buildcraft.core.EntityRobot; - public class RenderRobot extends Render { + public static final ResourceLocation TEXTURE = new ResourceLocation("buildcraft", DefaultProps.TEXTURE_PATH_ENTITIES + "/robot.png"); protected ModelBase model = new ModelBase() { }; private ModelRenderer box; @@ -35,7 +35,7 @@ public class RenderRobot extends Render { GL11.glDisable(2896 /* GL_LIGHTING */); GL11.glTranslated(x, y, z); - renderManager.renderEngine.bindTexture(DefaultProps.TEXTURE_PATH_ENTITIES + "/robot.png"); + renderManager.renderEngine.func_110577_a(TEXTURE); float factor = (float) (1.0 / 16.0); @@ -46,4 +46,8 @@ public class RenderRobot extends Render { } + @Override + protected ResourceLocation func_110775_a(Entity entity) { + return TEXTURE; + } } diff --git a/common/buildcraft/core/render/RenderVoid.java b/common/buildcraft/core/render/RenderVoid.java index f55d62db..155e23b7 100644 --- a/common/buildcraft/core/render/RenderVoid.java +++ b/common/buildcraft/core/render/RenderVoid.java @@ -11,6 +11,7 @@ package buildcraft.core.render; import net.minecraft.client.renderer.entity.Render; import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; public class RenderVoid extends Render { @@ -20,4 +21,9 @@ public class RenderVoid extends Render { } + @Override + protected ResourceLocation func_110775_a(Entity entity) { + throw new UnsupportedOperationException("Not supported yet."); + } + } diff --git a/common/buildcraft/core/render/RenderingEntityBlocks.java b/common/buildcraft/core/render/RenderingEntityBlocks.java index 27dd87dd..14406b37 100644 --- a/common/buildcraft/core/render/RenderingEntityBlocks.java +++ b/common/buildcraft/core/render/RenderingEntityBlocks.java @@ -1,21 +1,22 @@ package buildcraft.core.render; -import java.util.HashMap; - -import net.minecraft.block.Block; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.world.IBlockAccess; - -import org.lwjgl.opengl.GL11; - import buildcraft.BuildCraftCore; import buildcraft.core.IInventoryRenderer; import buildcraft.core.utils.Utils; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import java.util.HashMap; +import net.minecraft.block.Block; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.IBlockAccess; +import org.lwjgl.opengl.GL11; public class RenderingEntityBlocks implements ISimpleBlockRenderingHandler { + + private static final ResourceLocation BLOCK_TEXTURE = new ResourceLocation("/terrain.png"); + public static class EntityRenderIndex { public EntityRenderIndex(Block block, int damage) { @@ -37,11 +38,9 @@ public class RenderingEntityBlocks implements ISimpleBlockRenderingHandler { return i.block == block && i.damage == damage; } - Block block; int damage; } - public static HashMap blockByEntityRenders = new HashMap(); @Override @@ -95,9 +94,8 @@ public class RenderingEntityBlocks implements ISimpleBlockRenderingHandler { if (block.getRenderType() == BuildCraftCore.blockByEntityModel) { // renderblocks.renderStandardBlock(block, i, j, k); - } else if (block.getRenderType() == BuildCraftCore.legacyPipeModel) { - Minecraft.getMinecraft().renderEngine.bindTexture("/terrain.png"); + Minecraft.getMinecraft().renderEngine.func_110577_a(BLOCK_TEXTURE); legacyPipeRender(renderer, world, x, y, z, block, modelId); } @@ -162,5 +160,4 @@ public class RenderingEntityBlocks implements ISimpleBlockRenderingHandler { block.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); } - } diff --git a/common/buildcraft/core/render/RenderingMarkers.java b/common/buildcraft/core/render/RenderingMarkers.java index 70135266..5b92c7ba 100644 --- a/common/buildcraft/core/render/RenderingMarkers.java +++ b/common/buildcraft/core/render/RenderingMarkers.java @@ -1,12 +1,12 @@ package buildcraft.core.render; +import buildcraft.BuildCraftCore; +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.Tessellator; import net.minecraft.util.Icon; import net.minecraft.world.IBlockAccess; -import buildcraft.BuildCraftCore; -import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; public class RenderingMarkers implements ISimpleBlockRenderingHandler { diff --git a/common/buildcraft/core/render/RenderingOil.java b/common/buildcraft/core/render/RenderingOil.java index 296b70b5..0d771be7 100644 --- a/common/buildcraft/core/render/RenderingOil.java +++ b/common/buildcraft/core/render/RenderingOil.java @@ -1,10 +1,10 @@ package buildcraft.core.render; +import buildcraft.BuildCraftCore; +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.world.IBlockAccess; -import buildcraft.BuildCraftCore; -import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; public class RenderingOil implements ISimpleBlockRenderingHandler { diff --git a/common/buildcraft/core/triggers/ActionTriggerIconProvider.java b/common/buildcraft/core/triggers/ActionTriggerIconProvider.java index d2f7adac..6426ed51 100644 --- a/common/buildcraft/core/triggers/ActionTriggerIconProvider.java +++ b/common/buildcraft/core/triggers/ActionTriggerIconProvider.java @@ -1,10 +1,10 @@ package buildcraft.core.triggers; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.util.Icon; import buildcraft.api.core.IIconProvider; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.util.Icon; public class ActionTriggerIconProvider implements IIconProvider { @@ -20,15 +20,15 @@ public class ActionTriggerIconProvider implements IIconProvider { 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_FluidContainer_Empty = 11; + public static final int Trigger_FluidContainer_Contains = 12; + public static final int Trigger_FluidContainer_Space = 13; + public static final int Trigger_FluidContainer_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_ContainsFluid = 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; @@ -75,15 +75,15 @@ public class ActionTriggerIconProvider implements IIconProvider { icons[ActionTriggerIconProvider.Trigger_Inventory_Contains] = iconRegister.registerIcon("buildcraft:triggers/trigger_inventory_contains"); icons[ActionTriggerIconProvider.Trigger_Inventory_Space] = iconRegister.registerIcon("buildcraft:triggers/trigger_inventory_space"); icons[ActionTriggerIconProvider.Trigger_Inventory_Full] = iconRegister.registerIcon("buildcraft:triggers/trigger_inventory_full"); - icons[ActionTriggerIconProvider.Trigger_LiquidContainer_Empty] = iconRegister.registerIcon("buildcraft:triggers/trigger_liquidcontainer_empty"); - icons[ActionTriggerIconProvider.Trigger_LiquidContainer_Contains] = iconRegister.registerIcon("buildcraft:triggers/trigger_liquidcontainer_contains"); - icons[ActionTriggerIconProvider.Trigger_LiquidContainer_Space] = iconRegister.registerIcon("buildcraft:triggers/trigger_liquidcontainer_space"); - icons[ActionTriggerIconProvider.Trigger_LiquidContainer_Full] = iconRegister.registerIcon("buildcraft:triggers/trigger_liquidcontainer_full"); + icons[ActionTriggerIconProvider.Trigger_FluidContainer_Empty] = iconRegister.registerIcon("buildcraft:triggers/trigger_liquidcontainer_empty"); + icons[ActionTriggerIconProvider.Trigger_FluidContainer_Contains] = iconRegister.registerIcon("buildcraft:triggers/trigger_liquidcontainer_contains"); + icons[ActionTriggerIconProvider.Trigger_FluidContainer_Space] = iconRegister.registerIcon("buildcraft:triggers/trigger_liquidcontainer_space"); + icons[ActionTriggerIconProvider.Trigger_FluidContainer_Full] = iconRegister.registerIcon("buildcraft:triggers/trigger_liquidcontainer_full"); icons[ActionTriggerIconProvider.Trigger_Machine_Active] = iconRegister.registerIcon("buildcraft:triggers/trigger_machine_active"); icons[ActionTriggerIconProvider.Trigger_Machine_Inactive] = iconRegister.registerIcon("buildcraft:triggers/trigger_machine_inactive"); icons[ActionTriggerIconProvider.Trigger_PipeContents_Empty] = iconRegister.registerIcon("buildcraft:triggers/trigger_pipecontents_empty"); icons[ActionTriggerIconProvider.Trigger_PipeContents_ContainsItems] = iconRegister.registerIcon("buildcraft:triggers/trigger_pipecontents_containsitems"); - icons[ActionTriggerIconProvider.Trigger_PipeContents_ContainsLiquid] = iconRegister.registerIcon("buildcraft:triggers/trigger_pipecontents_containsliquid"); + icons[ActionTriggerIconProvider.Trigger_PipeContents_ContainsFluid] = iconRegister.registerIcon("buildcraft:triggers/trigger_pipecontents_containsliquid"); icons[ActionTriggerIconProvider.Trigger_PipeContents_ContainsEnergy] = iconRegister.registerIcon("buildcraft:triggers/trigger_pipecontents_containsenergy"); icons[ActionTriggerIconProvider.Trigger_PipeContents_RequestsEnergy] = iconRegister.registerIcon("buildcraft:triggers/trigger_pipecontents_requestsenergy"); icons[ActionTriggerIconProvider.Trigger_PipeContents_TooMuchEnergy] = iconRegister.registerIcon("buildcraft:triggers/trigger_pipecontents_toomuchenergy"); diff --git a/common/buildcraft/core/triggers/BCTrigger.java b/common/buildcraft/core/triggers/BCTrigger.java index 8882a990..424d14c7 100644 --- a/common/buildcraft/core/triggers/BCTrigger.java +++ b/common/buildcraft/core/triggers/BCTrigger.java @@ -9,8 +9,6 @@ package buildcraft.core.triggers; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftCore; import buildcraft.api.core.IIconProvider; import buildcraft.api.gates.ActionManager; @@ -19,6 +17,8 @@ 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; +import net.minecraftforge.common.ForgeDirection; /** * 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 diff --git a/common/buildcraft/core/triggers/DefaultActionProvider.java b/common/buildcraft/core/triggers/DefaultActionProvider.java index 24c4e80b..3eea5f3c 100644 --- a/common/buildcraft/core/triggers/DefaultActionProvider.java +++ b/common/buildcraft/core/triggers/DefaultActionProvider.java @@ -1,15 +1,14 @@ package buildcraft.core.triggers; -import java.util.LinkedList; - -import net.minecraft.block.Block; -import net.minecraft.tileentity.TileEntity; import buildcraft.BuildCraftCore; import buildcraft.api.gates.IAction; import buildcraft.api.gates.IActionProvider; import buildcraft.core.IMachine; import cpw.mods.fml.common.FMLLog; +import java.util.LinkedList; import java.util.logging.Level; +import net.minecraft.block.Block; +import net.minecraft.tileentity.TileEntity; public class DefaultActionProvider implements IActionProvider { diff --git a/common/buildcraft/core/triggers/DefaultTriggerProvider.java b/common/buildcraft/core/triggers/DefaultTriggerProvider.java index 19eb4238..48c5e643 100644 --- a/common/buildcraft/core/triggers/DefaultTriggerProvider.java +++ b/common/buildcraft/core/triggers/DefaultTriggerProvider.java @@ -1,19 +1,18 @@ package buildcraft.core.triggers; -import java.util.LinkedList; - -import net.minecraft.block.Block; -import net.minecraft.inventory.IInventory; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.ForgeDirection; -import net.minecraftforge.liquids.ILiquidTank; -import net.minecraftforge.liquids.ITankContainer; import buildcraft.BuildCraftCore; import buildcraft.api.gates.IOverrideDefaultTriggers; import buildcraft.api.gates.ITrigger; import buildcraft.api.gates.ITriggerProvider; import buildcraft.api.transport.IPipe; import buildcraft.core.IMachine; +import java.util.LinkedList; +import net.minecraft.block.Block; +import net.minecraft.inventory.IInventory; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.ForgeDirection; +import net.minecraftforge.fluids.FluidTankInfo; +import net.minecraftforge.fluids.IFluidHandler; public class DefaultTriggerProvider implements ITriggerProvider { @@ -32,13 +31,13 @@ public class DefaultTriggerProvider implements ITriggerProvider { res.add(BuildCraftCore.triggerFullInventory); } - if (tile instanceof ITankContainer) { - ILiquidTank[] tanks = ((ITankContainer) tile).getTanks(ForgeDirection.UNKNOWN); + if (tile instanceof IFluidHandler) { + FluidTankInfo[] tanks = ((IFluidHandler) tile).getTankInfo(ForgeDirection.UNKNOWN); if (tanks != null && tanks.length > 0) { - res.add(BuildCraftCore.triggerEmptyLiquid); - res.add(BuildCraftCore.triggerContainsLiquid); - res.add(BuildCraftCore.triggerSpaceLiquid); - res.add(BuildCraftCore.triggerFullLiquid); + res.add(BuildCraftCore.triggerEmptyFluid); + res.add(BuildCraftCore.triggerContainsFluid); + res.add(BuildCraftCore.triggerSpaceFluid); + res.add(BuildCraftCore.triggerFullFluid); } } diff --git a/common/buildcraft/core/triggers/TriggerFluidContainer.java b/common/buildcraft/core/triggers/TriggerFluidContainer.java new file mode 100644 index 00000000..7b5a993f --- /dev/null +++ b/common/buildcraft/core/triggers/TriggerFluidContainer.java @@ -0,0 +1,122 @@ +/** + * Copyright (c) SpaceToad, 2011 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.triggers; + +import buildcraft.api.gates.ITriggerParameter; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.ForgeDirection; +import net.minecraftforge.fluids.FluidContainerRegistry; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.FluidTankInfo; +import net.minecraftforge.fluids.IFluidHandler; + +public class TriggerFluidContainer extends BCTrigger { + + public enum State { + + Empty, Contains, Space, Full + }; + public State state; + + public TriggerFluidContainer(int id, State state) { + super(id); + this.state = state; + } + + @Override + public boolean hasParameter() { + if (state == State.Contains || state == State.Space) + return true; + else + return false; + } + + @Override + public String getDescription() { + switch (state) { + case Empty: + return "Tank Empty"; + case Contains: + return "Fluid in Tank"; + case Space: + return "Space for Fluid"; + default: + return "Tank Full"; + } + } + + @Override + public boolean isTriggerActive(ForgeDirection side, TileEntity tile, ITriggerParameter parameter) { + if (tile instanceof IFluidHandler) { + IFluidHandler container = (IFluidHandler) tile; + + FluidStack searchedFluid = null; + + if (parameter != null && parameter.getItem() != null) { + searchedFluid = FluidContainerRegistry.getFluidForFilledItem(parameter.getItem()); + } + + if (searchedFluid != null) { + searchedFluid.amount = 1; + } + + FluidTankInfo[] liquids = container.getTankInfo(ForgeDirection.UNKNOWN); + if (liquids == null || liquids.length == 0) + return false; + + switch (state) { + case Empty: + for (FluidTankInfo c : liquids) { + if (c.fluid != null && c.fluid.amount > 0 && (searchedFluid == null || searchedFluid.isFluidEqual(c.fluid))) + return false; + } + return true; + case Contains: + for (FluidTankInfo c : liquids) { + if (c.fluid != null && c.fluid.amount > 0 && (searchedFluid == null || searchedFluid.isFluidEqual(c.fluid))) + return true; + } + return false; + case Space: + if (searchedFluid == null) { + for (FluidTankInfo c : liquids) { + if (c.fluid == null || c.fluid.amount < c.capacity) + return true; + } + return false; + } + return container.fill(side, searchedFluid, false) > 0; + case Full: + if (searchedFluid == null) { + for (FluidTankInfo c : liquids) { + if (c.fluid == null || c.fluid.amount < c.capacity) + return false; + } + return true; + } + return container.fill(side, searchedFluid, false) <= 0; + } + } + + return false; + } + + @Override + public int getIconIndex() { + switch (state) { + case Empty: + return ActionTriggerIconProvider.Trigger_FluidContainer_Empty; + case Contains: + return ActionTriggerIconProvider.Trigger_FluidContainer_Contains; + case Space: + return ActionTriggerIconProvider.Trigger_FluidContainer_Space; + default: + return ActionTriggerIconProvider.Trigger_FluidContainer_Full; + } + } +} diff --git a/common/buildcraft/core/triggers/TriggerInventory.java b/common/buildcraft/core/triggers/TriggerInventory.java index a07ed244..b1de1004 100644 --- a/common/buildcraft/core/triggers/TriggerInventory.java +++ b/common/buildcraft/core/triggers/TriggerInventory.java @@ -9,14 +9,14 @@ package buildcraft.core.triggers; +import buildcraft.api.gates.ITriggerParameter; +import buildcraft.api.inventory.ISpecialInventory; +import buildcraft.core.inventory.InventoryWrapper; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.ForgeDirection; -import buildcraft.api.gates.ITriggerParameter; -import buildcraft.api.inventory.ISpecialInventory; -import buildcraft.core.inventory.InventoryWrapper; public class TriggerInventory extends BCTrigger { diff --git a/common/buildcraft/core/triggers/TriggerLiquidContainer.java b/common/buildcraft/core/triggers/TriggerLiquidContainer.java deleted file mode 100644 index eb65e12d..00000000 --- a/common/buildcraft/core/triggers/TriggerLiquidContainer.java +++ /dev/null @@ -1,136 +0,0 @@ -/** - * Copyright (c) SpaceToad, 2011 - * 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.triggers; - -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.ForgeDirection; -import net.minecraftforge.liquids.ILiquidTank; -import net.minecraftforge.liquids.ITankContainer; -import net.minecraftforge.liquids.LiquidContainerRegistry; -import net.minecraftforge.liquids.LiquidStack; -import buildcraft.api.gates.ITriggerParameter; - -public class TriggerLiquidContainer extends BCTrigger { - - public enum State { - Empty, Contains, Space, Full - }; - - public State state; - - public TriggerLiquidContainer(int id, State state) { - super(id); - this.state = state; - } - - @Override - public boolean hasParameter() { - if (state == State.Contains || state == State.Space) - return true; - else - return false; - } - - @Override - public String getDescription() { - switch (state) { - case Empty: - return "Tank Empty"; - case Contains: - return "Liquid in Tank"; - case Space: - return "Space for Liquid"; - default: - return "Tank Full"; - } - } - - @Override - public boolean isTriggerActive(ForgeDirection side, TileEntity tile, ITriggerParameter parameter) { - if (tile instanceof ITankContainer) { - ITankContainer container = (ITankContainer) tile; - - LiquidStack searchedLiquid = null; - - if (parameter != null && parameter.getItem() != null) { - searchedLiquid = LiquidContainerRegistry.getLiquidForFilledItem(parameter.getItem()); - } - - if (searchedLiquid != null) { - searchedLiquid.amount = 1; - } - - ILiquidTank[] liquids = container.getTanks(ForgeDirection.UNKNOWN); - - if (liquids == null || liquids.length == 0) - return false; - - switch (state) { - case Empty: - for (ILiquidTank c : liquids) { - if (searchedLiquid != null) { - LiquidStack drained = c.drain(1, false); - if (drained != null && searchedLiquid.isLiquidEqual(drained)) - return false; - } else if (c.getLiquid() != null && c.getLiquid().amount > 0) - return false; - } - - return true; - case Contains: - for (ILiquidTank c : liquids) { - if (c.getLiquid() != null && c.getLiquid().amount != 0) { - if (searchedLiquid == null || searchedLiquid.isLiquidEqual(c.getLiquid())) - return true; - } - } - - return false; - - case Space: - for (ILiquidTank c : liquids) { - if (searchedLiquid != null) { - if (c.fill(searchedLiquid, false) > 0) - return true; - } else if (c.getLiquid() == null || c.getLiquid().amount < c.getCapacity()) - return true; - } - - return false; - case Full: - for (ILiquidTank c : liquids) { - if (searchedLiquid != null) { - if (c.fill(searchedLiquid, false) > 0) - return false; - } else if (c.getLiquid() == null || c.getLiquid().amount < c.getCapacity()) - return false; - } - - return true; - } - } - - return false; - } - - @Override - public int getIconIndex() { - switch (state) { - case Empty: - return ActionTriggerIconProvider.Trigger_LiquidContainer_Empty; - case Contains: - return ActionTriggerIconProvider.Trigger_LiquidContainer_Contains; - case Space: - return ActionTriggerIconProvider.Trigger_LiquidContainer_Space; - default: - return ActionTriggerIconProvider.Trigger_LiquidContainer_Full; - } - } -} diff --git a/common/buildcraft/core/triggers/TriggerMachine.java b/common/buildcraft/core/triggers/TriggerMachine.java index 098cd3e5..9f4ff236 100644 --- a/common/buildcraft/core/triggers/TriggerMachine.java +++ b/common/buildcraft/core/triggers/TriggerMachine.java @@ -9,10 +9,10 @@ package buildcraft.core.triggers; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.ForgeDirection; import buildcraft.api.gates.ITriggerParameter; import buildcraft.core.IMachine; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.ForgeDirection; public class TriggerMachine extends BCTrigger { diff --git a/common/buildcraft/core/utils/BlockUtil.java b/common/buildcraft/core/utils/BlockUtil.java index cf93e9a5..8d8b65a8 100644 --- a/common/buildcraft/core/utils/BlockUtil.java +++ b/common/buildcraft/core/utils/BlockUtil.java @@ -8,8 +8,11 @@ package buildcraft.core.utils; +import buildcraft.BuildCraftCore; +import buildcraft.BuildCraftEnergy; +import buildcraft.api.core.BuildCraftAPI; +import cpw.mods.fml.common.FMLCommonHandler; import java.util.List; - import net.minecraft.block.Block; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; @@ -19,10 +22,6 @@ import net.minecraft.network.packet.Packet60Explosion; import net.minecraft.world.ChunkPosition; import net.minecraft.world.Explosion; import net.minecraft.world.World; -import buildcraft.BuildCraftCore; -import buildcraft.BuildCraftEnergy; -import buildcraft.api.core.BuildCraftAPI; -import cpw.mods.fml.common.FMLCommonHandler; public class BlockUtil { @@ -79,7 +78,7 @@ public class BlockUtil { if (block.getBlockHardness(world, x, y, z) < 0) return false; - if (blockID == BuildCraftEnergy.oilMoving.blockID || blockID == BuildCraftEnergy.oilStill.blockID) + if (blockID == BuildCraftEnergy.blockOil.blockID) return false; if (blockID == Block.lavaStill.blockID || blockID == Block.lavaMoving.blockID) diff --git a/common/buildcraft/core/utils/CraftingHelper.java b/common/buildcraft/core/utils/CraftingHelper.java index 19d6306d..2ba52696 100644 --- a/common/buildcraft/core/utils/CraftingHelper.java +++ b/common/buildcraft/core/utils/CraftingHelper.java @@ -2,7 +2,6 @@ package buildcraft.core.utils; import java.util.ArrayList; import java.util.List; - import net.minecraft.inventory.InventoryCrafting; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; diff --git a/common/buildcraft/core/utils/Localization.java b/common/buildcraft/core/utils/Localization.java index d57e2a6a..34fc65c8 100644 --- a/common/buildcraft/core/utils/Localization.java +++ b/common/buildcraft/core/utils/Localization.java @@ -1,12 +1,11 @@ package buildcraft.core.utils; +import buildcraft.core.proxy.CoreProxy; import java.io.IOException; import java.io.InputStream; import java.util.LinkedList; import java.util.Properties; -import buildcraft.core.proxy.CoreProxy; - /** * Simple mod localization class. * diff --git a/common/buildcraft/core/utils/Utils.java b/common/buildcraft/core/utils/Utils.java index 2e6a4a38..dac7a383 100644 --- a/common/buildcraft/core/utils/Utils.java +++ b/common/buildcraft/core/utils/Utils.java @@ -7,29 +7,6 @@ */ package buildcraft.core.utils; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.LinkedList; -import java.util.List; -import java.util.Random; - -import net.minecraft.block.Block; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.InventoryLargeChest; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.nbt.NBTTagString; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.tileentity.TileEntityChest; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.common.ForgeDirection; -import net.minecraftforge.liquids.ILiquid; -import net.minecraftforge.liquids.LiquidContainerRegistry; -import net.minecraftforge.liquids.LiquidStack; import buildcraft.BuildCraftCore; import buildcraft.api.core.IAreaProvider; import buildcraft.api.core.LaserKind; @@ -49,6 +26,29 @@ import buildcraft.core.network.ISynchronizedTile; import buildcraft.core.network.PacketUpdate; import buildcraft.core.proxy.CoreProxy; import buildcraft.energy.TileEngine; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.LinkedList; +import java.util.List; +import java.util.Random; +import net.minecraft.block.Block; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.InventoryLargeChest; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.nbt.NBTTagString; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.tileentity.TileEntityChest; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.ForgeDirection; +import net.minecraftforge.fluids.FluidContainerRegistry; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.IFluidBlock; public class Utils { @@ -231,26 +231,26 @@ public class Utils { public static IInventory getInventory(IInventory inv) { if (inv instanceof TileEntityChest) { TileEntityChest chest = (TileEntityChest) inv; - + TileEntityChest adjacent = null; - - if (chest.adjacentChestXNeg != null){ - adjacent = chest.adjacentChestXNeg; + + if (chest.adjacentChestXNeg != null) { + adjacent = chest.adjacentChestXNeg; } - - if (chest.adjacentChestXPos != null){ - adjacent = chest.adjacentChestXPos; + + if (chest.adjacentChestXPos != null) { + adjacent = chest.adjacentChestXPos; } - - if (chest.adjacentChestZNeg != null){ - adjacent = chest.adjacentChestZNeg; + + if (chest.adjacentChestZNeg != null) { + adjacent = chest.adjacentChestZNeg; } - - if (chest.adjacentChestZPosition != null){ - adjacent = chest.adjacentChestZPosition; + + if (chest.adjacentChestZPosition != null) { + adjacent = chest.adjacentChestZPosition; } - - if (adjacent != null){ + + if (adjacent != null) { return new InventoryLargeChest("", inv, adjacent); } return inv; @@ -380,33 +380,24 @@ public class Utils { } } - public static int liquidId(int blockId) { - if (blockId == Block.waterStill.blockID || blockId == Block.waterMoving.blockID) { - return Block.waterStill.blockID; - } else if (blockId == Block.lavaStill.blockID || blockId == Block.lavaMoving.blockID) { - return Block.lavaStill.blockID; - } else if (Block.blocksList[blockId] instanceof ILiquid) { - return ((ILiquid) Block.blocksList[blockId]).stillLiquidId(); - } else { - return 0; - } - } - - public static LiquidStack liquidFromBlockId(int blockId) { - if (blockId == Block.waterStill.blockID || blockId == Block.waterMoving.blockID) { - return new LiquidStack(Block.waterStill.blockID, LiquidContainerRegistry.BUCKET_VOLUME, 0); - } else if (blockId == Block.lavaStill.blockID || blockId == Block.lavaMoving.blockID) { - return new LiquidStack(Block.lavaStill.blockID, LiquidContainerRegistry.BUCKET_VOLUME, 0); - } else if (Block.blocksList[blockId] instanceof ILiquid) { - ILiquid liquid = (ILiquid) Block.blocksList[blockId]; - if (liquid.isMetaSensitive()) { - return new LiquidStack(liquid.stillLiquidId(), LiquidContainerRegistry.BUCKET_VOLUME, liquid.stillLiquidMeta()); - } else { - return new LiquidStack(liquid.stillLiquidId(), LiquidContainerRegistry.BUCKET_VOLUME, 0); + public static FluidStack drainBlock(World world, int x, int y, int z, boolean doDrain) { + int blockId = world.getBlockId(x, y, z); + if (Block.blocksList[blockId] instanceof IFluidBlock) { + IFluidBlock fluidBlock = (IFluidBlock) Block.blocksList[blockId]; + if (fluidBlock.canDrain(world, x, y, z)) + return fluidBlock.drain(world, x, y, z, doDrain); + } else if (blockId == Block.waterStill.blockID || blockId == Block.waterMoving.blockID) { + if (doDrain) { + world.setBlockToAir(x, y, z); } - } else { - return null; + return new FluidStack(FluidRegistry.WATER, FluidContainerRegistry.BUCKET_VOLUME); + } else if (blockId == Block.lavaStill.blockID || blockId == Block.lavaMoving.blockID) { + if (doDrain) { + world.setBlockToAir(x, y, z); + } + return new FluidStack(FluidRegistry.LAVA, FluidContainerRegistry.BUCKET_VOLUME); } + return null; } public static void preDestroyBlock(World world, int i, int j, int k) { diff --git a/common/buildcraft/energy/BlockOilStill.java b/common/buildcraft/energy/BlockBuildcraftFluid.java similarity index 50% rename from common/buildcraft/energy/BlockOilStill.java rename to common/buildcraft/energy/BlockBuildcraftFluid.java index f30f1d30..8a6577e7 100644 --- a/common/buildcraft/energy/BlockOilStill.java +++ b/common/buildcraft/energy/BlockBuildcraftFluid.java @@ -1,82 +1,76 @@ -/** - * Copyright (c) SpaceToad, 2011 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 +/* + * Copyright (c) SpaceToad, 2011-2012 + * 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.energy; -import net.minecraft.block.BlockStationary; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.util.Icon; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.ForgeDirection; -import net.minecraftforge.liquids.ILiquid; -import buildcraft.BuildCraftCore; -import buildcraft.BuildCraftEnergy; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; +import net.minecraftforge.fluids.BlockFluidClassic; +import net.minecraftforge.fluids.Fluid; -public class BlockOilStill extends BlockStationary implements ILiquid { +/** + * + * @author CovertJaguar + */ +public class BlockBuildcraftFluid extends BlockFluidClassic { - public BlockOilStill(int i, Material material) { - super(i, material); - - setHardness(100F); - setLightOpacity(3); + public BlockBuildcraftFluid(int id, Fluid fluid, Material material) { + super(id, fluid, material); } + @SideOnly(Side.CLIENT) + protected Icon[] theIcon; + protected boolean flammable; + protected int flammability = 0; @Override - public int getRenderType() { - return BuildCraftCore.oilModel; - } - - @Override - public int stillLiquidId() { - return BuildCraftEnergy.oilStill.blockID; - } - - @Override - public boolean isMetaSensitive() { - return false; - } - - @Override - public int stillLiquidMeta() { - return 0; - } - - @Override - public boolean isBlockReplaceable(World world, int i, int j, int k) { - return true; + public Icon getIcon(int side, int meta) { + return side != 0 && side != 1 ? this.theIcon[1] : this.theIcon[0]; } @Override @SideOnly(Side.CLIENT) public void registerIcons(IconRegister iconRegister) { - this.theIcon = new Icon[]{iconRegister.registerIcon("buildcraft:oil"), iconRegister.registerIcon("buildcraft:oil_flow")}; + this.theIcon = new Icon[]{iconRegister.registerIcon("buildcraft:" + fluidName), iconRegister.registerIcon("buildcraft:" + fluidName + "_flow")}; + } + + public BlockBuildcraftFluid setFlammable(boolean flammable) { + this.flammable = flammable; + return this; + } + + public BlockBuildcraftFluid setFlammability(int flammability) { + this.flammability = flammability; + return this; } @Override public int getFireSpreadSpeed(World world, int x, int y, int z, int metadata, ForgeDirection face) { - return BuildCraftEnergy.canOilBurn ? 300 : 0; + return flammable ? 300 : 0; } @Override public int getFlammability(IBlockAccess world, int x, int y, int z, int metadata, ForgeDirection face) { - return 0; + return flammability; } @Override public boolean isFlammable(IBlockAccess world, int x, int y, int z, int metadata, ForgeDirection face) { - return BuildCraftEnergy.canOilBurn; + return flammable; } @Override public boolean isFireSource(World world, int x, int y, int z, int metadata, ForgeDirection side) { - return BuildCraftEnergy.canOilBurn; + return flammable && flammability == 0; } } diff --git a/common/buildcraft/energy/BlockEngine.java b/common/buildcraft/energy/BlockEngine.java index 061f9199..7b76c692 100644 --- a/common/buildcraft/energy/BlockEngine.java +++ b/common/buildcraft/energy/BlockEngine.java @@ -7,9 +7,13 @@ */ package buildcraft.energy; +import buildcraft.BuildCraftCore; +import buildcraft.core.CreativeTabBuildCraft; +import buildcraft.core.IItemPipe; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import java.util.List; import java.util.Random; - import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IconRegister; @@ -20,11 +24,6 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Icon; import net.minecraft.world.World; import net.minecraftforge.common.ForgeDirection; -import buildcraft.BuildCraftCore; -import buildcraft.core.CreativeTabBuildCraft; -import buildcraft.core.IItemPipe; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; public class BlockEngine extends BlockContainer { diff --git a/common/buildcraft/energy/BlockOilFlowing.java b/common/buildcraft/energy/BlockOilFlowing.java deleted file mode 100644 index aa02ed45..00000000 --- a/common/buildcraft/energy/BlockOilFlowing.java +++ /dev/null @@ -1,324 +0,0 @@ -/** - * Copyright (c) SpaceToad, 2011 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.energy; - -import java.util.Random; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockFlowing; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.util.Icon; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.common.ForgeDirection; -import net.minecraftforge.liquids.ILiquid; -import buildcraft.BuildCraftCore; -import buildcraft.BuildCraftEnergy; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class BlockOilFlowing extends BlockFlowing implements ILiquid { - - int numAdjacentSources = 0; - boolean isOptimalFlowDirection[] = new boolean[4]; - int flowCost[] = new int[4]; - - public BlockOilFlowing(int i, Material material) { - super(i, material); - - setHardness(100F); - setLightOpacity(3); - } - - @Override - public int getRenderType() { - return BuildCraftCore.oilModel; - } - - private void updateFlow(World par1World, int par2, int par3, int par4) { - int l = par1World.getBlockMetadata(par2, par3, par4); - par1World.setBlock(par2, par3, par4, this.blockID + 1, l, 2); - } - - /** - * How many world ticks before ticking - */ - @Override - public int tickRate(World par1World) { - return 20; - } - - @Override - public void updateTick(World world, int x, int y, int z, Random random) { - int oldDecay = this.getFlowDecay(world, x, y, z); - byte viscosity = 2; - int flowDecay; - - if (oldDecay > 0) { - this.numAdjacentSources = 0; - int minFlowDecay = this.getSmallestFlowDecay(world, x - 1, y, z, -100); - minFlowDecay = this.getSmallestFlowDecay(world, x + 1, y, z, minFlowDecay); - minFlowDecay = this.getSmallestFlowDecay(world, x, y, z - 1, minFlowDecay); - minFlowDecay = this.getSmallestFlowDecay(world, x, y, z + 1, minFlowDecay); - flowDecay = minFlowDecay + viscosity; - - if (flowDecay >= 8 || minFlowDecay < 0) { - flowDecay = -1; - } - - int decayAbove = getFlowDecay(world, x, y + 1, z); - if (decayAbove >= 0) { - if (decayAbove >= 8) { - flowDecay = decayAbove; - } else { - flowDecay = decayAbove + 8; - } - } - - boolean update = true; - if (oldDecay < 8 && flowDecay < 8 && flowDecay > oldDecay && random.nextDouble() < 0.2) { - flowDecay = oldDecay; - update = false; - } - - if (flowDecay == oldDecay) { - if (update) { - this.updateFlow(world, x, y, z); - } - } else { - oldDecay = flowDecay; - - if (flowDecay < 0) { - world.setBlockToAir(x, y, z); - } else { - world.setBlockMetadataWithNotify(x, y, z, flowDecay, 2); - world.scheduleBlockUpdate(x, y, z, this.blockID, this.tickRate(world)); - world.notifyBlocksOfNeighborChange(x, y, z, this.blockID); - } - } - } else { - this.updateFlow(world, x, y, z); - } - - if (this.liquidCanDisplaceBlock(world, x, y - 1, z)) { - if (oldDecay >= 8) { - this.flowIntoBlock(world, x, y - 1, z, oldDecay); - } else { - this.flowIntoBlock(world, x, y - 1, z, oldDecay + 8); - } - } else if (oldDecay >= 0 && (oldDecay == 0 || this.blockBlocksFlow(world, x, y - 1, z))) { - boolean[] flowDirection = this.getOptimalFlowDirections(world, x, y, z); - flowDecay = oldDecay + viscosity; - - if (oldDecay >= 8) { - flowDecay = 1; - } - - if (flowDecay >= 8) { - return; - } - - if (flowDirection[0]) { - this.flowIntoBlock(world, x - 1, y, z, flowDecay); - } - - if (flowDirection[1]) { - this.flowIntoBlock(world, x + 1, y, z, flowDecay); - } - - if (flowDirection[2]) { - this.flowIntoBlock(world, x, y, z - 1, flowDecay); - } - - if (flowDirection[3]) { - this.flowIntoBlock(world, x, y, z + 1, flowDecay); - } - } - } - - private void flowIntoBlock(World world, int i, int j, int k, int l) { - if (liquidCanDisplaceBlock(world, i, j, k)) { - int blockId = world.getBlockId(i, j, k); - if (blockId > 0) { - Block.blocksList[blockId].dropBlockAsItem(world, i, j, k, world.getBlockMetadata(i, j, k), 0); - } - world.setBlock(i, j, k, blockID, l, 3); - } - } - - private int calculateFlowCost(World world, int i, int j, int k, int l, int i1) { - int j1 = 1000; - for (int k1 = 0; k1 < 4; k1++) { - if (k1 == 0 && i1 == 1 || k1 == 1 && i1 == 0 || k1 == 2 && i1 == 3 || k1 == 3 && i1 == 2) { - continue; - } - int l1 = i; - int i2 = j; - int j2 = k; - if (k1 == 0) { - l1--; - } - if (k1 == 1) { - l1++; - } - if (k1 == 2) { - j2--; - } - if (k1 == 3) { - j2++; - } - if (blockBlocksFlow(world, l1, i2, j2) || world.getBlockMaterial(l1, i2, j2) == blockMaterial && world.getBlockMetadata(l1, i2, j2) == 0) { - continue; - } - if (!blockBlocksFlow(world, l1, i2 - 1, j2)) { - return l; - } - if (l >= 4) { - continue; - } - int k2 = calculateFlowCost(world, l1, i2, j2, l + 1, k1); - if (k2 < j1) { - j1 = k2; - } - } - - return j1; - } - - private boolean[] getOptimalFlowDirections(World world, int i, int j, int k) { - for (int l = 0; l < 4; l++) { - flowCost[l] = 1000; - int j1 = i; - int i2 = j; - int j2 = k; - if (l == 0) { - j1--; - } - if (l == 1) { - j1++; - } - if (l == 2) { - j2--; - } - if (l == 3) { - j2++; - } - if (blockBlocksFlow(world, j1, i2, j2) || world.getBlockMaterial(j1, i2, j2) == blockMaterial && world.getBlockMetadata(j1, i2, j2) == 0) { - continue; - } - if (!blockBlocksFlow(world, j1, i2 - 1, j2)) { - flowCost[l] = 0; - } else { - flowCost[l] = calculateFlowCost(world, j1, i2, j2, 1, l); - } - } - - int i1 = flowCost[0]; - for (int k1 = 1; k1 < 4; k1++) { - if (flowCost[k1] < i1) { - i1 = flowCost[k1]; - } - } - - for (int l1 = 0; l1 < 4; l1++) { - isOptimalFlowDirection[l1] = flowCost[l1] == i1; - } - - return isOptimalFlowDirection; - } - - private boolean blockBlocksFlow(World par1World, int par2, int par3, int par4) { - int l = par1World.getBlockId(par2, par3, par4); - - if (l != Block.doorWood.blockID && l != Block.doorIron.blockID && l != Block.signPost.blockID && l != Block.ladder.blockID && l != Block.reed.blockID) { - if (l == 0) { - return false; - } else { - Material material = Block.blocksList[l].blockMaterial; - return material == Material.portal ? true : material.blocksMovement(); - } - } else { - return true; - } - } - - @Override - protected int getSmallestFlowDecay(World par1World, int par2, int par3, int par4, int par5) { - int i1 = this.getFlowDecay(par1World, par2, par3, par4); - - if (i1 < 0) { - return par5; - } else { - if (i1 == 0) { - ++this.numAdjacentSources; - } - - if (i1 >= 8) { - i1 = 0; - } - - return par5 >= 0 && i1 >= par5 ? par5 : i1; - } - } - - private boolean liquidCanDisplaceBlock(World world, int i, int j, int k) { - Material material = world.getBlockMaterial(i, j, k); - if (material == blockMaterial) { - return false; - } else { - return !blockBlocksFlow(world, i, j, k); - } - } - - @Override - public int stillLiquidId() { - return BuildCraftEnergy.oilStill.blockID; - } - - @Override - public boolean isMetaSensitive() { - return false; - } - - @Override - public int stillLiquidMeta() { - return 0; - } - - @Override - public boolean isBlockReplaceable(World world, int i, int j, int k) { - return true; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister iconRegister) { - this.theIcon = new Icon[]{iconRegister.registerIcon("buildcraft:oil"), iconRegister.registerIcon("buildcraft:oil_flow")}; - } - - @Override - public int getFireSpreadSpeed(World world, int x, int y, int z, int metadata, ForgeDirection face) { - return BuildCraftEnergy.canOilBurn ? 300 : 0; - } - - @Override - public int getFlammability(IBlockAccess world, int x, int y, int z, int metadata, ForgeDirection face) { - return 0; - } - - @Override - public boolean isFlammable(IBlockAccess world, int x, int y, int z, int metadata, ForgeDirection face) { - return BuildCraftEnergy.canOilBurn; - } - - @Override - public boolean isFireSource(World world, int x, int y, int z, int metadata, ForgeDirection side) { - return BuildCraftEnergy.canOilBurn; - } -} diff --git a/common/buildcraft/energy/BlockPollution.java b/common/buildcraft/energy/BlockPollution.java index 5b3887c4..ae50a074 100644 --- a/common/buildcraft/energy/BlockPollution.java +++ b/common/buildcraft/energy/BlockPollution.java @@ -9,13 +9,13 @@ package buildcraft.energy; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; public class BlockPollution extends BlockContainer { diff --git a/common/buildcraft/energy/BptBlockEngine.java b/common/buildcraft/energy/BptBlockEngine.java index 51701faa..554aaf30 100644 --- a/common/buildcraft/energy/BptBlockEngine.java +++ b/common/buildcraft/energy/BptBlockEngine.java @@ -9,13 +9,13 @@ package buildcraft.energy; -import net.minecraft.block.Block; -import net.minecraftforge.common.ForgeDirection; import buildcraft.api.blueprints.BlockSignature; import buildcraft.api.blueprints.BptBlock; import buildcraft.api.blueprints.BptSlotInfo; import buildcraft.api.blueprints.IBptContext; import buildcraft.core.Version; +import net.minecraft.block.Block; +import net.minecraftforge.common.ForgeDirection; @Deprecated public class BptBlockEngine extends BptBlock { diff --git a/common/buildcraft/energy/OilBucketHandler.java b/common/buildcraft/energy/BucketHandler.java similarity index 54% rename from common/buildcraft/energy/OilBucketHandler.java rename to common/buildcraft/energy/BucketHandler.java index 4cd9c400..969c081f 100644 --- a/common/buildcraft/energy/OilBucketHandler.java +++ b/common/buildcraft/energy/BucketHandler.java @@ -1,23 +1,31 @@ /** - * Copyright (c) SpaceToad, 2011 - * http://www.mod-buildcraft.com + * Copyright (c) SpaceToad, 2011 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 + * 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.energy; +import buildcraft.BuildCraftEnergy; +import java.util.HashMap; +import java.util.Map; +import net.minecraft.block.Block; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; import net.minecraftforge.event.Event.Result; import net.minecraftforge.event.ForgeSubscribe; import net.minecraftforge.event.entity.player.FillBucketEvent; -import buildcraft.BuildCraftEnergy; -public class OilBucketHandler { +public class BucketHandler { + + public static BucketHandler INSTANCE = new BucketHandler(); + public Map buckets = new HashMap(); + + private BucketHandler() { + } @ForgeSubscribe public void onBucketFill(FillBucketEvent event) { @@ -31,19 +39,16 @@ public class OilBucketHandler { event.setResult(Result.ALLOW); } - public ItemStack fillCustomBucket(World world, MovingObjectPosition pos) { + private ItemStack fillCustomBucket(World world, MovingObjectPosition pos) { int blockID = world.getBlockId(pos.blockX, pos.blockY, pos.blockZ); - if ((blockID == BuildCraftEnergy.oilStill.blockID || blockID == BuildCraftEnergy.oilMoving.blockID) - && world.getBlockMetadata(pos.blockX, pos.blockY, pos.blockZ) == 0) { - + Item bucket = buckets.get(Block.blocksList[blockID]); + if (bucket != null && world.getBlockMetadata(pos.blockX, pos.blockY, pos.blockZ) == 0) { world.setBlock(pos.blockX, pos.blockY, pos.blockZ, 0); - - return new ItemStack(BuildCraftEnergy.bucketOil); + return new ItemStack(bucket); } else return null; } - } diff --git a/common/buildcraft/energy/GuiHandler.java b/common/buildcraft/energy/GuiHandler.java index 3f2666de..1e084b0f 100644 --- a/common/buildcraft/energy/GuiHandler.java +++ b/common/buildcraft/energy/GuiHandler.java @@ -1,13 +1,13 @@ package buildcraft.energy; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; import buildcraft.core.GuiIds; import buildcraft.energy.gui.ContainerEngine; import buildcraft.energy.gui.GuiCombustionEngine; -import buildcraft.energy.gui.GuiSteamEngine; +import buildcraft.energy.gui.GuiStoneEngine; import cpw.mods.fml.common.network.IGuiHandler; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; public class GuiHandler implements IGuiHandler { @@ -29,7 +29,7 @@ public class GuiHandler implements IGuiHandler { return new GuiCombustionEngine(player.inventory, engine); case GuiIds.ENGINE_STONE: - return new GuiSteamEngine(player.inventory, engine); + return new GuiStoneEngine(player.inventory, engine); default: return null; diff --git a/common/buildcraft/energy/ItemBucketOil.java b/common/buildcraft/energy/ItemBucketBuildcraft.java similarity index 53% rename from common/buildcraft/energy/ItemBucketOil.java rename to common/buildcraft/energy/ItemBucketBuildcraft.java index 4ea5f328..00ae38a1 100644 --- a/common/buildcraft/energy/ItemBucketOil.java +++ b/common/buildcraft/energy/ItemBucketBuildcraft.java @@ -1,27 +1,27 @@ /** - * Copyright (c) SpaceToad, 2011 - * http://www.mod-buildcraft.com + * Copyright (c) SpaceToad, 2011 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 + * 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.energy; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.item.ItemBucket; -import net.minecraft.item.ItemStack; -import buildcraft.BuildCraftEnergy; import buildcraft.core.CreativeTabBuildCraft; import buildcraft.core.utils.StringUtils; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.item.Item; +import net.minecraft.item.ItemBucket; +import net.minecraft.item.ItemStack; -public class ItemBucketOil extends ItemBucket { +public class ItemBucketBuildcraft extends ItemBucket { - public ItemBucketOil(int i) { - super(i, BuildCraftEnergy.oilMoving.blockID); + private String iconName; + + public ItemBucketBuildcraft(int i, int blockId) { + super(i, blockId); setCreativeTab(CreativeTabBuildCraft.tabBuildCraft); } @@ -30,10 +30,15 @@ public class ItemBucketOil extends ItemBucket { return StringUtils.localize(getUnlocalizedName(itemstack)); } + @Override + public Item setUnlocalizedName(String par1Str) { + iconName = par1Str; + return super.setUnlocalizedName(par1Str); + } + @Override @SideOnly(Side.CLIENT) - public void registerIcons(IconRegister par1IconRegister) - { - this.itemIcon = par1IconRegister.registerIcon("buildcraft:oil_bucket"); + public void registerIcons(IconRegister par1IconRegister) { + this.itemIcon = par1IconRegister.registerIcon("buildcraft:" + iconName); } } diff --git a/common/buildcraft/energy/ItemEngine.java b/common/buildcraft/energy/ItemEngine.java index 5f738be8..a32bbe73 100644 --- a/common/buildcraft/energy/ItemEngine.java +++ b/common/buildcraft/energy/ItemEngine.java @@ -9,8 +9,8 @@ package buildcraft.energy; -import net.minecraft.item.ItemStack; import buildcraft.core.ItemBlockBuildCraft; +import net.minecraft.item.ItemStack; public class ItemEngine extends ItemBlockBuildCraft { diff --git a/common/buildcraft/energy/TileEngine.java b/common/buildcraft/energy/TileEngine.java index 0c89487f..e68c55b0 100644 --- a/common/buildcraft/energy/TileEngine.java +++ b/common/buildcraft/energy/TileEngine.java @@ -7,14 +7,6 @@ */ package buildcraft.energy; -import java.util.LinkedList; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftEnergy; import buildcraft.api.core.Position; import buildcraft.api.gates.IOverrideDefaultTriggers; @@ -32,9 +24,16 @@ import buildcraft.core.network.TileNetworkData; import buildcraft.core.proxy.CoreProxy; import buildcraft.core.utils.Utils; import buildcraft.energy.gui.ContainerEngine; +import java.util.LinkedList; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ICrafting; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTBase; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagFloat; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.ForgeDirection; public abstract class TileEngine extends TileBuildCraft implements IPowerReceptor, IPowerEmitter, IInventory, IOverrideDefaultTriggers, IPipeConnection { @@ -360,7 +359,7 @@ public abstract class TileEngine extends TileBuildCraft implements IPowerRecepto } @Override - public boolean isStackValidForSlot(int i, ItemStack itemstack) { + public boolean isItemValidForSlot(int i, ItemStack itemstack) { return true; } @@ -406,6 +405,7 @@ public abstract class TileEngine extends TileBuildCraft implements IPowerRecepto if (getEnergyStage() == EnergyStage.OVERHEAT) { worldObj.createExplosion(null, xCoord, yCoord, zCoord, explosionRange(), true); + worldObj.setBlockToAir(xCoord, yCoord, zCoord); } if (energy > getMaxEnergy()) { diff --git a/common/buildcraft/energy/TileEngineIron.java b/common/buildcraft/energy/TileEngineIron.java index cbc98052..01680a17 100644 --- a/common/buildcraft/energy/TileEngineIron.java +++ b/common/buildcraft/energy/TileEngineIron.java @@ -9,16 +9,6 @@ package buildcraft.energy; import buildcraft.BuildCraftCore; import buildcraft.BuildCraftEnergy; -import net.minecraft.block.Block; -import net.minecraft.inventory.ICrafting; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.common.ForgeDirection; -import net.minecraftforge.liquids.ILiquidTank; -import net.minecraftforge.liquids.LiquidContainerRegistry; -import net.minecraftforge.liquids.LiquidStack; -import net.minecraftforge.liquids.LiquidTank; import buildcraft.api.fuels.IronEngineCoolant; import buildcraft.api.fuels.IronEngineCoolant.Coolant; import buildcraft.api.fuels.IronEngineFuel; @@ -26,36 +16,40 @@ import buildcraft.api.gates.ITrigger; import buildcraft.core.DefaultProps; import buildcraft.core.GuiIds; import buildcraft.core.IItemPipe; -import buildcraft.core.liquids.LiquidUtils; +import buildcraft.core.liquids.FluidUtils; import buildcraft.core.proxy.CoreProxy; import buildcraft.core.utils.Utils; -import static buildcraft.energy.TileEngine.EnergyStage.BLUE; -import static buildcraft.energy.TileEngine.EnergyStage.GREEN; -import static buildcraft.energy.TileEngine.EnergyStage.RED; -import static buildcraft.energy.TileEngine.EnergyStage.YELLOW; -import static buildcraft.energy.TileEngine.IDEAL_HEAT; -import static buildcraft.energy.TileEngine.MIN_HEAT; import buildcraft.energy.gui.ContainerEngine; import java.util.LinkedList; import net.minecraft.entity.player.EntityPlayer; -import net.minecraftforge.liquids.ITankContainer; +import net.minecraft.inventory.ICrafting; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.common.ForgeDirection; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidContainerRegistry; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.FluidTank; +import net.minecraftforge.fluids.FluidTankInfo; +import net.minecraftforge.fluids.IFluidHandler; -public class TileEngineIron extends TileEngine implements ITankContainer { +public class TileEngineIron extends TileEngine implements IFluidHandler { - public static int MAX_LIQUID = LiquidContainerRegistry.BUCKET_VOLUME * 10; + public static int MAX_LIQUID = FluidContainerRegistry.BUCKET_VOLUME * 10; public static float HEAT_PER_MJ = 0.0023F; public static float COOLDOWN_RATE = 0.005F; int burnTime = 0; - private LiquidTank fuelTank; - private LiquidTank coolantTank; + private FluidTank fuelTank; + private FluidTank coolantTank; private IronEngineFuel currentFuel = null; public int penaltyCooling = 0; boolean lastPowered = false; public TileEngineIron() { super(1); - fuelTank = new LiquidTank(MAX_LIQUID); - coolantTank = new LiquidTank(MAX_LIQUID); + fuelTank = new FluidTank(MAX_LIQUID); + coolantTank = new FluidTank(MAX_LIQUID); } @Override @@ -72,11 +66,11 @@ public class TileEngineIron extends TileEngine implements ITankContainer { ItemStack current = player.getCurrentEquippedItem(); if (current != null && current.itemID != Item.bucketEmpty.itemID) { if (CoreProxy.proxy.isSimulating(worldObj)) { - if (LiquidUtils.handleRightClick(this, side, player, true, false)) { + if (FluidUtils.handleRightClick(this, side, player, true, false)) { return true; } } else { - if (LiquidContainerRegistry.isContainer(current)) { + if (FluidContainerRegistry.isContainer(current)) { return true; } } @@ -114,15 +108,15 @@ public class TileEngineIron extends TileEngine implements ITankContainer { @Override public boolean isBurning() { - LiquidStack fuel = fuelTank.getLiquid(); + FluidStack fuel = fuelTank.getFluid(); return fuel != null && fuel.amount > 0 && penaltyCooling == 0 && isRedstonePowered; } @Override public void burn() { - LiquidStack fuel = this.fuelTank.getLiquid(); + FluidStack fuel = this.fuelTank.getFluid(); if (currentFuel == null) { - currentFuel = IronEngineFuel.getFuelForLiquid(fuel); + currentFuel = IronEngineFuel.getFuelForFluid(fuel.getFluid()); } if (currentFuel == null) @@ -139,9 +133,9 @@ public class TileEngineIron extends TileEngine implements ITankContainer { if (burnTime <= 0) { if (fuel != null) { if (--fuel.amount <= 0) { - fuelTank.setLiquid(null); + fuelTank.setFluid(null); } - burnTime = currentFuel.totalBurningTime / LiquidContainerRegistry.BUCKET_VOLUME; + burnTime = currentFuel.totalBurningTime / FluidContainerRegistry.BUCKET_VOLUME; } else { currentFuel = null; return; @@ -169,9 +163,9 @@ public class TileEngineIron extends TileEngine implements ITankContainer { final ItemStack stack = getStackInSlot(0); if (stack != null) { - LiquidStack liquid = LiquidContainerRegistry.getLiquidForFilledItem(stack); + FluidStack liquid = FluidContainerRegistry.getFluidForFilledItem(stack); if (liquid == null && heat > IDEAL_HEAT) { - liquid = IronEngineCoolant.getLiquidCoolant(stack); + liquid = IronEngineCoolant.getFluidCoolant(stack); } if (liquid != null) { @@ -185,7 +179,7 @@ public class TileEngineIron extends TileEngine implements ITankContainer { if (heat > IDEAL_HEAT) { float extraHeat = heat - IDEAL_HEAT; - LiquidStack coolant = this.coolantTank.getLiquid(); + FluidStack coolant = this.coolantTank.getFluid(); Coolant currentCoolant = IronEngineCoolant.getCoolant(coolant); if (currentCoolant != null) { float cooling = currentCoolant.getDegreesCoolingPerMB(heat); @@ -194,7 +188,7 @@ public class TileEngineIron extends TileEngine implements ITankContainer { heat = IDEAL_HEAT; } else { heat -= coolant.amount * cooling; - coolantTank.setLiquid(null); + coolantTank.setFluid(null); } } } @@ -215,7 +209,7 @@ public class TileEngineIron extends TileEngine implements ITankContainer { @Override public int getScaledBurnTime(int i) { - return this.fuelTank.getLiquid() != null ? (int) (((float) this.fuelTank.getLiquid().amount / (float) (MAX_LIQUID)) * i) : 0; + return this.fuelTank.getFluid() != null ? (int) (((float) this.fuelTank.getFluid().amount / (float) (MAX_LIQUID)) * i) : 0; } @Override @@ -241,66 +235,55 @@ public class TileEngineIron extends TileEngine implements ITankContainer { } public int getScaledCoolant(int i) { - return coolantTank.getLiquid() != null ? (int) (((float) coolantTank.getLiquid().amount / (float) (MAX_LIQUID)) * i) : 0; + return coolantTank.getFluid() != null ? (int) (((float) coolantTank.getFluid().amount / (float) (MAX_LIQUID)) * i) : 0; } @Override public void getGUINetworkData(int id, int value) { super.getGUINetworkData(id, value); switch (id) { + // Fluid Fuel ID case 15: - if (fuelTank.getLiquid() == null) { - fuelTank.setLiquid(new LiquidStack(0, value)); + if (fuelTank.getFluid() == null) { + fuelTank.setFluid(new FluidStack(value, 0)); } else { - fuelTank.getLiquid().amount = value; + fuelTank.getFluid().fluidID = value; } break; + // Fluid Coolant ID case 16: - if (fuelTank.getLiquid() == null) { - fuelTank.setLiquid(new LiquidStack(value, 0)); + if (coolantTank.getFluid() == null) { + coolantTank.setFluid(new FluidStack(value, 0)); } else { - fuelTank.setLiquid(new LiquidStack(value, fuelTank.getLiquid().amount, fuelTank.getLiquid().itemMeta)); + coolantTank.getFluid().fluidID = value; } break; + // Fluid Fuel amount case 17: - if (coolantTank.getLiquid() == null) { - coolantTank.setLiquid(new LiquidStack(0, value)); + if (fuelTank.getFluid() == null) { + fuelTank.setFluid(new FluidStack(0, value)); } else { - coolantTank.getLiquid().amount = value; + fuelTank.getFluid().amount = value; } break; + // Fluid coolant amount case 18: - if (coolantTank.getLiquid() == null) { - coolantTank.setLiquid(new LiquidStack(value, 0)); + if (coolantTank.getFluid() == null) { + coolantTank.setFluid(new FluidStack(0, value)); } else { - coolantTank.setLiquid(new LiquidStack(value, coolantTank.getLiquid().amount, coolantTank.getLiquid().itemMeta)); + coolantTank.getFluid().amount = value; } break; - case 19: - if (fuelTank.getLiquid() == null) { - fuelTank.setLiquid(new LiquidStack(0, 0, value)); - } else { - fuelTank.setLiquid(new LiquidStack(fuelTank.getLiquid().itemID, fuelTank.getLiquid().amount, value)); - } - break; - case 20: - if (coolantTank.getLiquid() == null) { - coolantTank.setLiquid(new LiquidStack(0, 0, value)); - } else { - coolantTank.setLiquid(new LiquidStack(coolantTank.getLiquid().itemID, coolantTank.getLiquid().amount, value)); - } } } @Override public void sendGUINetworkData(ContainerEngine containerEngine, ICrafting iCrafting) { super.sendGUINetworkData(containerEngine, iCrafting); - iCrafting.sendProgressBarUpdate(containerEngine, 15, fuelTank.getLiquid() != null ? fuelTank.getLiquid().amount : 0); - iCrafting.sendProgressBarUpdate(containerEngine, 16, fuelTank.getLiquid() != null ? fuelTank.getLiquid().itemID : 0); - iCrafting.sendProgressBarUpdate(containerEngine, 17, coolantTank.getLiquid() != null ? coolantTank.getLiquid().amount : 0); - iCrafting.sendProgressBarUpdate(containerEngine, 18, coolantTank.getLiquid() != null ? coolantTank.getLiquid().itemID : 0); - iCrafting.sendProgressBarUpdate(containerEngine, 19, fuelTank.getLiquid() != null ? fuelTank.getLiquid().itemMeta : 0); - iCrafting.sendProgressBarUpdate(containerEngine, 20, coolantTank.getLiquid() != null ? coolantTank.getLiquid().itemMeta : 0); + iCrafting.sendProgressBarUpdate(containerEngine, 15, fuelTank.getFluid() != null ? fuelTank.getFluid().fluidID : 0); + iCrafting.sendProgressBarUpdate(containerEngine, 16, coolantTank.getFluid() != null ? coolantTank.getFluid().fluidID : 0); + iCrafting.sendProgressBarUpdate(containerEngine, 17, fuelTank.getFluid() != null ? fuelTank.getFluid().amount : 0); + iCrafting.sendProgressBarUpdate(containerEngine, 18, coolantTank.getFluid() != null ? coolantTank.getFluid().amount : 0); } @Override @@ -310,65 +293,75 @@ public class TileEngineIron extends TileEngine implements ITankContainer { /* ITANKCONTAINER */ @Override - public int fill(int tankIndex, LiquidStack resource, boolean doFill) { - return 0; - } - - @Override - public LiquidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) { + public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) { return null; } @Override - public LiquidStack drain(int tankIndex, int maxDrain, boolean doDrain) { - return null; - } + public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain) + { + return null; + } - @Override - public int fill(ForgeDirection from, LiquidStack resource, boolean doFill) { + @Override + public boolean canDrain(ForgeDirection from, Fluid fluid) + { + // TODO Auto-generated method stub + return false; + } + + @Override + public int fill(ForgeDirection from, FluidStack resource, boolean doFill) { // Handle coolant if (IronEngineCoolant.getCoolant(resource) != null) return coolantTank.fill(resource, doFill); - if (IronEngineFuel.getFuelForLiquid(resource) != null) + if (IronEngineFuel.getFuelForFluid(resource.getFluid()) != null) return fuelTank.fill(resource, doFill); return 0; } @Override - public ILiquidTank getTank(ForgeDirection direction, LiquidStack type) { + public boolean canFill(ForgeDirection from, Fluid fluid) + { + if (IronEngineCoolant.isCoolant(fluid)) + return true; + + if (IronEngineFuel.getFuelForFluid(fluid) != null) + return true; + + return false; + } + + @Override + public FluidTankInfo[] getTankInfo(ForgeDirection direction) { switch (direction) { case UP: - return fuelTank; + return new FluidTankInfo[] { new FluidTankInfo(fuelTank) }; case DOWN: - return coolantTank; + return new FluidTankInfo[] { new FluidTankInfo(coolantTank) }; default: return null; } } @Override - public ILiquidTank[] getTanks(ForgeDirection direction) { - return new ILiquidTank[]{fuelTank, coolantTank}; - } - - @Override - public boolean isStackValidForSlot(int i, ItemStack itemstack) { + public boolean isItemValidForSlot(int i, ItemStack itemstack) { if (itemstack == null) return false; - if (Block.ice.blockID == itemstack.itemID) + if (IronEngineCoolant.getCoolant(itemstack)!=null) return true; - return LiquidContainerRegistry.getLiquidForFilledItem(itemstack) != null; + return FluidContainerRegistry.getFluidForFilledItem(itemstack) != null; } - public LiquidStack getFuel() { - return fuelTank.getLiquid(); + public FluidStack getFuel() { + return fuelTank.getFluid(); } - public LiquidStack getCoolant() { - return coolantTank.getLiquid(); + public FluidStack getCoolant() { + return coolantTank.getFluid(); } @Override @@ -397,10 +390,10 @@ public class TileEngineIron extends TileEngine implements ITankContainer { @Override public LinkedList getTriggers() { LinkedList triggers = super.getTriggers(); - triggers.add(BuildCraftCore.triggerEmptyLiquid); - triggers.add(BuildCraftCore.triggerContainsLiquid); - triggers.add(BuildCraftCore.triggerSpaceLiquid); - triggers.add(BuildCraftCore.triggerFullLiquid); + triggers.add(BuildCraftCore.triggerEmptyFluid); + triggers.add(BuildCraftCore.triggerContainsFluid); + triggers.add(BuildCraftCore.triggerSpaceFluid); + triggers.add(BuildCraftCore.triggerFullFluid); return triggers; } diff --git a/common/buildcraft/energy/TileEngineStone.java b/common/buildcraft/energy/TileEngineStone.java index 52c47386..f2a574e9 100644 --- a/common/buildcraft/energy/TileEngineStone.java +++ b/common/buildcraft/energy/TileEngineStone.java @@ -10,10 +10,6 @@ package buildcraft.energy; import buildcraft.BuildCraftCore; import buildcraft.BuildCraftEnergy; import buildcraft.api.gates.ITrigger; -import net.minecraft.inventory.ICrafting; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntityFurnace; import buildcraft.core.DefaultProps; import buildcraft.core.GuiIds; import buildcraft.core.proxy.CoreProxy; @@ -21,6 +17,10 @@ import buildcraft.core.utils.Utils; import buildcraft.energy.gui.ContainerEngine; import java.util.LinkedList; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.ICrafting; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntityFurnace; import net.minecraftforge.common.ForgeDirection; public class TileEngineStone extends TileEngine { diff --git a/common/buildcraft/energy/TileEngineWood.java b/common/buildcraft/energy/TileEngineWood.java index b9bc0e07..6638aee9 100644 --- a/common/buildcraft/energy/TileEngineWood.java +++ b/common/buildcraft/energy/TileEngineWood.java @@ -9,10 +9,6 @@ package buildcraft.energy; import buildcraft.core.DefaultProps; import buildcraft.core.proxy.CoreProxy; -import static buildcraft.energy.TileEngine.EnergyStage.BLUE; -import static buildcraft.energy.TileEngine.EnergyStage.GREEN; -import static buildcraft.energy.TileEngine.EnergyStage.RED; -import static buildcraft.energy.TileEngine.EnergyStage.YELLOW; import net.minecraftforge.common.ForgeDirection; public class TileEngineWood extends TileEngine { diff --git a/common/buildcraft/energy/TilePollution.java b/common/buildcraft/energy/TilePollution.java index dfeedc01..ac0f3dfe 100644 --- a/common/buildcraft/energy/TilePollution.java +++ b/common/buildcraft/energy/TilePollution.java @@ -9,10 +9,10 @@ package buildcraft.energy; -import net.minecraft.tileentity.TileEntity; import buildcraft.BuildCraftEnergy; import buildcraft.api.core.SafeTimeTracker; import buildcraft.core.BlockIndex; +import net.minecraft.tileentity.TileEntity; public class TilePollution extends TileEntity { diff --git a/common/buildcraft/energy/TriggerEngineHeat.java b/common/buildcraft/energy/TriggerEngineHeat.java index a094a049..24064741 100644 --- a/common/buildcraft/energy/TriggerEngineHeat.java +++ b/common/buildcraft/energy/TriggerEngineHeat.java @@ -7,13 +7,13 @@ */ package buildcraft.energy; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.ForgeDirection; import buildcraft.api.gates.ITriggerParameter; import buildcraft.core.triggers.ActionTriggerIconProvider; import buildcraft.core.triggers.BCTrigger; import buildcraft.core.utils.StringUtils; import buildcraft.energy.TileEngine.EnergyStage; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.ForgeDirection; public class TriggerEngineHeat extends BCTrigger { diff --git a/common/buildcraft/energy/gui/ContainerEngine.java b/common/buildcraft/energy/gui/ContainerEngine.java index ec28e30a..9c90557d 100644 --- a/common/buildcraft/energy/gui/ContainerEngine.java +++ b/common/buildcraft/energy/gui/ContainerEngine.java @@ -7,13 +7,13 @@ */ package buildcraft.energy.gui; +import buildcraft.core.gui.BuildCraftContainer; +import buildcraft.energy.TileEngine; +import buildcraft.energy.TileEngineStone; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.ICrafting; import net.minecraft.inventory.Slot; -import buildcraft.core.gui.BuildCraftContainer; -import buildcraft.energy.TileEngineStone; -import buildcraft.energy.TileEngine; public class ContainerEngine extends BuildCraftContainer { diff --git a/common/buildcraft/energy/gui/GuiCombustionEngine.java b/common/buildcraft/energy/gui/GuiCombustionEngine.java index 7501e07b..31b90c43 100644 --- a/common/buildcraft/energy/gui/GuiCombustionEngine.java +++ b/common/buildcraft/energy/gui/GuiCombustionEngine.java @@ -1,29 +1,28 @@ /** - * Copyright (c) SpaceToad, 2011 - * http://www.mod-buildcraft.com + * Copyright (c) SpaceToad, 2011 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 + * 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.energy.gui; -import net.minecraft.block.Block; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.item.Item; -import net.minecraft.util.Icon; -import net.minecraftforge.liquids.LiquidStack; - -import org.lwjgl.opengl.GL11; - import buildcraft.core.DefaultProps; import buildcraft.core.utils.StringUtils; -import buildcraft.energy.TileEngineIron; import buildcraft.energy.TileEngine; +import buildcraft.energy.TileEngineIron; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.Icon; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidStack; +import org.lwjgl.opengl.GL11; public class GuiCombustionEngine extends GuiEngine { + private static final ResourceLocation TEXTURE = new ResourceLocation("buildcraft", DefaultProps.TEXTURE_PATH_GUI + "/combustion_engine_gui.png"); + private static final ResourceLocation BLOCK_TEXTURE = new ResourceLocation("/terrain.png"); + public GuiCombustionEngine(InventoryPlayer inventoryplayer, TileEngine tileEngine) { super(new ContainerEngine(inventoryplayer, tileEngine), tileEngine); } @@ -38,8 +37,8 @@ public class GuiCombustionEngine extends GuiEngine { @Override protected void drawGuiContainerBackgroundLayer(float f, int x, int y) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - mc.renderEngine.bindTexture(DefaultProps.TEXTURE_PATH_GUI + "/combustion_engine_gui.png"); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + mc.renderEngine.func_110577_a(TEXTURE); int j = (width - xSize) / 2; int k = (height - ySize) / 2; drawTexturedModalRect(j, k, 0, 0, xSize, ySize); @@ -55,50 +54,41 @@ public class GuiCombustionEngine extends GuiEngine { } } - private void displayGauge(int j, int k, int line, int col, int squaled, LiquidStack liquid) { - if (liquid == null) - { + private void displayGauge(int j, int k, int line, int col, int squaled, FluidStack liquid) { + if (liquid == null) { return; } int start = 0; - Icon liquidIcon; - String textureSheet; - if(liquid.canonical() != null && liquid.canonical().getRenderingIcon() != null) { - textureSheet = liquid.canonical().getTextureSheet(); - liquidIcon = liquid.canonical().getRenderingIcon(); - } else { - if (liquid.itemID < Block.blocksList.length && Block.blocksList[liquid.itemID].blockID > 0) { - liquidIcon = Block.blocksList[liquid.itemID].getBlockTextureFromSide(0); - textureSheet = "/terrain.png"; - } else { - liquidIcon = Item.itemsList[liquid.itemID].getIconFromDamage(liquid.itemMeta); - textureSheet = "/gui/items.png"; - } + Icon liquidIcon = null; + Fluid fluid = liquid.getFluid(); + if (fluid != null && fluid.getStillIcon() != null) { + liquidIcon = fluid.getStillIcon(); } - mc.renderEngine.bindTexture(textureSheet); + mc.renderEngine.func_110577_a(BLOCK_TEXTURE); - while (true) { - int x = 0; + if (liquidIcon != null) { + while (true) { + int x; - if (squaled > 16) { - x = 16; - squaled -= 16; - } else { - x = squaled; - squaled = 0; - } + if (squaled > 16) { + x = 16; + squaled -= 16; + } else { + x = squaled; + squaled = 0; + } - drawTexturedModelRectFromIcon(j + col, k + line + 58 - x - start, liquidIcon, 16, 16 - (16 - x)); - start = start + 16; + drawTexturedModelRectFromIcon(j + col, k + line + 58 - x - start, liquidIcon, 16, 16 - (16 - x)); + start = start + 16; - if (x == 0 || squaled == 0) { - break; + if (x == 0 || squaled == 0) { + break; + } } } - mc.renderEngine.bindTexture(DefaultProps.TEXTURE_PATH_GUI + "/combustion_engine_gui.png"); + mc.renderEngine.func_110577_a(TEXTURE); drawTexturedModalRect(j + col, k + line, 176, 0, 16, 60); } - } diff --git a/common/buildcraft/energy/gui/GuiEngine.java b/common/buildcraft/energy/gui/GuiEngine.java index feb11673..e7394596 100644 --- a/common/buildcraft/energy/gui/GuiEngine.java +++ b/common/buildcraft/energy/gui/GuiEngine.java @@ -1,16 +1,19 @@ package buildcraft.energy.gui; -import net.minecraft.client.Minecraft; -import net.minecraft.inventory.IInventory; import buildcraft.BuildCraftCore; import buildcraft.core.CoreIconProvider; import buildcraft.core.gui.BuildCraftContainer; import buildcraft.core.gui.GuiBuildCraft; import buildcraft.core.utils.StringUtils; import buildcraft.energy.TileEngine; +import net.minecraft.client.Minecraft; +import net.minecraft.inventory.IInventory; +import net.minecraft.util.ResourceLocation; public abstract class GuiEngine extends GuiBuildCraft { + private static final ResourceLocation ITEM_TEXTURE = new ResourceLocation("/gui/items.png"); + protected class EngineLedger extends Ledger { TileEngine engine; @@ -31,7 +34,7 @@ public abstract class GuiEngine extends GuiBuildCraft { drawBackground(x, y); // Draw icon - Minecraft.getMinecraft().renderEngine.bindTexture("/gui/items.png"); + Minecraft.getMinecraft().renderEngine.func_110577_a(ITEM_TEXTURE); drawIcon(BuildCraftCore.iconProvider.getIcon(CoreIconProvider.ENERGY), x + 3, y + 4); if (!isFullyOpened()) diff --git a/common/buildcraft/energy/gui/GuiSteamEngine.java b/common/buildcraft/energy/gui/GuiStoneEngine.java similarity index 69% rename from common/buildcraft/energy/gui/GuiSteamEngine.java rename to common/buildcraft/energy/gui/GuiStoneEngine.java index 4627e641..dee51ab7 100644 --- a/common/buildcraft/energy/gui/GuiSteamEngine.java +++ b/common/buildcraft/energy/gui/GuiStoneEngine.java @@ -1,25 +1,24 @@ /** - * Copyright (c) SpaceToad, 2011 - * http://www.mod-buildcraft.com + * Copyright (c) SpaceToad, 2011 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 + * 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.energy.gui; -import net.minecraft.entity.player.InventoryPlayer; - -import org.lwjgl.opengl.GL11; - import buildcraft.core.DefaultProps; import buildcraft.core.utils.StringUtils; import buildcraft.energy.TileEngine; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.opengl.GL11; -public class GuiSteamEngine extends GuiEngine { +public class GuiStoneEngine extends GuiEngine { - public GuiSteamEngine(InventoryPlayer inventoryplayer, TileEngine tileEngine) { + private static final ResourceLocation TEXTURE = new ResourceLocation("buildcraft", DefaultProps.TEXTURE_PATH_GUI + "/steam_engine_gui.png"); + + public GuiStoneEngine(InventoryPlayer inventoryplayer, TileEngine tileEngine) { super(new ContainerEngine(inventoryplayer, tileEngine), tileEngine); } @@ -33,8 +32,8 @@ public class GuiSteamEngine extends GuiEngine { @Override protected void drawGuiContainerBackgroundLayer(float f, int x, int y) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - mc.renderEngine.bindTexture(DefaultProps.TEXTURE_PATH_GUI + "/steam_engine_gui.png"); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + mc.renderEngine.func_110577_a(TEXTURE); int j = (width - xSize) / 2; int k = (height - ySize) / 2; drawTexturedModalRect(j, k, 0, 0, xSize, ySize); diff --git a/common/buildcraft/energy/render/RenderEngine.java b/common/buildcraft/energy/render/RenderEngine.java index f17bfd7a..c6fc7e5a 100644 --- a/common/buildcraft/energy/render/RenderEngine.java +++ b/common/buildcraft/energy/render/RenderEngine.java @@ -7,27 +7,25 @@ */ package buildcraft.energy.render; -import static net.minecraftforge.common.ForgeDirection.DOWN; -import static net.minecraftforge.common.ForgeDirection.EAST; -import static net.minecraftforge.common.ForgeDirection.NORTH; -import static net.minecraftforge.common.ForgeDirection.SOUTH; -import static net.minecraftforge.common.ForgeDirection.UP; -import static net.minecraftforge.common.ForgeDirection.WEST; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.client.renderer.tileentity.TileEntityRenderer; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.ForgeDirection; - -import org.lwjgl.opengl.GL11; - import buildcraft.BuildCraftCore; import buildcraft.BuildCraftCore.RenderMode; import buildcraft.core.DefaultProps; import buildcraft.core.IInventoryRenderer; import buildcraft.energy.TileEngine; import buildcraft.energy.TileEngine.EnergyStage; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.client.renderer.tileentity.TileEntityRenderer; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.ForgeDirection; +import static net.minecraftforge.common.ForgeDirection.DOWN; +import static net.minecraftforge.common.ForgeDirection.EAST; +import static net.minecraftforge.common.ForgeDirection.NORTH; +import static net.minecraftforge.common.ForgeDirection.SOUTH; +import static net.minecraftforge.common.ForgeDirection.UP; +import static net.minecraftforge.common.ForgeDirection.WEST; +import org.lwjgl.opengl.GL11; public class RenderEngine extends TileEntitySpecialRenderer implements IInventoryRenderer { diff --git a/common/buildcraft/energy/worldgen/OilPopulate.java b/common/buildcraft/energy/worldgen/OilPopulate.java index 37f2ce8c..efaf647e 100644 --- a/common/buildcraft/energy/worldgen/OilPopulate.java +++ b/common/buildcraft/energy/worldgen/OilPopulate.java @@ -7,27 +7,32 @@ */ package buildcraft.energy.worldgen; -import java.util.Random; - -import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase; -import net.minecraftforge.event.ForgeSubscribe; -import net.minecraftforge.event.terraingen.TerrainGen; import buildcraft.BuildCraftCore; import buildcraft.BuildCraftEnergy; + import java.util.HashSet; +import java.util.Random; import java.util.Set; import net.minecraft.block.Block; import net.minecraft.block.BlockFlower; import net.minecraft.block.BlockFluid; import net.minecraft.block.material.Material; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.chunk.Chunk; import net.minecraftforge.common.BiomeDictionary; +import static net.minecraftforge.common.BiomeDictionary.Type.DESERT; +import static net.minecraftforge.common.BiomeDictionary.Type.FOREST; +import static net.minecraftforge.common.BiomeDictionary.Type.FROZEN; +import static net.minecraftforge.common.BiomeDictionary.Type.WASTELAND; import net.minecraftforge.common.EnumHelper; import net.minecraftforge.common.ForgeDirection; +import net.minecraftforge.event.ForgeSubscribe; import net.minecraftforge.event.terraingen.PopulateChunkEvent; import net.minecraftforge.event.terraingen.PopulateChunkEvent.Populate.EventType; -import static net.minecraftforge.common.BiomeDictionary.Type.*; +import net.minecraftforge.event.terraingen.TerrainGen; +import net.minecraftforge.fluids.BlockFluidBase; +import net.minecraftforge.fluids.IFluidBlock; public class OilPopulate { @@ -145,7 +150,7 @@ public class OilPopulate { int distance = poolX * poolX + poolY * poolY + poolZ * poolZ; if (distance <= radiusSq) { - world.setBlock(poolX + wellX, poolY + wellY, poolZ + wellZ, BuildCraftEnergy.oilStill.blockID, 0, distance == radiusSq ? 3 : 2); + world.setBlock(poolX + wellX, poolY + wellY, poolZ + wellZ, BuildCraftEnergy.blockOil.blockID, 0, distance == radiusSq ? 3 : 2); } } } @@ -177,15 +182,15 @@ public class OilPopulate { } } for (int y = baseY + 1; y <= maxHeight; ++y) { - world.setBlock(wellX, y, wellZ, BuildCraftEnergy.oilStill.blockID); + world.setBlock(wellX, y, wellZ, BuildCraftEnergy.blockOil.blockID); } if (type == GenType.LARGE) { for (int y = wellY; y <= maxHeight - wellHeight / 2; ++y) { - world.setBlock(wellX + 1, y, wellZ, BuildCraftEnergy.oilStill.blockID); - world.setBlock(wellX - 1, y, wellZ, BuildCraftEnergy.oilStill.blockID); - world.setBlock(wellX, y, wellZ + 1, BuildCraftEnergy.oilStill.blockID); - world.setBlock(wellX, y, wellZ - 1, BuildCraftEnergy.oilStill.blockID); + world.setBlock(wellX + 1, y, wellZ, BuildCraftEnergy.blockOil.blockID); + world.setBlock(wellX - 1, y, wellZ, BuildCraftEnergy.blockOil.blockID); + world.setBlock(wellX, y, wellZ + 1, BuildCraftEnergy.blockOil.blockID); + world.setBlock(wellX, y, wellZ - 1, BuildCraftEnergy.blockOil.blockID); } } @@ -248,18 +253,15 @@ public class OilPopulate { } } - /** - * TODO: This might need adjustment when more liquids have blocks - */ - private boolean isOilOrWater(World world, int x, int y, int z) { + private boolean isReplaceableFluid(World world, int x, int y, int z) { int blockId = world.getBlockId(x, y, z); Block block = Block.blocksList[blockId]; - return block instanceof BlockFluid && block.blockMaterial != Material.lava; + return (block instanceof BlockFluid || block instanceof IFluidBlock) && block.blockMaterial != Material.lava; } private boolean isOil(World world, int x, int y, int z) { int blockId = world.getBlockId(x, y, z); - return (blockId == BuildCraftEnergy.oilStill.blockID || blockId == BuildCraftEnergy.oilMoving.blockID); + return (blockId == BuildCraftEnergy.blockOil.blockID); } private boolean isReplaceableForLake(World world, BiomeGenBase biome, int x, int y, int z) { @@ -313,8 +315,8 @@ public class OilPopulate { if (!world.isAirBlock(x, y + 2, z)) { return; } - if (isOilOrWater(world, x, y, z) || world.isBlockSolidOnSide(x, y - 1, z, ForgeDirection.UP)) { - world.setBlock(x, y, z, BuildCraftEnergy.oilStill.blockID, 0, update); + if (isReplaceableFluid(world, x, y, z) || world.isBlockSolidOnSide(x, y - 1, z, ForgeDirection.UP)) { + world.setBlock(x, y, z, BuildCraftEnergy.blockOil.blockID, 0, update); } else { return; } @@ -323,10 +325,10 @@ public class OilPopulate { } for (int d = 1; d <= depth - 1; d++) { - if (isOilOrWater(world, x, y - d, z) || !world.isBlockSolidOnSide(x, y - d - 1, z, ForgeDirection.UP)) { + if (isReplaceableFluid(world, x, y - d, z) || !world.isBlockSolidOnSide(x, y - d - 1, z, ForgeDirection.UP)) { return; } - world.setBlock(x, y - d, z, BuildCraftEnergy.oilStill.blockID, 0, 2); + world.setBlock(x, y - d, z, BuildCraftEnergy.blockOil.blockID, 0, 2); } } } @@ -347,6 +349,9 @@ public class OilPopulate { if (block instanceof BlockFluid) { return y; } + if (block instanceof IFluidBlock) { + return y; + } if (!block.blockMaterial.blocksMovement()) { continue; } diff --git a/common/buildcraft/factory/BlockAutoWorkbench.java b/common/buildcraft/factory/BlockAutoWorkbench.java index 9e6bcc4b..83a7b4a4 100644 --- a/common/buildcraft/factory/BlockAutoWorkbench.java +++ b/common/buildcraft/factory/BlockAutoWorkbench.java @@ -9,15 +9,6 @@ package buildcraft.factory; -import java.util.ArrayList; - -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Icon; -import net.minecraft.world.World; import buildcraft.BuildCraftFactory; import buildcraft.core.BlockBuildCraft; import buildcraft.core.GuiIds; @@ -25,6 +16,14 @@ import buildcraft.core.IItemPipe; import buildcraft.core.proxy.CoreProxy; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import java.util.ArrayList; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Icon; +import net.minecraft.world.World; public class BlockAutoWorkbench extends BlockBuildCraft { diff --git a/common/buildcraft/factory/BlockFrame.java b/common/buildcraft/factory/BlockFrame.java index 911a4b95..a6a155db 100644 --- a/common/buildcraft/factory/BlockFrame.java +++ b/common/buildcraft/factory/BlockFrame.java @@ -9,10 +9,14 @@ package buildcraft.factory; +import buildcraft.BuildCraftCore; +import buildcraft.core.IFramePipeConnection; +import buildcraft.core.utils.Utils; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import java.util.ArrayList; import java.util.List; import java.util.Random; - import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IconRegister; @@ -23,11 +27,6 @@ import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import buildcraft.BuildCraftCore; -import buildcraft.core.IFramePipeConnection; -import buildcraft.core.utils.Utils; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; public class BlockFrame extends Block implements IFramePipeConnection { diff --git a/common/buildcraft/factory/BlockHopper.java b/common/buildcraft/factory/BlockHopper.java index cc5dd2da..d46484b6 100644 --- a/common/buildcraft/factory/BlockHopper.java +++ b/common/buildcraft/factory/BlockHopper.java @@ -1,14 +1,5 @@ package buildcraft.factory; -import java.util.ArrayList; - -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Icon; -import net.minecraft.world.World; import buildcraft.BuildCraftCore; import buildcraft.BuildCraftFactory; import buildcraft.core.BlockBuildCraft; @@ -17,6 +8,14 @@ import buildcraft.core.IItemPipe; import buildcraft.core.proxy.CoreProxy; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import java.util.ArrayList; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Icon; +import net.minecraft.world.World; public class BlockHopper extends BlockBuildCraft { diff --git a/common/buildcraft/factory/BlockMachineRoot.java b/common/buildcraft/factory/BlockMachineRoot.java index f2769d3f..843301e7 100644 --- a/common/buildcraft/factory/BlockMachineRoot.java +++ b/common/buildcraft/factory/BlockMachineRoot.java @@ -9,12 +9,12 @@ package buildcraft.factory; +import buildcraft.core.CreativeTabBuildCraft; +import buildcraft.core.IMachine; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.IBlockAccess; -import buildcraft.core.CreativeTabBuildCraft; -import buildcraft.core.IMachine; public abstract class BlockMachineRoot extends BlockContainer { diff --git a/common/buildcraft/factory/BlockMiningWell.java b/common/buildcraft/factory/BlockMiningWell.java index 512668f4..85712ae5 100644 --- a/common/buildcraft/factory/BlockMiningWell.java +++ b/common/buildcraft/factory/BlockMiningWell.java @@ -9,21 +9,20 @@ package buildcraft.factory; -import java.util.ArrayList; - -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.EntityLiving; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Icon; -import net.minecraft.world.World; -import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftFactory; import buildcraft.api.core.Position; import buildcraft.core.utils.Utils; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import java.util.ArrayList; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Icon; +import net.minecraft.world.World; +import net.minecraftforge.common.ForgeDirection; public class BlockMiningWell extends BlockMachineRoot { @@ -55,7 +54,7 @@ public class BlockMiningWell extends BlockMachineRoot { } @Override - public void onBlockPlacedBy(World world, int i, int j, int k, EntityLiving entityliving, ItemStack stack) { + public void onBlockPlacedBy(World world, int i, int j, int k, EntityLivingBase entityliving, ItemStack stack) { ForgeDirection orientation = Utils.get2dOrientation(new Position(entityliving.posX, entityliving.posY, entityliving.posZ), new Position(i, j, k)); world.setBlockMetadataWithNotify(i, j, k, orientation.getOpposite().ordinal(),1); @@ -66,7 +65,7 @@ public class BlockMiningWell extends BlockMachineRoot { super.breakBlock(world, x, y, z, id, meta); removePipes(world, x, y, z); } - + public void removePipes(World world, int x, int y, int z) { for (int depth = y - 1; depth > 0; depth--) { int pipeID = world.getBlockId(x, depth, z); diff --git a/common/buildcraft/factory/BlockPlainPipe.java b/common/buildcraft/factory/BlockPlainPipe.java index 4ceaf997..13a0f444 100644 --- a/common/buildcraft/factory/BlockPlainPipe.java +++ b/common/buildcraft/factory/BlockPlainPipe.java @@ -9,18 +9,17 @@ package buildcraft.factory; +import buildcraft.core.IFramePipeConnection; +import buildcraft.core.utils.Utils; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import java.util.ArrayList; import java.util.Random; - import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.item.ItemStack; import net.minecraft.world.IBlockAccess; -import buildcraft.core.IFramePipeConnection; -import buildcraft.core.utils.Utils; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; public class BlockPlainPipe extends Block implements IFramePipeConnection { diff --git a/common/buildcraft/factory/BlockPump.java b/common/buildcraft/factory/BlockPump.java index 930146a9..5036a4f2 100644 --- a/common/buildcraft/factory/BlockPump.java +++ b/common/buildcraft/factory/BlockPump.java @@ -9,8 +9,11 @@ package buildcraft.factory; +import buildcraft.core.CreativeTabBuildCraft; +import buildcraft.core.utils.Utils; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import java.util.ArrayList; - import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IconRegister; @@ -18,10 +21,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Icon; import net.minecraft.world.World; -import buildcraft.core.CreativeTabBuildCraft; -import buildcraft.core.utils.Utils; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; public class BlockPump extends BlockContainer { diff --git a/common/buildcraft/factory/BlockQuarry.java b/common/buildcraft/factory/BlockQuarry.java index 430b039e..ecee8fbd 100644 --- a/common/buildcraft/factory/BlockQuarry.java +++ b/common/buildcraft/factory/BlockQuarry.java @@ -9,18 +9,6 @@ package buildcraft.factory; -import java.util.ArrayList; - -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Icon; -import net.minecraft.world.World; -import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftFactory; import buildcraft.api.core.Position; import buildcraft.api.tools.IToolWrench; @@ -29,6 +17,17 @@ import buildcraft.core.proxy.CoreProxy; import buildcraft.core.utils.Utils; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import java.util.ArrayList; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Icon; +import net.minecraft.world.World; +import net.minecraftforge.common.ForgeDirection; public class BlockQuarry extends BlockMachineRoot { @@ -45,7 +44,7 @@ public class BlockQuarry extends BlockMachineRoot { } @Override - public void onBlockPlacedBy(World world, int i, int j, int k, EntityLiving entityliving, ItemStack stack) { + public void onBlockPlacedBy(World world, int i, int j, int k, EntityLivingBase entityliving, ItemStack stack) { super.onBlockPlacedBy(world, i, j, k, entityliving, stack); ForgeDirection orientation = Utils.get2dOrientation(new Position(entityliving.posX, entityliving.posY, entityliving.posZ), new Position(i, j, k)); diff --git a/common/buildcraft/factory/BlockRefinery.java b/common/buildcraft/factory/BlockRefinery.java index aa45630a..a95790cc 100644 --- a/common/buildcraft/factory/BlockRefinery.java +++ b/common/buildcraft/factory/BlockRefinery.java @@ -7,21 +7,6 @@ */ package buildcraft.factory; -import java.util.ArrayList; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Icon; -import net.minecraft.world.World; -import net.minecraftforge.common.ForgeDirection; -import net.minecraftforge.liquids.LiquidContainerRegistry; -import net.minecraftforge.liquids.LiquidStack; import buildcraft.BuildCraftCore; import buildcraft.BuildCraftFactory; import buildcraft.api.core.Position; @@ -32,6 +17,20 @@ import buildcraft.core.proxy.CoreProxy; import buildcraft.core.utils.Utils; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import java.util.ArrayList; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Icon; +import net.minecraft.world.World; +import net.minecraftforge.common.ForgeDirection; +import net.minecraftforge.fluids.FluidContainerRegistry; +import net.minecraftforge.fluids.FluidStack; public class BlockRefinery extends BlockContainer { @@ -69,7 +68,7 @@ public class BlockRefinery extends BlockContainer { } @Override - public void onBlockPlacedBy(World world, int i, int j, int k, EntityLiving entityliving, ItemStack stack) { + public void onBlockPlacedBy(World world, int i, int j, int k, EntityLivingBase entityliving, ItemStack stack) { super.onBlockPlacedBy(world, i, j, k, entityliving, stack); ForgeDirection orientation = Utils.get2dOrientation(new Position(entityliving.posX, entityliving.posY, entityliving.posZ), new Position(i, j, k)); @@ -109,7 +108,7 @@ public class BlockRefinery extends BlockContainer { return true; } else { - LiquidStack liquid = LiquidContainerRegistry.getLiquidForFilledItem(entityplayer.getCurrentEquippedItem()); + FluidStack liquid = FluidContainerRegistry.getFluidForFilledItem(entityplayer.getCurrentEquippedItem()); if (liquid != null) { int qty = ((TileRefinery) world.getBlockTileEntity(i, j, k)).fill(ForgeDirection.UNKNOWN, liquid, true); diff --git a/common/buildcraft/factory/BlockTank.java b/common/buildcraft/factory/BlockTank.java index 64541d25..2362bbf6 100644 --- a/common/buildcraft/factory/BlockTank.java +++ b/common/buildcraft/factory/BlockTank.java @@ -9,8 +9,12 @@ package buildcraft.factory; +import buildcraft.BuildCraftCore; +import buildcraft.core.CreativeTabBuildCraft; +import buildcraft.core.utils.Utils; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import java.util.ArrayList; - import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IconRegister; @@ -21,13 +25,8 @@ import net.minecraft.util.Icon; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.ForgeDirection; -import net.minecraftforge.liquids.LiquidContainerRegistry; -import net.minecraftforge.liquids.LiquidStack; -import buildcraft.BuildCraftCore; -import buildcraft.core.CreativeTabBuildCraft; -import buildcraft.core.utils.Utils; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; +import net.minecraftforge.fluids.FluidContainerRegistry; +import net.minecraftforge.fluids.FluidStack; public class BlockTank extends BlockContainer { @@ -93,7 +92,7 @@ public class BlockTank extends BlockContainer { ItemStack current = entityplayer.inventory.getCurrentItem(); if (current != null) { - LiquidStack liquid = LiquidContainerRegistry.getLiquidForFilledItem(current); + FluidStack liquid = FluidContainerRegistry.getFluidForFilledItem(current); TileTank tank = (TileTank) world.getBlockTileEntity(i, j, k); @@ -110,11 +109,11 @@ public class BlockTank extends BlockContainer { // Handle empty containers } else { - LiquidStack available = tank.getTanks(ForgeDirection.UNKNOWN)[0].getLiquid(); + FluidStack available = tank.getTankInfo(ForgeDirection.UNKNOWN)[0].fluid; if (available != null) { - ItemStack filled = LiquidContainerRegistry.fillLiquidContainer(available, current); + ItemStack filled = FluidContainerRegistry.fillFluidContainer(available, current); - liquid = LiquidContainerRegistry.getLiquidForFilledItem(filled); + liquid = FluidContainerRegistry.getFluidForFilledItem(filled); if (liquid != null) { if (!BuildCraftCore.debugMode && !entityplayer.capabilities.isCreativeMode) { diff --git a/common/buildcraft/factory/BptBlockAutoWorkbench.java b/common/buildcraft/factory/BptBlockAutoWorkbench.java index 5fad3b8c..4d43674c 100644 --- a/common/buildcraft/factory/BptBlockAutoWorkbench.java +++ b/common/buildcraft/factory/BptBlockAutoWorkbench.java @@ -9,14 +9,13 @@ package buildcraft.factory; -import java.util.LinkedList; - -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; import buildcraft.api.blueprints.BptBlock; import buildcraft.api.blueprints.BptBlockUtils; import buildcraft.api.blueprints.BptSlotInfo; import buildcraft.api.blueprints.IBptContext; +import java.util.LinkedList; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; @Deprecated public class BptBlockAutoWorkbench extends BptBlock { diff --git a/common/buildcraft/factory/BptBlockFrame.java b/common/buildcraft/factory/BptBlockFrame.java index fd860e13..6f8c0e15 100644 --- a/common/buildcraft/factory/BptBlockFrame.java +++ b/common/buildcraft/factory/BptBlockFrame.java @@ -9,12 +9,11 @@ package buildcraft.factory; -import java.util.LinkedList; - -import net.minecraft.item.ItemStack; import buildcraft.api.blueprints.BptBlock; import buildcraft.api.blueprints.BptSlotInfo; import buildcraft.api.blueprints.IBptContext; +import java.util.LinkedList; +import net.minecraft.item.ItemStack; @Deprecated public class BptBlockFrame extends BptBlock { diff --git a/common/buildcraft/factory/BptBlockRefinery.java b/common/buildcraft/factory/BptBlockRefinery.java index f4d6a094..8651abe6 100644 --- a/common/buildcraft/factory/BptBlockRefinery.java +++ b/common/buildcraft/factory/BptBlockRefinery.java @@ -8,10 +8,10 @@ package buildcraft.factory; -import net.minecraftforge.common.ForgeDirection; import buildcraft.api.blueprints.BptBlock; import buildcraft.api.blueprints.BptSlotInfo; import buildcraft.api.blueprints.IBptContext; +import net.minecraftforge.common.ForgeDirection; @Deprecated public class BptBlockRefinery extends BptBlock { diff --git a/common/buildcraft/factory/EntityMechanicalArm.java b/common/buildcraft/factory/EntityMechanicalArm.java index 6137e288..682373cf 100644 --- a/common/buildcraft/factory/EntityMechanicalArm.java +++ b/common/buildcraft/factory/EntityMechanicalArm.java @@ -9,11 +9,11 @@ package buildcraft.factory; +import buildcraft.core.EntityBlock; import net.minecraft.entity.Entity; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; -import buildcraft.core.EntityBlock; public class EntityMechanicalArm extends Entity { EntityBlock xArm, yArm, zArm, head; diff --git a/common/buildcraft/factory/FactoryProxy.java b/common/buildcraft/factory/FactoryProxy.java index 47d097be..f150464b 100644 --- a/common/buildcraft/factory/FactoryProxy.java +++ b/common/buildcraft/factory/FactoryProxy.java @@ -1,8 +1,8 @@ package buildcraft.factory; -import net.minecraft.world.World; import buildcraft.core.EntityBlock; import cpw.mods.fml.common.SidedProxy; +import net.minecraft.world.World; public class FactoryProxy { @SidedProxy(clientSide = "buildcraft.factory.FactoryProxyClient", serverSide = "buildcraft.factory.FactoryProxy") diff --git a/common/buildcraft/factory/FactoryProxyClient.java b/common/buildcraft/factory/FactoryProxyClient.java index 276a6e5e..daebdc08 100644 --- a/common/buildcraft/factory/FactoryProxyClient.java +++ b/common/buildcraft/factory/FactoryProxyClient.java @@ -1,9 +1,5 @@ package buildcraft.factory; -import java.lang.reflect.Method; - -import net.minecraft.util.Icon; -import net.minecraft.world.World; import buildcraft.BuildCraftCore; import buildcraft.BuildCraftFactory; import buildcraft.core.EntityBlock; @@ -16,6 +12,9 @@ import buildcraft.factory.render.RenderRefinery; import buildcraft.factory.render.RenderTank; import cpw.mods.fml.client.registry.ClientRegistry; import cpw.mods.fml.client.registry.RenderingRegistry; +import java.lang.reflect.Method; +import net.minecraft.util.Icon; +import net.minecraft.world.World; public class FactoryProxyClient extends FactoryProxy { public static Icon pumpTexture; diff --git a/common/buildcraft/factory/GuiHandler.java b/common/buildcraft/factory/GuiHandler.java index 2101e32c..ae8be321 100644 --- a/common/buildcraft/factory/GuiHandler.java +++ b/common/buildcraft/factory/GuiHandler.java @@ -1,8 +1,5 @@ package buildcraft.factory; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; import buildcraft.core.GuiIds; import buildcraft.factory.gui.ContainerAutoWorkbench; import buildcraft.factory.gui.ContainerHopper; @@ -11,6 +8,9 @@ import buildcraft.factory.gui.GuiAutoCrafting; import buildcraft.factory.gui.GuiHopper; import buildcraft.factory.gui.GuiRefinery; import cpw.mods.fml.common.network.IGuiHandler; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; public class GuiHandler implements IGuiHandler { diff --git a/common/buildcraft/factory/PumpDimensionList.java b/common/buildcraft/factory/PumpDimensionList.java index b2334831..f293776d 100644 --- a/common/buildcraft/factory/PumpDimensionList.java +++ b/common/buildcraft/factory/PumpDimensionList.java @@ -3,68 +3,67 @@ package buildcraft.factory; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; - -import net.minecraftforge.liquids.LiquidDictionary; -import net.minecraftforge.liquids.LiquidStack; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; public class PumpDimensionList { public PumpDimensionList(String string) { - + entries = new LinkedList(); - + for(String entryString : string.trim().split(",")) { - + Entry e = new Entry(); - + if(entryString.startsWith("+/")) { e.isWhitelist = true; } else if(entryString.startsWith("-/")) { e.isWhitelist = false; } else throw new RuntimeException("Malformed pumping.controlList entry: "+entryString+" (must start with +/ or -/)"); - + entryString = entryString.substring(2); int i = entryString.indexOf('/'); - + if(i < 0) throw new RuntimeException("Malformed pumping.controlList entry: "+entryString+" (missing second /)"); - + String dimIDString = entryString.substring(0, i); - + if(dimIDString.equals("*")) e.matchAnyDim = true; else e.dimID = Integer.parseInt(dimIDString); - + e.liquidName = entryString.substring(i + 1); if(e.liquidName.equals("*")) - e.matchAnyLiquid = true; - + e.matchAnyFluid = true; + entries.add(0, e); } - + entries = new ArrayList(entries); } private class Entry { boolean isWhitelist; - LiquidStack liquidStack; + FluidStack liquidStack; String liquidName; int dimID; - boolean matchAnyLiquid; + boolean matchAnyFluid; boolean matchAnyDim; - - private void initLiquidStack() { - liquidStack = LiquidDictionary.getLiquid(liquidName, 1); + + private void initFluidStack() { + liquidStack = FluidRegistry.getFluidStack(liquidName, 1); if(liquidStack == null) throw new RuntimeException("Configuration error: unknown liquid "+liquidName+" in pumping.controlList"); } - - boolean matches(LiquidStack liquid, int dim) { - if(!matchAnyLiquid) { + + boolean matches(FluidStack liquid, int dim) { + if(!matchAnyFluid) { if(liquidStack == null) - initLiquidStack(); - if(!liquidStack.isLiquidEqual(liquid)) + initFluidStack(); + if(!liquidStack.isFluidEqual(liquid)) return false; } if(!matchAnyDim && dimID != dim) @@ -72,15 +71,15 @@ public class PumpDimensionList { return true; } } - + private List entries; - public boolean isLiquidAllowed(LiquidStack liquid, int dim) { + public boolean isFluidAllowed(FluidStack liquid, int dim) { for(Entry e : entries) if(e.matches(liquid, dim)) return e.isWhitelist; return false; } - - + + } diff --git a/common/buildcraft/factory/TileAutoWorkbench.java b/common/buildcraft/factory/TileAutoWorkbench.java index 51a17fdd..bb06e664 100644 --- a/common/buildcraft/factory/TileAutoWorkbench.java +++ b/common/buildcraft/factory/TileAutoWorkbench.java @@ -8,26 +8,25 @@ package buildcraft.factory; import buildcraft.core.TileBuildCraft; +import buildcraft.core.inventory.InventoryConcatenator; import buildcraft.core.inventory.InventoryIterator; import buildcraft.core.inventory.InventoryIterator.IInvSlot; -import buildcraft.core.inventory.InventoryMapper; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.inventory.InventoryCrafting; -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.IRecipe; -import net.minecraft.nbt.NBTTagCompound; +import buildcraft.core.inventory.SimpleInventory; import buildcraft.core.inventory.StackHelper; import buildcraft.core.proxy.CoreProxy; import buildcraft.core.utils.CraftingHelper; -import buildcraft.core.inventory.SimpleInventory; -import buildcraft.core.inventory.TransactorRoundRobin; import buildcraft.core.utils.Utils; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.ISidedInventory; import net.minecraft.inventory.InventoryCraftResult; +import net.minecraft.inventory.InventoryCrafting; import net.minecraft.inventory.SlotCrafting; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.IRecipe; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ChatMessageComponent; import net.minecraft.util.ChunkCoordinates; import net.minecraftforge.common.ForgeDirection; @@ -36,12 +35,11 @@ public class TileAutoWorkbench extends TileBuildCraft implements ISidedInventory public static final int SLOT_RESULT = 0; public static final int CRAFT_TIME = 256; public static final int UPDATE_TIME = 16; - private static final int[] SLOTS = Utils.createSlotArray(0, 5); - private SimpleInventory inv = new SimpleInventory(5, "Auto Workbench", 64); - private IInventory invBuffer = new InventoryMapper(inv, 1, 4); + private static final int[] SLOTS = Utils.createSlotArray(0, 10); + private SimpleInventory resultInv = new SimpleInventory(1, "Auto Workbench", 64); public InventoryCrafting craftMatrix = new LocalInventoryCrafting(); + private IInventory inv = InventoryConcatenator.make().add(resultInv).add(craftMatrix); public boolean useLast; - private final TransactorRoundRobin transactor = new TransactorRoundRobin(craftMatrix); private EntityPlayer internalPlayer; private SlotCrafting craftSlot; private InventoryCraftResult craftResult = new InventoryCraftResult(); @@ -63,15 +61,14 @@ public class TileAutoWorkbench extends TileBuildCraft implements ISidedInventory private final class InternalPlayer extends EntityPlayer { public InternalPlayer() { - super(TileAutoWorkbench.this.worldObj); + super(TileAutoWorkbench.this.worldObj, "[BuildCraft]"); posX = TileAutoWorkbench.this.xCoord; posY = TileAutoWorkbench.this.yCoord + 1; posZ = TileAutoWorkbench.this.zCoord; - username = "[Buildcraft]"; } @Override - public void sendChatToPlayer(String var1) { + public void sendChatToPlayer(ChatMessageComponent var1) { } @Override @@ -93,7 +90,7 @@ public class TileAutoWorkbench extends TileBuildCraft implements ISidedInventory @Override public int getSizeInventory() { - return inv.getSizeInventory(); + return 10; } @Override @@ -118,13 +115,11 @@ public class TileAutoWorkbench extends TileBuildCraft implements ISidedInventory @Override public String getInvName() { - return ""; } @Override public int getInventoryStackLimit() { - return 64; } @@ -136,7 +131,7 @@ public class TileAutoWorkbench extends TileBuildCraft implements ISidedInventory @Override public void readFromNBT(NBTTagCompound data) { super.readFromNBT(data); - inv.readFromNBT(data); + resultInv.readFromNBT(data); Utils.readInvFromNBT(craftMatrix, "matrix", data); // Legacy Code @@ -152,7 +147,7 @@ public class TileAutoWorkbench extends TileBuildCraft implements ISidedInventory @Override public void writeToNBT(NBTTagCompound data) { super.writeToNBT(data); - inv.writeToNBT(data); + resultInv.writeToNBT(data); Utils.writeInvToNBT(craftMatrix, "matrix", data); } @@ -197,13 +192,13 @@ public class TileAutoWorkbench extends TileBuildCraft implements ISidedInventory return; } - processHiddenBuffer(); + balanceSlots(); if (craftSlot == null) { internalPlayer = new InternalPlayer(); craftSlot = new SlotCrafting(internalPlayer, craftMatrix, craftResult, 0, 0, 0); } - if (inv.getStackInSlot(SLOT_RESULT) != null) { + if (resultInv.getStackInSlot(SLOT_RESULT) != null) { return; } update++; @@ -217,22 +212,26 @@ public class TileAutoWorkbench extends TileBuildCraft implements ISidedInventory } /** - * Moves items out of the hidden input buffer into the craft grid. + * Evenly redistributes items between all the slots. */ - private void processHiddenBuffer() { - for (IInvSlot slot : InventoryIterator.getIterable(invBuffer, ForgeDirection.UP)) { - ItemStack stack = slot.getStackInSlot(); - if (stack == null) { + private void balanceSlots() { + for (IInvSlot slotA : InventoryIterator.getIterable(craftMatrix, ForgeDirection.UP)) { + ItemStack stackA = slotA.getStackInSlot(); + if (stackA == null) continue; - } - if (!gridHasRoomFor(stack)) { - slot.setStackInSlot(null); - Utils.dropItems(worldObj, stack, xCoord, yCoord + 1, zCoord); - continue; - } - stack.stackSize -= transactor.add(stack, ForgeDirection.DOWN, true).stackSize; - if (stack.stackSize <= 0) { - slot.setStackInSlot(null); + for (IInvSlot slotB : InventoryIterator.getIterable(craftMatrix, ForgeDirection.UP)) { + if (slotA.getIndex() == slotB.getIndex()) + continue; + ItemStack stackB = slotB.getStackInSlot(); + if (stackB == null) + continue; + if (StackHelper.instance().canStacksMerge(stackA, stackB)) { + if (stackA.stackSize > stackB.stackSize + 1) { + stackA.stackSize--; + stackB.stackSize++; + return; + } + } } } } @@ -262,7 +261,7 @@ public class TileAutoWorkbench extends TileBuildCraft implements ISidedInventory } result = result.copy(); craftSlot.onPickupFromSlot(internalPlayer, result); - inv.setInventorySlotContents(SLOT_RESULT, result); + resultInv.setInventorySlotContents(SLOT_RESULT, result); // clean fake player inventory (crafting handler support) for (IInvSlot slot : InventoryIterator.getIterable(internalPlayer.inventory, ForgeDirection.UP)) { @@ -288,20 +287,18 @@ public class TileAutoWorkbench extends TileBuildCraft implements ISidedInventory } @Override - public boolean isStackValidForSlot(int slot, ItemStack stack) { - if (slot == SLOT_RESULT) { + public boolean isItemValidForSlot(int slot, ItemStack stack) { + if (slot == SLOT_RESULT) return false; - } - if (stack == null) { + if (stack == null) return false; - } - if (!stack.isStackable()) { + if (!stack.isStackable()) return false; - } - if (stack.getItem().hasContainerItem()) { + if (stack.getItem().hasContainerItem()) return false; - } - return gridHasRoomFor(stack); + if (getStackInSlot(slot) == null) + return false; + return true; } @Override @@ -311,7 +308,7 @@ public class TileAutoWorkbench extends TileBuildCraft implements ISidedInventory @Override public boolean canInsertItem(int slot, ItemStack stack, int side) { - return isStackValidForSlot(slot, stack); + return isItemValidForSlot(slot, stack); } @Override @@ -319,23 +316,6 @@ public class TileAutoWorkbench extends TileBuildCraft implements ISidedInventory return slot == SLOT_RESULT; } - /** - * Check if there is room for the stack in the crafting grid. - * - * @param input - * @return true if in grid - */ - private boolean gridHasRoomFor(ItemStack input) { - int space = 0; - for (IInvSlot slot : InventoryIterator.getIterable(craftMatrix, ForgeDirection.UP)) { - ItemStack stack = slot.getStackInSlot(); - if (StackHelper.instance().canStacksMerge(stack, input)) { - space += stack.getMaxStackSize() - stack.stackSize; - } - } - return space >= input.stackSize; - } - /** * Returns true if there are only enough inputs for a single craft job. * diff --git a/common/buildcraft/factory/TileHopper.java b/common/buildcraft/factory/TileHopper.java index d61f7dc3..74cec761 100644 --- a/common/buildcraft/factory/TileHopper.java +++ b/common/buildcraft/factory/TileHopper.java @@ -1,16 +1,16 @@ package buildcraft.factory; +import buildcraft.core.TileBuildCraft; +import buildcraft.core.inventory.ITransactor; +import buildcraft.core.inventory.SimpleInventory; +import buildcraft.core.inventory.Transactor; +import buildcraft.core.proxy.CoreProxy; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.ForgeDirection; -import buildcraft.core.TileBuildCraft; -import buildcraft.core.inventory.ITransactor; -import buildcraft.core.inventory.Transactor; -import buildcraft.core.proxy.CoreProxy; -import buildcraft.core.inventory.SimpleInventory; public class TileHopper extends TileBuildCraft implements IInventory { @@ -112,7 +112,7 @@ public class TileHopper extends TileBuildCraft implements IInventory { } @Override - public boolean isStackValidForSlot(int i, ItemStack itemstack) { + public boolean isItemValidForSlot(int i, ItemStack itemstack) { return true; } } diff --git a/common/buildcraft/factory/TileMiningWell.java b/common/buildcraft/factory/TileMiningWell.java index dee4a54d..d19f5013 100644 --- a/common/buildcraft/factory/TileMiningWell.java +++ b/common/buildcraft/factory/TileMiningWell.java @@ -7,12 +7,6 @@ */ package buildcraft.factory; -import java.util.List; - -import net.minecraft.entity.item.EntityItem; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; -import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftCore; import buildcraft.BuildCraftFactory; import buildcraft.api.gates.IAction; @@ -25,6 +19,11 @@ import buildcraft.core.IMachine; import buildcraft.core.TileBuildCraft; import buildcraft.core.utils.BlockUtil; import buildcraft.core.utils.Utils; +import java.util.List; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import net.minecraftforge.common.ForgeDirection; public class TileMiningWell extends TileBuildCraft implements IMachine, IPowerReceptor, IPipeConnection { @@ -121,7 +120,7 @@ public class TileMiningWell extends TileBuildCraft implements IMachine, IPowerRe } @Override - public boolean manageLiquids() { + public boolean manageFluids() { return false; } diff --git a/common/buildcraft/factory/TilePump.java b/common/buildcraft/factory/TilePump.java index 20f25289..1193f400 100644 --- a/common/buildcraft/factory/TilePump.java +++ b/common/buildcraft/factory/TilePump.java @@ -7,21 +7,6 @@ */ package buildcraft.factory; -import java.util.HashSet; -import java.util.LinkedList; -import java.util.Set; -import java.util.TreeMap; -import java.util.TreeSet; - -import net.minecraft.block.Block; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.ForgeDirection; -import net.minecraftforge.liquids.ILiquidTank; -import net.minecraftforge.liquids.ITankContainer; -import net.minecraftforge.liquids.LiquidContainerRegistry; -import net.minecraftforge.liquids.LiquidStack; -import net.minecraftforge.liquids.LiquidTank; import buildcraft.BuildCraftCore; import buildcraft.BuildCraftFactory; import buildcraft.api.core.Position; @@ -38,13 +23,28 @@ import buildcraft.core.network.PacketPayload; import buildcraft.core.network.PacketUpdate; import buildcraft.core.proxy.CoreProxy; import buildcraft.core.utils.Utils; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.Set; +import java.util.TreeMap; +import java.util.TreeSet; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.ForgeDirection; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidContainerRegistry; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.FluidTank; +import net.minecraftforge.fluids.FluidTankInfo; +import net.minecraftforge.fluids.IFluidHandler; -public class TilePump extends TileBuildCraft implements IMachine, IPowerReceptor, ITankContainer { +public class TilePump extends TileBuildCraft implements IMachine, IPowerReceptor, IFluidHandler { - public static int MAX_LIQUID = LiquidContainerRegistry.BUCKET_VOLUME; + public static int MAX_LIQUID = FluidContainerRegistry.BUCKET_VOLUME * 16; EntityBlock tube; private TreeMap> blocksToPump = new TreeMap>(); - LiquidTank tank; + FluidTank tank; double tubeY = Double.NaN; int aimY = 0; private PowerHandler powerHandler; @@ -52,7 +52,7 @@ public class TilePump extends TileBuildCraft implements IMachine, IPowerReceptor public TilePump() { powerHandler = new PowerHandler(this, Type.MACHINE); initPowerProvider(); - tank = new LiquidTank(MAX_LIQUID); + tank = new FluidTank(MAX_LIQUID); } private void initPowerProvider() { @@ -81,19 +81,19 @@ public class TilePump extends TileBuildCraft implements IMachine, IPowerReceptor return; } - if (tank.getLiquid() == null || tank.getLiquid().amount <= 0) { + if (tank.getFluid() == null || tank.getFluid().amount <= 0) { BlockIndex index = getNextIndexToPump(false); - if (isPumpableLiquid(index)) { - LiquidStack liquidToPump = Utils.liquidFromBlockId(worldObj.getBlockId(index.i, index.j, index.k)); + if (isPumpableFluid(index)) { + FluidStack liquidToPump = Utils.drainBlock(worldObj, index.i, index.j, index.k, false); if (tank.fill(liquidToPump, false) == liquidToPump.amount) { if (powerHandler.useEnergy(10, 10, true) == 10) { index = getNextIndexToPump(true); - if (liquidToPump.itemID != Block.waterStill.blockID || BuildCraftCore.consumeWaterSources) { - worldObj.setBlock(index.i, index.j, index.k, 0); + if (liquidToPump.getFluid() != FluidRegistry.WATER || BuildCraftCore.consumeWaterSources) { + Utils.drainBlock(worldObj, index.i, index.j, index.k, true); } tank.fill(liquidToPump, true); @@ -111,7 +111,7 @@ public class TilePump extends TileBuildCraft implements IMachine, IPowerReceptor if (getNextIndexToPump(false) == null) { for (int y = yCoord - 1; y > 0; --y) { - if (isLiquid(new BlockIndex(xCoord, y, zCoord))) { + if (isFluid(new BlockIndex(xCoord, y, zCoord))) { aimY = y; return; } else if (!worldObj.isAirBlock(xCoord, y, zCoord)) { @@ -124,7 +124,7 @@ public class TilePump extends TileBuildCraft implements IMachine, IPowerReceptor } } - LiquidStack liquid = tank.getLiquid(); + FluidStack liquid = tank.getFluid(); if (liquid != null && liquid.amount >= 0) { for (int i = 0; i < 6; ++i) { Position p = new Position(xCoord, yCoord, zCoord, ForgeDirection.values()[i]); @@ -132,8 +132,8 @@ public class TilePump extends TileBuildCraft implements IMachine, IPowerReceptor TileEntity tile = worldObj.getBlockTileEntity((int) p.x, (int) p.y, (int) p.z); - if (tile instanceof ITankContainer) { - int moved = ((ITankContainer) tile).fill(p.orientation.getOpposite(), liquid, true); + if (tile instanceof IFluidHandler) { + int moved = ((IFluidHandler) tile).fill(p.orientation.getOpposite(), liquid, true); tank.drain(moved, true); if (liquid.amount <= 0) { break; @@ -209,10 +209,10 @@ public class TilePump extends TileBuildCraft implements IMachine, IPowerReceptor liquidId = worldObj.getBlockId(x, y, z); - if (!isLiquid(new BlockIndex(x, y, z))) + if (!isFluid(new BlockIndex(x, y, z))) return; - addToPumpIfLiquid(new BlockIndex(x, y, z), markedBlocks, lastFound, pumpList, liquidId); + addToPumpIfFluid(new BlockIndex(x, y, z), markedBlocks, lastFound, pumpList, liquidId); long timeoutTime = System.currentTimeMillis() + 1000; @@ -221,10 +221,10 @@ public class TilePump extends TileBuildCraft implements IMachine, IPowerReceptor lastFound.clear(); for (BlockIndex index : visitIteration) { - addToPumpIfLiquid(new BlockIndex(index.i + 1, index.j, index.k), markedBlocks, lastFound, pumpList, liquidId); - addToPumpIfLiquid(new BlockIndex(index.i - 1, index.j, index.k), markedBlocks, lastFound, pumpList, liquidId); - addToPumpIfLiquid(new BlockIndex(index.i, index.j, index.k + 1), markedBlocks, lastFound, pumpList, liquidId); - addToPumpIfLiquid(new BlockIndex(index.i, index.j, index.k - 1), markedBlocks, lastFound, pumpList, liquidId); + addToPumpIfFluid(new BlockIndex(index.i + 1, index.j, index.k), markedBlocks, lastFound, pumpList, liquidId); + addToPumpIfFluid(new BlockIndex(index.i - 1, index.j, index.k), markedBlocks, lastFound, pumpList, liquidId); + addToPumpIfFluid(new BlockIndex(index.i, index.j, index.k + 1), markedBlocks, lastFound, pumpList, liquidId); + addToPumpIfFluid(new BlockIndex(index.i, index.j, index.k - 1), markedBlocks, lastFound, pumpList, liquidId); if (!blocksToPump.containsKey(index.j + 1)) { blocksToPump.put(index.j + 1, new LinkedList()); @@ -232,7 +232,7 @@ public class TilePump extends TileBuildCraft implements IMachine, IPowerReceptor pumpList = blocksToPump.get(index.j + 1); - addToPumpIfLiquid(new BlockIndex(index.i, index.j + 1, index.k), markedBlocks, lastFound, pumpList, liquidId); + addToPumpIfFluid(new BlockIndex(index.i, index.j + 1, index.k), markedBlocks, lastFound, pumpList, liquidId); if (System.currentTimeMillis() > timeoutTime) return; @@ -240,7 +240,7 @@ public class TilePump extends TileBuildCraft implements IMachine, IPowerReceptor } } - public void addToPumpIfLiquid(BlockIndex index, Set markedBlocks, TreeSet lastFound, LinkedList pumpList, + public void addToPumpIfFluid(BlockIndex index, Set markedBlocks, TreeSet lastFound, LinkedList pumpList, int liquidId) { if (liquidId != worldObj.getBlockId(index.i, index.j, index.k)) @@ -250,70 +250,63 @@ public class TilePump extends TileBuildCraft implements IMachine, IPowerReceptor if ((index.i - xCoord) * (index.i - xCoord) + (index.k - zCoord) * (index.k - zCoord) > 64 * 64) return; - if (isPumpableLiquid(index)) { + if (isPumpableFluid(index)) { pumpList.push(index); } - if (isLiquid(index)) { + if (isFluid(index)) { lastFound.add(index); } } } - private boolean isPumpableLiquid(BlockIndex index) { - return isLiquid(index) && worldObj.getBlockMetadata(index.i, index.j, index.k) == 0; + private boolean isPumpableFluid(BlockIndex index) { + return isFluid(index) && worldObj.getBlockMetadata(index.i, index.j, index.k) == 0; } - private boolean isLiquid(BlockIndex index) { + private boolean isFluid(BlockIndex index) { if (index == null) return false; - LiquidStack liquid = Utils.liquidFromBlockId(worldObj.getBlockId(index.i, index.j, index.k)); + FluidStack liquid = Utils.drainBlock(worldObj, index.i, index.j, index.k, false); if (liquid == null) return false; - return BuildCraftFactory.pumpDimensionList.isLiquidAllowed(liquid, worldObj.provider.dimensionId); + return BuildCraftFactory.pumpDimensionList.isFluidAllowed(liquid, worldObj.provider.dimensionId); } @Override - public void readFromNBT(NBTTagCompound nbttagcompound) { - super.readFromNBT(nbttagcompound); + public void readFromNBT(NBTTagCompound data) { + super.readFromNBT(data); - if (nbttagcompound.hasKey("internalLiquid")) { - tank.setLiquid(new LiquidStack(nbttagcompound.getInteger("liquidId"), nbttagcompound.getInteger("internalLiquid"))); - } else if (nbttagcompound.hasKey("tank")) { - tank.setLiquid(LiquidStack.loadLiquidStackFromNBT(nbttagcompound.getCompoundTag("tank"))); - } - aimY = nbttagcompound.getInteger("aimY"); + powerHandler.readFromNBT(data); + tank.readFromNBT(data); - tubeY = nbttagcompound.getFloat("tubeY"); + aimY = data.getInteger("aimY"); + tubeY = data.getFloat("tubeY"); - powerHandler.readFromNBT(nbttagcompound); initPowerProvider(); } @Override - public void writeToNBT(NBTTagCompound nbttagcompound) { - super.writeToNBT(nbttagcompound); + public void writeToNBT(NBTTagCompound data) { + super.writeToNBT(data); - powerHandler.writeToNBT(nbttagcompound); + powerHandler.writeToNBT(data); + tank.writeToNBT(data); - if (tank.getLiquid() != null) { - nbttagcompound.setTag("tank", tank.getLiquid().writeToNBT(new NBTTagCompound())); - } - - nbttagcompound.setInteger("aimY", aimY); + data.setInteger("aimY", aimY); if (tube != null) { - nbttagcompound.setFloat("tubeY", (float) tube.posY); + data.setFloat("tubeY", (float) tube.posY); } else { - nbttagcompound.setFloat("tubeY", yCoord); + data.setFloat("tubeY", yCoord); } } @Override public boolean isActive() { - return isPumpableLiquid(getNextIndexToPump(false)); + return isPumpableFluid(getNextIndexToPump(false)); } @Override @@ -327,33 +320,27 @@ public class TilePump extends TileBuildCraft implements IMachine, IPowerReceptor @Override public PacketPayload getPacketPayload() { - PacketPayload payload = new PacketPayload(4, 1, 0); - if (tank.getLiquid() != null) { - payload.intPayload[0] = tank.getLiquid().itemID; - payload.intPayload[1] = tank.getLiquid().itemMeta; - payload.intPayload[2] = tank.getLiquid().amount; + PacketPayload payload = new PacketPayload(3, 1, 0); + if (tank.getFluid() != null) { + payload.intPayload[0] = tank.getFluid().getFluid().getID(); + payload.intPayload[1] = tank.getFluid().amount; } else { payload.intPayload[0] = 0; payload.intPayload[1] = 0; - payload.intPayload[2] = 0; } - payload.intPayload[3] = aimY; + payload.intPayload[2] = aimY; payload.floatPayload[0] = (float) tubeY; return payload; } - @Override - public void handleDescriptionPacket(PacketUpdate packet) { - handleUpdatePacket(packet); - } - @Override public void handleUpdatePacket(PacketUpdate packet) { if (packet.payload.intPayload[0] > 0) { - tank.setLiquid(new LiquidStack(packet.payload.intPayload[0], packet.payload.intPayload[2], packet.payload.intPayload[1])); + FluidStack liquid = new FluidStack(FluidRegistry.getFluid(packet.payload.intPayload[0]), packet.payload.intPayload[2]); + tank.setFluid(liquid); } else { - tank.setLiquid(null); + tank.setFluid(null); } aimY = packet.payload.intPayload[3]; @@ -362,6 +349,11 @@ public class TilePump extends TileBuildCraft implements IMachine, IPowerReceptor setTubePosition(); } + @Override + public void handleDescriptionPacket(PacketUpdate packet) { + handleUpdatePacket(packet); + } + private void setTubePosition() { if (tube != null) { tube.iSize = Utils.pipeMaxPos - Utils.pipeMinPos; @@ -390,7 +382,7 @@ public class TilePump extends TileBuildCraft implements IMachine, IPowerReceptor } @Override - public boolean manageLiquids() { + public boolean manageFluids() { return true; } @@ -404,39 +396,37 @@ public class TilePump extends TileBuildCraft implements IMachine, IPowerReceptor return false; } - // ITankContainer implementation. + // IFluidHandler implementation. @Override - public int fill(ForgeDirection from, LiquidStack resource, boolean doFill) { + public int fill(ForgeDirection from, FluidStack resource, boolean doFill) { // not acceptable return 0; } @Override - public int fill(int tankIndex, LiquidStack resource, boolean doFill) { - // not acceptable - return 0; + public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) { + return tank.drain(maxDrain, doDrain); } @Override - public LiquidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) { - return drain(0, maxDrain, doDrain); + public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain) { + if (resource != null && !resource.isFluidEqual(tank.getFluid())) + return null; + return drain(from, resource.amount, doDrain); } @Override - public LiquidStack drain(int tankIndex, int maxDrain, boolean doDrain) { - if (tankIndex == 0) - return tank.drain(maxDrain, doDrain); - - return null; + public boolean canFill(ForgeDirection from, Fluid fluid) { + return false; } @Override - public ILiquidTank[] getTanks(ForgeDirection direction) { - return new ILiquidTank[]{tank}; + public boolean canDrain(ForgeDirection from, Fluid fluid) { + return true; } @Override - public ILiquidTank getTank(ForgeDirection direction, LiquidStack type) { - return tank; + public FluidTankInfo[] getTankInfo(ForgeDirection from) { + return new FluidTankInfo[]{tank.getInfo()}; } } diff --git a/common/buildcraft/factory/TileQuarry.java b/common/buildcraft/factory/TileQuarry.java index ff47b869..0a3d2327 100644 --- a/common/buildcraft/factory/TileQuarry.java +++ b/common/buildcraft/factory/TileQuarry.java @@ -7,21 +7,6 @@ */ package buildcraft.factory; -import java.util.LinkedList; -import java.util.List; -import java.util.Set; - -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.packet.Packet3Chat; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.ChunkCoordIntPair; -import net.minecraftforge.common.ForgeChunkManager; -import net.minecraftforge.common.ForgeChunkManager.Ticket; -import net.minecraftforge.common.ForgeChunkManager.Type; -import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftCore; import buildcraft.BuildCraftFactory; import buildcraft.builders.blueprints.Blueprint; @@ -45,13 +30,26 @@ import buildcraft.core.network.TileNetworkData; import buildcraft.core.proxy.CoreProxy; import buildcraft.core.utils.BlockUtil; import buildcraft.core.utils.Utils; - import com.google.common.collect.Lists; import com.google.common.collect.Sets; - import cpw.mods.fml.common.network.PacketDispatcher; import cpw.mods.fml.common.network.Player; +import java.util.LinkedList; +import java.util.List; import java.util.ListIterator; +import java.util.Set; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.packet.Packet3Chat; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.ChunkCoordIntPair; +import net.minecraftforge.common.ForgeChunkManager; +import net.minecraftforge.common.ForgeChunkManager.Ticket; +import net.minecraftforge.common.ForgeChunkManager.Type; +import net.minecraftforge.common.ForgeDirection; +import static net.minecraftforge.common.ForgeDirection.*; public class TileQuarry extends TileBuildCraft implements IMachine, IPowerReceptor, IPipeConnection, IBuilderInventory { @@ -669,7 +667,7 @@ public class TileQuarry extends TileBuildCraft implements IMachine, IPowerRecept } @Override - public boolean manageLiquids() { + public boolean manageFluids() { return false; } @@ -718,7 +716,7 @@ public class TileQuarry extends TileBuildCraft implements IMachine, IPowerRecept } @Override - public boolean isStackValidForSlot(int i, ItemStack itemstack) { + public boolean isItemValidForSlot(int i, ItemStack itemstack) { return false; } diff --git a/common/buildcraft/factory/TileRefinery.java b/common/buildcraft/factory/TileRefinery.java index 17a61b08..8868ea3d 100644 --- a/common/buildcraft/factory/TileRefinery.java +++ b/common/buildcraft/factory/TileRefinery.java @@ -7,18 +7,6 @@ */ package buildcraft.factory; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ICrafting; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.common.ForgeDirection; -import net.minecraftforge.liquids.ILiquidTank; -import net.minecraftforge.liquids.ITankContainer; -import net.minecraftforge.liquids.LiquidContainerRegistry; -import net.minecraftforge.liquids.LiquidStack; -import net.minecraftforge.liquids.LiquidTank; import buildcraft.BuildCraftCore; import buildcraft.api.core.SafeTimeTracker; import buildcraft.api.gates.IAction; @@ -32,15 +20,27 @@ import buildcraft.core.TileBuildCraft; import buildcraft.core.network.PacketPayload; import buildcraft.core.network.PacketUpdate; import buildcraft.core.proxy.CoreProxy; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.ICrafting; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.common.ForgeDirection; +import net.minecraftforge.fluids.FluidContainerRegistry; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.FluidTank; +import net.minecraftforge.fluids.IFluidHandler; +import net.minecraftforge.fluids.IFluidTank; -public class TileRefinery extends TileBuildCraft implements ITankContainer, IPowerReceptor, IInventory, IMachine { +public class TileRefinery extends TileBuildCraft implements IFluidHandler, IPowerReceptor, IInventory, IMachine { private int[] filters = new int[2]; private int[] filtersMeta = new int[2]; - public static int LIQUID_PER_SLOT = LiquidContainerRegistry.BUCKET_VOLUME * 4; - public LiquidTank ingredient1 = new LiquidTank(LIQUID_PER_SLOT); - public LiquidTank ingredient2 = new LiquidTank(LIQUID_PER_SLOT); - public LiquidTank result = new LiquidTank(LIQUID_PER_SLOT); + public static int LIQUID_PER_SLOT = FluidContainerRegistry.BUCKET_VOLUME * 4; + public FluidTank ingredient1 = new FluidTank(LIQUID_PER_SLOT); + public FluidTank ingredient2 = new FluidTank(LIQUID_PER_SLOT); + public FluidTank result = new FluidTank(LIQUID_PER_SLOT); public float animationSpeed = 1; private int animationStage = 0; SafeTimeTracker time = new SafeTimeTracker(); @@ -93,7 +93,7 @@ public class TileRefinery extends TileBuildCraft implements ITankContainer, IPow } @Override - public boolean isStackValidForSlot(int i, ItemStack itemstack) { + public boolean isItemValidForSlot(int i, ItemStack itemstack) { return false; } @@ -130,14 +130,15 @@ public class TileRefinery extends TileBuildCraft implements ITankContainer, IPow RefineryRecipe currentRecipe = null; - currentRecipe = RefineryRecipe.findRefineryRecipe(ingredient1.getLiquid(), ingredient2.getLiquid()); + currentRecipe = RefineryRecipe.findRefineryRecipe(ingredient1.getFluid().getFluid(), ingredient2.getFluid().getFluid()); + FluidStack recipeStack = new FluidStack(currentRecipe.result, amount); if (currentRecipe == null) { decreaseAnimation(); return; } - if (result.getLiquid() != null && result.getLiquid().amount != 0 && !result.getLiquid().isLiquidEqual(currentRecipe.result)) { + if (result.getFluid() != null && result.getFluid().amount != 0 && !result.getFluid().getFluid().equals(currentRecipe.result)) { decreaseAnimation(); return; } @@ -172,22 +173,22 @@ public class TileRefinery extends TileBuildCraft implements ITankContainer, IPow } } - private boolean containsInput(LiquidStack liquid) { + private boolean containsInput(FluidStack liquid) { if (liquid == null) return true; - return (ingredient1.getLiquid() != null && ingredient1.getLiquid().containsLiquid(liquid)) - || (ingredient2.getLiquid() != null && ingredient2.getLiquid().containsLiquid(liquid)); + return (ingredient1.getFluid() != null && ingredient1.getFluid().containsFluid(liquid)) + || (ingredient2.getFluid() != null && ingredient2.getFluid().containsFluid(liquid)); } - private boolean consumeInput(LiquidStack liquid) { + private boolean consumeInput(FluidStack liquid) { if (liquid == null) return true; - if (ingredient1.getLiquid() != null && ingredient1.getLiquid().containsLiquid(liquid)) { + if (ingredient1.getFluid() != null && ingredient1.getFluid().containsFluid(liquid)) { ingredient1.drain(liquid.amount, true); return true; - } else if (ingredient2.getLiquid() != null && ingredient2.getLiquid().containsLiquid(liquid)) { + } else if (ingredient2.getFluid() != null && ingredient2.getFluid().containsFluid(liquid)) { ingredient2.drain(liquid.amount, true); return true; } @@ -201,7 +202,7 @@ public class TileRefinery extends TileBuildCraft implements ITankContainer, IPow } @Override - public boolean manageLiquids() { + public boolean manageFluids() { return true; } @@ -211,7 +212,7 @@ public class TileRefinery extends TileBuildCraft implements ITankContainer, IPow } // for compatibility - private LiquidStack readSlotNBT(NBTTagCompound nbttagcompound) { + private FluidStack readSlotNBT(NBTTagCompound nbttagcompound) { int liquidId = nbttagcompound.getInteger("liquidId"); int quantity = 0; int liquidMeta = 0; @@ -224,7 +225,7 @@ public class TileRefinery extends TileBuildCraft implements ITankContainer, IPow } if (quantity > 0) - return new LiquidStack(liquidId, quantity, liquidMeta); + return new FluidStack(liquidId, quantity, liquidMeta); return null; } @@ -234,18 +235,18 @@ public class TileRefinery extends TileBuildCraft implements ITankContainer, IPow super.readFromNBT(nbttagcompound); if (nbttagcompound.hasKey("slot1")) { - ingredient1.setLiquid(readSlotNBT(nbttagcompound.getCompoundTag("slot1"))); - ingredient2.setLiquid(readSlotNBT(nbttagcompound.getCompoundTag("slot2"))); - result.setLiquid(readSlotNBT(nbttagcompound.getCompoundTag("result"))); + ingredient1.setFluid(readSlotNBT(nbttagcompound.getCompoundTag("slot1"))); + ingredient2.setFluid(readSlotNBT(nbttagcompound.getCompoundTag("slot2"))); + result.setFluid(readSlotNBT(nbttagcompound.getCompoundTag("result"))); } else { if (nbttagcompound.hasKey("ingredient1")) { - ingredient1.setLiquid(LiquidStack.loadLiquidStackFromNBT(nbttagcompound.getCompoundTag("ingredient1"))); + ingredient1.setFluid(FluidStack.loadFluidStackFromNBT(nbttagcompound.getCompoundTag("ingredient1"))); } if (nbttagcompound.hasKey("ingredient2")) { - ingredient2.setLiquid(LiquidStack.loadLiquidStackFromNBT(nbttagcompound.getCompoundTag("ingredient2"))); + ingredient2.setFluid(FluidStack.loadFluidStackFromNBT(nbttagcompound.getCompoundTag("ingredient2"))); } if (nbttagcompound.hasKey("result")) { - result.setLiquid(LiquidStack.loadLiquidStackFromNBT(nbttagcompound.getCompoundTag("result"))); + result.setFluid(FluidStack.loadFluidStackFromNBT(nbttagcompound.getCompoundTag("result"))); } } @@ -265,16 +266,16 @@ public class TileRefinery extends TileBuildCraft implements ITankContainer, IPow public void writeToNBT(NBTTagCompound nbttagcompound) { super.writeToNBT(nbttagcompound); - if (ingredient1.getLiquid() != null) { - nbttagcompound.setTag("ingredient1", ingredient1.getLiquid().writeToNBT(new NBTTagCompound())); + if (ingredient1.getFluid() != null) { + nbttagcompound.setTag("ingredient1", ingredient1.getFluid().writeToNBT(new NBTTagCompound())); } - if (ingredient2.getLiquid() != null) { - nbttagcompound.setTag("ingredient2", ingredient2.getLiquid().writeToNBT(new NBTTagCompound())); + if (ingredient2.getFluid() != null) { + nbttagcompound.setTag("ingredient2", ingredient2.getFluid().writeToNBT(new NBTTagCompound())); } - if (result.getLiquid() != null) { - nbttagcompound.setTag("result", result.getLiquid().writeToNBT(new NBTTagCompound())); + if (result.getFluid() != null) { + nbttagcompound.setTag("result", result.getFluid().writeToNBT(new NBTTagCompound())); } nbttagcompound.setInteger("animationStage", animationStage); @@ -389,9 +390,9 @@ public class TileRefinery extends TileBuildCraft implements ITankContainer, IPow /* ITANKCONTAINER */ @Override - public int fill(ForgeDirection from, LiquidStack resource, boolean doFill) { + public int fill(ForgeDirection from, FluidStack resource, boolean doFill) { int used = 0; - LiquidStack resourceUsing = resource.copy(); + FluidStack resourceUsing = resource.copy(); if (filters[0] != 0 || filters[1] != 0) { if (filters[0] == resource.itemID && filtersMeta[0] == resource.itemMeta) { @@ -418,7 +419,7 @@ public class TileRefinery extends TileBuildCraft implements ITankContainer, IPow } @Override - public int fill(int tankIndex, LiquidStack resource, boolean doFill) { + public int fill(int tankIndex, FluidStack resource, boolean doFill) { if (tankIndex == 0 && resource.itemID == filters[0] && resource.itemMeta == filtersMeta[0]) return ingredient1.fill(resource, doFill); @@ -428,12 +429,12 @@ public class TileRefinery extends TileBuildCraft implements ITankContainer, IPow } @Override - public LiquidStack drain(ForgeDirection from, int maxEmpty, boolean doDrain) { + public FluidStack drain(ForgeDirection from, int maxEmpty, boolean doDrain) { return drain(2, maxEmpty, doDrain); } @Override - public LiquidStack drain(int tankIndex, int maxEmpty, boolean doDrain) { + public FluidStack drain(int tankIndex, int maxEmpty, boolean doDrain) { if (tankIndex == 2) return result.drain(maxEmpty, doDrain); @@ -441,12 +442,12 @@ public class TileRefinery extends TileBuildCraft implements ITankContainer, IPow } @Override - public ILiquidTank[] getTanks(ForgeDirection direction) { - return new ILiquidTank[]{ingredient1, ingredient2, result}; + public IFluidTank[] getTanks(ForgeDirection direction) { + return new IFluidTank[]{ingredient1, ingredient2, result}; } @Override - public ILiquidTank getTank(ForgeDirection direction, LiquidStack type) { + public IFluidTank getTank(ForgeDirection direction, FluidStack type) { ForgeDirection dir = ForgeDirection.getOrientation(worldObj.getBlockMetadata(xCoord, yCoord, zCoord)); switch (direction) { @@ -497,28 +498,28 @@ public class TileRefinery extends TileBuildCraft implements ITankContainer, IPow @Override public PacketPayload getPacketPayload() { PacketPayload payload = new PacketPayload(9, 1, 0); - if (ingredient1.getLiquid() != null) { - payload.intPayload[0] = ingredient1.getLiquid().itemID; - payload.intPayload[1] = ingredient1.getLiquid().itemMeta; - payload.intPayload[2] = ingredient1.getLiquid().amount; + if (ingredient1.getFluid() != null) { + payload.intPayload[0] = ingredient1.getFluid().itemID; + payload.intPayload[1] = ingredient1.getFluid().itemMeta; + payload.intPayload[2] = ingredient1.getFluid().amount; } else { payload.intPayload[0] = 0; payload.intPayload[1] = 0; payload.intPayload[2] = 0; } - if (ingredient2.getLiquid() != null) { - payload.intPayload[3] = ingredient2.getLiquid().itemID; - payload.intPayload[4] = ingredient2.getLiquid().itemMeta; - payload.intPayload[5] = ingredient2.getLiquid().amount; + if (ingredient2.getFluid() != null) { + payload.intPayload[3] = ingredient2.getFluid().itemID; + payload.intPayload[4] = ingredient2.getFluid().itemMeta; + payload.intPayload[5] = ingredient2.getFluid().amount; } else { payload.intPayload[3] = 0; payload.intPayload[4] = 0; payload.intPayload[5] = 0; } - if (result.getLiquid() != null) { - payload.intPayload[6] = result.getLiquid().itemID; - payload.intPayload[7] = result.getLiquid().itemMeta; - payload.intPayload[8] = result.getLiquid().amount; + if (result.getFluid() != null) { + payload.intPayload[6] = result.getFluid().itemID; + payload.intPayload[7] = result.getFluid().itemMeta; + payload.intPayload[8] = result.getFluid().amount; } else { payload.intPayload[6] = 0; payload.intPayload[7] = 0; @@ -532,21 +533,21 @@ public class TileRefinery extends TileBuildCraft implements ITankContainer, IPow @Override public void handleUpdatePacket(PacketUpdate packet) { if (packet.payload.intPayload[0] > 0) { - ingredient1.setLiquid(new LiquidStack(packet.payload.intPayload[0], packet.payload.intPayload[2], packet.payload.intPayload[1])); + ingredient1.setFluid(new FluidStack(packet.payload.intPayload[0], packet.payload.intPayload[2], packet.payload.intPayload[1])); } else { - ingredient1.setLiquid(null); + ingredient1.setFluid(null); } if (packet.payload.intPayload[3] > 0) { - ingredient2.setLiquid(new LiquidStack(packet.payload.intPayload[3], packet.payload.intPayload[5], packet.payload.intPayload[4])); + ingredient2.setFluid(new FluidStack(packet.payload.intPayload[3], packet.payload.intPayload[5], packet.payload.intPayload[4])); } else { - ingredient2.setLiquid(null); + ingredient2.setFluid(null); } if (packet.payload.intPayload[6] > 0) { - result.setLiquid(new LiquidStack(packet.payload.intPayload[6], packet.payload.intPayload[8], packet.payload.intPayload[7])); + result.setFluid(new FluidStack(packet.payload.intPayload[6], packet.payload.intPayload[8], packet.payload.intPayload[7])); } else { - result.setLiquid(null); + result.setFluid(null); } animationSpeed = packet.payload.floatPayload[0]; diff --git a/common/buildcraft/factory/TileTank.java b/common/buildcraft/factory/TileTank.java index 08440487..4c44121f 100644 --- a/common/buildcraft/factory/TileTank.java +++ b/common/buildcraft/factory/TileTank.java @@ -7,26 +7,26 @@ */ package buildcraft.factory; -import static net.minecraftforge.common.ForgeDirection.DOWN; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.ForgeDirection; -import net.minecraftforge.liquids.ILiquidTank; -import net.minecraftforge.liquids.ITankContainer; -import net.minecraftforge.liquids.LiquidContainerRegistry; -import net.minecraftforge.liquids.LiquidStack; -import net.minecraftforge.liquids.LiquidTank; import buildcraft.BuildCraftCore; -import buildcraft.BuildCraftFactory; import buildcraft.api.core.SafeTimeTracker; import buildcraft.core.TileBuildCraft; import buildcraft.core.network.PacketPayload; import buildcraft.core.network.PacketUpdate; import buildcraft.core.proxy.CoreProxy; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.ForgeDirection; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidContainerRegistry; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.FluidTank; +import net.minecraftforge.fluids.FluidTankInfo; +import net.minecraftforge.fluids.IFluidHandler; -public class TileTank extends TileBuildCraft implements ITankContainer { +public class TileTank extends TileBuildCraft implements IFluidHandler { - public final LiquidTank tank = new LiquidTank(LiquidContainerRegistry.BUCKET_VOLUME * 16); + public final FluidTank tank = new FluidTank(FluidContainerRegistry.BUCKET_VOLUME * 16); public boolean hasUpdate = false; public SafeTimeTracker tracker = new SafeTimeTracker(); @@ -43,23 +43,21 @@ public class TileTank extends TileBuildCraft implements ITankContainer { } // Have liquid flow down into tanks below if any. - if (tank.getLiquid() != null) { - moveLiquidBelow(); + if (tank.getFluid() != null) { + moveFluidBelow(); } } /* NETWORK */ @Override public PacketPayload getPacketPayload() { - PacketPayload payload = new PacketPayload(3, 0, 0); - if (tank.getLiquid() != null) { - payload.intPayload[0] = tank.getLiquid().itemID; - payload.intPayload[1] = tank.getLiquid().itemMeta; - payload.intPayload[2] = tank.getLiquid().amount; + PacketPayload payload = new PacketPayload(2, 0, 0); + if (tank.getFluid() != null) { + payload.intPayload[0] = tank.getFluid().getFluid().getID(); + payload.intPayload[1] = tank.getFluid().amount; } else { payload.intPayload[0] = 0; payload.intPayload[1] = 0; - payload.intPayload[2] = 0; } return payload; } @@ -67,10 +65,10 @@ public class TileTank extends TileBuildCraft implements ITankContainer { @Override public void handleUpdatePacket(PacketUpdate packet) { if (packet.payload.intPayload[0] > 0) { - LiquidStack liquid = new LiquidStack(packet.payload.intPayload[0], packet.payload.intPayload[2], packet.payload.intPayload[1]); - tank.setLiquid(liquid); + FluidStack liquid = new FluidStack(FluidRegistry.getFluid(packet.payload.intPayload[0]), packet.payload.intPayload[2]); + tank.setFluid(liquid); } else { - tank.setLiquid(null); + tank.setFluid(null); } } @@ -78,24 +76,13 @@ public class TileTank extends TileBuildCraft implements ITankContainer { @Override public void readFromNBT(NBTTagCompound data) { super.readFromNBT(data); - - if (data.hasKey("stored") && data.hasKey("liquidId")) { - LiquidStack liquid = new LiquidStack(data.getInteger("liquidId"), data.getInteger("stored"), 0); - tank.setLiquid(liquid); - } else { - LiquidStack liquid = LiquidStack.loadLiquidStackFromNBT(data.getCompoundTag("tank")); - if (liquid != null) { - tank.setLiquid(liquid); - } - } + tank.readFromNBT(data); } @Override public void writeToNBT(NBTTagCompound data) { super.writeToNBT(data); - if (tank.containsValidLiquid()) { - data.setTag("tank", tank.getLiquid().writeToNBT(new NBTTagCompound())); - } + tank.writeToNBT(data); } /* HELPER FUNCTIONS */ @@ -152,15 +139,15 @@ public class TileTank extends TileBuildCraft implements ITankContainer { } } - public void moveLiquidBelow() { + public void moveFluidBelow() { TileTank below = getTankBelow(this); if (below == null) { return; } - int used = below.tank.fill(tank.getLiquid(), true); + int used = below.tank.fill(tank.getFluid(), true); if (used > 0) { - hasUpdate = true; // not redundant because tank.drain operates on an ILiquidTank, not a tile + hasUpdate = true; // not redundant because tank.drain operates on an IFluidTank, not a tile below.hasUpdate = true; // redundant because below.fill sets hasUpdate tank.drain(used, true); @@ -169,13 +156,8 @@ public class TileTank extends TileBuildCraft implements ITankContainer { /* ITANKCONTAINER */ @Override - public int fill(ForgeDirection from, LiquidStack resource, boolean doFill) { - return fill(0, resource, doFill); - } - - @Override - public int fill(int tankIndex, LiquidStack resource, boolean doFill) { - if (tankIndex != 0 || resource == null) { + public int fill(ForgeDirection from, FluidStack resource, boolean doFill) { + if (resource == null) { return 0; } @@ -183,8 +165,8 @@ public class TileTank extends TileBuildCraft implements ITankContainer { int totalUsed = 0; TileTank tankToFill = getBottomTank(); - LiquidStack liquid = tankToFill.tank.getLiquid(); - if (liquid != null && liquid.amount > 0 && !liquid.isLiquidEqual(resource)) { + FluidStack liquid = tankToFill.tank.getFluid(); + if (liquid != null && liquid.amount > 0 && !liquid.isFluidEqual(resource)) { return 0; } @@ -202,42 +184,44 @@ public class TileTank extends TileBuildCraft implements ITankContainer { } @Override - public LiquidStack drain(ForgeDirection from, int maxEmpty, boolean doDrain) { - return drain(0, maxEmpty, doDrain); - } - - @Override - public LiquidStack drain(int tankIndex, int maxEmpty, boolean doDrain) { + public FluidStack drain(ForgeDirection from, int maxEmpty, boolean doDrain) { TileTank bottom = getBottomTank(); bottom.hasUpdate = true; return bottom.tank.drain(maxEmpty, doDrain); } @Override - public ILiquidTank[] getTanks(ForgeDirection direction) { - LiquidTank compositeTank = new LiquidTank(tank.getCapacity()); + public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain) { + if (resource != null && !resource.isFluidEqual(tank.getFluid())) + return null; + return drain(from, resource.amount, doDrain); + } + + @Override + public FluidTankInfo[] getTankInfo(ForgeDirection direction) { + FluidTank compositeTank = new FluidTank(tank.getCapacity()); TileTank tile = getBottomTank(); int capacity = tank.getCapacity(); - if (tile != null && tile.tank.getLiquid() != null) { - compositeTank.setLiquid(tile.tank.getLiquid().copy()); + if (tile != null && tile.tank.getFluid() != null) { + compositeTank.setFluid(tile.tank.getFluid().copy()); } else { - return new ILiquidTank[]{compositeTank}; + return new FluidTankInfo[]{compositeTank.getInfo()}; } tile = getTankAbove(tile); while (tile != null) { - LiquidStack liquid = tile.tank.getLiquid(); + FluidStack liquid = tile.tank.getFluid(); if (liquid == null || liquid.amount == 0) { // NOOP - } else if (!compositeTank.getLiquid().isLiquidEqual(liquid)) { + } else if (!compositeTank.getFluid().isFluidEqual(liquid)) { break; } else { - compositeTank.getLiquid().amount += liquid.amount; + compositeTank.getFluid().amount += liquid.amount; } capacity += tile.tank.getCapacity(); @@ -245,14 +229,16 @@ public class TileTank extends TileBuildCraft implements ITankContainer { } compositeTank.setCapacity(capacity); - return new ILiquidTank[]{compositeTank}; + return new FluidTankInfo[]{compositeTank.getInfo()}; } @Override - public ILiquidTank getTank(ForgeDirection direction, LiquidStack type) { - if (direction == DOWN && worldObj != null && worldObj.getBlockId(xCoord, yCoord - 1, zCoord) != BuildCraftFactory.tankBlock.blockID) { - return tank; - } - return null; + public boolean canFill(ForgeDirection from, Fluid fluid) { + return true; + } + + @Override + public boolean canDrain(ForgeDirection from, Fluid fluid) { + return false; } } diff --git a/common/buildcraft/factory/gui/ContainerAutoWorkbench.java b/common/buildcraft/factory/gui/ContainerAutoWorkbench.java index 5e475e4b..11804d59 100644 --- a/common/buildcraft/factory/gui/ContainerAutoWorkbench.java +++ b/common/buildcraft/factory/gui/ContainerAutoWorkbench.java @@ -7,12 +7,6 @@ */ package buildcraft.factory.gui; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.InventoryCraftResult; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; import buildcraft.core.gui.BuildCraftContainer; import buildcraft.core.gui.slots.SlotOutput; import buildcraft.core.gui.slots.SlotUntouchable; @@ -21,7 +15,13 @@ import buildcraft.core.proxy.CoreProxy; import buildcraft.core.utils.StringUtils; import buildcraft.core.utils.Utils; import buildcraft.factory.TileAutoWorkbench; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.ICrafting; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.InventoryCraftResult; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; public class ContainerAutoWorkbench extends BuildCraftContainer { diff --git a/common/buildcraft/factory/gui/ContainerHopper.java b/common/buildcraft/factory/gui/ContainerHopper.java index 75697c56..701761ee 100644 --- a/common/buildcraft/factory/gui/ContainerHopper.java +++ b/common/buildcraft/factory/gui/ContainerHopper.java @@ -1,11 +1,11 @@ package buildcraft.factory.gui; +import buildcraft.core.gui.BuildCraftContainer; +import buildcraft.factory.TileHopper; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; -import buildcraft.core.gui.BuildCraftContainer; -import buildcraft.factory.TileHopper; public class ContainerHopper extends BuildCraftContainer { diff --git a/common/buildcraft/factory/gui/ContainerRefinery.java b/common/buildcraft/factory/gui/ContainerRefinery.java index 8986f597..403871f6 100644 --- a/common/buildcraft/factory/gui/ContainerRefinery.java +++ b/common/buildcraft/factory/gui/ContainerRefinery.java @@ -8,17 +8,17 @@ */ package buildcraft.factory.gui; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.ICrafting; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; import buildcraft.core.gui.BuildCraftContainer; import buildcraft.core.network.PacketIds; import buildcraft.core.network.PacketPayload; import buildcraft.core.network.PacketUpdate; import buildcraft.core.proxy.CoreProxy; import buildcraft.factory.TileRefinery; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.ICrafting; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; public class ContainerRefinery extends BuildCraftContainer { diff --git a/common/buildcraft/factory/gui/GuiAutoCrafting.java b/common/buildcraft/factory/gui/GuiAutoCrafting.java index 9a33fe23..8aa44f89 100644 --- a/common/buildcraft/factory/gui/GuiAutoCrafting.java +++ b/common/buildcraft/factory/gui/GuiAutoCrafting.java @@ -8,17 +8,17 @@ package buildcraft.factory.gui; import buildcraft.core.DefaultProps; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.world.World; - -import org.lwjgl.opengl.GL11; - import buildcraft.core.gui.GuiBuildCraft; import buildcraft.core.utils.StringUtils; import buildcraft.factory.TileAutoWorkbench; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; +import org.lwjgl.opengl.GL11; public class GuiAutoCrafting extends GuiBuildCraft { + public static final ResourceLocation gui = new ResourceLocation("buildcraft",DefaultProps.TEXTURE_PATH_GUI + "/autobench.png"); private TileAutoWorkbench bench; public GuiAutoCrafting(InventoryPlayer inventoryplayer, World world, TileAutoWorkbench tile) { @@ -30,7 +30,7 @@ public class GuiAutoCrafting extends GuiBuildCraft { public void onGuiClosed() { super.onGuiClosed(); if (this.mc.thePlayer != null) { - inventorySlots.onCraftGuiClosed(mc.thePlayer); + inventorySlots.onContainerClosed(mc.thePlayer); } } @@ -44,7 +44,7 @@ public class GuiAutoCrafting extends GuiBuildCraft { @Override protected void drawGuiContainerBackgroundLayer(float f, int mouseX, int mouseY) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - mc.renderEngine.bindTexture(DefaultProps.TEXTURE_PATH_GUI + "/autobench.png"); + mc.renderEngine.func_110577_a(gui); int x = (width - xSize) / 2; int y = (height - ySize) / 2; drawTexturedModalRect(x, y, 0, 0, xSize, ySize); diff --git a/common/buildcraft/factory/gui/GuiHopper.java b/common/buildcraft/factory/gui/GuiHopper.java index 00659245..5ab38dc3 100644 --- a/common/buildcraft/factory/gui/GuiHopper.java +++ b/common/buildcraft/factory/gui/GuiHopper.java @@ -1,15 +1,16 @@ package buildcraft.factory.gui; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.entity.player.InventoryPlayer; - -import org.lwjgl.opengl.GL11; - import buildcraft.core.DefaultProps; import buildcraft.factory.TileHopper; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.opengl.GL11; public class GuiHopper extends GuiContainer { + private static final ResourceLocation TEXTURE = new ResourceLocation("buildcraft", DefaultProps.TEXTURE_PATH_GUI + "/hopper_gui.png"); + public GuiHopper(InventoryPlayer inventory, TileHopper tile) { super(new ContainerHopper(inventory, tile)); // TODO Auto-generated constructor stub @@ -17,8 +18,8 @@ public class GuiHopper extends GuiContainer { @Override protected void drawGuiContainerBackgroundLayer(float f, int x, int y) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - mc.renderEngine.bindTexture(DefaultProps.TEXTURE_PATH_GUI + "/hopper_gui.png"); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + mc.renderEngine.func_110577_a(TEXTURE); int j = (width - xSize) / 2; int k = (height - ySize) / 2; drawTexturedModalRect(j, k, 0, 0, xSize, ySize); @@ -28,5 +29,4 @@ public class GuiHopper extends GuiContainer { protected void drawGuiContainerForegroundLayer(int par1, int par2) { super.drawGuiContainerForegroundLayer(par1, par2); } - } diff --git a/common/buildcraft/factory/gui/GuiRefinery.java b/common/buildcraft/factory/gui/GuiRefinery.java index e657f4b6..5b278e3f 100644 --- a/common/buildcraft/factory/gui/GuiRefinery.java +++ b/common/buildcraft/factory/gui/GuiRefinery.java @@ -9,21 +9,21 @@ package buildcraft.factory.gui; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.item.ItemStack; -import net.minecraftforge.liquids.LiquidContainerRegistry; -import net.minecraftforge.liquids.LiquidStack; - -import org.lwjgl.opengl.GL11; - import buildcraft.api.recipes.RefineryRecipe; import buildcraft.core.DefaultProps; import buildcraft.core.gui.GuiAdvancedInterface; import buildcraft.core.utils.StringUtils; import buildcraft.factory.TileRefinery; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.fluids.FluidContainerRegistry; +import net.minecraftforge.fluids.FluidStack; +import org.lwjgl.opengl.GL11; public class GuiRefinery extends GuiAdvancedInterface { + private static final ResourceLocation TEXTURE = new ResourceLocation("buildcraft", DefaultProps.TEXTURE_PATH_GUI + "/refinery_filter.png"); ContainerRefinery container; public GuiRefinery(InventoryPlayer inventory, TileRefinery refinery) { @@ -55,7 +55,7 @@ public class GuiRefinery extends GuiAdvancedInterface { @Override protected void drawGuiContainerBackgroundLayer(float f, int x, int y) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - mc.renderEngine.bindTexture(DefaultProps.TEXTURE_PATH_GUI + "/refinery_filter.png"); + mc.renderEngine.func_110577_a(TEXTURE); int j = (width - xSize) / 2; int k = (height - ySize) / 2; drawTexturedModalRect(j, k, 0, 0, xSize, ySize); @@ -80,7 +80,7 @@ public class GuiRefinery extends GuiAdvancedInterface { } if (slot != null) { - LiquidStack liquid = LiquidContainerRegistry.getLiquidForFilledItem(mc.thePlayer.inventory.getItemStack()); + FluidStack liquid = FluidContainerRegistry.getFluidForFilledItem(mc.thePlayer.inventory.getItemStack()); if (liquid == null) return; @@ -97,14 +97,15 @@ public class GuiRefinery extends GuiAdvancedInterface { ((ItemSlot) slots[0]).stack = filter0; ((ItemSlot) slots[1]).stack = filter1; - LiquidStack liquid0 = null; - LiquidStack liquid1 = null; + FluidStack liquid0 = null; + FluidStack liquid1 = null; + // TODO 1.6: Replace these with Phantom slots? -CovertJaguar if (filter0 != null) { - liquid0 = new LiquidStack(filter0.itemID, LiquidContainerRegistry.BUCKET_VOLUME, filter0.getItemDamage()); + liquid0 = new FluidStack(filter0.itemID, FluidContainerRegistry.BUCKET_VOLUME, filter0.getItemDamage()); } if (filter1 != null) { - liquid1 = new LiquidStack(filter1.itemID, LiquidContainerRegistry.BUCKET_VOLUME, filter1.getItemDamage()); + liquid1 = new FluidStack(filter1.itemID, FluidContainerRegistry.BUCKET_VOLUME, filter1.getItemDamage()); } RefineryRecipe recipe = RefineryRecipe.findRefineryRecipe(liquid0, liquid1); diff --git a/common/buildcraft/factory/network/PacketHandlerFactory.java b/common/buildcraft/factory/network/PacketHandlerFactory.java index c4d6240b..692ce104 100644 --- a/common/buildcraft/factory/network/PacketHandlerFactory.java +++ b/common/buildcraft/factory/network/PacketHandlerFactory.java @@ -1,18 +1,17 @@ package buildcraft.factory.network; -import java.io.ByteArrayInputStream; -import java.io.DataInputStream; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.network.INetworkManager; -import net.minecraft.network.packet.Packet250CustomPayload; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; import buildcraft.core.network.PacketIds; import buildcraft.core.network.PacketUpdate; import buildcraft.factory.TileRefinery; import cpw.mods.fml.common.network.IPacketHandler; import cpw.mods.fml.common.network.Player; +import java.io.ByteArrayInputStream; +import java.io.DataInputStream; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.network.INetworkManager; +import net.minecraft.network.packet.Packet250CustomPayload; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; public class PacketHandlerFactory implements IPacketHandler { diff --git a/common/buildcraft/factory/render/RenderHopper.java b/common/buildcraft/factory/render/RenderHopper.java index 0b855d2a..9f600b76 100644 --- a/common/buildcraft/factory/render/RenderHopper.java +++ b/common/buildcraft/factory/render/RenderHopper.java @@ -1,24 +1,24 @@ package buildcraft.factory.render; +import buildcraft.BuildCraftCore; +import buildcraft.BuildCraftCore.RenderMode; +import buildcraft.core.DefaultProps; +import buildcraft.core.IInventoryRenderer; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelRenderer; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.tileentity.TileEntityRenderer; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; - +import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; -import buildcraft.BuildCraftCore; -import buildcraft.BuildCraftCore.RenderMode; -import buildcraft.core.DefaultProps; -import buildcraft.core.IInventoryRenderer; - public class RenderHopper extends TileEntitySpecialRenderer implements IInventoryRenderer { + private static final ResourceLocation HOPPER_TEXTURE = new ResourceLocation("buildcraft", DefaultProps.TEXTURE_PATH_BLOCKS + "/hopper.png"); + private static final ResourceLocation HOPPER_MIDDLE_TEXTURE = new ResourceLocation("buildcraft", DefaultProps.TEXTURE_PATH_BLOCKS + "/hopper_middle.png"); private ModelBase model = new ModelBase() { }; - private final ModelRenderer top; private final ModelFrustum middle; private final ModelRenderer bottom; @@ -56,10 +56,10 @@ public class RenderHopper extends TileEntitySpecialRenderer implements IInventor GL11.glDisable(GL11.GL_LIGHTING); GL11.glTranslated(x, y, z); - bindTextureByName(DefaultProps.TEXTURE_PATH_BLOCKS + "/hopper.png"); + func_110628_a(HOPPER_TEXTURE); top.render((float) (1.0 / 16.0)); bottom.render((float) (1.0 / 16.0)); - bindTextureByName(DefaultProps.TEXTURE_PATH_BLOCKS + "/hopper_middle.png"); + func_110628_a(HOPPER_MIDDLE_TEXTURE); middle.render(Tessellator.instance, 1F / 16F); GL11.glEnable(GL11.GL_LIGHTING); diff --git a/common/buildcraft/factory/render/RenderRefinery.java b/common/buildcraft/factory/render/RenderRefinery.java index 8d9442d5..863f089b 100644 --- a/common/buildcraft/factory/render/RenderRefinery.java +++ b/common/buildcraft/factory/render/RenderRefinery.java @@ -7,22 +7,22 @@ */ package buildcraft.factory.render; +import buildcraft.core.DefaultProps; +import buildcraft.core.IInventoryRenderer; +import buildcraft.core.render.FluidRenderer; +import buildcraft.factory.TileRefinery; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelRenderer; import net.minecraft.client.renderer.tileentity.TileEntityRenderer; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.liquids.LiquidStack; - +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.fluids.FluidStack; import org.lwjgl.opengl.GL11; -import buildcraft.core.DefaultProps; -import buildcraft.core.IInventoryRenderer; -import buildcraft.core.render.LiquidRenderer; -import buildcraft.factory.TileRefinery; - public class RenderRefinery extends TileEntitySpecialRenderer implements IInventoryRenderer { + private static final ResourceLocation TEXTURE = new ResourceLocation("buildcraft", DefaultProps.TEXTURE_PATH_BLOCKS + "/refinery.png"); private static final float pixel = (float) (1.0 / 16.0); private final ModelRenderer tank; private final ModelRenderer magnet[] = new ModelRenderer[4]; @@ -68,22 +68,22 @@ public class RenderRefinery extends TileEntitySpecialRenderer implements IInvent } private void render(TileRefinery tile, double x, double y, double z) { - LiquidStack liquid1 = null, liquid2 = null, liquidResult = null; + FluidStack liquid1 = null, liquid2 = null, liquidResult = null; float anim = 0; int angle = 0; ModelRenderer theMagnet = magnet[0]; if (tile != null) { - if (tile.ingredient1.getLiquid() != null) { - liquid1 = tile.ingredient1.getLiquid(); + if (tile.ingredient1.getFluid() != null) { + liquid1 = tile.ingredient1.getFluid(); } - if (tile.ingredient2.getLiquid() != null) { - liquid2 = tile.ingredient2.getLiquid(); + if (tile.ingredient2.getFluid() != null) { + liquid2 = tile.ingredient2.getFluid(); } - if (tile.result.getLiquid() != null) { - liquidResult = tile.result.getLiquid(); + if (tile.result.getFluid() != null) { + liquidResult = tile.result.getFluid(); } anim = tile.getAnimationStage(); @@ -125,7 +125,7 @@ public class RenderRefinery extends TileEntitySpecialRenderer implements IInvent GL11.glRotatef(angle, 0, 1, 0); - bindTextureByName(DefaultProps.TEXTURE_PATH_BLOCKS + "/refinery.png"); + func_110628_a(TEXTURE); GL11.glPushMatrix(); GL11.glTranslatef(-0.5F, -0.5F, -0.5F); @@ -178,35 +178,35 @@ public class RenderRefinery extends TileEntitySpecialRenderer implements IInvent GL11.glScalef(0.5F, 1, 0.5F); if (liquid1 != null && liquid1.amount > 0) { - int[] list1 = LiquidRenderer.getLiquidDisplayLists(liquid1, tile.worldObj, false); + int[] list1 = FluidRenderer.getFluidDisplayLists(liquid1, tile.worldObj, false); if (list1 != null) { - bindTextureByName(LiquidRenderer.getLiquidSheet(liquid1)); - GL11.glCallList(list1[(int) ((float) liquid1.amount / (float) TileRefinery.LIQUID_PER_SLOT * (LiquidRenderer.DISPLAY_STAGES - 1))]); + func_110628_a(FluidRenderer.getFluidSheet(liquid1)); + GL11.glCallList(list1[(int) ((float) liquid1.amount / (float) TileRefinery.LIQUID_PER_SLOT * (FluidRenderer.DISPLAY_STAGES - 1))]); } } if (liquid2 != null && liquid2.amount > 0) { - int[] list2 = LiquidRenderer.getLiquidDisplayLists(liquid2, tile.worldObj, false); + int[] list2 = FluidRenderer.getFluidDisplayLists(liquid2, tile.worldObj, false); if (list2 != null) { GL11.glPushMatrix(); GL11.glTranslatef(0, 0, 1); - bindTextureByName(LiquidRenderer.getLiquidSheet(liquid2)); - GL11.glCallList(list2[(int) ((float) liquid2.amount / (float) TileRefinery.LIQUID_PER_SLOT * (LiquidRenderer.DISPLAY_STAGES - 1))]); + func_110628_a(FluidRenderer.getFluidSheet(liquid2)); + GL11.glCallList(list2[(int) ((float) liquid2.amount / (float) TileRefinery.LIQUID_PER_SLOT * (FluidRenderer.DISPLAY_STAGES - 1))]); GL11.glPopMatrix(); } } if (liquidResult != null && liquidResult.amount > 0) { - int[] list3 = LiquidRenderer.getLiquidDisplayLists(liquidResult, tile.worldObj, false); + int[] list3 = FluidRenderer.getFluidDisplayLists(liquidResult, tile.worldObj, false); if (list3 != null) { GL11.glPushMatrix(); GL11.glTranslatef(1, 0, 0.5F); - bindTextureByName(LiquidRenderer.getLiquidSheet(liquidResult)); - GL11.glCallList(list3[(int) ((float) liquidResult.amount / (float) TileRefinery.LIQUID_PER_SLOT * (LiquidRenderer.DISPLAY_STAGES - 1))]); + func_110628_a(FluidRenderer.getFluidSheet(liquidResult)); + GL11.glCallList(list3[(int) ((float) liquidResult.amount / (float) TileRefinery.LIQUID_PER_SLOT * (FluidRenderer.DISPLAY_STAGES - 1))]); GL11.glPopMatrix(); } } diff --git a/common/buildcraft/factory/render/RenderTank.java b/common/buildcraft/factory/render/RenderTank.java index 440932ea..38bc65bb 100644 --- a/common/buildcraft/factory/render/RenderTank.java +++ b/common/buildcraft/factory/render/RenderTank.java @@ -7,15 +7,13 @@ */ package buildcraft.factory.render; +import buildcraft.core.render.FluidRenderer; +import buildcraft.factory.TileTank; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.liquids.LiquidStack; - +import net.minecraftforge.fluids.FluidStack; import org.lwjgl.opengl.GL11; -import buildcraft.core.render.LiquidRenderer; -import buildcraft.factory.TileTank; - public class RenderTank extends TileEntitySpecialRenderer { @Override @@ -23,12 +21,12 @@ public class RenderTank extends TileEntitySpecialRenderer { TileTank tank = ((TileTank) tileentity); - LiquidStack liquid = tank.tank.getLiquid(); + FluidStack liquid = tank.tank.getFluid(); if (liquid == null || liquid.amount <= 0) { return; } - int[] displayList = LiquidRenderer.getLiquidDisplayLists(liquid, tileentity.worldObj, false); + int[] displayList = FluidRenderer.getFluidDisplayLists(liquid, tileentity.worldObj, false); if (displayList == null) { return; } @@ -40,12 +38,12 @@ public class RenderTank extends TileEntitySpecialRenderer { GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - bindTextureByName(LiquidRenderer.getLiquidSheet(liquid)); + func_110628_a(FluidRenderer.getFluidSheet(liquid)); GL11.glTranslatef((float) x + 0.125F, (float) y, (float) z + 0.125F); GL11.glScalef(0.75F, 0.999F, 0.75F); - GL11.glCallList(displayList[(int) ((float) liquid.amount / (float) (tank.tank.getCapacity()) * (LiquidRenderer.DISPLAY_STAGES - 1))]); + GL11.glCallList(displayList[(int) ((float) liquid.amount / (float) (tank.tank.getCapacity()) * (FluidRenderer.DISPLAY_STAGES - 1))]); GL11.glPopAttrib(); GL11.glPopMatrix(); diff --git a/common/buildcraft/silicon/BlockLaser.java b/common/buildcraft/silicon/BlockLaser.java index 36aa5c7e..0d9acc62 100644 --- a/common/buildcraft/silicon/BlockLaser.java +++ b/common/buildcraft/silicon/BlockLaser.java @@ -9,8 +9,10 @@ package buildcraft.silicon; +import buildcraft.core.CreativeTabBuildCraft; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import java.util.ArrayList; - import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IconRegister; @@ -19,9 +21,6 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Icon; import net.minecraft.world.World; import net.minecraftforge.common.ForgeDirection; -import buildcraft.core.CreativeTabBuildCraft; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; public class BlockLaser extends BlockContainer { diff --git a/common/buildcraft/silicon/BlockLaserTable.java b/common/buildcraft/silicon/BlockLaserTable.java index 92d525e7..2ae0d3b0 100644 --- a/common/buildcraft/silicon/BlockLaserTable.java +++ b/common/buildcraft/silicon/BlockLaserTable.java @@ -1,7 +1,12 @@ package buildcraft.silicon; +import buildcraft.BuildCraftSilicon; +import buildcraft.core.CreativeTabBuildCraft; +import buildcraft.core.proxy.CoreProxy; +import buildcraft.core.utils.Utils; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import java.util.List; - import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IconRegister; @@ -11,12 +16,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Icon; import net.minecraft.world.World; -import buildcraft.BuildCraftSilicon; -import buildcraft.core.CreativeTabBuildCraft; -import buildcraft.core.proxy.CoreProxy; -import buildcraft.core.utils.Utils; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; public class BlockLaserTable extends BlockContainer { diff --git a/common/buildcraft/silicon/GuiHandler.java b/common/buildcraft/silicon/GuiHandler.java index 3ef11692..7c9eb060 100644 --- a/common/buildcraft/silicon/GuiHandler.java +++ b/common/buildcraft/silicon/GuiHandler.java @@ -1,13 +1,13 @@ package buildcraft.silicon; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; import buildcraft.silicon.gui.ContainerAdvancedCraftingTable; import buildcraft.silicon.gui.ContainerAssemblyTable; import buildcraft.silicon.gui.GuiAdvancedCraftingTable; import buildcraft.silicon.gui.GuiAssemblyTable; import cpw.mods.fml.common.network.IGuiHandler; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; public class GuiHandler implements IGuiHandler { diff --git a/common/buildcraft/silicon/SiliconRenderBlock.java b/common/buildcraft/silicon/SiliconRenderBlock.java index 53fc3ea6..0732e9e6 100644 --- a/common/buildcraft/silicon/SiliconRenderBlock.java +++ b/common/buildcraft/silicon/SiliconRenderBlock.java @@ -9,17 +9,15 @@ package buildcraft.silicon; +import buildcraft.core.utils.Utils; +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.Tessellator; import net.minecraft.world.IBlockAccess; import net.minecraftforge.common.ForgeDirection; - import org.lwjgl.opengl.GL11; -import buildcraft.core.utils.Utils; -import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; - public class SiliconRenderBlock implements ISimpleBlockRenderingHandler { @Override public int getRenderId() { diff --git a/common/buildcraft/silicon/TileAdvancedCraftingTable.java b/common/buildcraft/silicon/TileAdvancedCraftingTable.java index 3241a758..52f4cc0c 100644 --- a/common/buildcraft/silicon/TileAdvancedCraftingTable.java +++ b/common/buildcraft/silicon/TileAdvancedCraftingTable.java @@ -3,20 +3,6 @@ package buildcraft.silicon; import buildcraft.BuildCraftCore; import buildcraft.api.gates.IAction; import buildcraft.api.gates.IActionReceptor; -import java.util.List; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ICrafting; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.InventoryCraftResult; -import net.minecraft.inventory.InventoryCrafting; -import net.minecraft.inventory.SlotCrafting; -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.IRecipe; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ChunkCoordinates; import buildcraft.core.IMachine; import buildcraft.core.TileBuffer; import buildcraft.core.inventory.InvUtils; @@ -24,22 +10,40 @@ import buildcraft.core.inventory.InventoryCopy; import buildcraft.core.inventory.InventoryIterator; import buildcraft.core.inventory.InventoryIterator.IInvSlot; import buildcraft.core.inventory.InventoryMapper; +import buildcraft.core.inventory.SimpleInventory; +import buildcraft.core.inventory.StackHelper; import buildcraft.core.inventory.Transactor; +import buildcraft.core.inventory.filters.CraftingFilter; +import buildcraft.core.inventory.filters.IStackFilter; import buildcraft.core.network.PacketIds; import buildcraft.core.network.PacketSlotChange; import buildcraft.core.proxy.CoreProxy; -import buildcraft.core.utils.CraftingHelper; -import buildcraft.core.inventory.SimpleInventory; -import buildcraft.core.inventory.StackHelper; -import buildcraft.core.inventory.filters.CraftingFilter; -import buildcraft.core.inventory.filters.IStackFilter; import buildcraft.core.triggers.ActionMachineControl; +import buildcraft.core.utils.CraftingHelper; import buildcraft.core.utils.Utils; import com.google.common.collect.Lists; import java.util.EnumSet; +import java.util.List; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.ICrafting; +import net.minecraft.inventory.IInventory; import net.minecraft.inventory.ISidedInventory; +import net.minecraft.inventory.InventoryCraftResult; +import net.minecraft.inventory.InventoryCrafting; +import net.minecraft.inventory.SlotCrafting; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.IRecipe; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatMessageComponent; +import net.minecraft.util.ChunkCoordinates; import net.minecraftforge.common.ForgeDirection; -import static net.minecraftforge.common.ForgeDirection.*; +import static net.minecraftforge.common.ForgeDirection.DOWN; +import static net.minecraftforge.common.ForgeDirection.EAST; +import static net.minecraftforge.common.ForgeDirection.NORTH; +import static net.minecraftforge.common.ForgeDirection.SOUTH; +import static net.minecraftforge.common.ForgeDirection.WEST; public class TileAdvancedCraftingTable extends TileEntity implements IInventory, ILaserTarget, IMachine, IActionReceptor, ISidedInventory { @@ -81,14 +85,14 @@ public class TileAdvancedCraftingTable extends TileEntity implements IInventory, @Override public void setInventorySlotContents(int slot, ItemStack par2ItemStack) { - if (tempStacks != null) { + if (tempStacks != null && slot >= 0 && slot < 9) { tempStacks[bindings[slot]] = par2ItemStack; } } @Override public ItemStack decrStackSize(int slot, int amount) { - if (tempStacks != null) { + if (tempStacks != null && slot >= 0 && slot < 9) { if (tempStacks[bindings[slot]].stackSize <= amount) { ItemStack result = tempStacks[bindings[slot]]; tempStacks[bindings[slot]] = null; @@ -113,15 +117,14 @@ public class TileAdvancedCraftingTable extends TileEntity implements IInventory, private final class InternalPlayer extends EntityPlayer { public InternalPlayer() { - super(TileAdvancedCraftingTable.this.worldObj); + super(TileAdvancedCraftingTable.this.worldObj, "[BuildCraft]"); posX = TileAdvancedCraftingTable.this.xCoord; posY = TileAdvancedCraftingTable.this.yCoord + 1; posZ = TileAdvancedCraftingTable.this.zCoord; - username = "[Buildcraft]"; } @Override - public void sendChatToPlayer(String var1) { + public void sendChatToPlayer(ChatMessageComponent var1) { } @Override @@ -442,7 +445,7 @@ public class TileAdvancedCraftingTable extends TileEntity implements IInventory, } @Override - public boolean manageLiquids() { + public boolean manageFluids() { return false; } @@ -501,7 +504,7 @@ public class TileAdvancedCraftingTable extends TileEntity implements IInventory, @Override public boolean canInsertItem(int slot, ItemStack stack, int side) { - return isStackValidForSlot(slot, stack); + return isItemValidForSlot(slot, stack); } @Override @@ -510,7 +513,7 @@ public class TileAdvancedCraftingTable extends TileEntity implements IInventory, } @Override - public boolean isStackValidForSlot(int slot, ItemStack stack) { + public boolean isItemValidForSlot(int slot, ItemStack stack) { return slot < 15; } diff --git a/common/buildcraft/silicon/TileAssemblyTable.java b/common/buildcraft/silicon/TileAssemblyTable.java index c7b4e5be..6daca467 100644 --- a/common/buildcraft/silicon/TileAssemblyTable.java +++ b/common/buildcraft/silicon/TileAssemblyTable.java @@ -1,12 +1,18 @@ package buildcraft.silicon; import buildcraft.api.gates.IAction; - +import buildcraft.api.recipes.AssemblyRecipe; +import buildcraft.api.transport.IPipeConnection; +import buildcraft.core.DefaultProps; +import buildcraft.core.IMachine; +import buildcraft.core.inventory.StackHelper; +import buildcraft.core.network.PacketIds; +import buildcraft.core.network.PacketNBT; +import buildcraft.core.proxy.CoreProxy; +import buildcraft.core.utils.Utils; +import cpw.mods.fml.common.FMLCommonHandler; import java.util.LinkedHashSet; import java.util.LinkedList; - -import cpw.mods.fml.common.FMLCommonHandler; - import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; @@ -17,15 +23,6 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.ForgeDirection; -import buildcraft.api.recipes.AssemblyRecipe; -import buildcraft.api.transport.IPipeConnection; -import buildcraft.core.DefaultProps; -import buildcraft.core.IMachine; -import buildcraft.core.inventory.StackHelper; -import buildcraft.core.network.PacketIds; -import buildcraft.core.network.PacketNBT; -import buildcraft.core.proxy.CoreProxy; -import buildcraft.core.utils.Utils; public class TileAssemblyTable extends TileEntity implements IMachine, IInventory, IPipeConnection, ILaserTarget { @@ -437,7 +434,7 @@ public class TileAssemblyTable extends TileEntity implements IMachine, IInventor } @Override - public boolean manageLiquids() { + public boolean manageFluids() { return false; } @@ -490,7 +487,7 @@ public class TileAssemblyTable extends TileEntity implements IMachine, IInventor } @Override - public boolean isStackValidForSlot(int i, ItemStack itemstack) { + public boolean isItemValidForSlot(int i, ItemStack itemstack) { // TODO Auto-generated method stub return true; } diff --git a/common/buildcraft/silicon/TileLaser.java b/common/buildcraft/silicon/TileLaser.java index e1095f8c..0e1e416e 100644 --- a/common/buildcraft/silicon/TileLaser.java +++ b/common/buildcraft/silicon/TileLaser.java @@ -8,11 +8,6 @@ package buildcraft.silicon; import buildcraft.BuildCraftCore; -import java.util.LinkedList; - -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.ForgeDirection; import buildcraft.api.core.Position; import buildcraft.api.core.SafeTimeTracker; import buildcraft.api.gates.IAction; @@ -27,6 +22,10 @@ import buildcraft.core.IMachine; import buildcraft.core.TileBuildCraft; import buildcraft.core.proxy.CoreProxy; import buildcraft.core.triggers.ActionMachineControl; +import java.util.LinkedList; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.ForgeDirection; public class TileLaser extends TileBuildCraft implements IPowerReceptor, IActionReceptor, IMachine { @@ -275,7 +274,7 @@ public class TileLaser extends TileBuildCraft implements IPowerReceptor, IAction } @Override - public boolean manageLiquids() { + public boolean manageFluids() { return false; } diff --git a/common/buildcraft/silicon/gui/ContainerAdvancedCraftingTable.java b/common/buildcraft/silicon/gui/ContainerAdvancedCraftingTable.java index 0f942331..db312d76 100644 --- a/common/buildcraft/silicon/gui/ContainerAdvancedCraftingTable.java +++ b/common/buildcraft/silicon/gui/ContainerAdvancedCraftingTable.java @@ -1,14 +1,14 @@ package buildcraft.silicon.gui; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Slot; import buildcraft.core.gui.BuildCraftContainer; import buildcraft.core.gui.slots.SlotOutput; import buildcraft.core.gui.slots.SlotPhantom; import buildcraft.core.gui.slots.SlotUntouchable; import buildcraft.silicon.TileAdvancedCraftingTable; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.ICrafting; +import net.minecraft.inventory.Slot; public class ContainerAdvancedCraftingTable extends BuildCraftContainer { diff --git a/common/buildcraft/silicon/gui/ContainerAssemblyTable.java b/common/buildcraft/silicon/gui/ContainerAssemblyTable.java index e802057d..61c60eb6 100644 --- a/common/buildcraft/silicon/gui/ContainerAssemblyTable.java +++ b/common/buildcraft/silicon/gui/ContainerAssemblyTable.java @@ -9,13 +9,13 @@ package buildcraft.silicon.gui; +import buildcraft.core.gui.BuildCraftContainer; +import buildcraft.silicon.TileAssemblyTable; +import buildcraft.silicon.TileAssemblyTable.SelectionMessage; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ICrafting; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; -import buildcraft.core.gui.BuildCraftContainer; -import buildcraft.silicon.TileAssemblyTable; -import buildcraft.silicon.TileAssemblyTable.SelectionMessage; public class ContainerAssemblyTable extends BuildCraftContainer { IInventory playerIInventory; diff --git a/common/buildcraft/silicon/gui/GuiAdvancedCraftingTable.java b/common/buildcraft/silicon/gui/GuiAdvancedCraftingTable.java index ba9ec10e..2b188f88 100644 --- a/common/buildcraft/silicon/gui/GuiAdvancedCraftingTable.java +++ b/common/buildcraft/silicon/gui/GuiAdvancedCraftingTable.java @@ -7,12 +7,16 @@ import buildcraft.core.gui.GuiBuildCraft; import buildcraft.core.utils.StringUtils; import buildcraft.silicon.TileAdvancedCraftingTable; import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.IInventory; +import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; public class GuiAdvancedCraftingTable extends GuiBuildCraft { + public static final ResourceLocation gui = new ResourceLocation("buildcraft", DefaultProps.TEXTURE_PATH_GUI + "/assembly_advancedworkbench.png"); + class AssemblyWorkbenchLedger extends Ledger { int headerColour = 0xe1c92f; @@ -31,7 +35,7 @@ public class GuiAdvancedCraftingTable extends GuiBuildCraft { drawBackground(x, y); // Draw icon - Minecraft.getMinecraft().renderEngine.bindTexture("/gui/items.png"); + Minecraft.getMinecraft().renderEngine.func_110577_a(TextureMap.field_110576_c); drawIcon(BuildCraftCore.iconProvider.getIcon(CoreIconProvider.ENERGY), x + 3, y + 4); if (!isFullyOpened()) @@ -72,7 +76,7 @@ public class GuiAdvancedCraftingTable extends GuiBuildCraft { @Override protected void drawGuiContainerBackgroundLayer(float f, int mouseX, int mouseY) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - mc.renderEngine.bindTexture(DefaultProps.TEXTURE_PATH_GUI + "/assembly_advancedworkbench.png"); + mc.renderEngine.func_110577_a(gui); int cornerX = (width - xSize) / 2; int cornerY = (height - ySize) / 2; drawTexturedModalRect(cornerX, cornerY, 0, 0, xSize, ySize); diff --git a/common/buildcraft/silicon/gui/GuiAssemblyTable.java b/common/buildcraft/silicon/gui/GuiAssemblyTable.java index 09765cba..48108ccf 100644 --- a/common/buildcraft/silicon/gui/GuiAssemblyTable.java +++ b/common/buildcraft/silicon/gui/GuiAssemblyTable.java @@ -9,15 +9,6 @@ package buildcraft.silicon.gui; -import java.util.Iterator; -import java.util.LinkedList; - -import net.minecraft.client.Minecraft; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; - -import org.lwjgl.opengl.GL11; - import buildcraft.BuildCraftCore; import buildcraft.api.recipes.AssemblyRecipe; import buildcraft.core.CoreIconProvider; @@ -26,15 +17,20 @@ import buildcraft.core.gui.GuiAdvancedInterface; import buildcraft.core.network.PacketCoordinates; import buildcraft.core.network.PacketIds; import buildcraft.core.network.PacketNBT; -import buildcraft.core.network.PacketPayload; -import buildcraft.core.network.PacketUpdate; import buildcraft.core.proxy.CoreProxy; import buildcraft.core.utils.StringUtils; import buildcraft.silicon.TileAssemblyTable; import buildcraft.silicon.TileAssemblyTable.SelectionMessage; +import java.util.Iterator; +import java.util.LinkedList; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.opengl.GL11; public class GuiAssemblyTable extends GuiAdvancedInterface { - + private static final ResourceLocation TEXTURE = new ResourceLocation("buildcraft",DefaultProps.TEXTURE_PATH_GUI + "/assembly_table.png"); TileAssemblyTable assemblyTable; class AssemblyLedger extends Ledger { @@ -54,7 +50,7 @@ public class GuiAssemblyTable extends GuiAdvancedInterface { drawBackground(x, y); // Draw icon - Minecraft.getMinecraft().renderEngine.bindTexture("/gui/items.png"); + mc.renderEngine.func_110577_a(TextureMap.field_110576_c); drawIcon(BuildCraftCore.iconProvider.getIcon(CoreIconProvider.ENERGY), x + 3, y + 4); if (!isFullyOpened()) @@ -145,7 +141,7 @@ public class GuiAssemblyTable extends GuiAdvancedInterface { @Override protected void drawGuiContainerBackgroundLayer(float f, int x, int y) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - mc.renderEngine.bindTexture(DefaultProps.TEXTURE_PATH_GUI + "/assembly_table.png"); + mc.renderEngine.func_110577_a(TEXTURE); int cornerX = (width - xSize) / 2; int cornerY = (height - ySize) / 2; drawTexturedModalRect(cornerX, cornerY, 0, 0, xSize, ySize); diff --git a/common/buildcraft/silicon/network/PacketHandlerSilicon.java b/common/buildcraft/silicon/network/PacketHandlerSilicon.java index c4a3e3d6..6faa57db 100644 --- a/common/buildcraft/silicon/network/PacketHandlerSilicon.java +++ b/common/buildcraft/silicon/network/PacketHandlerSilicon.java @@ -1,25 +1,23 @@ package buildcraft.silicon.network; -import java.io.ByteArrayInputStream; -import java.io.DataInputStream; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.network.INetworkManager; -import net.minecraft.network.packet.Packet250CustomPayload; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; import buildcraft.core.network.PacketCoordinates; import buildcraft.core.network.PacketIds; import buildcraft.core.network.PacketNBT; import buildcraft.core.network.PacketSlotChange; -import buildcraft.core.network.PacketUpdate; import buildcraft.silicon.TileAdvancedCraftingTable; import buildcraft.silicon.TileAssemblyTable; import buildcraft.silicon.TileAssemblyTable.SelectionMessage; import buildcraft.silicon.gui.ContainerAssemblyTable; import cpw.mods.fml.common.network.IPacketHandler; import cpw.mods.fml.common.network.Player; +import java.io.ByteArrayInputStream; +import java.io.DataInputStream; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.network.INetworkManager; +import net.minecraft.network.packet.Packet250CustomPayload; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; public class PacketHandlerSilicon implements IPacketHandler { diff --git a/common/buildcraft/transport/BlockFilteredBuffer.java b/common/buildcraft/transport/BlockFilteredBuffer.java index 9798f58d..9e1188c5 100644 --- a/common/buildcraft/transport/BlockFilteredBuffer.java +++ b/common/buildcraft/transport/BlockFilteredBuffer.java @@ -7,8 +7,14 @@ */ package buildcraft.transport; +import buildcraft.BuildCraftTransport; +import buildcraft.core.BlockBuildCraft; +import buildcraft.core.GuiIds; +import buildcraft.core.IItemPipe; +import buildcraft.core.proxy.CoreProxy; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import java.util.ArrayList; - import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.entity.player.EntityPlayer; @@ -16,13 +22,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Icon; import net.minecraft.world.World; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import buildcraft.BuildCraftTransport; -import buildcraft.core.BlockBuildCraft; -import buildcraft.core.GuiIds; -import buildcraft.core.IItemPipe; -import buildcraft.core.proxy.CoreProxy; /** * diff --git a/common/buildcraft/transport/BlockGenericPipe.java b/common/buildcraft/transport/BlockGenericPipe.java index 8a1a41c0..36400a3f 100644 --- a/common/buildcraft/transport/BlockGenericPipe.java +++ b/common/buildcraft/transport/BlockGenericPipe.java @@ -7,34 +7,6 @@ */ package buildcraft.transport; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Random; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.client.Minecraft; -import net.minecraft.client.particle.EffectRenderer; -import net.minecraft.client.particle.EntityDiggingFX; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.Icon; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftCore; import buildcraft.BuildCraftTransport; import buildcraft.api.tools.IToolWrench; @@ -47,6 +19,32 @@ import buildcraft.transport.render.PipeWorldRenderer; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Random; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.particle.EffectRenderer; +import net.minecraft.client.particle.EntityDiggingFX; +import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.Icon; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.ForgeDirection; public class BlockGenericPipe extends BlockContainer { @@ -578,7 +576,7 @@ public class BlockGenericPipe extends BlockContainer { } @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLiving placer, ItemStack stack) { + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase placer, ItemStack stack) { super.onBlockPlacedBy(world, x, y, z, placer, stack); Pipe pipe = getPipe(world, x, y, z); @@ -973,9 +971,9 @@ public class BlockGenericPipe extends BlockContainer { px = (double) x + block.getBlockBoundsMaxX() + (double) b; } - EntityDiggingFX fx = new EntityDiggingFX(worldObj, px, py, pz, 0.0D, 0.0D, 0.0D, block, sideHit, worldObj.getBlockMetadata(x, y, z), Minecraft.getMinecraft().renderEngine); - fx.setParticleIcon(Minecraft.getMinecraft().renderEngine, icon); - effectRenderer.addEffect(fx.func_70596_a(x, y, z).multiplyVelocity(0.2F).multipleParticleScaleBy(0.6F)); + EntityDiggingFX fx = new EntityDiggingFX(worldObj, px, py, pz, 0.0D, 0.0D, 0.0D, block, sideHit, worldObj.getBlockMetadata(x, y, z)); + fx.func_110125_a(icon); + effectRenderer.addEffect(fx.applyColourMultiplier(x, y, z).multiplyVelocity(0.2F).multipleParticleScaleBy(0.6F)); return true; } @@ -1010,9 +1008,9 @@ public class BlockGenericPipe extends BlockContainer { double py = y + (j + 0.5D) / (double) its; double pz = z + (k + 0.5D) / (double) its; int random = rand.nextInt(6); - EntityDiggingFX fx = new EntityDiggingFX(worldObj, px, py, pz, px - x - 0.5D, py - y - 0.5D, pz - z - 0.5D, BuildCraftTransport.genericPipeBlock, random, meta, Minecraft.getMinecraft().renderEngine); - fx.setParticleIcon(Minecraft.getMinecraft().renderEngine, icon); - effectRenderer.addEffect(fx.func_70596_a(x, y, z)); + EntityDiggingFX fx = new EntityDiggingFX(worldObj, px, py, pz, px - x - 0.5D, py - y - 0.5D, pz - z - 0.5D, BuildCraftTransport.genericPipeBlock, random, meta); + fx.func_110125_a(icon); + effectRenderer.addEffect(fx.applyColourMultiplier(x, y, z)); } } } diff --git a/common/buildcraft/transport/EnergyPulser.java b/common/buildcraft/transport/EnergyPulser.java index 82587b2b..a43b3fe0 100644 --- a/common/buildcraft/transport/EnergyPulser.java +++ b/common/buildcraft/transport/EnergyPulser.java @@ -1,9 +1,9 @@ package buildcraft.transport; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.common.ForgeDirection; import buildcraft.api.power.IPowerReceptor; import buildcraft.api.power.PowerHandler.Type; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.common.ForgeDirection; public class EnergyPulser { diff --git a/common/buildcraft/transport/EntityData.java b/common/buildcraft/transport/EntityData.java index 1d1a804b..ef8c9959 100644 --- a/common/buildcraft/transport/EntityData.java +++ b/common/buildcraft/transport/EntityData.java @@ -1,9 +1,8 @@ package buildcraft.transport; -import java.util.EnumSet; - -import net.minecraftforge.common.ForgeDirection; import buildcraft.api.transport.IPipedItem; +import java.util.EnumSet; +import net.minecraftforge.common.ForgeDirection; public class EntityData { diff --git a/common/buildcraft/transport/FallbackWrapper.java b/common/buildcraft/transport/FallbackWrapper.java index 4d23c505..d7c6ceb5 100644 --- a/common/buildcraft/transport/FallbackWrapper.java +++ b/common/buildcraft/transport/FallbackWrapper.java @@ -1,18 +1,15 @@ package buildcraft.transport; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; - -import com.google.common.base.Throwables; - -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Icon; -import net.minecraftforge.common.ForgeDirection; import buildcraft.api.core.IIconProvider; import buildcraft.api.gates.ITrigger; import buildcraft.api.gates.ITriggerParameter; +import com.google.common.base.Throwables; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import java.lang.reflect.Method; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Icon; +import net.minecraftforge.common.ForgeDirection; public class FallbackWrapper implements ITrigger { diff --git a/common/buildcraft/transport/Gate.java b/common/buildcraft/transport/Gate.java index 8b347bee..cd0d2696 100644 --- a/common/buildcraft/transport/Gate.java +++ b/common/buildcraft/transport/Gate.java @@ -1,15 +1,15 @@ package buildcraft.transport; -import java.util.LinkedList; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; import buildcraft.BuildCraftTransport; import buildcraft.api.gates.IAction; import buildcraft.api.gates.ITrigger; import buildcraft.core.network.PacketPayload; +import java.util.LinkedList; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; public abstract class Gate { @@ -98,7 +98,7 @@ public abstract class Gate { // / TEXTURES public abstract int getTextureIconIndex(boolean isSignalActive); - public abstract String getGuiFile(); + public abstract ResourceLocation getGuiFile(); public static boolean isGateItem(ItemStack stack) { return stack.itemID == BuildCraftTransport.pipeGate.itemID || stack.itemID == BuildCraftTransport.pipeGateAutarchic.itemID; diff --git a/common/buildcraft/transport/GateIconProvider.java b/common/buildcraft/transport/GateIconProvider.java index c3e72580..4c26259e 100644 --- a/common/buildcraft/transport/GateIconProvider.java +++ b/common/buildcraft/transport/GateIconProvider.java @@ -1,10 +1,10 @@ package buildcraft.transport; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.util.Icon; import buildcraft.api.core.IIconProvider; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.util.Icon; public class GateIconProvider implements IIconProvider { diff --git a/common/buildcraft/transport/GateVanilla.java b/common/buildcraft/transport/GateVanilla.java index 4bc1104e..9ef95b39 100644 --- a/common/buildcraft/transport/GateVanilla.java +++ b/common/buildcraft/transport/GateVanilla.java @@ -1,12 +1,5 @@ package buildcraft.transport; -import java.util.LinkedList; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; import buildcraft.BuildCraftTransport; import buildcraft.api.gates.IAction; import buildcraft.api.gates.ITrigger; @@ -20,6 +13,13 @@ import buildcraft.core.utils.Utils; import buildcraft.transport.pipes.PipePowerWood; import buildcraft.transport.triggers.ActionEnergyPulser; import buildcraft.transport.triggers.ActionSingleEnergyPulse; +import java.util.LinkedList; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; public class GateVanilla extends Gate { @@ -86,22 +86,22 @@ public class GateVanilla extends Gate { @Override public String getName() { switch (kind) { - case Single: - return StringUtils.localize("item.pipeGate.0"); - case AND_2: - return StringUtils.localize("item.pipeGate.1"); - case AND_3: - return StringUtils.localize("item.pipeGate.3"); - case AND_4: - return StringUtils.localize("item.pipeGate.5"); - case OR_2: - return StringUtils.localize("item.pipeGate.2"); - case OR_3: - return StringUtils.localize("item.pipeGate.4"); - case OR_4: - return StringUtils.localize("item.pipeGate.6"); - default: - return ""; + case Single: + return StringUtils.localize("item.pipeGate.0"); + case AND_2: + return StringUtils.localize("item.pipeGate.1"); + case AND_3: + return StringUtils.localize("item.pipeGate.3"); + case AND_4: + return StringUtils.localize("item.pipeGate.5"); + case OR_2: + return StringUtils.localize("item.pipeGate.2"); + case OR_3: + return StringUtils.localize("item.pipeGate.4"); + case OR_4: + return StringUtils.localize("item.pipeGate.6"); + default: + return ""; } } @@ -146,28 +146,28 @@ public class GateVanilla extends Gate { int gateDamage = 0; switch (kind) { - case Single: - gateDamage = 0; - break; - case AND_2: - gateDamage = 1; - break; - case OR_2: - gateDamage = 2; - break; - case AND_3: - gateDamage = 3; - break; - case OR_3: - gateDamage = 4; - break; - case AND_4: - gateDamage = 5; - break; - case OR_4: - default: - gateDamage = 6; - break; + case Single: + gateDamage = 0; + break; + case AND_2: + gateDamage = 1; + break; + case OR_2: + gateDamage = 2; + break; + case AND_3: + gateDamage = 3; + break; + case OR_3: + gateDamage = 4; + break; + case AND_4: + gateDamage = 5; + break; + case OR_4: + default: + gateDamage = 6; + break; } Item gateItem; @@ -265,44 +265,63 @@ public class GateVanilla extends Gate { if (hasPulser() && pulser.isActive()) { isGateActive = true; } - - if (!hasPulser()){ - switch (kind){ - case None: return 0; - case Single: return isGateActive ? GateIconProvider.Gate_Lit : GateIconProvider.Gate_Dark; - case AND_2: return isGateActive ? GateIconProvider.Gate_Iron_And_Lit : GateIconProvider.Gate_Iron_And_Dark; - case OR_2: return isGateActive ? GateIconProvider.Gate_Iron_Or_Lit : GateIconProvider.Gate_Iron_Or_Dark; - case AND_3: return isGateActive ? GateIconProvider.Gate_Gold_And_Lit : GateIconProvider.Gate_Gold_And_Dark; - case OR_3: return isGateActive ? GateIconProvider.Gate_Gold_Or_Lit : GateIconProvider.Gate_Gold_Or_Dark; - case AND_4: return isGateActive ? GateIconProvider.Gate_Diamond_And_Lit : GateIconProvider.Gate_Diamond_And_Dark; - case OR_4: return isGateActive ? GateIconProvider.Gate_Diamond_Or_Lit : GateIconProvider.Gate_Diamond_Or_Dark; + + if (!hasPulser()) { + switch (kind) { + case None: + return 0; + case Single: + return isGateActive ? GateIconProvider.Gate_Lit : GateIconProvider.Gate_Dark; + case AND_2: + return isGateActive ? GateIconProvider.Gate_Iron_And_Lit : GateIconProvider.Gate_Iron_And_Dark; + case OR_2: + return isGateActive ? GateIconProvider.Gate_Iron_Or_Lit : GateIconProvider.Gate_Iron_Or_Dark; + case AND_3: + return isGateActive ? GateIconProvider.Gate_Gold_And_Lit : GateIconProvider.Gate_Gold_And_Dark; + case OR_3: + return isGateActive ? GateIconProvider.Gate_Gold_Or_Lit : GateIconProvider.Gate_Gold_Or_Dark; + case AND_4: + return isGateActive ? GateIconProvider.Gate_Diamond_And_Lit : GateIconProvider.Gate_Diamond_And_Dark; + case OR_4: + return isGateActive ? GateIconProvider.Gate_Diamond_Or_Lit : GateIconProvider.Gate_Diamond_Or_Dark; } } else { - switch (kind){ - case None: return 0; - case Single: return isGateActive ? GateIconProvider.Gate_Autarchic_Lit : GateIconProvider.Gate_Autarchic_Dark; - case AND_2: return isGateActive ? GateIconProvider.Gate_Autarchic_Iron_And_Lit : GateIconProvider.Gate_Autarchic_Iron_And_Dark; - case OR_2: return isGateActive ? GateIconProvider.Gate_Autarchic_Iron_Or_Lit : GateIconProvider.Gate_Autarchic_Iron_Or_Dark; - case AND_3: return isGateActive ? GateIconProvider.Gate_Autarchic_Gold_And_Lit : GateIconProvider.Gate_Autarchic_Gold_And_Dark; - case OR_3: return isGateActive ? GateIconProvider.Gate_Autarchic_Gold_Or_Lit : GateIconProvider.Gate_Autarchic_Gold_Or_Dark; - case AND_4: return isGateActive ? GateIconProvider.Gate_Autarchic_Diamond_And_Lit : GateIconProvider.Gate_Autarchic_Diamond_And_Dark; - case OR_4: return isGateActive ? GateIconProvider.Gate_Autarchic_Diamond_Or_Lit : GateIconProvider.Gate_Autarchic_Diamond_Or_Dark; + switch (kind) { + case None: + return 0; + case Single: + return isGateActive ? GateIconProvider.Gate_Autarchic_Lit : GateIconProvider.Gate_Autarchic_Dark; + case AND_2: + return isGateActive ? GateIconProvider.Gate_Autarchic_Iron_And_Lit : GateIconProvider.Gate_Autarchic_Iron_And_Dark; + case OR_2: + return isGateActive ? GateIconProvider.Gate_Autarchic_Iron_Or_Lit : GateIconProvider.Gate_Autarchic_Iron_Or_Dark; + case AND_3: + return isGateActive ? GateIconProvider.Gate_Autarchic_Gold_And_Lit : GateIconProvider.Gate_Autarchic_Gold_And_Dark; + case OR_3: + return isGateActive ? GateIconProvider.Gate_Autarchic_Gold_Or_Lit : GateIconProvider.Gate_Autarchic_Gold_Or_Dark; + case AND_4: + return isGateActive ? GateIconProvider.Gate_Autarchic_Diamond_And_Lit : GateIconProvider.Gate_Autarchic_Diamond_And_Dark; + case OR_4: + return isGateActive ? GateIconProvider.Gate_Autarchic_Diamond_Or_Lit : GateIconProvider.Gate_Autarchic_Diamond_Or_Dark; } } return 0; } + private static final ResourceLocation TEXTURE1 = new ResourceLocation("buildcraft", DefaultProps.TEXTURE_PATH_GUI + "/gate_interface_1.png"); + private static final ResourceLocation TEXTURE2 = new ResourceLocation("buildcraft", DefaultProps.TEXTURE_PATH_GUI + "/gate_interface_2.png"); + private static final ResourceLocation TEXTURE3 = new ResourceLocation("buildcraft", DefaultProps.TEXTURE_PATH_GUI + "/gate_interface_3.png"); + private static final ResourceLocation TEXTURE4 = new ResourceLocation("buildcraft", DefaultProps.TEXTURE_PATH_GUI + "/gate_interface_4.png"); @Override - public String getGuiFile() { + public ResourceLocation getGuiFile() { if (kind == GateKind.Single) - return DefaultProps.TEXTURE_PATH_GUI + "/gate_interface_1.png"; + return TEXTURE1; else if (kind == GateKind.AND_2 || kind == GateKind.OR_2) - return DefaultProps.TEXTURE_PATH_GUI + "/gate_interface_2.png"; + return TEXTURE2; else if (kind == GateKind.AND_3 || kind == GateKind.OR_3) - return DefaultProps.TEXTURE_PATH_GUI + "/gate_interface_3.png"; + return TEXTURE3; else - return DefaultProps.TEXTURE_PATH_GUI + "/gate_interface_4.png"; + return TEXTURE4; } - } diff --git a/common/buildcraft/transport/GuiHandler.java b/common/buildcraft/transport/GuiHandler.java index a3eb898d..e3fe31dc 100644 --- a/common/buildcraft/transport/GuiHandler.java +++ b/common/buildcraft/transport/GuiHandler.java @@ -1,9 +1,6 @@ package buildcraft.transport; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; +import buildcraft.BuildCraftCore; import buildcraft.core.GuiIds; import buildcraft.transport.gui.ContainerDiamondPipe; import buildcraft.transport.gui.ContainerEmeraldPipe; @@ -13,78 +10,93 @@ import buildcraft.transport.gui.GuiDiamondPipe; import buildcraft.transport.gui.GuiEmeraldPipe; import buildcraft.transport.gui.GuiFilteredBuffer; import buildcraft.transport.gui.GuiGateInterface; +import buildcraft.transport.pipes.PipeItemsEmerald; import buildcraft.transport.pipes.PipeLogicDiamond; import cpw.mods.fml.common.network.IGuiHandler; +import java.util.logging.Level; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; public class GuiHandler implements IGuiHandler { @Override public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { - if (!world.blockExists(x, y, z)) - return null; + try { + if (!world.blockExists(x, y, z)) + return null; - TileEntity tile = world.getBlockTileEntity(x, y, z); - - if (tile instanceof TileFilteredBuffer) { - TileFilteredBuffer filteredBuffer = (TileFilteredBuffer) tile; - return new ContainerFilteredBuffer(player.inventory, filteredBuffer); - } - - if (!(tile instanceof TileGenericPipe)) - return null; - - TileGenericPipe pipe = (TileGenericPipe) tile; - - if (pipe.pipe == null) - return null; - - switch (ID) { - case GuiIds.PIPE_DIAMOND: - return new ContainerDiamondPipe(player.inventory, ((PipeLogicDiamond) pipe.pipe.logic).getFilters()); - - case GuiIds.PIPE_EMERALD_ITEM: - return new ContainerEmeraldPipe(player.inventory, (IInventory) pipe.pipe); - - case GuiIds.GATES: - return new ContainerGateInterface(player.inventory, pipe.pipe); - - default: - return null; + TileEntity tile = world.getBlockTileEntity(x, y, z); + + if (tile instanceof TileFilteredBuffer) { + TileFilteredBuffer filteredBuffer = (TileFilteredBuffer) tile; + return new ContainerFilteredBuffer(player.inventory, filteredBuffer); + } + + if (!(tile instanceof TileGenericPipe)) + return null; + + TileGenericPipe pipe = (TileGenericPipe) tile; + + if (pipe.pipe == null) + return null; + + switch (ID) { + case GuiIds.PIPE_DIAMOND: + return new ContainerDiamondPipe(player.inventory, (PipeLogicDiamond) pipe.pipe.logic); + + case GuiIds.PIPE_EMERALD_ITEM: + return new ContainerEmeraldPipe(player.inventory, (PipeItemsEmerald) pipe.pipe); + + case GuiIds.GATES: + return new ContainerGateInterface(player.inventory, pipe.pipe); + + default: + return null; + } + } catch (Exception ex) { + BuildCraftCore.bcLog.log(Level.SEVERE, "Failed to open GUI", ex); } + return null; } @Override public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { - if (!world.blockExists(x, y, z)) - return null; + try { + if (!world.blockExists(x, y, z)) + return null; - TileEntity tile = world.getBlockTileEntity(x, y, z); - - if (tile instanceof TileFilteredBuffer) { - TileFilteredBuffer filteredBuffer = (TileFilteredBuffer) tile; - return new GuiFilteredBuffer(player.inventory, filteredBuffer); - } - - if (!(tile instanceof TileGenericPipe)) - return null; - - TileGenericPipe pipe = (TileGenericPipe) tile; - - if (pipe.pipe == null) - return null; - - switch (ID) { - case GuiIds.PIPE_DIAMOND: - return new GuiDiamondPipe(player.inventory, pipe); - - case GuiIds.PIPE_EMERALD_ITEM: - return new GuiEmeraldPipe(player.inventory, pipe); - - case GuiIds.GATES: - return new GuiGateInterface(player.inventory, pipe.pipe); - - default: - return null; + TileEntity tile = world.getBlockTileEntity(x, y, z); + + if (tile instanceof TileFilteredBuffer) { + TileFilteredBuffer filteredBuffer = (TileFilteredBuffer) tile; + return new GuiFilteredBuffer(player.inventory, filteredBuffer); + } + + if (!(tile instanceof TileGenericPipe)) + return null; + + TileGenericPipe pipe = (TileGenericPipe) tile; + + if (pipe.pipe == null) + return null; + + switch (ID) { + case GuiIds.PIPE_DIAMOND: + return new GuiDiamondPipe(player.inventory, (PipeLogicDiamond) pipe.pipe.logic); + + case GuiIds.PIPE_EMERALD_ITEM: + return new GuiEmeraldPipe(player.inventory, (PipeItemsEmerald) pipe.pipe); + + case GuiIds.GATES: + return new GuiGateInterface(player.inventory, pipe.pipe); + + default: + return null; + } + } catch (Exception ex) { + BuildCraftCore.bcLog.log(Level.SEVERE, "Failed to open GUI", ex); } + return null; } } diff --git a/common/buildcraft/transport/IPipeTransportLiquidsHook.java b/common/buildcraft/transport/IPipeTransportFluidsHook.java similarity index 67% rename from common/buildcraft/transport/IPipeTransportLiquidsHook.java rename to common/buildcraft/transport/IPipeTransportFluidsHook.java index 6ee0664b..0d12c212 100644 --- a/common/buildcraft/transport/IPipeTransportLiquidsHook.java +++ b/common/buildcraft/transport/IPipeTransportFluidsHook.java @@ -10,9 +10,9 @@ package buildcraft.transport; import net.minecraftforge.common.ForgeDirection; -import net.minecraftforge.liquids.LiquidStack; +import net.minecraftforge.fluids.FluidStack; -public interface IPipeTransportLiquidsHook { +public interface IPipeTransportFluidsHook { - public int fill(ForgeDirection from, LiquidStack resource, boolean doFill); + public int fill(ForgeDirection from, FluidStack resource, boolean doFill); } diff --git a/common/buildcraft/transport/IPipeTransportItemsHook.java b/common/buildcraft/transport/IPipeTransportItemsHook.java index e8a93a5c..c1666d60 100644 --- a/common/buildcraft/transport/IPipeTransportItemsHook.java +++ b/common/buildcraft/transport/IPipeTransportItemsHook.java @@ -9,11 +9,10 @@ package buildcraft.transport; -import java.util.LinkedList; - -import net.minecraftforge.common.ForgeDirection; import buildcraft.api.core.Position; import buildcraft.api.transport.IPipedItem; +import java.util.LinkedList; +import net.minecraftforge.common.ForgeDirection; public interface IPipeTransportItemsHook { diff --git a/common/buildcraft/transport/ItemFacade.java b/common/buildcraft/transport/ItemFacade.java index 24176d58..a7bc5011 100644 --- a/common/buildcraft/transport/ItemFacade.java +++ b/common/buildcraft/transport/ItemFacade.java @@ -1,33 +1,31 @@ package buildcraft.transport; -import java.lang.reflect.Field; -import java.lang.reflect.Modifier; -import java.util.LinkedList; -import java.util.List; -import java.util.Set; - -import net.minecraft.block.Block; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; -import net.minecraftforge.common.ForgeDirection; -import buildcraft.BuildCraftCore; import buildcraft.BuildCraftTransport; import buildcraft.api.recipes.AssemblyRecipe; import buildcraft.core.CreativeTabBuildCraft; import buildcraft.core.ItemBuildCraft; import buildcraft.core.proxy.CoreProxy; - import com.google.common.base.Strings; import com.google.common.collect.Sets; - import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.util.LinkedList; +import java.util.List; +import java.util.Set; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.InventoryCrafting; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.IRecipe; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.ForgeDirection; public class ItemFacade extends ItemBuildCraft { @@ -159,7 +157,7 @@ public class ItemFacade extends ItemBuildCraft { public static void addFacade(ItemStack itemStack) { ItemStack facade = getStack(itemStack.itemID, itemStack.getItemDamage()); allFacades.add(facade); - + ItemStack facade6 = facade.copy(); facade6.stackSize = 6; @@ -176,13 +174,76 @@ public class ItemFacade extends ItemBuildCraft { ItemStack rotLog2 = getStack(itemStack.itemID, itemStack.getItemDamage() | 8); allFacades.add(rotLog1); allFacades.add(rotLog2); - CoreProxy.proxy.addShapelessRecipe(rotLog1, new Object[] { mainLog }); - CoreProxy.proxy.addShapelessRecipe(rotLog2, new Object[] { rotLog1 }); - CoreProxy.proxy.addShapelessRecipe(mainLog, new Object[] { rotLog2 }); } } } + private static final ItemStack NO_MATCH = new ItemStack(0,0,0); + public class FacadeRecipe implements IRecipe { + @Override + public boolean matches(InventoryCrafting inventorycrafting, World world) + { + ItemStack slotmatch = null; + for (int i = 0; i < inventorycrafting.getSizeInventory(); i++) { + ItemStack slot = inventorycrafting.getStackInSlot(i); + if (slot != null && slot.itemID == ItemFacade.this.itemID && slotmatch == null) { + slotmatch = slot; + } else if (slot != null) { + slotmatch = NO_MATCH; + } + } + if (slotmatch != null && slotmatch != NO_MATCH) { + int blockId = ItemFacade.getBlockId(slotmatch); + return blockId < Block.blocksList.length && Block.blocksList[blockId] != null && Block.blocksList[blockId].getRenderType() == 31; + } + + return false; + } + + @Override + public ItemStack getCraftingResult(InventoryCrafting inventorycrafting) + { + ItemStack slotmatch = null; + for (int i = 0; i < inventorycrafting.getSizeInventory(); i++) { + ItemStack slot = inventorycrafting.getStackInSlot(i); + if (slot != null && slot.itemID == ItemFacade.this.itemID && slotmatch == null) { + slotmatch = slot; + } else if (slot != null) { + slotmatch = NO_MATCH; + } + } + if (slotmatch != null && slotmatch != NO_MATCH) { + int blockId = ItemFacade.getBlockId(slotmatch); + int blockMeta = ItemFacade.getMetaData(slotmatch); + if (blockId >= Block.blocksList.length) + return null; + Block bl = Block.blocksList[blockId]; + // No Meta + if (bl != null && bl.getRenderType() == 31 && (blockMeta & 0xC) == 0) + return getStack(blockId, (blockMeta & 0x3) | 4); + // Meta | 4 = true + if (bl != null && bl.getRenderType() == 31 && (blockMeta & 0x8) == 0) + return getStack(blockId, (blockMeta & 0x3) | 8); + // Meta | 8 = true + if (bl != null && bl.getRenderType() == 31 && (blockMeta & 0x4) == 0) + return getStack(blockId, (blockMeta & 0x3)); + } + return null; + } + + @Override + public int getRecipeSize() + { + return 1; + } + + @Override + public ItemStack getRecipeOutput() + { + return null; + } + + } @Override @SideOnly(Side.CLIENT) public void registerIcons(IconRegister par1IconRegister) @@ -196,7 +257,7 @@ public class ItemFacade extends ItemBuildCraft { { return 0; } - + public static ItemStack getStack(int blockID, int metadata) { ItemStack stack = new ItemStack(BuildCraftTransport.facadeItem, 1, 0); NBTTagCompound nbt = new NBTTagCompound("tag"); diff --git a/common/buildcraft/transport/ItemGate.java b/common/buildcraft/transport/ItemGate.java index bc9d6756..2cdce7bf 100644 --- a/common/buildcraft/transport/ItemGate.java +++ b/common/buildcraft/transport/ItemGate.java @@ -1,11 +1,5 @@ package buildcraft.transport; -import java.util.List; - -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.ItemStack; -import net.minecraft.util.Icon; import buildcraft.api.core.IIconProvider; import buildcraft.api.gates.ActionManager; import buildcraft.api.gates.IAction; @@ -14,6 +8,11 @@ import buildcraft.core.CreativeTabBuildCraft; import buildcraft.core.ItemBuildCraft; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import java.util.List; +import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.ItemStack; +import net.minecraft.util.Icon; public class ItemGate extends ItemBuildCraft { diff --git a/common/buildcraft/transport/ItemPipe.java b/common/buildcraft/transport/ItemPipe.java index 6955ec49..9eafad8b 100644 --- a/common/buildcraft/transport/ItemPipe.java +++ b/common/buildcraft/transport/ItemPipe.java @@ -7,24 +7,22 @@ */ package buildcraft.transport; -import java.util.logging.Level; - -import net.minecraft.block.Block; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.Icon; -import net.minecraft.world.World; import buildcraft.BuildCraftCore; import buildcraft.BuildCraftTransport; import buildcraft.api.core.IIconProvider; import buildcraft.core.CreativeTabBuildCraft; import buildcraft.core.IItemPipe; import buildcraft.core.ItemBuildCraft; -import buildcraft.transport.pipes.PipePowerCobblestone; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import java.util.List; +import java.util.logging.Level; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.Icon; +import net.minecraft.world.World; public class ItemPipe extends ItemBuildCraft implements IItemPipe { @@ -70,7 +68,7 @@ public class ItemPipe extends ItemBuildCraft implements IItemPipe { if (itemstack.stackSize == 0) return false; - if (entityplayer.canCurrentToolHarvestBlock(i, j, k) && world.canPlaceEntityOnSide(blockID, i, j, k, false, side, entityplayer, itemstack)) { + if (world.canPlaceEntityOnSide(blockID, i, j, k, false, side, entityplayer, itemstack)) { Pipe pipe = BlockGenericPipe.createPipe(itemID); if (pipe == null) { diff --git a/common/buildcraft/transport/ItemPlug.java b/common/buildcraft/transport/ItemPlug.java index dc34df8e..f819d006 100644 --- a/common/buildcraft/transport/ItemPlug.java +++ b/common/buildcraft/transport/ItemPlug.java @@ -1,15 +1,15 @@ package buildcraft.transport; +import buildcraft.core.CreativeTabBuildCraft; +import buildcraft.core.ItemBuildCraft; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.ForgeDirection; -import buildcraft.core.CreativeTabBuildCraft; -import buildcraft.core.ItemBuildCraft; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; public class ItemPlug extends ItemBuildCraft { diff --git a/common/buildcraft/transport/Pipe.java b/common/buildcraft/transport/Pipe.java index 097d432f..511692c2 100644 --- a/common/buildcraft/transport/Pipe.java +++ b/common/buildcraft/transport/Pipe.java @@ -9,20 +9,6 @@ package buildcraft.transport; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.Map; -import java.util.Random; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; -import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftCore; import buildcraft.BuildCraftTransport; import buildcraft.api.core.IIconProvider; @@ -41,12 +27,23 @@ import buildcraft.core.utils.Utils; import buildcraft.transport.Gate.GateConditional; import buildcraft.transport.pipes.PipeLogic; import buildcraft.transport.triggers.ActionSignalOutput; - import com.google.common.collect.HashMultiset; import com.google.common.collect.Multiset; - import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.Map; +import java.util.Random; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.ForgeDirection; public abstract class Pipe implements IPipe, IDropControlInventory { @@ -129,7 +126,7 @@ public abstract class Pipe implements IPipe, IDropControlInventory { transport.onBlockPlaced(); } - public void onBlockPlacedBy(EntityLiving placer) {} + public void onBlockPlacedBy(EntityLivingBase placer) {} public void onNeighborBlockChange(int blockId) { logic.onNeighborBlockChange(blockId); @@ -215,7 +212,7 @@ public abstract class Pipe implements IPipe, IDropControlInventory { for (int i = 0; i < 4; ++i) nbttagcompound.setBoolean("wireSet[" + i + "]", wireSet[i]); - + for (int i = 0; i < 8; ++i) { nbttagcompound.setInteger("action[" + i + "]", activatedActions[i] != null ? activatedActions[i].getId() : 0); nbttagcompound.setInteger("trigger[" + i + "]", activatedTriggers[i] != null ? activatedTriggers[i].getId() : 0); @@ -255,7 +252,7 @@ public abstract class Pipe implements IPipe, IDropControlInventory { for (int i = 0; i < 4; ++i) wireSet[i] = nbttagcompound.getBoolean("wireSet[" + i + "]"); - + for (int i = 0; i < 8; ++i) { activatedActions[i] = ActionManager.actions[nbttagcompound.getInteger("action[" + i + "]")]; activatedTriggers[i] = ActionManager.triggers[nbttagcompound.getInteger("trigger[" + i + "]")]; @@ -728,7 +725,7 @@ public abstract class Pipe implements IPipe, IDropControlInventory { fixedTriggers = true; } - + public World getWorldObj(){ return worldObj; } diff --git a/common/buildcraft/transport/PipeIconProvider.java b/common/buildcraft/transport/PipeIconProvider.java index cedf1ade..f43802e2 100644 --- a/common/buildcraft/transport/PipeIconProvider.java +++ b/common/buildcraft/transport/PipeIconProvider.java @@ -1,10 +1,10 @@ package buildcraft.transport; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.util.Icon; import buildcraft.api.core.IIconProvider; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.util.Icon; public class PipeIconProvider implements IIconProvider { @@ -39,14 +39,14 @@ public class PipeIconProvider implements IIconProvider { PipeItemsQuartz("pipeItemsQuartz"), PipeItemsVoid("pipeItemsVoid"), // - PipeLiquidsCobblestone("pipeLiquidsCobblestone"), - PipeLiquidsWood_Standard("pipeLiquidsWood_standard"), - PipeLiquidsEmerald_Standard("pipeLiquidsEmerald_standard"), - PipeLiquidsGold("pipeLiquidsGold"), - PipeLiquidsIron_Standard("pipeLiquidsIron_standard"), - PipeLiquidsSandstone("pipeLiquidsSandstone"), - PipeLiquidsStone("pipeLiquidsStone"), - PipeLiquidsVoid("pipeLiquidsVoid"), + PipeFluidsCobblestone("pipeFluidsCobblestone"), + PipeFluidsWood_Standard("pipeFluidsWood_standard"), + PipeFluidsEmerald_Standard("pipeFluidsEmerald_standard"), + PipeFluidsGold("pipeFluidsGold"), + PipeFluidsIron_Standard("pipeFluidsIron_standard"), + PipeFluidsSandstone("pipeFluidsSandstone"), + PipeFluidsStone("pipeFluidsStone"), + PipeFluidsVoid("pipeFluidsVoid"), // PipePowerDiamond("pipePowerDiamond"), PipePowerGold("pipePowerGold"), diff --git a/common/buildcraft/transport/PipeRenderState.java b/common/buildcraft/transport/PipeRenderState.java index b47bb11b..7448d50c 100644 --- a/common/buildcraft/transport/PipeRenderState.java +++ b/common/buildcraft/transport/PipeRenderState.java @@ -1,10 +1,5 @@ package buildcraft.transport; -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; - -import net.minecraft.util.Icon; import buildcraft.core.network.IClientState; import buildcraft.transport.utils.ConnectionMatrix; import buildcraft.transport.utils.FacadeMatrix; @@ -12,6 +7,10 @@ import buildcraft.transport.utils.TextureMatrix; import buildcraft.transport.utils.WireMatrix; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import net.minecraft.util.Icon; public class PipeRenderState implements IClientState { diff --git a/common/buildcraft/transport/PipeTransport.java b/common/buildcraft/transport/PipeTransport.java index fb4ac051..8894fd40 100644 --- a/common/buildcraft/transport/PipeTransport.java +++ b/common/buildcraft/transport/PipeTransport.java @@ -9,11 +9,11 @@ package buildcraft.transport; +import buildcraft.api.transport.IPipedItem; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.ForgeDirection; -import buildcraft.api.transport.IPipedItem; public abstract class PipeTransport { diff --git a/common/buildcraft/transport/PipeTransportLiquids.java b/common/buildcraft/transport/PipeTransportFluids.java similarity index 74% rename from common/buildcraft/transport/PipeTransportLiquids.java rename to common/buildcraft/transport/PipeTransportFluids.java index 152a7b5f..2fe4323a 100644 --- a/common/buildcraft/transport/PipeTransportLiquids.java +++ b/common/buildcraft/transport/PipeTransportFluids.java @@ -9,18 +9,6 @@ package buildcraft.transport; -import java.util.BitSet; - -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.ForgeDirection; -import net.minecraftforge.liquids.ILiquidTank; -import net.minecraftforge.liquids.ITankContainer; -import net.minecraftforge.liquids.LiquidContainerRegistry; -import net.minecraftforge.liquids.LiquidEvent; -import net.minecraftforge.liquids.LiquidEvent.LiquidMotionEvent; -import net.minecraftforge.liquids.LiquidStack; -import net.minecraftforge.liquids.LiquidTank; import buildcraft.BuildCraftCore; import buildcraft.api.core.SafeTimeTracker; import buildcraft.api.gates.ITrigger; @@ -29,11 +17,23 @@ import buildcraft.core.DefaultProps; import buildcraft.core.IMachine; import buildcraft.core.proxy.CoreProxy; import buildcraft.core.utils.Utils; -import buildcraft.transport.network.PacketLiquidUpdate; +import buildcraft.transport.network.PacketFluidUpdate; +import java.util.BitSet; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.ForgeDirection; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidContainerRegistry; +import net.minecraftforge.fluids.FluidEvent; +import net.minecraftforge.fluids.FluidEvent.FluidMotionEvent; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.FluidTank; +import net.minecraftforge.fluids.FluidTankInfo; +import net.minecraftforge.fluids.IFluidHandler; -public class PipeTransportLiquids extends PipeTransport implements ITankContainer { +public class PipeTransportFluids extends PipeTransport implements IFluidHandler { - public class PipeSection extends LiquidTank { + public class PipeSection extends FluidTank { private short currentTime = 0; @@ -47,7 +47,7 @@ public class PipeTransportLiquids extends PipeTransport implements ITankContaine } @Override - public int fill(LiquidStack resource, boolean doFill) { + public int fill(FluidStack resource, boolean doFill) { if (resource == null) return 0; @@ -55,7 +55,7 @@ public class PipeTransportLiquids extends PipeTransport implements ITankContaine if (maxToFill <= 0) return 0; - LiquidStack stackToFill = resource.copy(); + FluidStack stackToFill = resource.copy(); stackToFill.amount = maxToFill; int filled = super.fill(stackToFill, doFill); @@ -67,19 +67,19 @@ public class PipeTransportLiquids extends PipeTransport implements ITankContaine } @Override - public LiquidStack drain(int maxDrain, boolean doDrain) { + public FluidStack drain(int maxDrain, boolean doDrain) { int maxToDrain = Math.min(maxDrain, Math.min(flowRate, getAvailable())); if (maxToDrain < 0) return null; - LiquidStack drained = super.drain(maxToDrain, doDrain); + FluidStack drained = super.drain(maxToDrain, doDrain); if (drained == null) return null; return drained; } - public void moveLiquids() { + public void moveFluids() { // Processes the inbound liquid incomming[currentTime] = 0; } @@ -89,12 +89,12 @@ public class PipeTransportLiquids extends PipeTransport implements ITankContaine } public void reset() { - this.setLiquid(null); + this.setFluid(null); incomming = new short[travelDelay]; } public int getAvailable() { - int all = this.getLiquid() != null ? this.getLiquid().amount : 0; + int all = this.getFluid() != null ? this.getFluid().amount : 0; for (short slot : incomming) { all -= slot; } @@ -102,13 +102,13 @@ public class PipeTransportLiquids extends PipeTransport implements ITankContaine } @Override - public LiquidTank readFromNBT(NBTTagCompound compoundTag) { + public FluidTank readFromNBT(NBTTagCompound compoundTag) { this.setCapacity(compoundTag.getInteger("capacity")); for (int i = 0; i < travelDelay; ++i) { incomming[i] = compoundTag.getShort("in[" + i + "]"); } - setLiquid(LiquidStack.loadLiquidStackFromNBT(compoundTag)); + setFluid(FluidStack.loadFluidStackFromNBT(compoundTag)); return this; } @@ -120,8 +120,8 @@ public class PipeTransportLiquids extends PipeTransport implements ITankContaine incomming[i] = subTag.getShort("in[" + i + "]"); } - if (this.getLiquid() != null) { - this.getLiquid().writeToNBT(subTag); + if (this.getFluid() != null) { + this.getFluid().writeToNBT(subTag); } return subTag; } @@ -134,7 +134,7 @@ public class PipeTransportLiquids extends PipeTransport implements ITankContaine /** * The amount of liquid contained by a pipe section. For simplicity, all pipe sections are assumed to be of the same volume. */ - public static int LIQUID_IN_PIPE = LiquidContainerRegistry.BUCKET_VOLUME / 4; + public static int LIQUID_IN_PIPE = FluidContainerRegistry.BUCKET_VOLUME / 4; public static short INPUT_TTL = 60; // 100 public static short OUTPUT_TTL = 80; // 80 public static short OUTPUT_COOLDOWN = 30; // 30 @@ -145,7 +145,7 @@ public class PipeTransportLiquids extends PipeTransport implements ITankContaine public byte initClient = 0; public short travelDelay = 12; public short flowRate = 10; - public LiquidStack[] renderCache = new LiquidStack[orientations.length]; + public FluidStack[] renderCache = new FluidStack[orientations.length]; private final PipeSection[] internalTanks = new PipeSection[orientations.length]; @@ -160,7 +160,7 @@ public class PipeTransportLiquids extends PipeTransport implements ITankContaine private final SafeTimeTracker tracker = new SafeTimeTracker(); private int clientSyncCounter = 0; - public PipeTransportLiquids() { + public PipeTransportFluids() { for (ForgeDirection direction : orientations) { internalTanks[direction.ordinal()] = new PipeSection(getCapacity()); if (direction != ForgeDirection.UNKNOWN) { @@ -173,7 +173,7 @@ public class PipeTransportLiquids extends PipeTransport implements ITankContaine return LIQUID_IN_PIPE; } - public boolean canReceiveLiquid(ForgeDirection o) { + public boolean canReceiveFluid(ForgeDirection o) { TileEntity entity = container.getTile(o); if (!Utils.checkPipesConnections(container, entity)) @@ -186,7 +186,7 @@ public class PipeTransportLiquids extends PipeTransport implements ITankContaine return false; } - if (entity instanceof IPipeEntry || entity instanceof ITankContainer) + if (entity instanceof IPipeEntry || entity instanceof IFluidHandler) return true; return false; @@ -197,7 +197,7 @@ public class PipeTransportLiquids extends PipeTransport implements ITankContaine if (CoreProxy.proxy.isRenderWorld(worldObj)) return; - moveLiquids(); + moveFluids(); if (tracker.markTimeIfDelay(worldObj, BuildCraftCore.updateFactor)) { @@ -206,7 +206,7 @@ public class PipeTransportLiquids extends PipeTransport implements ITankContaine clientSyncCounter = 0; init = true; } - PacketLiquidUpdate packet = computeLiquidUpdate(init, true); + PacketFluidUpdate packet = computeFluidUpdate(init, true); if (packet != null) { CoreProxy.proxy.sendToPlayers(packet.getPacket(), worldObj, xCoord, yCoord, zCoord, DefaultProps.PIPE_CONTENTS_RENDER_DIST); } @@ -214,15 +214,15 @@ public class PipeTransportLiquids extends PipeTransport implements ITankContaine } /** - * Computes the PacketLiquidUpdate packet for transmission to a client + * Computes the PacketFluidUpdate packet for transmission to a client * * @param initPacket * everything is sent, no delta stuff ( first packet ) * @param persistChange * The render cache change is persisted - * @return PacketLiquidUpdate liquid update packet + * @return PacketFluidUpdate liquid update packet */ - private PacketLiquidUpdate computeLiquidUpdate(boolean initPacket, boolean persistChange) { + private PacketFluidUpdate computeFluidUpdate(boolean initPacket, boolean persistChange) { boolean changed = false; BitSet delta = new BitSet(21); @@ -235,11 +235,11 @@ public class PipeTransportLiquids extends PipeTransport implements ITankContaine } } - LiquidStack[] renderCache = this.renderCache.clone(); + FluidStack[] renderCache = this.renderCache.clone(); for (ForgeDirection dir : orientations) { - LiquidStack current = internalTanks[dir.ordinal()].getLiquid(); - LiquidStack prev = renderCache[dir.ordinal()]; + FluidStack current = internalTanks[dir.ordinal()].getFluid(); + FluidStack prev = renderCache[dir.ordinal()]; if (prev == null && current == null) { continue; @@ -288,7 +288,7 @@ public class PipeTransportLiquids extends PipeTransport implements ITankContaine } if (changed || initPacket) { - PacketLiquidUpdate packet = new PacketLiquidUpdate(xCoord, yCoord, zCoord, initPacket); + PacketFluidUpdate packet = new PacketFluidUpdate(xCoord, yCoord, zCoord, initPacket); packet.renderCache = renderCache; packet.delta = delta; return packet; @@ -336,7 +336,7 @@ public class PipeTransportLiquids extends PipeTransport implements ITankContaine } } - private void moveLiquids() { + private void moveFluids() { short newTimeSlot = (short) (worldObj.getWorldTime() % travelDelay); short outputCount = computeCurrentConnectionStatesAndTickFlows(newTimeSlot); @@ -351,18 +351,18 @@ public class PipeTransportLiquids extends PipeTransport implements ITankContaine for (ForgeDirection o : directions) { if (transferState[o.ordinal()] == TransferState.Output) { TileEntity target = this.container.getTile(o); - if (!(target instanceof ITankContainer)) { + if (!(target instanceof IFluidHandler)) { continue; } - LiquidStack liquidToPush = internalTanks[o.ordinal()].drain(flowRate, false); + FluidStack liquidToPush = internalTanks[o.ordinal()].drain(flowRate, false); if (liquidToPush != null && liquidToPush.amount > 0) { - int filled = ((ITankContainer) target).fill(o.getOpposite(), liquidToPush, true); + int filled = ((IFluidHandler) target).fill(o.getOpposite(), liquidToPush, true); internalTanks[o.ordinal()].drain(filled, true); if (filled <= 0) { outputTTL[o.ordinal()]--; } - else LiquidEvent.fireEvent(new LiquidMotionEvent(liquidToPush, worldObj, xCoord, yCoord, zCoord)); + else FluidEvent.fireEvent(new FluidMotionEvent(liquidToPush, worldObj, xCoord, yCoord, zCoord)); } } } @@ -371,12 +371,12 @@ public class PipeTransportLiquids extends PipeTransport implements ITankContaine private void moveFromCenter(short outputCount) { // Split liquids moving to output equally based on flowrate, how much each side can accept and available liquid - LiquidStack pushStack = internalTanks[ForgeDirection.UNKNOWN.ordinal()].getLiquid(); + FluidStack pushStack = internalTanks[ForgeDirection.UNKNOWN.ordinal()].getFluid(); int totalAvailable = internalTanks[ForgeDirection.UNKNOWN.ordinal()].getAvailable(); if (totalAvailable < 1) return; if (pushStack != null) { - LiquidStack testStack = pushStack.copy(); + FluidStack testStack = pushStack.copy(); testStack.amount = flowRate; // Move liquid from the center to the output sides for (ForgeDirection direction : directions) { @@ -387,12 +387,12 @@ public class PipeTransportLiquids extends PipeTransport implements ITankContaine ammountToPush++; } - LiquidStack liquidToPush = internalTanks[ForgeDirection.UNKNOWN.ordinal()].drain(ammountToPush, false); + FluidStack liquidToPush = internalTanks[ForgeDirection.UNKNOWN.ordinal()].drain(ammountToPush, false); if (liquidToPush != null) { int filled = internalTanks[direction.ordinal()].fill(liquidToPush, true); internalTanks[ForgeDirection.UNKNOWN.ordinal()].drain(filled, true); if (filled > 0) - LiquidEvent.fireEvent(new LiquidMotionEvent(liquidToPush, worldObj, xCoord, yCoord, zCoord)); + FluidEvent.fireEvent(new FluidMotionEvent(liquidToPush, worldObj, xCoord, yCoord, zCoord)); } } } @@ -401,7 +401,7 @@ public class PipeTransportLiquids extends PipeTransport implements ITankContaine private void moveToCenter() { int transferInCount = 0; - LiquidStack stackInCenter = internalTanks[ForgeDirection.UNKNOWN.ordinal()].drain(flowRate, false); + FluidStack stackInCenter = internalTanks[ForgeDirection.UNKNOWN.ordinal()].drain(flowRate, false); int spaceAvailable = internalTanks[ForgeDirection.UNKNOWN.ordinal()].getCapacity(); if (stackInCenter != null) { spaceAvailable -= stackInCenter.amount; @@ -412,11 +412,11 @@ public class PipeTransportLiquids extends PipeTransport implements ITankContaine if (transferState[dir.ordinal()] == TransferState.Output) { continue; } - LiquidStack testStack = internalTanks[dir.ordinal()].drain(flowRate, false); + FluidStack testStack = internalTanks[dir.ordinal()].drain(flowRate, false); if (testStack == null) { continue; } - if (stackInCenter != null && !stackInCenter.isLiquidEqual(testStack)) { + if (stackInCenter != null && !stackInCenter.isFluidEqual(testStack)) { continue; } inputPerTick[dir.ordinal()] = testStack.amount; @@ -432,12 +432,12 @@ public class PipeTransportLiquids extends PipeTransport implements ITankContaine ammountToDrain++; } - LiquidStack liquidToPush = internalTanks[dir.ordinal()].drain(ammountToDrain, false); + FluidStack liquidToPush = internalTanks[dir.ordinal()].drain(ammountToDrain, false); if (liquidToPush != null) { int filled = internalTanks[ForgeDirection.UNKNOWN.ordinal()].fill(liquidToPush, true); internalTanks[dir.ordinal()].drain(filled, true); if (filled > 0) - LiquidEvent.fireEvent(new LiquidMotionEvent(liquidToPush, worldObj, xCoord, yCoord, zCoord)); + FluidEvent.fireEvent(new FluidMotionEvent(liquidToPush, worldObj, xCoord, yCoord, zCoord)); } } } @@ -449,7 +449,7 @@ public class PipeTransportLiquids extends PipeTransport implements ITankContaine // Processes all internal tanks for (ForgeDirection direction : orientations) { internalTanks[direction.ordinal()].setTime(newTimeSlot); - internalTanks[direction.ordinal()].moveLiquids(); + internalTanks[direction.ordinal()].moveFluids(); // Input processing if (direction == ForgeDirection.UNKNOWN) { continue; @@ -475,7 +475,7 @@ public class PipeTransportLiquids extends PipeTransport implements ITankContaine outputTTL[direction.ordinal()] = OUTPUT_TTL; continue; } - if (canReceiveLiquid(direction)) { + if (canReceiveFluid(direction)) { transferState[direction.ordinal()] = TransferState.Output; outputCount++; } @@ -500,18 +500,18 @@ public class PipeTransportLiquids extends PipeTransport implements ITankContaine public boolean canPipeConnect(TileEntity tile, ForgeDirection side) { if (tile instanceof TileGenericPipe) { Pipe pipe2 = ((TileGenericPipe) tile).pipe; - if (BlockGenericPipe.isValid(pipe2) && !(pipe2.transport instanceof PipeTransportLiquids)) + if (BlockGenericPipe.isValid(pipe2) && !(pipe2.transport instanceof PipeTransportFluids)) return false; } - if (tile instanceof ITankContainer) { - ITankContainer liq = (ITankContainer) tile; + if (tile instanceof IFluidHandler) { + IFluidHandler liq = (IFluidHandler) tile; - if (liq.getTanks(side.getOpposite()) != null && liq.getTanks(side.getOpposite()).length > 0) + if (liq.getTankInfo(side.getOpposite()) != null && liq.getTankInfo(side.getOpposite()).length > 0) return true; } - return tile instanceof TileGenericPipe || (tile instanceof IMachine && ((IMachine) tile).manageLiquids()); + return tile instanceof TileGenericPipe || (tile instanceof IMachine && ((IMachine) tile).manageFluids()); } public boolean isTriggerActive(ITrigger trigger) { @@ -521,16 +521,15 @@ public class PipeTransportLiquids extends PipeTransport implements ITankContaine /** ITankContainer implementation **/ @Override - public int fill(ForgeDirection from, LiquidStack resource, boolean doFill) { + public int fill(ForgeDirection from, FluidStack resource, boolean doFill) { return fill(from.ordinal(), resource, doFill); } - @Override - public int fill(int tankIndex, LiquidStack resource, boolean doFill) { + private int fill(int tankIndex, FluidStack resource, boolean doFill) { int filled; - if (this.container.pipe instanceof IPipeTransportLiquidsHook) { - filled = ((IPipeTransportLiquidsHook) this.container.pipe).fill(orientations[tankIndex], resource, doFill); + if (this.container.pipe instanceof IPipeTransportFluidsHook) { + filled = ((IPipeTransportFluidsHook) this.container.pipe).fill(orientations[tankIndex], resource, doFill); } else { filled = internalTanks[tankIndex].fill(resource, doFill); } @@ -543,23 +542,37 @@ public class PipeTransportLiquids extends PipeTransport implements ITankContaine } @Override - public LiquidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) { + public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) { return null; } - @Override - public LiquidStack drain(int tankIndex, int maxDrain, boolean doDrain) { + private FluidStack drain(int tankIndex, int maxDrain, boolean doDrain) { return null; } - @Override - public ILiquidTank[] getTanks(ForgeDirection direction) { - return internalTanks; - } + @Override + public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain) + { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean canFill(ForgeDirection from, Fluid fluid) + { + return true; + } + + @Override + public boolean canDrain(ForgeDirection from, Fluid fluid) + { + return false; + } + + @Override + public FluidTankInfo[] getTankInfo(ForgeDirection from) + { + return new FluidTankInfo[] { new FluidTankInfo(internalTanks[from.ordinal()]) }; + } - @Override - public ILiquidTank getTank(ForgeDirection direction, LiquidStack type) { - // TODO Auto-generated method stub - return null; - } } diff --git a/common/buildcraft/transport/PipeTransportItems.java b/common/buildcraft/transport/PipeTransportItems.java index 4f8d102b..9c843ea8 100644 --- a/common/buildcraft/transport/PipeTransportItems.java +++ b/common/buildcraft/transport/PipeTransportItems.java @@ -9,25 +9,7 @@ package buildcraft.transport; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.network.packet.Packet; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.ForgeDirection; +import buildcraft.BuildCraftCore; import buildcraft.BuildCraftTransport; import buildcraft.api.core.Position; import buildcraft.api.gates.ITrigger; @@ -47,9 +29,30 @@ import buildcraft.transport.network.PacketPipeTransportNBT; import buildcraft.transport.network.PacketSimpleId; import cpw.mods.fml.common.network.PacketDispatcher; import cpw.mods.fml.common.network.Player; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.logging.Level; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.network.packet.Packet; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.ForgeDirection; public class PipeTransportItems extends PipeTransport { + public static final int MAX_PIPE_STACKS = 64; + public static final int MAX_PIPE_ITEMS = 1024; public boolean allowBouncing = false; public Map travelingEntities = new HashMap(); private final List entitiesToLoad = new LinkedList(); @@ -120,17 +123,36 @@ public class PipeTransportItems extends PipeTransport { if (!worldObj.isRemote) { sendItemPacket(data); - } - if (!worldObj.isRemote && travelingEntities.size() > BuildCraftTransport.groupItemsTrigger) { - groupEntities(); + if (travelingEntities.size() > BuildCraftTransport.groupItemsTrigger) { + groupEntities(); + } - if (travelingEntities.size() > BuildCraftTransport.maxItemsInPipes) { - BlockUtil.explodeBlock(worldObj, xCoord, yCoord, zCoord); + if (travelingEntities.size() > MAX_PIPE_STACKS) { + BuildCraftCore.bcLog.log(Level.WARNING, String.format("Pipe exploded at %d,%d,%d because it had too many stacks: %d", xCoord, yCoord, zCoord, travelingEntities.size())); + destroyPipe(); + return; + } + + int numItems = 0; + for (EntityData ed : travelingEntities.values()) { + ItemStack stack = ed.item.getItemStack(); + if (stack != null && stack.stackSize > 0) + numItems += stack.stackSize; + } + + if (numItems > MAX_PIPE_ITEMS) { + BuildCraftCore.bcLog.log(Level.WARNING, String.format("Pipe exploded at %d,%d,%d because it had too many items: %d", xCoord, yCoord, zCoord, numItems)); + destroyPipe(); return; } } } + + private void destroyPipe() { + BlockUtil.explodeBlock(worldObj, xCoord, yCoord, zCoord); + worldObj.setBlockToAir(xCoord, yCoord, zCoord); + } /** * Bounces the item back into the pipe without changing the travelingEntities map. diff --git a/common/buildcraft/transport/PipeTransportPower.java b/common/buildcraft/transport/PipeTransportPower.java index 59d4f45e..93cd7564 100644 --- a/common/buildcraft/transport/PipeTransportPower.java +++ b/common/buildcraft/transport/PipeTransportPower.java @@ -7,9 +7,6 @@ */ package buildcraft.transport; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftCore; import buildcraft.api.core.SafeTimeTracker; import buildcraft.api.gates.ITrigger; @@ -21,10 +18,18 @@ import buildcraft.core.DefaultProps; import buildcraft.core.proxy.CoreProxy; import buildcraft.core.utils.Utils; import buildcraft.transport.network.PacketPowerUpdate; -import buildcraft.transport.pipes.*; +import buildcraft.transport.pipes.PipePowerCobblestone; +import buildcraft.transport.pipes.PipePowerDiamond; +import buildcraft.transport.pipes.PipePowerGold; +import buildcraft.transport.pipes.PipePowerQuartz; +import buildcraft.transport.pipes.PipePowerStone; +import buildcraft.transport.pipes.PipePowerWood; import java.util.Arrays; import java.util.HashMap; import java.util.Map; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.ForgeDirection; public class PipeTransportPower extends PipeTransport { @@ -44,13 +49,13 @@ public class PipeTransportPower extends PipeTransport { private boolean needsInit = true; private TileEntity[] tiles = new TileEntity[6]; public float[] displayPower = new float[6]; - public float[] prevDisplayPower = new float[6]; + private float[] prevDisplayPower = new float[6]; public short[] clientDisplayPower = new short[6]; public int overload; - public int[] powerQuery = new int[6]; - public int[] nextPowerQuery = new int[6]; - public long currentDate; - public float[] internalPower = new float[6]; + private int[] powerQuery = new int[6]; + private int[] nextPowerQuery = new int[6]; + private long currentDate; + private float[] internalPower = new float[6]; public float[] internalNextPower = new float[6]; public int maxPower = 8; @@ -266,7 +271,7 @@ public class PipeTransportPower extends PipeTransport { return overload >= OVERLOAD_TICKS; } - public void step() { + private void step() { if (currentDate != worldObj.getWorldTime()) { currentDate = worldObj.getWorldTime(); @@ -291,11 +296,23 @@ public class PipeTransportPower extends PipeTransport { } /** - * Do NOT ever call this from outside Buildcraft unless you are a pipe mod. - * It is NOT part of the API. All power input MUST go through designated - * input pipes, such as Wooden Power Pipes. + * Do NOT ever call this from outside Buildcraft. It is NOT part of the API. + * All power input MUST go through designated input pipes, such as Wooden + * Power Pipes or a subclass thereof. */ public float receiveEnergy(ForgeDirection from, float val) { + + // Keep this in reserve for if too many idiots start bypassing the API + // Verify that it is BC calling this method. + // If its someone else take all their power and run! + // Note: This should be safe for PipePowerWood subclasses, aka custom input pipes. +// StackTraceElement[] stackTrace = (new Throwable()).getStackTrace(); +// String caller = stackTrace[1].getClassName(); +// if (!caller.equals("buildcraft.transport.PipeTransportPower") +// && !caller.equals("buildcraft.transport.pipes.PipePowerWood")) { +// return val; +// } + step(); if (this.container.pipe instanceof IPipeTransportPowerHook) { return ((IPipeTransportPowerHook) this.container.pipe).receiveEnergy(from, val); diff --git a/common/buildcraft/transport/PipeTriggerProvider.java b/common/buildcraft/transport/PipeTriggerProvider.java index 3dedaf98..d81f3896 100644 --- a/common/buildcraft/transport/PipeTriggerProvider.java +++ b/common/buildcraft/transport/PipeTriggerProvider.java @@ -1,15 +1,14 @@ package buildcraft.transport; -import java.util.LinkedList; - -import net.minecraft.block.Block; -import net.minecraft.tileentity.TileEntity; import buildcraft.BuildCraftTransport; import buildcraft.api.gates.IOverrideDefaultTriggers; import buildcraft.api.gates.ITrigger; import buildcraft.api.gates.ITriggerProvider; import buildcraft.api.transport.IPipe; import buildcraft.transport.pipes.PipePowerWood; +import java.util.LinkedList; +import net.minecraft.block.Block; +import net.minecraft.tileentity.TileEntity; public class PipeTriggerProvider implements ITriggerProvider { @@ -36,9 +35,9 @@ public class PipeTriggerProvider implements ITriggerProvider { if (pipe instanceof PipePowerWood) { result.add(BuildCraftTransport.triggerPipeRequestsEnergy); } - } else if (pipe.transport instanceof PipeTransportLiquids) { + } else if (pipe.transport instanceof PipeTransportFluids) { result.add(BuildCraftTransport.triggerPipeEmpty); - result.add(BuildCraftTransport.triggerPipeLiquids); + result.add(BuildCraftTransport.triggerPipeFluids); } return result; diff --git a/common/buildcraft/transport/TileFilteredBuffer.java b/common/buildcraft/transport/TileFilteredBuffer.java index 982b324a..dbb8c0b5 100644 --- a/common/buildcraft/transport/TileFilteredBuffer.java +++ b/common/buildcraft/transport/TileFilteredBuffer.java @@ -1,20 +1,19 @@ package buildcraft.transport; -import java.util.LinkedList; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import buildcraft.BuildCraftTransport; import buildcraft.api.gates.IOverrideDefaultTriggers; import buildcraft.api.gates.ITrigger; import buildcraft.core.TileBuildCraft; import buildcraft.core.inventory.SimpleInventory; +import java.util.LinkedList; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; public class TileFilteredBuffer extends TileBuildCraft implements IInventory, IOverrideDefaultTriggers { - + private final SimpleInventory inventoryFilters = new SimpleInventory(9, "FilteredBufferFilters", 1); private final SimpleInventory inventoryStorage = new SimpleInventory(9, "FilteredBufferStorage", 64); @@ -22,7 +21,7 @@ public class TileFilteredBuffer extends TileBuildCraft implements IInventory, IO public void updateEntity() { super.updateEntity(); } - + public IInventory getFilters() { return inventoryFilters; } @@ -78,22 +77,22 @@ public class TileFilteredBuffer extends TileBuildCraft implements IInventory, IO } @Override - public boolean isStackValidForSlot(int i, ItemStack itemstack) { + public boolean isItemValidForSlot(int i, ItemStack itemstack) { ItemStack filterItemStack = inventoryFilters.getStackInSlot(i); - + if ( filterItemStack == null || filterItemStack.itemID != itemstack.itemID) return false; - + if (Item.itemsList[itemstack.itemID].isDamageable()) return true; - + if (filterItemStack.getItemDamage() == itemstack.getItemDamage()) return true; - + return false; } - + @Override public LinkedList getTriggers() { LinkedList result = new LinkedList(); diff --git a/common/buildcraft/transport/TileGenericPipe.java b/common/buildcraft/transport/TileGenericPipe.java index b0215d60..6cce71c3 100644 --- a/common/buildcraft/transport/TileGenericPipe.java +++ b/common/buildcraft/transport/TileGenericPipe.java @@ -7,21 +7,6 @@ */ package buildcraft.transport; -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; -import java.util.LinkedList; -import java.util.logging.Level; - -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.packet.Packet; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; -import net.minecraftforge.common.ForgeDirection; -import net.minecraftforge.liquids.ILiquidTank; -import net.minecraftforge.liquids.ITankContainer; -import net.minecraftforge.liquids.LiquidStack; import buildcraft.BuildCraftCore; import buildcraft.BuildCraftTransport; import buildcraft.api.core.IIconProvider; @@ -51,9 +36,24 @@ import buildcraft.transport.Gate.GateKind; import buildcraft.transport.network.PipeRenderStatePacket; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import java.util.LinkedList; +import java.util.logging.Level; import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.packet.Packet; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.ForgeDirection; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.FluidTankInfo; +import net.minecraftforge.fluids.IFluidHandler; -public class TileGenericPipe extends TileEntity implements IPowerReceptor, ITankContainer, IPipeEntry, IPipeTile, IOverrideDefaultTriggers, ITileBufferHolder, +public class TileGenericPipe extends TileEntity implements IPowerReceptor, IFluidHandler, IPipeEntry, IPipeTile, IOverrideDefaultTriggers, ITileBufferHolder, IPipeConnection, IDropControlInventory, IPipeRenderState, ISyncedTile, ISolidSideTile { private class CoreState implements IClientState { @@ -515,46 +515,55 @@ public class TileGenericPipe extends TileEntity implements IPowerReceptor, ITank * ITankContainer implementation * */ @Override - public int fill(ForgeDirection from, LiquidStack resource, boolean doFill) { - if (BlockGenericPipe.isValid(pipe) && pipe.transport instanceof ITankContainer && !hasPlug(from)) - return ((ITankContainer) pipe.transport).fill(from, resource, doFill); + public int fill(ForgeDirection from, FluidStack resource, boolean doFill) { + if (BlockGenericPipe.isValid(pipe) && pipe.transport instanceof IFluidHandler && !hasPlug(from)) + return ((IFluidHandler) pipe.transport).fill(from, resource, doFill); else return 0; } @Override - public int fill(int tankIndex, LiquidStack resource, boolean doFill) { - if (BlockGenericPipe.isValid(pipe) && pipe.transport instanceof ITankContainer) - return ((ITankContainer) pipe.transport).fill(tankIndex, resource, doFill); - else - return 0; - } - - @Override - public LiquidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) { - if (BlockGenericPipe.isValid(pipe) && pipe.transport instanceof ITankContainer && !hasPlug(from)) - return ((ITankContainer) pipe.transport).drain(from, maxDrain, doDrain); + public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) { + if (BlockGenericPipe.isValid(pipe) && pipe.transport instanceof IFluidHandler && !hasPlug(from)) + return ((IFluidHandler) pipe.transport).drain(from, maxDrain, doDrain); else return null; } @Override - public LiquidStack drain(int tankIndex, int maxDrain, boolean doDrain) { - if (BlockGenericPipe.isValid(pipe) && pipe.transport instanceof ITankContainer) - return ((ITankContainer) pipe.transport).drain(tankIndex, maxDrain, doDrain); - else - return null; - } + public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain) + { + if (BlockGenericPipe.isValid(pipe) && pipe.transport instanceof IFluidHandler && !hasPlug(from)) + return ((IFluidHandler) pipe.transport).drain(from, resource, doDrain); + else + return null; + } - @Override - public ILiquidTank[] getTanks(ForgeDirection direction) { - if (BlockGenericPipe.isValid(pipe) && pipe.transport instanceof ITankContainer) - return ((ITankContainer) pipe.transport).getTanks(direction); - else - return null; - } + @Override + public boolean canFill(ForgeDirection from, Fluid fluid) + { + if (BlockGenericPipe.isValid(pipe) && pipe.transport instanceof IFluidHandler && !hasPlug(from)) + return ((IFluidHandler) pipe.transport).canFill(from, fluid); + else + return false; + } - public void scheduleRenderUpdate() { + @Override + public boolean canDrain(ForgeDirection from, Fluid fluid) + { + if (BlockGenericPipe.isValid(pipe) && pipe.transport instanceof IFluidHandler && !hasPlug(from)) + return ((IFluidHandler) pipe.transport).canDrain(from, fluid); + else + return false; + } + + @Override + public FluidTankInfo[] getTankInfo(ForgeDirection from) + { + return null; + } + + public void scheduleRenderUpdate() { refreshRenderState = true; } @@ -653,14 +662,6 @@ public class TileGenericPipe extends TileEntity implements IPowerReceptor, ITank return DefaultProps.PIPE_CONTENTS_RENDER_DIST * DefaultProps.PIPE_CONTENTS_RENDER_DIST; } - @Override - public ILiquidTank getTank(ForgeDirection direction, LiquidStack type) { - if (BlockGenericPipe.isValid(pipe) && pipe.transport instanceof ITankContainer) - return ((ITankContainer) pipe.transport).getTank(direction, type); - else - return null; - } - @Override public boolean shouldRefresh(int oldID, int newID, int oldMeta, int newMeta, World world, int x, int y, int z) { return oldID != newID; diff --git a/common/buildcraft/transport/TransportProxyClient.java b/common/buildcraft/transport/TransportProxyClient.java index eb471978..cc3f44e7 100644 --- a/common/buildcraft/transport/TransportProxyClient.java +++ b/common/buildcraft/transport/TransportProxyClient.java @@ -1,6 +1,5 @@ package buildcraft.transport; -import net.minecraftforge.client.MinecraftForgeClient; import buildcraft.BuildCraftTransport; import buildcraft.transport.render.FacadeItemRenderer; import buildcraft.transport.render.PipeItemRenderer; @@ -9,6 +8,7 @@ import buildcraft.transport.render.PlugItemRenderer; import buildcraft.transport.render.RenderPipe; import cpw.mods.fml.client.registry.ClientRegistry; import cpw.mods.fml.client.registry.RenderingRegistry; +import net.minecraftforge.client.MinecraftForgeClient; public class TransportProxyClient extends TransportProxy { public final static PipeItemRenderer pipeItemRenderer = new PipeItemRenderer(); @@ -38,12 +38,12 @@ public class TransportProxyClient extends TransportProxy { MinecraftForgeClient.registerItemRenderer(BuildCraftTransport.pipeItemsObsidian.itemID, pipeItemRenderer); MinecraftForgeClient.registerItemRenderer(BuildCraftTransport.pipeItemsEmerald.itemID, pipeItemRenderer); - MinecraftForgeClient.registerItemRenderer(BuildCraftTransport.pipeLiquidsWood.itemID, pipeItemRenderer); - MinecraftForgeClient.registerItemRenderer(BuildCraftTransport.pipeLiquidsCobblestone.itemID, pipeItemRenderer); - MinecraftForgeClient.registerItemRenderer(BuildCraftTransport.pipeLiquidsStone.itemID, pipeItemRenderer); - MinecraftForgeClient.registerItemRenderer(BuildCraftTransport.pipeLiquidsIron.itemID, pipeItemRenderer); - MinecraftForgeClient.registerItemRenderer(BuildCraftTransport.pipeLiquidsGold.itemID, pipeItemRenderer); - MinecraftForgeClient.registerItemRenderer(BuildCraftTransport.pipeLiquidsEmerald.itemID, pipeItemRenderer); + MinecraftForgeClient.registerItemRenderer(BuildCraftTransport.pipeFluidsWood.itemID, pipeItemRenderer); + MinecraftForgeClient.registerItemRenderer(BuildCraftTransport.pipeFluidsCobblestone.itemID, pipeItemRenderer); + MinecraftForgeClient.registerItemRenderer(BuildCraftTransport.pipeFluidsStone.itemID, pipeItemRenderer); + MinecraftForgeClient.registerItemRenderer(BuildCraftTransport.pipeFluidsIron.itemID, pipeItemRenderer); + MinecraftForgeClient.registerItemRenderer(BuildCraftTransport.pipeFluidsGold.itemID, pipeItemRenderer); + MinecraftForgeClient.registerItemRenderer(BuildCraftTransport.pipeFluidsEmerald.itemID, pipeItemRenderer); MinecraftForgeClient.registerItemRenderer(BuildCraftTransport.pipePowerWood.itemID, pipeItemRenderer); MinecraftForgeClient.registerItemRenderer(BuildCraftTransport.pipePowerCobblestone.itemID, pipeItemRenderer); @@ -54,9 +54,9 @@ public class TransportProxyClient extends TransportProxy { MinecraftForgeClient.registerItemRenderer(BuildCraftTransport.pipeStructureCobblestone.itemID, pipeItemRenderer); // MinecraftForgeClient.registerItemRenderer(BuildCraftTransport.pipeItemsStipes.shiftedIndex, pipeItemRenderer); MinecraftForgeClient.registerItemRenderer(BuildCraftTransport.pipeItemsVoid.itemID, pipeItemRenderer); - MinecraftForgeClient.registerItemRenderer(BuildCraftTransport.pipeLiquidsVoid.itemID, pipeItemRenderer); + MinecraftForgeClient.registerItemRenderer(BuildCraftTransport.pipeFluidsVoid.itemID, pipeItemRenderer); MinecraftForgeClient.registerItemRenderer(BuildCraftTransport.pipeItemsSandstone.itemID, pipeItemRenderer); - MinecraftForgeClient.registerItemRenderer(BuildCraftTransport.pipeLiquidsSandstone.itemID, pipeItemRenderer); + MinecraftForgeClient.registerItemRenderer(BuildCraftTransport.pipeFluidsSandstone.itemID, pipeItemRenderer); MinecraftForgeClient.registerItemRenderer(BuildCraftTransport.facadeItem.itemID, facadeItemRenderer); MinecraftForgeClient.registerItemRenderer(BuildCraftTransport.plugItem.itemID, plugItemRenderer); diff --git a/common/buildcraft/transport/WireIconProvider.java b/common/buildcraft/transport/WireIconProvider.java index a7d5c7c4..9e65ad41 100644 --- a/common/buildcraft/transport/WireIconProvider.java +++ b/common/buildcraft/transport/WireIconProvider.java @@ -1,10 +1,10 @@ package buildcraft.transport; -import net.minecraft.client.renderer.texture.IconRegister; -import net.minecraft.util.Icon; import buildcraft.api.core.IIconProvider; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.util.Icon; public class WireIconProvider implements IIconProvider { diff --git a/common/buildcraft/transport/blueprints/BptBlockPipe.java b/common/buildcraft/transport/blueprints/BptBlockPipe.java index 4c9ff027..5f5d9486 100644 --- a/common/buildcraft/transport/blueprints/BptBlockPipe.java +++ b/common/buildcraft/transport/blueprints/BptBlockPipe.java @@ -9,11 +9,6 @@ package buildcraft.transport.blueprints; -import java.util.LinkedList; - -import net.minecraft.block.Block; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import buildcraft.BuildCraftCore; import buildcraft.BuildCraftTransport; import buildcraft.api.blueprints.BlockSignature; @@ -26,6 +21,10 @@ import buildcraft.core.Version; import buildcraft.transport.BlockGenericPipe; import buildcraft.transport.GateVanilla; import buildcraft.transport.Pipe; +import java.util.LinkedList; +import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; @Deprecated public class BptBlockPipe extends BptBlock { diff --git a/common/buildcraft/transport/blueprints/BptItemPipeDiamond.java b/common/buildcraft/transport/blueprints/BptItemPipeDiamond.java index 6898abb3..88b23ae7 100644 --- a/common/buildcraft/transport/blueprints/BptItemPipeDiamond.java +++ b/common/buildcraft/transport/blueprints/BptItemPipeDiamond.java @@ -9,15 +9,14 @@ package buildcraft.transport.blueprints; -import java.util.LinkedList; - -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraftforge.common.ForgeDirection; import buildcraft.api.blueprints.BptBlockUtils; import buildcraft.api.blueprints.BptSlotInfo; import buildcraft.api.blueprints.IBptContext; import buildcraft.core.blueprints.BptItem; +import java.util.LinkedList; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraftforge.common.ForgeDirection; public class BptItemPipeDiamond extends BptItem { diff --git a/common/buildcraft/transport/blueprints/BptItemPipeEmerald.java b/common/buildcraft/transport/blueprints/BptItemPipeEmerald.java index f6cf20ff..f1d4cd6e 100644 --- a/common/buildcraft/transport/blueprints/BptItemPipeEmerald.java +++ b/common/buildcraft/transport/blueprints/BptItemPipeEmerald.java @@ -9,14 +9,13 @@ package buildcraft.transport.blueprints; -import java.util.LinkedList; - -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; import buildcraft.api.blueprints.BptBlockUtils; import buildcraft.api.blueprints.BptSlotInfo; import buildcraft.api.blueprints.IBptContext; import buildcraft.core.blueprints.BptItem; +import java.util.LinkedList; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; public class BptItemPipeEmerald extends BptItem { diff --git a/common/buildcraft/transport/blueprints/BptItemPipeIron.java b/common/buildcraft/transport/blueprints/BptItemPipeIron.java index 3a7ceb62..5f5539d1 100644 --- a/common/buildcraft/transport/blueprints/BptItemPipeIron.java +++ b/common/buildcraft/transport/blueprints/BptItemPipeIron.java @@ -9,13 +9,12 @@ package buildcraft.transport.blueprints; -import java.util.LinkedList; - -import net.minecraft.item.ItemStack; -import net.minecraftforge.common.ForgeDirection; import buildcraft.api.blueprints.BptSlotInfo; import buildcraft.api.blueprints.IBptContext; import buildcraft.core.blueprints.BptItem; +import java.util.LinkedList; +import net.minecraft.item.ItemStack; +import net.minecraftforge.common.ForgeDirection; public class BptItemPipeIron extends BptItem { diff --git a/common/buildcraft/transport/blueprints/BptItemPipeWooden.java b/common/buildcraft/transport/blueprints/BptItemPipeWooden.java index 6fb4d146..66ef7240 100644 --- a/common/buildcraft/transport/blueprints/BptItemPipeWooden.java +++ b/common/buildcraft/transport/blueprints/BptItemPipeWooden.java @@ -9,13 +9,12 @@ package buildcraft.transport.blueprints; -import java.util.LinkedList; - -import net.minecraft.item.ItemStack; -import net.minecraftforge.common.ForgeDirection; import buildcraft.api.blueprints.BptSlotInfo; import buildcraft.api.blueprints.IBptContext; import buildcraft.core.blueprints.BptItem; +import java.util.LinkedList; +import net.minecraft.item.ItemStack; +import net.minecraftforge.common.ForgeDirection; public class BptItemPipeWooden extends BptItem { diff --git a/common/buildcraft/transport/gui/ContainerDiamondPipe.java b/common/buildcraft/transport/gui/ContainerDiamondPipe.java index f5771452..670b4410 100644 --- a/common/buildcraft/transport/gui/ContainerDiamondPipe.java +++ b/common/buildcraft/transport/gui/ContainerDiamondPipe.java @@ -7,25 +7,28 @@ */ package buildcraft.transport.gui; +import buildcraft.core.gui.BuildCraftContainer; +import buildcraft.core.gui.slots.SlotPhantom; +import buildcraft.transport.pipes.PipeLogicDiamond; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; -import buildcraft.core.gui.BuildCraftContainer; -import buildcraft.core.gui.slots.SlotPhantom; public class ContainerDiamondPipe extends BuildCraftContainer { - IInventory playerIInventory; - IInventory filterIInventory; + private final PipeLogicDiamond logic; + private final IInventory playerInv; + private final IInventory filterInv; - public ContainerDiamondPipe(IInventory playerInventory, IInventory filterInventory) { - super(filterInventory.getSizeInventory()); - this.playerIInventory = playerInventory; - this.filterIInventory = filterInventory; + public ContainerDiamondPipe(IInventory playerInventory, PipeLogicDiamond logic) { + super(logic.getFilters().getSizeInventory()); + this.logic = logic; + this.playerInv = playerInventory; + this.filterInv = logic.getFilters(); for (int y = 0; y < 6; y++) { for (int x = 0; x < 9; x++) { - addSlotToContainer(new SlotPhantom(filterInventory, x + y * 9, 8 + x * 18, 18 + y * 18)); + addSlotToContainer(new SlotPhantom(filterInv, x + y * 9, 8 + x * 18, 18 + y * 18)); } } @@ -42,6 +45,6 @@ public class ContainerDiamondPipe extends BuildCraftContainer { @Override public boolean canInteractWith(EntityPlayer entityplayer) { - return filterIInventory.isUseableByPlayer(entityplayer); + return logic.isUseableByPlayer(entityplayer); } } diff --git a/common/buildcraft/transport/gui/ContainerEmeraldPipe.java b/common/buildcraft/transport/gui/ContainerEmeraldPipe.java index 79e2cc5d..6e892abf 100644 --- a/common/buildcraft/transport/gui/ContainerEmeraldPipe.java +++ b/common/buildcraft/transport/gui/ContainerEmeraldPipe.java @@ -7,24 +7,27 @@ */ package buildcraft.transport.gui; +import buildcraft.core.gui.BuildCraftContainer; +import buildcraft.core.gui.slots.SlotPhantom; +import buildcraft.transport.pipes.PipeItemsEmerald; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; -import buildcraft.core.gui.BuildCraftContainer; -import buildcraft.core.gui.slots.SlotPhantom; public class ContainerEmeraldPipe extends BuildCraftContainer { - IInventory playerIInventory; - IInventory filterIInventory; + private final PipeItemsEmerald pipe; + private final IInventory playerInv; + private final IInventory filterInv; - public ContainerEmeraldPipe(IInventory playerInventory, IInventory filterInventory) { - super(filterInventory.getSizeInventory()); - this.playerIInventory = playerInventory; - this.filterIInventory = filterInventory; + public ContainerEmeraldPipe(IInventory playerInventory, PipeItemsEmerald pipe) { + super(pipe.getFilters().getSizeInventory()); + this.pipe = pipe; + this.playerInv = playerInventory; + this.filterInv = pipe.getFilters(); for (int i = 0; i < 9; i++) { - addSlotToContainer(new SlotPhantom(filterInventory, i, 8 + i * 18, 18)); + addSlotToContainer(new SlotPhantom(filterInv, i, 8 + i * 18, 18)); } for (int l = 0; l < 3; l++) { @@ -40,6 +43,6 @@ public class ContainerEmeraldPipe extends BuildCraftContainer { @Override public boolean canInteractWith(EntityPlayer entityplayer) { - return filterIInventory.isUseableByPlayer(entityplayer); + return pipe.isUseableByPlayer(entityplayer); } } diff --git a/common/buildcraft/transport/gui/ContainerFilteredBuffer.java b/common/buildcraft/transport/gui/ContainerFilteredBuffer.java index ac91bad6..4e9cb88f 100644 --- a/common/buildcraft/transport/gui/ContainerFilteredBuffer.java +++ b/common/buildcraft/transport/gui/ContainerFilteredBuffer.java @@ -7,14 +7,14 @@ */ package buildcraft.transport.gui; +import buildcraft.core.gui.BuildCraftContainer; +import buildcraft.core.gui.slots.SlotPhantom; import buildcraft.core.gui.slots.SlotValidated; +import buildcraft.transport.TileFilteredBuffer; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; -import buildcraft.core.gui.BuildCraftContainer; -import buildcraft.core.gui.slots.SlotPhantom; -import buildcraft.transport.TileFilteredBuffer; /** * diff --git a/common/buildcraft/transport/gui/ContainerGateInterface.java b/common/buildcraft/transport/gui/ContainerGateInterface.java index 21f97a8b..7564c4ff 100644 --- a/common/buildcraft/transport/gui/ContainerGateInterface.java +++ b/common/buildcraft/transport/gui/ContainerGateInterface.java @@ -9,17 +9,6 @@ package buildcraft.transport.gui; -import java.util.Iterator; -import java.util.LinkedList; - -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.ICrafting; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.ForgeDirection; import buildcraft.api.core.Position; import buildcraft.api.gates.ActionManager; import buildcraft.api.gates.IAction; @@ -34,6 +23,17 @@ import buildcraft.core.network.PacketPayload; import buildcraft.core.network.PacketUpdate; import buildcraft.core.proxy.CoreProxy; import buildcraft.transport.Pipe; +import java.util.Iterator; +import java.util.LinkedList; +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.ICrafting; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.common.ForgeDirection; public class ContainerGateInterface extends BuildCraftContainer { @@ -459,7 +459,7 @@ public class ContainerGateInterface extends BuildCraftContainer { } /** GATE INFORMATION **/ - public String getGateGuiFile() { + public ResourceLocation getGateGuiFile() { return pipe.gate.getGuiFile(); } diff --git a/common/buildcraft/transport/gui/GuiDiamondPipe.java b/common/buildcraft/transport/gui/GuiDiamondPipe.java index 32a88a58..bde7def0 100644 --- a/common/buildcraft/transport/gui/GuiDiamondPipe.java +++ b/common/buildcraft/transport/gui/GuiDiamondPipe.java @@ -7,39 +7,38 @@ */ package buildcraft.transport.gui; -import net.minecraft.inventory.IInventory; - -import org.lwjgl.opengl.GL11; - import buildcraft.core.DefaultProps; import buildcraft.core.gui.GuiBuildCraft; import buildcraft.core.utils.StringUtils; -import buildcraft.transport.TileGenericPipe; import buildcraft.transport.pipes.PipeLogicDiamond; +import net.minecraft.inventory.IInventory; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.opengl.GL11; public class GuiDiamondPipe extends GuiBuildCraft { + private static final ResourceLocation TEXTURE = new ResourceLocation("buildcraft", DefaultProps.TEXTURE_PATH_GUI + "/filter.png"); IInventory playerInventory; - PipeLogicDiamond filterInventory; + IInventory filterInventory; - public GuiDiamondPipe(IInventory playerInventory, TileGenericPipe tile) { - super(new ContainerDiamondPipe(playerInventory, (IInventory) tile.pipe.logic), (IInventory) tile.pipe.logic); + public GuiDiamondPipe(IInventory playerInventory, PipeLogicDiamond logic) { + super(new ContainerDiamondPipe(playerInventory, logic), logic.getFilters()); this.playerInventory = playerInventory; - this.filterInventory = (PipeLogicDiamond) tile.pipe.logic; + this.filterInventory = logic.getFilters(); xSize = 175; ySize = 225; } @Override protected void drawGuiContainerForegroundLayer(int par1, int par2) { - fontRenderer.drawString(filterInventory.getFilters().getInvName(), getCenteredOffset(filterInventory.getFilters().getInvName()), 6, 0x404040); + fontRenderer.drawString(filterInventory.getInvName(), getCenteredOffset(filterInventory.getInvName()), 6, 0x404040); fontRenderer.drawString(StringUtils.localize("gui.inventory"), 8, ySize - 97, 0x404040); } @Override protected void drawGuiContainerBackgroundLayer(float f, int x, int y) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - mc.renderEngine.bindTexture(DefaultProps.TEXTURE_PATH_GUI + "/filter.png"); + mc.renderEngine.func_110577_a(TEXTURE); int j = (width - xSize) / 2; int k = (height - ySize) / 2; drawTexturedModalRect(j, k, 0, 0, xSize, ySize); diff --git a/common/buildcraft/transport/gui/GuiEmeraldPipe.java b/common/buildcraft/transport/gui/GuiEmeraldPipe.java index 65fddd01..affc563f 100644 --- a/common/buildcraft/transport/gui/GuiEmeraldPipe.java +++ b/common/buildcraft/transport/gui/GuiEmeraldPipe.java @@ -7,39 +7,39 @@ */ package buildcraft.transport.gui; -import net.minecraft.inventory.IInventory; - -import org.lwjgl.opengl.GL11; - import buildcraft.core.DefaultProps; import buildcraft.core.gui.GuiBuildCraft; import buildcraft.core.utils.StringUtils; -import buildcraft.transport.TileGenericPipe; import buildcraft.transport.pipes.PipeItemsEmerald; +import net.minecraft.inventory.IInventory; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.opengl.GL11; public class GuiEmeraldPipe extends GuiBuildCraft { - IInventory playerInventory; - PipeItemsEmerald filterInventory; + private static final ResourceLocation TEXTURE = new ResourceLocation("buildcraft", DefaultProps.TEXTURE_PATH_GUI + "/filter_2.png"); - public GuiEmeraldPipe(IInventory playerInventory, TileGenericPipe tile) { - super(new ContainerEmeraldPipe(playerInventory, (IInventory) tile.pipe), (IInventory) tile.pipe); + IInventory playerInventory; + IInventory filterInventory; + + public GuiEmeraldPipe(IInventory playerInventory, PipeItemsEmerald pipe) { + super(new ContainerEmeraldPipe(playerInventory, pipe), pipe.getFilters()); this.playerInventory = playerInventory; - this.filterInventory = (PipeItemsEmerald) tile.pipe; + this.filterInventory = pipe.getFilters(); xSize = 175; ySize = 132; } @Override protected void drawGuiContainerForegroundLayer(int par1, int par2) { - fontRenderer.drawString(filterInventory.getFilters().getInvName(), getCenteredOffset(filterInventory.getFilters().getInvName()), 6, 0x404040); + fontRenderer.drawString(filterInventory.getInvName(), getCenteredOffset(filterInventory.getInvName()), 6, 0x404040); fontRenderer.drawString(StringUtils.localize("gui.inventory"), 8, ySize - 93, 0x404040); } @Override protected void drawGuiContainerBackgroundLayer(float f, int x, int y) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - mc.renderEngine.bindTexture(DefaultProps.TEXTURE_PATH_GUI + "/filter_2.png"); + mc.renderEngine.func_110577_a(TEXTURE); int j = (width - xSize) / 2; int k = (height - ySize) / 2; drawTexturedModalRect(j, k, 0, 0, xSize, ySize); diff --git a/common/buildcraft/transport/gui/GuiFilteredBuffer.java b/common/buildcraft/transport/gui/GuiFilteredBuffer.java index 2c43254f..617dce39 100644 --- a/common/buildcraft/transport/gui/GuiFilteredBuffer.java +++ b/common/buildcraft/transport/gui/GuiFilteredBuffer.java @@ -7,13 +7,14 @@ */ package buildcraft.transport.gui; -import org.lwjgl.opengl.GL11; import buildcraft.core.DefaultProps; import buildcraft.core.utils.StringUtils; import buildcraft.transport.TileFilteredBuffer; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.IInventory; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.opengl.GL11; /** * @@ -21,6 +22,7 @@ import net.minecraft.inventory.IInventory; */ public class GuiFilteredBuffer extends GuiContainer { + private static final ResourceLocation TEXTURE = new ResourceLocation("buildcraft", DefaultProps.TEXTURE_PATH_GUI + "/filteredBuffer_gui.png"); IInventory playerInventory; TileFilteredBuffer filteredBuffer; @@ -37,7 +39,7 @@ public class GuiFilteredBuffer extends GuiContainer { protected void drawGuiContainerBackgroundLayer(float f, int x, int y) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - mc.renderEngine.bindTexture(DefaultProps.TEXTURE_PATH_GUI + "/filteredBuffer_gui.png"); + mc.renderEngine.func_110577_a(TEXTURE); int cornerX = (width - xSize) / 2; int cornerY = (height - ySize) / 2; diff --git a/common/buildcraft/transport/gui/GuiGateInterface.java b/common/buildcraft/transport/gui/GuiGateInterface.java index 70f69c47..90b5d68d 100644 --- a/common/buildcraft/transport/gui/GuiGateInterface.java +++ b/common/buildcraft/transport/gui/GuiGateInterface.java @@ -9,15 +9,6 @@ package buildcraft.transport.gui; -import java.util.Iterator; - -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.util.Icon; - -import org.lwjgl.opengl.GL11; - -import buildcraft.BuildCraftCore; import buildcraft.api.gates.IAction; import buildcraft.api.gates.ITrigger; import buildcraft.api.gates.ITriggerParameter; @@ -28,6 +19,12 @@ import buildcraft.transport.Gate.GateKind; import buildcraft.transport.Pipe; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import java.util.Iterator; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.util.Icon; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.opengl.GL11; public class GuiGateInterface extends GuiAdvancedInterface { @@ -244,10 +241,10 @@ public class GuiGateInterface extends GuiAdvancedInterface { _container.synchronize(); - String texture = _container.getGateGuiFile(); + ResourceLocation texture = _container.getGateGuiFile(); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - mc.renderEngine.bindTexture(texture); + mc.renderEngine.func_110577_a(texture); int cornerX = (width - xSize) / 2; int cornerY = (height - ySize) / 2; @@ -263,18 +260,18 @@ public class GuiGateInterface extends GuiAdvancedInterface { if (_container.getGateOrdinal() >= GateKind.AND_3.ordinal()) { if (_container.triggerState[triggerTracker++]) { - mc.renderEngine.bindTexture(texture); + mc.renderEngine.func_110577_a(texture); drawTexturedModalRect(cornerX + slot.x + 35, cornerY + slot.y + 6, 176, 18, 18, 4); } if (trigger == null || !trigger.hasParameter()) { - mc.renderEngine.bindTexture(texture); + mc.renderEngine.func_110577_a(texture); drawTexturedModalRect(cornerX + slot.x + 17, cornerY + slot.y - 1, 176, 0, 18, 18); } } else if (_container.triggerState[triggerTracker++]) { - mc.renderEngine.bindTexture(texture); + mc.renderEngine.func_110577_a(texture); drawTexturedModalRect(cornerX + slot.x + 17, cornerY + slot.y + 6, 176, 18, 18, 4); } diff --git a/common/buildcraft/transport/network/PacketLiquidUpdate.java b/common/buildcraft/transport/network/PacketFluidUpdate.java similarity index 72% rename from common/buildcraft/transport/network/PacketLiquidUpdate.java rename to common/buildcraft/transport/network/PacketFluidUpdate.java index 7d602621..a2dd745b 100644 --- a/common/buildcraft/transport/network/PacketLiquidUpdate.java +++ b/common/buildcraft/transport/network/PacketFluidUpdate.java @@ -1,35 +1,34 @@ package buildcraft.transport.network; +import buildcraft.core.network.PacketCoordinates; +import buildcraft.core.network.PacketIds; +import buildcraft.core.proxy.CoreProxy; +import buildcraft.transport.PipeTransportFluids; +import buildcraft.transport.TileGenericPipe; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.util.BitSet; - import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.ForgeDirection; -import net.minecraftforge.liquids.LiquidStack; -import buildcraft.core.network.PacketCoordinates; -import buildcraft.core.network.PacketIds; -import buildcraft.core.proxy.CoreProxy; -import buildcraft.transport.PipeTransportLiquids; -import buildcraft.transport.TileGenericPipe; +import net.minecraftforge.fluids.FluidStack; -public class PacketLiquidUpdate extends PacketCoordinates { +public class PacketFluidUpdate extends PacketCoordinates { - public LiquidStack[] renderCache = new LiquidStack[ForgeDirection.values().length]; + public FluidStack[] renderCache = new FluidStack[ForgeDirection.values().length]; public BitSet delta; - public PacketLiquidUpdate(int xCoord, int yCoord, int zCoord) { + public PacketFluidUpdate(int xCoord, int yCoord, int zCoord) { super(PacketIds.PIPE_LIQUID, xCoord, yCoord, zCoord); } - public PacketLiquidUpdate(int xCoord, int yCoord, int zCoord, boolean chunkPacket) { + public PacketFluidUpdate(int xCoord, int yCoord, int zCoord, boolean chunkPacket) { super(PacketIds.PIPE_LIQUID, xCoord, yCoord, zCoord); this.isChunkDataPacket = chunkPacket; } - public PacketLiquidUpdate() { + public PacketFluidUpdate() { } @Override @@ -48,10 +47,10 @@ public class PacketLiquidUpdate extends PacketCoordinates { if (pipe.pipe == null) return; - if (!(pipe.pipe.transport instanceof PipeTransportLiquids)) + if (!(pipe.pipe.transport instanceof PipeTransportFluids)) return; - PipeTransportLiquids transLiq = ((PipeTransportLiquids) pipe.pipe.transport); + PipeTransportFluids transLiq = ((PipeTransportFluids) pipe.pipe.transport); renderCache = transLiq.renderCache; @@ -64,13 +63,13 @@ public class PacketLiquidUpdate extends PacketCoordinates { for (ForgeDirection dir : ForgeDirection.values()) { if (delta.get(dir.ordinal() * 3 + 0)) { int amt = renderCache[dir.ordinal()] != null ? renderCache[dir.ordinal()].amount : 0; - renderCache[dir.ordinal()] = new LiquidStack(data.readShort(),amt,data.readShort()); + renderCache[dir.ordinal()] = new FluidStack(data.readInt(),amt); } if (delta.get(dir.ordinal() * 3 + 2)) { if (renderCache[dir.ordinal()] == null) { - renderCache[dir.ordinal()] = new LiquidStack(0,0); + renderCache[dir.ordinal()] = new FluidStack(0,0); } - renderCache[dir.ordinal()].amount = Math.min(transLiq.getCapacity(), data.readShort()); + renderCache[dir.ordinal()].amount = Math.min(transLiq.getCapacity(), data.readInt()); } } } @@ -84,22 +83,20 @@ public class PacketLiquidUpdate extends PacketCoordinates { data.write(dBytes); for (ForgeDirection dir : ForgeDirection.values()) { - LiquidStack liquid = renderCache[dir.ordinal()]; + FluidStack liquid = renderCache[dir.ordinal()]; if (delta.get(dir.ordinal() * 3 + 0)) { if (liquid != null) { - data.writeShort(liquid.itemID); - data.writeShort(liquid.itemMeta); + data.writeInt(liquid.fluidID); } else { - data.writeShort(0); - data.writeShort(0); + data.writeInt(0); } } if (delta.get(dir.ordinal() * 3 + 2)) { if (liquid != null) { - data.writeShort(liquid.amount); + data.writeInt(liquid.amount); } else { - data.writeShort(0); + data.writeInt(0); } } } diff --git a/common/buildcraft/transport/network/PacketHandlerTransport.java b/common/buildcraft/transport/network/PacketHandlerTransport.java index 6d4c1623..e6b35076 100644 --- a/common/buildcraft/transport/network/PacketHandlerTransport.java +++ b/common/buildcraft/transport/network/PacketHandlerTransport.java @@ -1,15 +1,5 @@ package buildcraft.transport.network; -import java.io.ByteArrayInputStream; -import java.io.DataInputStream; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.inventory.Container; -import net.minecraft.network.INetworkManager; -import net.minecraft.network.packet.Packet250CustomPayload; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; import buildcraft.core.network.PacketCoordinates; import buildcraft.core.network.PacketIds; import buildcraft.core.network.PacketSlotChange; @@ -22,6 +12,15 @@ import buildcraft.transport.pipes.PipeItemsEmerald; import buildcraft.transport.pipes.PipeLogicDiamond; import cpw.mods.fml.common.network.IPacketHandler; import cpw.mods.fml.common.network.Player; +import java.io.ByteArrayInputStream; +import java.io.DataInputStream; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.inventory.Container; +import net.minecraft.network.INetworkManager; +import net.minecraft.network.packet.Packet250CustomPayload; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; public class PacketHandlerTransport implements IPacketHandler { @@ -41,8 +40,8 @@ public class PacketHandlerTransport implements IPacketHandler { onPacketPower((EntityPlayer) player, packetPower); break; case PacketIds.PIPE_LIQUID: - PacketLiquidUpdate packetLiquid = new PacketLiquidUpdate(); - packetLiquid.readData(data); + PacketFluidUpdate packetFluid = new PacketFluidUpdate(); + packetFluid.readData(data); break; case PacketIds.PIPE_DESCRIPTION: PipeRenderStatePacket descPacket = new PipeRenderStatePacket(); diff --git a/common/buildcraft/transport/network/PacketPipeTransportContent.java b/common/buildcraft/transport/network/PacketPipeTransportContent.java index 0c587782..39bba5df 100644 --- a/common/buildcraft/transport/network/PacketPipeTransportContent.java +++ b/common/buildcraft/transport/network/PacketPipeTransportContent.java @@ -1,14 +1,13 @@ package buildcraft.transport.network; -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; - -import net.minecraft.util.MathHelper; -import net.minecraftforge.common.ForgeDirection; import buildcraft.core.network.BuildCraftPacket; import buildcraft.core.network.PacketIds; import buildcraft.transport.EntityData; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import net.minecraft.util.MathHelper; +import net.minecraftforge.common.ForgeDirection; public class PacketPipeTransportContent extends BuildCraftPacket { diff --git a/common/buildcraft/transport/network/PacketPipeTransportNBT.java b/common/buildcraft/transport/network/PacketPipeTransportNBT.java index 05abc2b0..4c24db40 100644 --- a/common/buildcraft/transport/network/PacketPipeTransportNBT.java +++ b/common/buildcraft/transport/network/PacketPipeTransportNBT.java @@ -1,12 +1,11 @@ package buildcraft.transport.network; +import buildcraft.core.network.PacketCoordinates; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; - import net.minecraft.nbt.CompressedStreamTools; import net.minecraft.nbt.NBTTagCompound; -import buildcraft.core.network.PacketCoordinates; public class PacketPipeTransportNBT extends PacketCoordinates { diff --git a/common/buildcraft/transport/network/PacketPowerUpdate.java b/common/buildcraft/transport/network/PacketPowerUpdate.java index 5bc5c94f..64f86e35 100644 --- a/common/buildcraft/transport/network/PacketPowerUpdate.java +++ b/common/buildcraft/transport/network/PacketPowerUpdate.java @@ -1,11 +1,10 @@ package buildcraft.transport.network; -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; - import buildcraft.core.network.PacketCoordinates; import buildcraft.core.network.PacketIds; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; public class PacketPowerUpdate extends PacketCoordinates { diff --git a/common/buildcraft/transport/network/PacketSimpleId.java b/common/buildcraft/transport/network/PacketSimpleId.java index ad39d4fd..7f7a2fdd 100644 --- a/common/buildcraft/transport/network/PacketSimpleId.java +++ b/common/buildcraft/transport/network/PacketSimpleId.java @@ -1,11 +1,10 @@ package buildcraft.transport.network; +import buildcraft.core.network.PacketCoordinates; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; -import buildcraft.core.network.PacketCoordinates; - public class PacketSimpleId extends PacketCoordinates { public int entityId; diff --git a/common/buildcraft/transport/network/PipeRenderStatePacket.java b/common/buildcraft/transport/network/PipeRenderStatePacket.java index 7317ad7d..ffe4b691 100644 --- a/common/buildcraft/transport/network/PipeRenderStatePacket.java +++ b/common/buildcraft/transport/network/PipeRenderStatePacket.java @@ -1,12 +1,11 @@ package buildcraft.transport.network; -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; - import buildcraft.core.network.PacketCoordinates; import buildcraft.core.network.PacketIds; import buildcraft.transport.PipeRenderState; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; public class PipeRenderStatePacket extends PacketCoordinates { diff --git a/common/buildcraft/transport/pipes/PipeLiquidsCobblestone.java b/common/buildcraft/transport/pipes/PipeFluidsCobblestone.java similarity index 75% rename from common/buildcraft/transport/pipes/PipeLiquidsCobblestone.java rename to common/buildcraft/transport/pipes/PipeFluidsCobblestone.java index c4354404..d2acb38e 100644 --- a/common/buildcraft/transport/pipes/PipeLiquidsCobblestone.java +++ b/common/buildcraft/transport/pipes/PipeFluidsCobblestone.java @@ -8,19 +8,19 @@ package buildcraft.transport.pipes; -import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftTransport; import buildcraft.api.core.IIconProvider; import buildcraft.transport.Pipe; import buildcraft.transport.PipeIconProvider; -import buildcraft.transport.PipeTransportLiquids; +import buildcraft.transport.PipeTransportFluids; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraftforge.common.ForgeDirection; -public class PipeLiquidsCobblestone extends Pipe { +public class PipeFluidsCobblestone extends Pipe { - public PipeLiquidsCobblestone(int itemID) { - super(new PipeTransportLiquids(), new PipeLogicCobblestone(), itemID); + public PipeFluidsCobblestone(int itemID) { + super(new PipeTransportFluids(), new PipeLogicCobblestone(), itemID); } @Override @@ -31,6 +31,6 @@ public class PipeLiquidsCobblestone extends Pipe { @Override public int getIconIndex(ForgeDirection direction) { - return PipeIconProvider.TYPE.PipeLiquidsCobblestone.ordinal(); + return PipeIconProvider.TYPE.PipeFluidsCobblestone.ordinal(); } } diff --git a/common/buildcraft/transport/pipes/PipeLiquidsEmerald.java b/common/buildcraft/transport/pipes/PipeFluidsEmerald.java similarity index 61% rename from common/buildcraft/transport/pipes/PipeLiquidsEmerald.java rename to common/buildcraft/transport/pipes/PipeFluidsEmerald.java index feec1f9d..1c41cc7b 100644 --- a/common/buildcraft/transport/pipes/PipeLiquidsEmerald.java +++ b/common/buildcraft/transport/pipes/PipeFluidsEmerald.java @@ -9,21 +9,21 @@ package buildcraft.transport.pipes; import buildcraft.transport.PipeIconProvider; -import buildcraft.transport.PipeTransportLiquids; +import buildcraft.transport.PipeTransportFluids; /** * * @author CovertJaguar */ -public class PipeLiquidsEmerald extends PipeLiquidsWood { +public class PipeFluidsEmerald extends PipeFluidsWood { - public PipeLiquidsEmerald(int itemID) { + public PipeFluidsEmerald(int itemID) { super(new PipeLogicEmerald(), itemID); - standardIconIndex = PipeIconProvider.TYPE.PipeLiquidsEmerald_Standard.ordinal(); + standardIconIndex = PipeIconProvider.TYPE.PipeFluidsEmerald_Standard.ordinal(); solidIconIndex = PipeIconProvider.TYPE.PipeAllEmerald_Solid.ordinal(); - ((PipeTransportLiquids) transport).flowRate = 40; - ((PipeTransportLiquids) transport).travelDelay = 4; + ((PipeTransportFluids) transport).flowRate = 40; + ((PipeTransportFluids) transport).travelDelay = 4; } } diff --git a/common/buildcraft/transport/pipes/PipeLiquidsGold.java b/common/buildcraft/transport/pipes/PipeFluidsGold.java similarity index 71% rename from common/buildcraft/transport/pipes/PipeLiquidsGold.java rename to common/buildcraft/transport/pipes/PipeFluidsGold.java index 664c1d8c..f62f1027 100644 --- a/common/buildcraft/transport/pipes/PipeLiquidsGold.java +++ b/common/buildcraft/transport/pipes/PipeFluidsGold.java @@ -8,22 +8,22 @@ package buildcraft.transport.pipes; -import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftTransport; import buildcraft.api.core.IIconProvider; import buildcraft.transport.Pipe; import buildcraft.transport.PipeIconProvider; -import buildcraft.transport.PipeTransportLiquids; +import buildcraft.transport.PipeTransportFluids; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraftforge.common.ForgeDirection; -public class PipeLiquidsGold extends Pipe { +public class PipeFluidsGold extends Pipe { - public PipeLiquidsGold(int itemID) { - super(new PipeTransportLiquids(), new PipeLogicGold(), itemID); + public PipeFluidsGold(int itemID) { + super(new PipeTransportFluids(), new PipeLogicGold(), itemID); - ((PipeTransportLiquids) transport).flowRate = 40; - ((PipeTransportLiquids) transport).travelDelay = 4; + ((PipeTransportFluids) transport).flowRate = 40; + ((PipeTransportFluids) transport).travelDelay = 4; } @Override @@ -34,7 +34,7 @@ public class PipeLiquidsGold extends Pipe { @Override public int getIconIndex(ForgeDirection direction) { - return PipeIconProvider.TYPE.PipeLiquidsGold.ordinal(); + return PipeIconProvider.TYPE.PipeFluidsGold.ordinal(); } } diff --git a/common/buildcraft/transport/pipes/PipeLiquidsIron.java b/common/buildcraft/transport/pipes/PipeFluidsIron.java similarity index 81% rename from common/buildcraft/transport/pipes/PipeLiquidsIron.java rename to common/buildcraft/transport/pipes/PipeFluidsIron.java index a634416a..342c730d 100644 --- a/common/buildcraft/transport/pipes/PipeLiquidsIron.java +++ b/common/buildcraft/transport/pipes/PipeFluidsIron.java @@ -8,23 +8,23 @@ package buildcraft.transport.pipes; -import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftTransport; import buildcraft.api.core.IIconProvider; import buildcraft.transport.Pipe; import buildcraft.transport.PipeIconProvider; -import buildcraft.transport.PipeTransportLiquids; +import buildcraft.transport.PipeTransportFluids; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraftforge.common.ForgeDirection; -public class PipeLiquidsIron extends Pipe { +public class PipeFluidsIron extends Pipe { - protected int standardIconIndex = PipeIconProvider.TYPE.PipeLiquidsIron_Standard.ordinal(); + protected int standardIconIndex = PipeIconProvider.TYPE.PipeFluidsIron_Standard.ordinal(); protected int solidIconIndex = PipeIconProvider.TYPE.PipeAllIron_Solid.ordinal(); - public PipeLiquidsIron(int itemID) { - super(new PipeTransportLiquids(), new PipeLogicIron(), itemID); + public PipeFluidsIron(int itemID) { + super(new PipeTransportFluids(), new PipeLogicIron(), itemID); } @Override diff --git a/common/buildcraft/transport/pipes/PipeLiquidsSandstone.java b/common/buildcraft/transport/pipes/PipeFluidsSandstone.java similarity index 63% rename from common/buildcraft/transport/pipes/PipeLiquidsSandstone.java rename to common/buildcraft/transport/pipes/PipeFluidsSandstone.java index 65fbf405..24661641 100644 --- a/common/buildcraft/transport/pipes/PipeLiquidsSandstone.java +++ b/common/buildcraft/transport/pipes/PipeFluidsSandstone.java @@ -9,21 +9,21 @@ package buildcraft.transport.pipes; -import net.minecraftforge.common.ForgeDirection; -import net.minecraftforge.liquids.LiquidStack; import buildcraft.BuildCraftTransport; import buildcraft.api.core.IIconProvider; -import buildcraft.transport.IPipeTransportLiquidsHook; +import buildcraft.transport.IPipeTransportFluidsHook; import buildcraft.transport.Pipe; import buildcraft.transport.PipeIconProvider; -import buildcraft.transport.PipeTransportLiquids; +import buildcraft.transport.PipeTransportFluids; import buildcraft.transport.TileGenericPipe; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraftforge.common.ForgeDirection; +import net.minecraftforge.fluids.FluidStack; -public class PipeLiquidsSandstone extends Pipe implements IPipeTransportLiquidsHook { - public PipeLiquidsSandstone(int itemID) { - super(new PipeTransportLiquids(), new PipeLogicSandstone(), itemID); +public class PipeFluidsSandstone extends Pipe implements IPipeTransportFluidsHook { + public PipeFluidsSandstone(int itemID) { + super(new PipeTransportFluids(), new PipeLogicSandstone(), itemID); } @Override @@ -34,17 +34,17 @@ public class PipeLiquidsSandstone extends Pipe implements IPipeTransportLiquidsH @Override public int getIconIndex(ForgeDirection direction) { - return PipeIconProvider.TYPE.PipeLiquidsSandstone.ordinal(); + return PipeIconProvider.TYPE.PipeFluidsSandstone.ordinal(); } @Override - public int fill(ForgeDirection from, LiquidStack resource, boolean doFill) { + public int fill(ForgeDirection from, FluidStack resource, boolean doFill) { if (container.tileBuffer == null || container.tileBuffer[from.ordinal()] == null) return 0; if (!(container.tileBuffer[from.ordinal()].getTile() instanceof TileGenericPipe)) return 0; - return ((PipeTransportLiquids) this.transport).getTanks(ForgeDirection.UNKNOWN)[from.ordinal()].fill(resource, doFill); + return ((PipeTransportFluids) this.transport).fill(from, resource, doFill); } } diff --git a/common/buildcraft/transport/pipes/PipeLiquidsStone.java b/common/buildcraft/transport/pipes/PipeFluidsStone.java similarity index 73% rename from common/buildcraft/transport/pipes/PipeLiquidsStone.java rename to common/buildcraft/transport/pipes/PipeFluidsStone.java index cd18c34d..d3deb0fe 100644 --- a/common/buildcraft/transport/pipes/PipeLiquidsStone.java +++ b/common/buildcraft/transport/pipes/PipeFluidsStone.java @@ -8,21 +8,21 @@ package buildcraft.transport.pipes; -import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftTransport; import buildcraft.api.core.IIconProvider; import buildcraft.transport.Pipe; import buildcraft.transport.PipeIconProvider; -import buildcraft.transport.PipeTransportLiquids; +import buildcraft.transport.PipeTransportFluids; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraftforge.common.ForgeDirection; -public class PipeLiquidsStone extends Pipe { +public class PipeFluidsStone extends Pipe { - public PipeLiquidsStone(int itemID) { - super(new PipeTransportLiquids(), new PipeLogicStone(), itemID); + public PipeFluidsStone(int itemID) { + super(new PipeTransportFluids(), new PipeLogicStone(), itemID); - // ((PipeTransportLiquids) transport).flowRate = 40; + // ((PipeTransportFluids) transport).flowRate = 40; } @Override @@ -33,7 +33,7 @@ public class PipeLiquidsStone extends Pipe { @Override public int getIconIndex(ForgeDirection direction) { - return PipeIconProvider.TYPE.PipeLiquidsStone.ordinal(); + return PipeIconProvider.TYPE.PipeFluidsStone.ordinal(); } } diff --git a/common/buildcraft/transport/pipes/PipeLiquidsVoid.java b/common/buildcraft/transport/pipes/PipeFluidsVoid.java similarity index 64% rename from common/buildcraft/transport/pipes/PipeLiquidsVoid.java rename to common/buildcraft/transport/pipes/PipeFluidsVoid.java index 8640e00e..985f0936 100644 --- a/common/buildcraft/transport/pipes/PipeLiquidsVoid.java +++ b/common/buildcraft/transport/pipes/PipeFluidsVoid.java @@ -9,21 +9,21 @@ package buildcraft.transport.pipes; -import net.minecraftforge.common.ForgeDirection; -import net.minecraftforge.liquids.LiquidStack; import buildcraft.BuildCraftTransport; import buildcraft.api.core.IIconProvider; -import buildcraft.transport.IPipeTransportLiquidsHook; +import buildcraft.transport.IPipeTransportFluidsHook; import buildcraft.transport.Pipe; import buildcraft.transport.PipeIconProvider; -import buildcraft.transport.PipeTransportLiquids; +import buildcraft.transport.PipeTransportFluids; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraftforge.common.ForgeDirection; +import net.minecraftforge.fluids.FluidStack; -public class PipeLiquidsVoid extends Pipe implements IPipeTransportLiquidsHook { +public class PipeFluidsVoid extends Pipe implements IPipeTransportFluidsHook { - public PipeLiquidsVoid(int itemID) { - super(new PipeTransportLiquids(), new PipeLogicVoid(), itemID); + public PipeFluidsVoid(int itemID) { + super(new PipeTransportFluids(), new PipeLogicVoid(), itemID); } @Override @@ -34,11 +34,11 @@ public class PipeLiquidsVoid extends Pipe implements IPipeTransportLiquidsHook { @Override public int getIconIndex(ForgeDirection direction) { - return PipeIconProvider.TYPE.PipeLiquidsVoid.ordinal(); + return PipeIconProvider.TYPE.PipeFluidsVoid.ordinal(); } @Override - public int fill(ForgeDirection from, LiquidStack resource, boolean doFill) { + public int fill(ForgeDirection from, FluidStack resource, boolean doFill) { return resource.amount; } } diff --git a/common/buildcraft/transport/pipes/PipeLiquidsWood.java b/common/buildcraft/transport/pipes/PipeFluidsWood.java similarity index 72% rename from common/buildcraft/transport/pipes/PipeLiquidsWood.java rename to common/buildcraft/transport/pipes/PipeFluidsWood.java index 7ec72aa8..315c7e65 100644 --- a/common/buildcraft/transport/pipes/PipeLiquidsWood.java +++ b/common/buildcraft/transport/pipes/PipeFluidsWood.java @@ -8,12 +8,6 @@ package buildcraft.transport.pipes; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; -import net.minecraftforge.common.ForgeDirection; -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; @@ -25,29 +19,35 @@ import buildcraft.api.transport.PipeManager; import buildcraft.core.network.TileNetworkData; import buildcraft.transport.Pipe; import buildcraft.transport.PipeIconProvider; -import buildcraft.transport.PipeTransportLiquids; +import buildcraft.transport.PipeTransportFluids; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.ForgeDirection; +import net.minecraftforge.fluids.FluidContainerRegistry; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.IFluidHandler; -public class PipeLiquidsWood extends Pipe implements IPowerReceptor { +public class PipeFluidsWood extends Pipe implements IPowerReceptor { public @TileNetworkData int liquidToExtract; private PowerHandler powerHandler; - protected int standardIconIndex = PipeIconProvider.TYPE.PipeLiquidsWood_Standard.ordinal(); + protected int standardIconIndex = PipeIconProvider.TYPE.PipeFluidsWood_Standard.ordinal(); protected int solidIconIndex = PipeIconProvider.TYPE.PipeAllWood_Solid.ordinal(); long lastMining = 0; boolean lastPower = false; - public PipeLiquidsWood(int itemID) { + public PipeFluidsWood(int itemID) { this(new PipeLogicWood(), itemID); } - - protected PipeLiquidsWood(PipeLogic logic, int itemID) { - super(new PipeTransportLiquids(), logic, itemID); + + protected PipeFluidsWood(PipeLogic logic, int itemID) { + super(new PipeTransportFluids(), logic, itemID); powerHandler = new PowerHandler(this, Type.MACHINE); powerHandler.configure(1, 100, 1, 250); @@ -73,12 +73,12 @@ public class PipeLiquidsWood extends Pipe implements IPowerReceptor { pos.moveForwards(1); TileEntity tile = w.getBlockTileEntity((int) pos.x, (int) pos.y, (int) pos.z); - if (tile instanceof ITankContainer) { - if (!PipeManager.canExtractLiquids(this, w, (int) pos.x, (int) pos.y, (int) pos.z)) + if (tile instanceof IFluidHandler) { + if (!PipeManager.canExtractFluids(this, w, (int) pos.x, (int) pos.y, (int) pos.z)) return; - if (liquidToExtract <= LiquidContainerRegistry.BUCKET_VOLUME) { - liquidToExtract += powerHandler.useEnergy(1, 1, true) * LiquidContainerRegistry.BUCKET_VOLUME; + if (liquidToExtract <= FluidContainerRegistry.BUCKET_VOLUME) { + liquidToExtract += powerHandler.useEnergy(1, 1, true) * FluidContainerRegistry.BUCKET_VOLUME; } } powerHandler.useEnergy(1, 1, true); @@ -101,16 +101,16 @@ public class PipeLiquidsWood extends Pipe implements IPowerReceptor { TileEntity tile = worldObj.getBlockTileEntity((int) pos.x, (int) pos.y, (int) pos.z); - if (tile instanceof ITankContainer) { - ITankContainer container = (ITankContainer) tile; + if (tile instanceof IFluidHandler) { + IFluidHandler container = (IFluidHandler) tile; - int flowRate = ((PipeTransportLiquids) transport).flowRate; + int flowRate = ((PipeTransportFluids) transport).flowRate; - LiquidStack extracted = container.drain(pos.orientation.getOpposite(), liquidToExtract > flowRate ? flowRate : liquidToExtract, false); + FluidStack extracted = container.drain(pos.orientation.getOpposite(), liquidToExtract > flowRate ? flowRate : liquidToExtract, false); int inserted = 0; if (extracted != null) { - inserted = ((PipeTransportLiquids) transport).fill(pos.orientation, extracted, true); + inserted = ((PipeTransportFluids) transport).fill(pos.orientation, extracted, true); container.drain(pos.orientation.getOpposite(), inserted, true); } diff --git a/common/buildcraft/transport/pipes/PipeItemsCobblestone.java b/common/buildcraft/transport/pipes/PipeItemsCobblestone.java index 5c8dca15..4ea3c8d3 100644 --- a/common/buildcraft/transport/pipes/PipeItemsCobblestone.java +++ b/common/buildcraft/transport/pipes/PipeItemsCobblestone.java @@ -8,7 +8,6 @@ package buildcraft.transport.pipes; -import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftTransport; import buildcraft.api.core.IIconProvider; import buildcraft.transport.Pipe; @@ -16,6 +15,7 @@ import buildcraft.transport.PipeIconProvider; import buildcraft.transport.PipeTransportItems; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraftforge.common.ForgeDirection; public class PipeItemsCobblestone extends Pipe { diff --git a/common/buildcraft/transport/pipes/PipeItemsDiamond.java b/common/buildcraft/transport/pipes/PipeItemsDiamond.java index c3bc5fa8..01a177ab 100644 --- a/common/buildcraft/transport/pipes/PipeItemsDiamond.java +++ b/common/buildcraft/transport/pipes/PipeItemsDiamond.java @@ -8,16 +8,6 @@ package buildcraft.transport.pipes; -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; -import java.util.LinkedList; - -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -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; @@ -29,6 +19,15 @@ import buildcraft.transport.PipeIconProvider; import buildcraft.transport.PipeTransportItems; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import java.util.LinkedList; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTBase; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.common.ForgeDirection; public class PipeItemsDiamond extends Pipe implements IPipeTransportItemsHook, IClientState { diff --git a/common/buildcraft/transport/pipes/PipeItemsEmerald.java b/common/buildcraft/transport/pipes/PipeItemsEmerald.java index bb3bb2a7..9d4e9403 100644 --- a/common/buildcraft/transport/pipes/PipeItemsEmerald.java +++ b/common/buildcraft/transport/pipes/PipeItemsEmerald.java @@ -1,17 +1,26 @@ /** - * Copyright (c) SpaceToad, 2011 - * http://www.mod-buildcraft.com + * Copyright (c) SpaceToad, 2011 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 + * 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.transport.pipes; +import buildcraft.BuildCraftTransport; +import buildcraft.api.inventory.ISelectiveInventory; +import buildcraft.api.inventory.ISpecialInventory; +import buildcraft.core.GuiIds; +import buildcraft.core.inventory.SimpleInventory; +import buildcraft.core.network.IClientState; +import buildcraft.core.proxy.CoreProxy; +import buildcraft.core.utils.Utils; +import buildcraft.transport.BlockGenericPipe; +import buildcraft.transport.PipeIconProvider; +import buildcraft.transport.PipeTransportItems; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; - import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; @@ -20,17 +29,6 @@ import net.minecraft.nbt.NBTBase; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; import net.minecraftforge.common.ForgeDirection; -import buildcraft.BuildCraftTransport; -import buildcraft.api.inventory.ISelectiveInventory; -import buildcraft.api.inventory.ISpecialInventory; -import buildcraft.core.GuiIds; -import buildcraft.core.network.IClientState; -import buildcraft.core.proxy.CoreProxy; -import buildcraft.core.inventory.SimpleInventory; -import buildcraft.core.utils.Utils; -import buildcraft.transport.BlockGenericPipe; -import buildcraft.transport.PipeIconProvider; -import buildcraft.transport.PipeTransportItems; public class PipeItemsEmerald extends PipeItemsWood implements IClientState { @@ -88,36 +86,36 @@ public class PipeItemsEmerald extends PipeItemsWood implements IClientState { } return stacks; - /* ISPECIALINVENTORY */ + /* ISPECIALINVENTORY */ } else if (inventory instanceof ISpecialInventory) { - ItemStack[] stacks = ((ISpecialInventory) inventory).extractItem(false, from, (int) powerHandler.getEnergyStored()); - if (stacks != null) { - for (ItemStack stack : stacks) { - if(stack == null) - continue; + ItemStack[] stacks = ((ISpecialInventory) inventory).extractItem(false, from, (int) powerHandler.getEnergyStored()); + if (stacks != null) { + for (ItemStack stack : stacks) { + if (stack == null) + continue; - boolean matches = false; - for (int i = 0; i < filters.getSizeInventory(); i++) { - ItemStack filter = filters.getStackInSlot(i); - if (filter != null && filter.isItemEqual(stack)) { - matches = true; - break; - } - } - if (!matches) { - return null; + boolean matches = false; + for (int i = 0; i < filters.getSizeInventory(); i++) { + ItemStack filter = filters.getStackInSlot(i); + if (filter != null && filter.isItemEqual(stack)) { + matches = true; + break; } } - if (doRemove) { - stacks = ((ISpecialInventory) inventory).extractItem(true, from, (int) powerHandler.getEnergyStored()); - for (ItemStack stack : stacks) { - if (stack != null) { - powerHandler.useEnergy(stack.stackSize, stack.stackSize, true); - } + if (!matches) { + return null; + } + } + if (doRemove) { + stacks = ((ISpecialInventory) inventory).extractItem(true, from, (int) powerHandler.getEnergyStored()); + for (ItemStack stack : stacks) { + if (stack != null) { + powerHandler.useEnergy(stack.stackSize, stack.stackSize, true); } } } - return stacks; + } + return stacks; } else { @@ -208,8 +206,12 @@ public class PipeItemsEmerald extends PipeItemsWood implements IClientState { readFromNBT((NBTTagCompound) nbt); } } - - public IInventory getFilters(){ + + public IInventory getFilters() { return filters; } + + public boolean isUseableByPlayer(EntityPlayer player) { + return worldObj.getBlockTileEntity(xCoord, yCoord, zCoord) == container; + } } diff --git a/common/buildcraft/transport/pipes/PipeItemsGold.java b/common/buildcraft/transport/pipes/PipeItemsGold.java index 7e89fb09..19a573e4 100644 --- a/common/buildcraft/transport/pipes/PipeItemsGold.java +++ b/common/buildcraft/transport/pipes/PipeItemsGold.java @@ -8,9 +8,6 @@ package buildcraft.transport.pipes; -import java.util.LinkedList; - -import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftTransport; import buildcraft.api.core.IIconProvider; import buildcraft.api.core.Position; @@ -22,6 +19,8 @@ import buildcraft.transport.PipeIconProvider; import buildcraft.transport.PipeTransportItems; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import java.util.LinkedList; +import net.minecraftforge.common.ForgeDirection; public class PipeItemsGold extends Pipe implements IPipeTransportItemsHook { diff --git a/common/buildcraft/transport/pipes/PipeItemsIron.java b/common/buildcraft/transport/pipes/PipeItemsIron.java index 949b1e3b..f501edfe 100644 --- a/common/buildcraft/transport/pipes/PipeItemsIron.java +++ b/common/buildcraft/transport/pipes/PipeItemsIron.java @@ -8,7 +8,6 @@ package buildcraft.transport.pipes; -import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftTransport; import buildcraft.api.core.IIconProvider; import buildcraft.transport.Pipe; @@ -16,6 +15,7 @@ import buildcraft.transport.PipeIconProvider; import buildcraft.transport.PipeTransportItems; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraftforge.common.ForgeDirection; public class PipeItemsIron extends Pipe { diff --git a/common/buildcraft/transport/pipes/PipeItemsObsidian.java b/common/buildcraft/transport/pipes/PipeItemsObsidian.java index aa2a9164..41cdc245 100644 --- a/common/buildcraft/transport/pipes/PipeItemsObsidian.java +++ b/common/buildcraft/transport/pipes/PipeItemsObsidian.java @@ -8,17 +8,6 @@ package buildcraft.transport.pipes; -import java.util.List; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.item.EntityMinecartChest; -import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.Item; -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; @@ -35,6 +24,16 @@ import buildcraft.transport.PipeIconProvider; import buildcraft.transport.PipeTransportItems; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import java.util.List; +import net.minecraft.entity.Entity; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.item.EntityMinecartChest; +import net.minecraft.entity.projectile.EntityArrow; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.AxisAlignedBB; +import net.minecraftforge.common.ForgeDirection; public class PipeItemsObsidian extends Pipe implements IPowerReceptor { diff --git a/common/buildcraft/transport/pipes/PipeItemsQuartz.java b/common/buildcraft/transport/pipes/PipeItemsQuartz.java index 8a4fe7b9..0f77492c 100644 --- a/common/buildcraft/transport/pipes/PipeItemsQuartz.java +++ b/common/buildcraft/transport/pipes/PipeItemsQuartz.java @@ -7,9 +7,6 @@ */ package buildcraft.transport.pipes; -import java.util.LinkedList; - -import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftTransport; import buildcraft.api.core.IIconProvider; import buildcraft.api.core.Position; @@ -21,6 +18,8 @@ import buildcraft.transport.PipeIconProvider; import buildcraft.transport.PipeTransportItems; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import java.util.LinkedList; +import net.minecraftforge.common.ForgeDirection; public class PipeItemsQuartz extends Pipe implements IPipeTransportItemsHook { diff --git a/common/buildcraft/transport/pipes/PipeItemsSandstone.java b/common/buildcraft/transport/pipes/PipeItemsSandstone.java index 84c2d63e..0d241dab 100644 --- a/common/buildcraft/transport/pipes/PipeItemsSandstone.java +++ b/common/buildcraft/transport/pipes/PipeItemsSandstone.java @@ -9,7 +9,6 @@ package buildcraft.transport.pipes; -import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftTransport; import buildcraft.api.core.IIconProvider; import buildcraft.transport.Pipe; @@ -17,6 +16,7 @@ import buildcraft.transport.PipeIconProvider; import buildcraft.transport.PipeTransportItems; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraftforge.common.ForgeDirection; public class PipeItemsSandstone extends Pipe { public PipeItemsSandstone(int itemID) { diff --git a/common/buildcraft/transport/pipes/PipeItemsStone.java b/common/buildcraft/transport/pipes/PipeItemsStone.java index 86029578..6b5b778f 100644 --- a/common/buildcraft/transport/pipes/PipeItemsStone.java +++ b/common/buildcraft/transport/pipes/PipeItemsStone.java @@ -8,9 +8,6 @@ package buildcraft.transport.pipes; -import java.util.LinkedList; - -import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftTransport; import buildcraft.api.core.IIconProvider; import buildcraft.api.core.Position; @@ -22,6 +19,8 @@ import buildcraft.transport.PipeIconProvider; import buildcraft.transport.PipeTransportItems; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import java.util.LinkedList; +import net.minecraftforge.common.ForgeDirection; public class PipeItemsStone extends Pipe implements IPipeTransportItemsHook { diff --git a/common/buildcraft/transport/pipes/PipeItemsVoid.java b/common/buildcraft/transport/pipes/PipeItemsVoid.java index 90271b02..f17da1ee 100644 --- a/common/buildcraft/transport/pipes/PipeItemsVoid.java +++ b/common/buildcraft/transport/pipes/PipeItemsVoid.java @@ -9,8 +9,6 @@ package buildcraft.transport.pipes; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftTransport; import buildcraft.api.core.IIconProvider; import buildcraft.transport.EntityData; @@ -20,6 +18,8 @@ import buildcraft.transport.PipeIconProvider; import buildcraft.transport.PipeTransportItems; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.ForgeDirection; public class PipeItemsVoid extends Pipe implements IItemTravelingHook { diff --git a/common/buildcraft/transport/pipes/PipeItemsWood.java b/common/buildcraft/transport/pipes/PipeItemsWood.java index 93515f67..b6e69cbe 100644 --- a/common/buildcraft/transport/pipes/PipeItemsWood.java +++ b/common/buildcraft/transport/pipes/PipeItemsWood.java @@ -7,11 +7,6 @@ */ package buildcraft.transport.pipes; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftTransport; import buildcraft.api.core.IIconProvider; import buildcraft.api.core.Position; @@ -30,6 +25,11 @@ import buildcraft.transport.PipeIconProvider; import buildcraft.transport.PipeTransportItems; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.ForgeDirection; public class PipeItemsWood extends Pipe implements IPowerReceptor { diff --git a/common/buildcraft/transport/pipes/PipeLogic.java b/common/buildcraft/transport/pipes/PipeLogic.java index 16b32c05..83f40079 100644 --- a/common/buildcraft/transport/pipes/PipeLogic.java +++ b/common/buildcraft/transport/pipes/PipeLogic.java @@ -9,13 +9,13 @@ package buildcraft.transport.pipes; +import buildcraft.core.IDropControlInventory; +import buildcraft.transport.TileGenericPipe; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.ForgeDirection; -import buildcraft.core.IDropControlInventory; -import buildcraft.transport.TileGenericPipe; public class PipeLogic implements IDropControlInventory { diff --git a/common/buildcraft/transport/pipes/PipeLogicCobblestone.java b/common/buildcraft/transport/pipes/PipeLogicCobblestone.java index a75d1a65..b9f2595a 100644 --- a/common/buildcraft/transport/pipes/PipeLogicCobblestone.java +++ b/common/buildcraft/transport/pipes/PipeLogicCobblestone.java @@ -7,10 +7,10 @@ */ package buildcraft.transport.pipes; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.ForgeDirection; import buildcraft.transport.Pipe; import buildcraft.transport.TileGenericPipe; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.ForgeDirection; public class PipeLogicCobblestone extends PipeLogic { diff --git a/common/buildcraft/transport/pipes/PipeLogicDiamond.java b/common/buildcraft/transport/pipes/PipeLogicDiamond.java index 114ebccc..d21caf23 100644 --- a/common/buildcraft/transport/pipes/PipeLogicDiamond.java +++ b/common/buildcraft/transport/pipes/PipeLogicDiamond.java @@ -7,15 +7,15 @@ */ package buildcraft.transport.pipes; -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; import buildcraft.BuildCraftTransport; import buildcraft.core.GuiIds; -import buildcraft.core.proxy.CoreProxy; import buildcraft.core.inventory.SimpleInventory; +import buildcraft.core.proxy.CoreProxy; import buildcraft.transport.BlockGenericPipe; +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; +import net.minecraft.nbt.NBTTagCompound; public class PipeLogicDiamond extends PipeLogic { @@ -56,4 +56,8 @@ public class PipeLogicDiamond extends PipeLogic { public IInventory getFilters() { return filters; } + + public boolean isUseableByPlayer(EntityPlayer player) { + return worldObj.getBlockTileEntity(xCoord, yCoord, zCoord) == container; + } } diff --git a/common/buildcraft/transport/pipes/PipeLogicIron.java b/common/buildcraft/transport/pipes/PipeLogicIron.java index fcb64274..428a7bc2 100644 --- a/common/buildcraft/transport/pipes/PipeLogicIron.java +++ b/common/buildcraft/transport/pipes/PipeLogicIron.java @@ -9,16 +9,16 @@ package buildcraft.transport.pipes; +import buildcraft.api.tools.IToolWrench; +import buildcraft.api.transport.IPipeEntry; +import buildcraft.transport.Pipe; +import buildcraft.transport.TileGenericPipe; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.Item; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.ForgeDirection; -import net.minecraftforge.liquids.ITankContainer; -import buildcraft.api.tools.IToolWrench; -import buildcraft.api.transport.IPipeEntry; -import buildcraft.transport.Pipe; -import buildcraft.transport.TileGenericPipe; +import net.minecraftforge.fluids.IFluidHandler; public class PipeLogicIron extends PipeLogic { @@ -55,7 +55,7 @@ public class PipeLogicIron extends PipeLogic { } } - if (tile instanceof IPipeEntry || tile instanceof IInventory || tile instanceof ITankContainer || tile instanceof TileGenericPipe) { + if (tile instanceof IPipeEntry || tile instanceof IInventory || tile instanceof IFluidHandler || tile instanceof TileGenericPipe) { worldObj.setBlockMetadataWithNotify(xCoord, yCoord, zCoord, nextMetadata,0); container.scheduleRenderUpdate(); diff --git a/common/buildcraft/transport/pipes/PipeLogicObsidian.java b/common/buildcraft/transport/pipes/PipeLogicObsidian.java index 8cb8dffb..dd9ecec4 100644 --- a/common/buildcraft/transport/pipes/PipeLogicObsidian.java +++ b/common/buildcraft/transport/pipes/PipeLogicObsidian.java @@ -9,10 +9,10 @@ package buildcraft.transport.pipes; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.ForgeDirection; import buildcraft.transport.Pipe; import buildcraft.transport.TileGenericPipe; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.ForgeDirection; public class PipeLogicObsidian extends PipeLogic { diff --git a/common/buildcraft/transport/pipes/PipeLogicQuartz.java b/common/buildcraft/transport/pipes/PipeLogicQuartz.java index 39c390f8..253e1edc 100644 --- a/common/buildcraft/transport/pipes/PipeLogicQuartz.java +++ b/common/buildcraft/transport/pipes/PipeLogicQuartz.java @@ -9,10 +9,10 @@ package buildcraft.transport.pipes; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.ForgeDirection; import buildcraft.transport.Pipe; import buildcraft.transport.TileGenericPipe; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.ForgeDirection; public class PipeLogicQuartz extends PipeLogic { diff --git a/common/buildcraft/transport/pipes/PipeLogicSandstone.java b/common/buildcraft/transport/pipes/PipeLogicSandstone.java index 41be61a4..e44d944a 100644 --- a/common/buildcraft/transport/pipes/PipeLogicSandstone.java +++ b/common/buildcraft/transport/pipes/PipeLogicSandstone.java @@ -9,9 +9,9 @@ package buildcraft.transport.pipes; +import buildcraft.transport.TileGenericPipe; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.ForgeDirection; -import buildcraft.transport.TileGenericPipe; public class PipeLogicSandstone extends PipeLogic { @Override diff --git a/common/buildcraft/transport/pipes/PipeLogicStone.java b/common/buildcraft/transport/pipes/PipeLogicStone.java index 86497506..b03dd0bd 100644 --- a/common/buildcraft/transport/pipes/PipeLogicStone.java +++ b/common/buildcraft/transport/pipes/PipeLogicStone.java @@ -9,10 +9,10 @@ package buildcraft.transport.pipes; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.ForgeDirection; import buildcraft.transport.Pipe; import buildcraft.transport.TileGenericPipe; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.ForgeDirection; public class PipeLogicStone extends PipeLogic { diff --git a/common/buildcraft/transport/pipes/PipeLogicStripes.java b/common/buildcraft/transport/pipes/PipeLogicStripes.java index a810e731..69b3063c 100644 --- a/common/buildcraft/transport/pipes/PipeLogicStripes.java +++ b/common/buildcraft/transport/pipes/PipeLogicStripes.java @@ -9,10 +9,10 @@ package buildcraft.transport.pipes; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.ForgeDirection; import buildcraft.transport.Pipe; import buildcraft.transport.TileGenericPipe; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.ForgeDirection; public class PipeLogicStripes extends PipeLogic { diff --git a/common/buildcraft/transport/pipes/PipeLogicWood.java b/common/buildcraft/transport/pipes/PipeLogicWood.java index 3953a39c..13ca3143 100644 --- a/common/buildcraft/transport/pipes/PipeLogicWood.java +++ b/common/buildcraft/transport/pipes/PipeLogicWood.java @@ -9,18 +9,18 @@ package buildcraft.transport.pipes; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.Item; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.ForgeDirection; -import net.minecraftforge.liquids.ITankContainer; import buildcraft.api.tools.IToolWrench; import buildcraft.api.transport.PipeManager; import buildcraft.core.proxy.CoreProxy; import buildcraft.core.utils.Utils; import buildcraft.transport.Pipe; import buildcraft.transport.TileGenericPipe; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.ForgeDirection; +import net.minecraftforge.fluids.IFluidHandler; public class PipeLogicWood extends PipeLogic { @@ -35,7 +35,7 @@ public class PipeLogicWood extends PipeLogic { if (isInput(tile)) if (PipeManager.canExtractItems(container.getPipe(), tile.worldObj, tile.xCoord, tile.yCoord, tile.zCoord) - || PipeManager.canExtractLiquids(container.getPipe(), tile.worldObj, tile.xCoord, tile.yCoord, tile.zCoord)) { + || PipeManager.canExtractFluids(container.getPipe(), tile.worldObj, tile.xCoord, tile.yCoord, tile.zCoord)) { newMeta = o.ordinal(); break; } @@ -49,7 +49,7 @@ public class PipeLogicWood extends PipeLogic { } public boolean isInput(TileEntity tile) { - return !(tile instanceof TileGenericPipe) && (tile instanceof IInventory || tile instanceof ITankContainer) + return !(tile instanceof TileGenericPipe) && (tile instanceof IInventory || tile instanceof IFluidHandler) && Utils.checkPipesConnections(container, tile); } @@ -110,7 +110,7 @@ public class PipeLogicWood extends PipeLogic { @Override public boolean outputOpen(ForgeDirection to) { - if (this.container.pipe instanceof PipeLiquidsWood) { + if (this.container.pipe instanceof PipeFluidsWood) { int meta = worldObj.getBlockMetadata(xCoord, yCoord, zCoord); return meta != to.ordinal(); } diff --git a/common/buildcraft/transport/pipes/PipePowerCobblestone.java b/common/buildcraft/transport/pipes/PipePowerCobblestone.java index b8ed7ab3..b4b9b2f4 100644 --- a/common/buildcraft/transport/pipes/PipePowerCobblestone.java +++ b/common/buildcraft/transport/pipes/PipePowerCobblestone.java @@ -7,7 +7,6 @@ */ package buildcraft.transport.pipes; -import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftTransport; import buildcraft.api.core.IIconProvider; import buildcraft.transport.Pipe; @@ -15,6 +14,7 @@ import buildcraft.transport.PipeIconProvider; import buildcraft.transport.PipeTransportPower; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraftforge.common.ForgeDirection; public class PipePowerCobblestone extends Pipe { diff --git a/common/buildcraft/transport/pipes/PipePowerDiamond.java b/common/buildcraft/transport/pipes/PipePowerDiamond.java index 54f8103b..42513a38 100644 --- a/common/buildcraft/transport/pipes/PipePowerDiamond.java +++ b/common/buildcraft/transport/pipes/PipePowerDiamond.java @@ -7,7 +7,6 @@ */ package buildcraft.transport.pipes; -import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftTransport; import buildcraft.api.core.IIconProvider; import buildcraft.transport.Pipe; @@ -15,6 +14,7 @@ import buildcraft.transport.PipeIconProvider; import buildcraft.transport.PipeTransportPower; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraftforge.common.ForgeDirection; public class PipePowerDiamond extends Pipe { diff --git a/common/buildcraft/transport/pipes/PipePowerGold.java b/common/buildcraft/transport/pipes/PipePowerGold.java index 920b55ab..8b6e4e87 100644 --- a/common/buildcraft/transport/pipes/PipePowerGold.java +++ b/common/buildcraft/transport/pipes/PipePowerGold.java @@ -7,7 +7,6 @@ */ package buildcraft.transport.pipes; -import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftTransport; import buildcraft.api.core.IIconProvider; import buildcraft.transport.Pipe; @@ -15,6 +14,7 @@ import buildcraft.transport.PipeIconProvider; import buildcraft.transport.PipeTransportPower; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraftforge.common.ForgeDirection; public class PipePowerGold extends Pipe { diff --git a/common/buildcraft/transport/pipes/PipePowerQuartz.java b/common/buildcraft/transport/pipes/PipePowerQuartz.java index c80678aa..59904ab6 100644 --- a/common/buildcraft/transport/pipes/PipePowerQuartz.java +++ b/common/buildcraft/transport/pipes/PipePowerQuartz.java @@ -7,7 +7,6 @@ */ package buildcraft.transport.pipes; -import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftTransport; import buildcraft.api.core.IIconProvider; import buildcraft.transport.Pipe; @@ -15,6 +14,7 @@ import buildcraft.transport.PipeIconProvider; import buildcraft.transport.PipeTransportPower; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraftforge.common.ForgeDirection; public class PipePowerQuartz extends Pipe { diff --git a/common/buildcraft/transport/pipes/PipePowerStone.java b/common/buildcraft/transport/pipes/PipePowerStone.java index 8d2236c8..8d04228a 100644 --- a/common/buildcraft/transport/pipes/PipePowerStone.java +++ b/common/buildcraft/transport/pipes/PipePowerStone.java @@ -7,7 +7,6 @@ */ package buildcraft.transport.pipes; -import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftTransport; import buildcraft.api.core.IIconProvider; import buildcraft.transport.Pipe; @@ -15,6 +14,7 @@ import buildcraft.transport.PipeIconProvider; import buildcraft.transport.PipeTransportPower; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraftforge.common.ForgeDirection; public class PipePowerStone extends Pipe { diff --git a/common/buildcraft/transport/pipes/PipePowerWood.java b/common/buildcraft/transport/pipes/PipePowerWood.java index 009169c8..fe49a1f3 100644 --- a/common/buildcraft/transport/pipes/PipePowerWood.java +++ b/common/buildcraft/transport/pipes/PipePowerWood.java @@ -7,7 +7,6 @@ */ package buildcraft.transport.pipes; -import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftTransport; import buildcraft.api.core.IIconProvider; import buildcraft.api.power.IPowerReceptor; @@ -20,6 +19,7 @@ import buildcraft.transport.PipeTransportPower; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.common.ForgeDirection; public class PipePowerWood extends Pipe implements IPowerReceptor { diff --git a/common/buildcraft/transport/pipes/PipeStructureCobblestone.java b/common/buildcraft/transport/pipes/PipeStructureCobblestone.java index f5e6b4f6..62261c93 100644 --- a/common/buildcraft/transport/pipes/PipeStructureCobblestone.java +++ b/common/buildcraft/transport/pipes/PipeStructureCobblestone.java @@ -1,6 +1,5 @@ package buildcraft.transport.pipes; -import net.minecraftforge.common.ForgeDirection; import buildcraft.BuildCraftTransport; import buildcraft.api.core.IIconProvider; import buildcraft.transport.Pipe; @@ -8,6 +7,7 @@ import buildcraft.transport.PipeIconProvider; import buildcraft.transport.PipeTransportStructure; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraftforge.common.ForgeDirection; public class PipeStructureCobblestone extends Pipe { diff --git a/common/buildcraft/transport/render/FacadeItemRenderer.java b/common/buildcraft/transport/render/FacadeItemRenderer.java index 5cc0446a..56e98d1d 100644 --- a/common/buildcraft/transport/render/FacadeItemRenderer.java +++ b/common/buildcraft/transport/render/FacadeItemRenderer.java @@ -1,19 +1,17 @@ package buildcraft.transport.render; -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.item.ItemStack; -import net.minecraft.util.Icon; -import net.minecraftforge.client.IItemRenderer; - -import org.lwjgl.opengl.GL11; - import buildcraft.BuildCraftTransport; import buildcraft.core.utils.Utils; import buildcraft.transport.ItemFacade; import buildcraft.transport.PipeIconProvider; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.Icon; +import net.minecraftforge.client.IItemRenderer; +import org.lwjgl.opengl.GL11; public class FacadeItemRenderer implements IItemRenderer { diff --git a/common/buildcraft/transport/render/PipeItemRenderer.java b/common/buildcraft/transport/render/PipeItemRenderer.java index 50fae0a8..fcc31b68 100644 --- a/common/buildcraft/transport/render/PipeItemRenderer.java +++ b/common/buildcraft/transport/render/PipeItemRenderer.java @@ -1,19 +1,18 @@ package buildcraft.transport.render; -import net.minecraft.block.Block; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.Icon; -import net.minecraftforge.client.IItemRenderer; - -import org.lwjgl.opengl.GL11; - import buildcraft.BuildCraftTransport; import buildcraft.core.utils.Utils; import buildcraft.transport.ItemPipe; +import net.minecraft.block.Block; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.Icon; +import net.minecraftforge.client.IItemRenderer; +import org.lwjgl.opengl.GL11; public class PipeItemRenderer implements IItemRenderer { @@ -25,7 +24,8 @@ public class PipeItemRenderer implements IItemRenderer { Block block = BuildCraftTransport.genericPipeBlock; Icon icon = ((ItemPipe) Item.itemsList[item.itemID]).getIconFromDamage(0); - if (icon == null) icon = Minecraft.getMinecraft().renderEngine.getMissingIcon(0); + if (icon == null) + icon = ((TextureMap) Minecraft.getMinecraft().func_110434_K().func_110581_b(TextureMap.field_110575_b)).func_110572_b("missingno"); block.setBlockBounds(Utils.pipeMinPos, 0.0F, Utils.pipeMinPos, Utils.pipeMaxPos, 1.0F, Utils.pipeMaxPos); block.setBlockBoundsForItemRender(); @@ -60,19 +60,20 @@ public class PipeItemRenderer implements IItemRenderer { block.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); } - /** IItemRenderer implementation **/ - + /** + * IItemRenderer implementation * + */ @Override public boolean handleRenderType(ItemStack item, ItemRenderType type) { switch (type) { - case ENTITY: - return true; - case EQUIPPED: - return true; - case INVENTORY: - return true; - default: - return false; + case ENTITY: + return true; + case EQUIPPED: + return true; + case INVENTORY: + return true; + default: + return false; } } @@ -84,17 +85,16 @@ public class PipeItemRenderer implements IItemRenderer { @Override public void renderItem(ItemRenderType type, ItemStack item, Object... data) { switch (type) { - case ENTITY: - renderPipeItem((RenderBlocks) data[0], item, -0.5f, -0.5f, -0.5f); - break; - case EQUIPPED: - renderPipeItem((RenderBlocks) data[0], item, -0.4f, 0.50f, 0.35f); - break; - case INVENTORY: - renderPipeItem((RenderBlocks) data[0], item, -0.5f, -0.5f, -0.5f); - break; - default: + case ENTITY: + renderPipeItem((RenderBlocks) data[0], item, -0.5f, -0.5f, -0.5f); + break; + case EQUIPPED: + renderPipeItem((RenderBlocks) data[0], item, -0.4f, 0.50f, 0.35f); + break; + case INVENTORY: + renderPipeItem((RenderBlocks) data[0], item, -0.5f, -0.5f, -0.5f); + break; + default: } } - } diff --git a/common/buildcraft/transport/render/PipeWorldRenderer.java b/common/buildcraft/transport/render/PipeWorldRenderer.java index 46558e3c..a658850f 100644 --- a/common/buildcraft/transport/render/PipeWorldRenderer.java +++ b/common/buildcraft/transport/render/PipeWorldRenderer.java @@ -1,10 +1,5 @@ package buildcraft.transport.render; -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -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; @@ -16,8 +11,13 @@ import buildcraft.transport.PipeIconProvider; import buildcraft.transport.PipeRenderState; import buildcraft.transport.TransportProxy; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.IBlockAccess; +import net.minecraftforge.common.ForgeDirection; public class PipeWorldRenderer implements ISimpleBlockRenderingHandler { diff --git a/common/buildcraft/transport/render/PlugItemRenderer.java b/common/buildcraft/transport/render/PlugItemRenderer.java index c50f768d..d30a9f40 100644 --- a/common/buildcraft/transport/render/PlugItemRenderer.java +++ b/common/buildcraft/transport/render/PlugItemRenderer.java @@ -1,17 +1,15 @@ package buildcraft.transport.render; +import buildcraft.BuildCraftTransport; +import buildcraft.transport.PipeIconProvider; import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.Tessellator; import net.minecraft.item.ItemStack; import net.minecraft.util.Icon; import net.minecraftforge.client.IItemRenderer; - import org.lwjgl.opengl.GL11; -import buildcraft.BuildCraftTransport; -import buildcraft.transport.PipeIconProvider; - public class PlugItemRenderer implements IItemRenderer{ private void renderPlugItem(RenderBlocks render, ItemStack item, float translateX, float translateY, float translateZ) { diff --git a/common/buildcraft/transport/render/RenderPipe.java b/common/buildcraft/transport/render/RenderPipe.java index 52bc862a..8cd7cb34 100644 --- a/common/buildcraft/transport/render/RenderPipe.java +++ b/common/buildcraft/transport/render/RenderPipe.java @@ -1,107 +1,97 @@ /** - * Copyright (c) SpaceToad, 2011 - * http://www.mod-buildcraft.com + * Copyright (c) SpaceToad, 2011 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 + * 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.transport.render; -import java.util.HashMap; - -import net.minecraft.block.Block; -import net.minecraft.client.renderer.GLAllocation; -import net.minecraft.client.renderer.entity.RenderItem; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; -import net.minecraftforge.common.ForgeDirection; -import net.minecraftforge.liquids.LiquidStack; - -import org.lwjgl.opengl.GL11; - import buildcraft.BuildCraftCore; import buildcraft.BuildCraftCore.RenderMode; import buildcraft.BuildCraftTransport; import buildcraft.api.transport.IPipedItem; -import buildcraft.core.render.LiquidRenderer; import buildcraft.core.render.RenderEntityBlock; import buildcraft.core.render.RenderEntityBlock.BlockInterface; import buildcraft.core.utils.Utils; import buildcraft.transport.EntityData; import buildcraft.transport.Pipe; import buildcraft.transport.PipeIconProvider; +import buildcraft.transport.PipeTransportFluids; import buildcraft.transport.PipeTransportItems; -import buildcraft.transport.PipeTransportLiquids; import buildcraft.transport.PipeTransportPower; import buildcraft.transport.TileGenericPipe; +import com.google.common.collect.Maps; +import java.util.HashMap; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.GLAllocation; +import net.minecraft.client.renderer.entity.RenderItem; +import net.minecraft.client.renderer.entity.RenderManager; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.ForgeDirection; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; +import org.lwjgl.opengl.GL11; public class RenderPipe extends TileEntitySpecialRenderer { final static private int LIQUID_STAGES = 40; - final static private int MAX_ITEMS_TO_RENDER = 10; - private final EntityItem dummyEntityItem = new EntityItem(null); - private final RenderItem customRenderItem; - private class DisplayLiquidList { + private class DisplayFluidList { public int[] sideHorizontal = new int[LIQUID_STAGES]; public int[] sideVertical = new int[LIQUID_STAGES]; public int[] centerHorizontal = new int[LIQUID_STAGES]; public int[] centerVertical = new int[LIQUID_STAGES]; } - - private final HashMap> displayLiquidLists = new HashMap>(); - - private final int[] angleY = { 0, 0, 270, 90, 0, 180 }; - private final int[] angleZ = { 90, 270, 0, 0, 0, 0 }; - + private final HashMap displayFluidLists = Maps.newHashMap(); + private final int[] angleY = {0, 0, 270, 90, 0, 180}; + private final int[] angleZ = {90, 270, 0, 0, 0, 0}; final static private int POWER_STAGES = 100; - public int[] displayPowerList = new int[POWER_STAGES]; public int[] displayPowerListOverload = new int[POWER_STAGES]; public RenderPipe() { - customRenderItem = new RenderItem() { - public boolean shouldBob() { - return false; - }; - public boolean shouldSpreadItems() { - return false; - }; - }; - customRenderItem.setRenderManager(RenderManager.instance); + customRenderItem = new RenderItem() { + @Override + public boolean shouldBob() { + return false; + } + + @Override + public boolean shouldSpreadItems() { + return false; + } + }; + customRenderItem.setRenderManager(RenderManager.instance); } - private DisplayLiquidList getDisplayLiquidLists(int liquidId, int meta, World world) { - if (displayLiquidLists.containsKey(liquidId)) { - HashMap x = displayLiquidLists.get(liquidId); - if (x.containsKey(meta)) - return x.get(meta); - } else { - displayLiquidLists.put(liquidId, new HashMap()); + private DisplayFluidList getDisplayFluidLists(int liquidId, World world) { + if (displayFluidLists.containsKey(liquidId)) { + return displayFluidLists.get(liquidId); } - DisplayLiquidList d = new DisplayLiquidList(); - displayLiquidLists.get(liquidId).put(meta, d); + DisplayFluidList d = new DisplayFluidList(); + displayFluidLists.put(liquidId, d); BlockInterface block = new BlockInterface(); - if (liquidId < Block.blocksList.length && Block.blocksList[liquidId] != null) { - block.baseBlock = Block.blocksList[liquidId]; + Fluid fluid = FluidRegistry.getFluid(liquidId); + if (fluid.getBlockID() != 0) { + block.baseBlock = Block.blocksList[fluid.getBlockID()]; } else { block.baseBlock = Block.waterStill; - block.texture = Item.itemsList[liquidId].getIconFromDamage(meta); } + block.texture = fluid.getStillIcon(); float size = Utils.pipeMaxPos - Utils.pipeMinPos; @@ -124,7 +114,7 @@ public class RenderPipe extends TileEntitySpecialRenderer { block.minY = Utils.pipeMinPos + 0.01F; block.maxY = block.minY + (size - 0.02F) * ratio; - RenderEntityBlock.renderBlock(block, world, 0, 0, 0, false, true); + RenderEntityBlock.INSTANCE.renderBlock(block, world, 0, 0, 0, false, true); GL11.glEndList(); @@ -142,7 +132,7 @@ public class RenderPipe extends TileEntitySpecialRenderer { block.minZ = 0.5 - (size / 2 - 0.01) * ratio; block.maxZ = 0.5 + (size / 2 - 0.01) * ratio; - RenderEntityBlock.renderBlock(block, world, 0, 0, 0, false, true); + RenderEntityBlock.INSTANCE.renderBlock(block, world, 0, 0, 0, false, true); GL11.glEndList(); @@ -160,7 +150,7 @@ public class RenderPipe extends TileEntitySpecialRenderer { block.minY = Utils.pipeMinPos + 0.01; block.maxY = block.minY + (size - 0.02F) * ratio; - RenderEntityBlock.renderBlock(block, world, 0, 0, 0, false, true); + RenderEntityBlock.INSTANCE.renderBlock(block, world, 0, 0, 0, false, true); GL11.glEndList(); @@ -178,7 +168,7 @@ public class RenderPipe extends TileEntitySpecialRenderer { block.minZ = 0.5 - (size / 2 - 0.02) * ratio; block.maxZ = 0.5 + (size / 2 - 0.02) * ratio; - RenderEntityBlock.renderBlock(block, world, 0, 0, 0, false, true); + RenderEntityBlock.INSTANCE.renderBlock(block, world, 0, 0, 0, false, true); GL11.glEndList(); @@ -186,7 +176,6 @@ public class RenderPipe extends TileEntitySpecialRenderer { return d; } - boolean initialized = false; private void initializeDisplayPowerList(World world) { @@ -217,7 +206,7 @@ public class RenderPipe extends TileEntitySpecialRenderer { block.minX = 0; block.maxX = 0.5 + (minSize / 2F) + unit * s; - RenderEntityBlock.renderBlock(block, world, 0, 0, 0, false, true); + RenderEntityBlock.INSTANCE.renderBlock(block, world, 0, 0, 0, false, true); GL11.glEndList(); } @@ -243,7 +232,7 @@ public class RenderPipe extends TileEntitySpecialRenderer { block.minX = 0; block.maxX = 0.5 + (minSize / 2F) + unit * s; - RenderEntityBlock.renderBlock(block, world, 0, 0, 0, false, true); + RenderEntityBlock.INSTANCE.renderBlock(block, world, 0, 0, 0, false, true); GL11.glEndList(); } @@ -264,8 +253,8 @@ public class RenderPipe extends TileEntitySpecialRenderer { if (pipe.pipe.transport instanceof PipeTransportItems) { renderSolids(pipe.pipe, x, y, z); - } else if (pipe.pipe.transport instanceof PipeTransportLiquids) { - renderLiquids(pipe.pipe, x, y, z); + } else if (pipe.pipe.transport instanceof PipeTransportFluids) { + renderFluids(pipe.pipe, x, y, z); } else if (pipe.pipe.transport instanceof PipeTransportPower) { renderPower(pipe.pipe, x, y, z); } @@ -278,9 +267,9 @@ public class RenderPipe extends TileEntitySpecialRenderer { GL11.glPushMatrix(); GL11.glDisable(2896 /* GL_LIGHTING */); - GL11.glTranslatef((float) x, (float) y, (float) z); + GL11.glTranslatef((float) x, (float) y, (float) z); - bindTextureByName("/terrain.png"); + func_110628_a(TextureMap.field_110575_b); int[] displayList = pow.overload > 0 ? displayPowerListOverload : displayPowerList; @@ -309,8 +298,8 @@ public class RenderPipe extends TileEntitySpecialRenderer { GL11.glPopMatrix(); } - private void renderLiquids(Pipe pipe, double x, double y, double z) { - PipeTransportLiquids liq = (PipeTransportLiquids) pipe.transport; + private void renderFluids(Pipe pipe, double x, double y, double z) { + PipeTransportFluids liq = (PipeTransportFluids) pipe.transport; GL11.glPushMatrix(); GL11.glPushAttrib(GL11.GL_ENABLE_BIT); @@ -326,14 +315,14 @@ public class RenderPipe extends TileEntitySpecialRenderer { boolean sides = false, above = false; for (int i = 0; i < 6; ++i) { - // ILiquidTank tank = liq.getTanks()[i]; - // LiquidStack liquid = tank.getLiquid(); - LiquidStack liquid = liq.renderCache[i]; + // IFluidTank tank = liq.getTanks()[i]; + // FluidStack liquid = tank.getFluid(); + FluidStack liquid = liq.renderCache[i]; // int amount = liquid != null ? liquid.amount : 0; // int amount = liquid != null ? liq.renderAmmount[i] : 0; if (liquid != null && liquid.amount > 0) { - DisplayLiquidList d = getListFromBuffer(liquid, pipe.worldObj); + DisplayFluidList d = getListFromBuffer(liquid, pipe.worldObj); if (d == null) { continue; @@ -345,53 +334,49 @@ public class RenderPipe extends TileEntitySpecialRenderer { int list = 0; switch (ForgeDirection.VALID_DIRECTIONS[i]) { - case UP: - above = true; - list = d.sideVertical[stage]; - break; - case DOWN: - GL11.glTranslatef(0, -0.75F, 0); - list = d.sideVertical[stage]; - break; - case EAST: - case WEST: - case SOUTH: - case NORTH: - sides = true; - // Yes, this is kind of ugly, but was easier than transform the coordinates above. - GL11.glTranslatef(0.5F, 0.0F, 0.5F); - GL11.glRotatef(angleY[i], 0, 1, 0); - GL11.glRotatef(angleZ[i], 0, 0, 1); - GL11.glTranslatef(-0.5F, 0.0F, -0.5F); - list = d.sideHorizontal[stage]; - break; - default: + case UP: + above = true; + list = d.sideVertical[stage]; + break; + case DOWN: + GL11.glTranslatef(0, -0.75F, 0); + list = d.sideVertical[stage]; + break; + case EAST: + case WEST: + case SOUTH: + case NORTH: + sides = true; + // Yes, this is kind of ugly, but was easier than transform the coordinates above. + GL11.glTranslatef(0.5F, 0.0F, 0.5F); + GL11.glRotatef(angleY[i], 0, 1, 0); + GL11.glRotatef(angleZ[i], 0, 0, 1); + GL11.glTranslatef(-0.5F, 0.0F, -0.5F); + list = d.sideHorizontal[stage]; + break; + default: } - LiquidStack canon = liquid.canonical(); - if (canon == null) { - throw new LiquidRenderer.LiquidCanonException(liquid); - } - bindTextureByName(canon.getTextureSheet()); + func_110628_a(TextureMap.field_110575_b); GL11.glCallList(list); GL11.glPopMatrix(); } } // CENTER - // ILiquidTank tank = liq.getTanks()[ForgeDirection.Unknown.ordinal()]; - // LiquidStack liquid = tank.getLiquid(); - LiquidStack liquid = liq.renderCache[ForgeDirection.UNKNOWN.ordinal()]; + // IFluidTank tank = liq.getTanks()[ForgeDirection.Unknown.ordinal()]; + // FluidStack liquid = tank.getFluid(); + FluidStack liquid = liq.renderCache[ForgeDirection.UNKNOWN.ordinal()]; // int amount = liquid != null ? liquid.amount : 0; // int amount = liquid != null ? liq.renderAmmount[ForgeDirection.Unknown.ordinal()] : 0; if (liquid != null && liquid.amount > 0) { - // DisplayLiquidList d = getListFromBuffer(liq.getTanks()[ForgeDirection.Unknown.ordinal()].getLiquid(), pipe.worldObj); - DisplayLiquidList d = getListFromBuffer(liquid, pipe.worldObj); + // DisplayFluidList d = getListFromBuffer(liq.getTanks()[ForgeDirection.Unknown.ordinal()].getFluid(), pipe.worldObj); + DisplayFluidList d = getListFromBuffer(liquid, pipe.worldObj); if (d != null) { int stage = (int) ((float) liquid.amount / (float) (liq.getCapacity()) * (LIQUID_STAGES - 1)); - bindTextureByName(liquid.canonical().getTextureSheet()); - + func_110628_a(TextureMap.field_110575_b); + if (above) { GL11.glCallList(d.centerVertical[stage]); } @@ -402,19 +387,19 @@ public class RenderPipe extends TileEntitySpecialRenderer { } } - + GL11.glPopAttrib(); GL11.glPopMatrix(); } - private DisplayLiquidList getListFromBuffer(LiquidStack stack, World world) { + private DisplayFluidList getListFromBuffer(FluidStack stack, World world) { - int liquidId = stack.itemID; + int liquidId = stack.fluidID; if (liquidId == 0) return null; - return getDisplayLiquidLists(liquidId, stack.itemMeta, world); + return getDisplayFluidLists(liquidId, world); } private void renderSolids(Pipe pipe, double x, double y, double z) { diff --git a/common/buildcraft/transport/render/TileEntityPickupFX.java b/common/buildcraft/transport/render/TileEntityPickupFX.java index a891d059..3a525cbd 100644 --- a/common/buildcraft/transport/render/TileEntityPickupFX.java +++ b/common/buildcraft/transport/render/TileEntityPickupFX.java @@ -11,8 +11,10 @@ */ package buildcraft.transport.render; +import buildcraft.core.utils.Utils; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.particle.EntityFX; -import net.minecraft.client.particle.EntityPickupFX; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.entity.RenderManager; @@ -20,12 +22,7 @@ import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityItem; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; - import org.lwjgl.opengl.GL11; - -import buildcraft.core.utils.Utils; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; //import net.minecraft.client.particle.EntityPickupFX; @SideOnly(Side.CLIENT) diff --git a/common/buildcraft/transport/triggers/TriggerFilteredBufferInventoryLevel.java b/common/buildcraft/transport/triggers/TriggerFilteredBufferInventoryLevel.java index 55b6908f..65258fdb 100644 --- a/common/buildcraft/transport/triggers/TriggerFilteredBufferInventoryLevel.java +++ b/common/buildcraft/transport/triggers/TriggerFilteredBufferInventoryLevel.java @@ -9,14 +9,14 @@ package buildcraft.transport.triggers; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.ForgeDirection; import buildcraft.api.gates.ITriggerParameter; import buildcraft.core.triggers.ActionTriggerIconProvider; import buildcraft.core.triggers.BCTrigger; import buildcraft.transport.TileFilteredBuffer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.ForgeDirection; public class TriggerFilteredBufferInventoryLevel extends BCTrigger { diff --git a/common/buildcraft/transport/triggers/TriggerPipeContents.java b/common/buildcraft/transport/triggers/TriggerPipeContents.java index d039f2f1..b52616da 100644 --- a/common/buildcraft/transport/triggers/TriggerPipeContents.java +++ b/common/buildcraft/transport/triggers/TriggerPipeContents.java @@ -7,10 +7,6 @@ */ package buildcraft.transport.triggers; -import net.minecraftforge.common.ForgeDirection; -import net.minecraftforge.liquids.ILiquidTank; -import net.minecraftforge.liquids.LiquidContainerRegistry; -import net.minecraftforge.liquids.LiquidStack; import buildcraft.api.gates.ITriggerParameter; import buildcraft.core.triggers.ActionTriggerIconProvider; import buildcraft.core.triggers.BCTrigger; @@ -18,16 +14,20 @@ import buildcraft.core.utils.StringUtils; import buildcraft.transport.EntityData; import buildcraft.transport.ITriggerPipe; import buildcraft.transport.Pipe; +import buildcraft.transport.PipeTransportFluids; import buildcraft.transport.PipeTransportItems; -import buildcraft.transport.PipeTransportLiquids; import buildcraft.transport.PipeTransportPower; import buildcraft.transport.pipes.PipePowerWood; +import net.minecraftforge.common.ForgeDirection; +import net.minecraftforge.fluids.FluidContainerRegistry; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.FluidTankInfo; public class TriggerPipeContents extends BCTrigger implements ITriggerPipe { public enum Kind { - Empty, ContainsItems, ContainsLiquids, ContainsEnergy, RequestsEnergy, TooMuchEnergy + Empty, ContainsItems, ContainsFluids, ContainsEnergy, RequestsEnergy, TooMuchEnergy }; Kind kind; @@ -40,7 +40,7 @@ public class TriggerPipeContents extends BCTrigger implements ITriggerPipe { public boolean hasParameter() { switch (kind) { case ContainsItems: - case ContainsLiquids: + case ContainsFluids: return true; default: return false; @@ -55,8 +55,8 @@ public class TriggerPipeContents extends BCTrigger implements ITriggerPipe { return StringUtils.localize("gate.pipe.empty"); case ContainsItems: return StringUtils.localize("gate.pipe.containsItems"); - case ContainsLiquids: - return StringUtils.localize("gate.pipe.containsLiquids"); + case ContainsFluids: + return StringUtils.localize("gate.pipe.containsFluids"); case ContainsEnergy: return StringUtils.localize("gate.pipe.containsEnergy"); case RequestsEnergy: @@ -84,26 +84,26 @@ public class TriggerPipeContents extends BCTrigger implements ITriggerPipe { } } else return !transportItems.travelingEntities.isEmpty(); - } else if (pipe.transport instanceof PipeTransportLiquids) { - PipeTransportLiquids transportLiquids = (PipeTransportLiquids) pipe.transport; + } else if (pipe.transport instanceof PipeTransportFluids) { + PipeTransportFluids transportFluids = (PipeTransportFluids) pipe.transport; - LiquidStack searchedLiquid = null; + FluidStack searchedFluid = null; if (parameter != null && parameter.getItem() != null) { - searchedLiquid = LiquidContainerRegistry.getLiquidForFilledItem(parameter.getItem()); + searchedFluid = FluidContainerRegistry.getFluidForFilledItem(parameter.getItem()); } if (kind == Kind.Empty) { - for (ILiquidTank b : transportLiquids.getTanks(ForgeDirection.UNKNOWN)) { - if (b.getLiquid() != null && b.getLiquid().amount != 0) + for (FluidTankInfo b : transportFluids.getTankInfo(ForgeDirection.UNKNOWN)) { + if (b.fluid != null && b.fluid.amount != 0) return false; } return true; } else { - for (ILiquidTank b : transportLiquids.getTanks(ForgeDirection.UNKNOWN)) { - if (b.getLiquid() != null && b.getLiquid().amount != 0) - if (searchedLiquid == null || searchedLiquid.isLiquidEqual(b.getLiquid())) + for (FluidTankInfo b : transportFluids.getTankInfo(ForgeDirection.UNKNOWN)) { + if (b.fluid != null && b.fluid.amount != 0) + if (searchedFluid == null || searchedFluid.isFluidEqual(b.fluid)) return true; } @@ -145,8 +145,8 @@ public class TriggerPipeContents extends BCTrigger implements ITriggerPipe { return ActionTriggerIconProvider.Trigger_PipeContents_Empty; case ContainsItems: return ActionTriggerIconProvider.Trigger_PipeContents_ContainsItems; - case ContainsLiquids: - return ActionTriggerIconProvider.Trigger_PipeContents_ContainsLiquid; + case ContainsFluids: + return ActionTriggerIconProvider.Trigger_PipeContents_ContainsFluid; case ContainsEnergy: return ActionTriggerIconProvider.Trigger_PipeContents_ContainsEnergy; case RequestsEnergy: diff --git a/common/buildcraft/transport/utils/ConnectionMatrix.java b/common/buildcraft/transport/utils/ConnectionMatrix.java index 7a9e8811..778e7ba7 100644 --- a/common/buildcraft/transport/utils/ConnectionMatrix.java +++ b/common/buildcraft/transport/utils/ConnectionMatrix.java @@ -4,7 +4,6 @@ import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.util.BitSet; - import net.minecraftforge.common.ForgeDirection; public class ConnectionMatrix { diff --git a/common/buildcraft/transport/utils/FacadeMatrix.java b/common/buildcraft/transport/utils/FacadeMatrix.java index 2181b4c1..c14426b0 100644 --- a/common/buildcraft/transport/utils/FacadeMatrix.java +++ b/common/buildcraft/transport/utils/FacadeMatrix.java @@ -3,7 +3,6 @@ package buildcraft.transport.utils; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; - import net.minecraftforge.common.ForgeDirection; public class FacadeMatrix { diff --git a/common/buildcraft/transport/utils/TextureMatrix.java b/common/buildcraft/transport/utils/TextureMatrix.java index 7f1b79d1..599c9b15 100644 --- a/common/buildcraft/transport/utils/TextureMatrix.java +++ b/common/buildcraft/transport/utils/TextureMatrix.java @@ -3,7 +3,6 @@ package buildcraft.transport.utils; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; - import net.minecraftforge.common.ForgeDirection; public class TextureMatrix { diff --git a/common/buildcraft/transport/utils/WireMatrix.java b/common/buildcraft/transport/utils/WireMatrix.java index f8dbc0ec..b5cbdf01 100644 --- a/common/buildcraft/transport/utils/WireMatrix.java +++ b/common/buildcraft/transport/utils/WireMatrix.java @@ -1,12 +1,11 @@ package buildcraft.transport.utils; +import buildcraft.api.transport.IPipe; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.util.BitSet; - import net.minecraftforge.common.ForgeDirection; -import buildcraft.api.transport.IPipe; public class WireMatrix {