From feceea5b7b53ae1ea247a4d3ad012e8e032b089a Mon Sep 17 00:00:00 2001 From: RSeifert Date: Thu, 14 Mar 2013 01:38:07 -0400 Subject: [PATCH] working on update to 1.5 Not done yet not sure if i will be any time soon. --- .../client/model/ModelGenerator.java | 2 +- .../client/model/ModelLiquidTank.java | 4 +- src/minecraft/fluidmech/common/FluidMech.java | 44 +-- .../fluidmech/common/TabFluidMech.java | 1 - .../common/block/BlockPumpMachine.java | 214 ++++++------- .../common/block/BlockReleaseValve.java | 23 +- .../fluidmech/common/block/BlockSink.java | 288 +++++++++--------- .../fluidmech/common/block/BlockTank.java | 238 ++++++++------- .../fluidmech/common/item/ItemGuage.java | 35 +-- .../fluidmech/common/item/ItemParts.java | 5 +- .../fluidmech/common/item/ItemValve.java | 134 -------- .../common/machines/TileEntityMinorPump.java | 16 +- .../machines/TileEntityReleaseValve.java | 8 +- .../common/machines/TileEntitySink.java | 3 +- .../common/machines/mech/BlockGenerator.java | 41 +-- .../common/machines/mech/BlockRod.java | 172 +++++------ .../machines/mech/TileEntityGenerator.java | 85 +++--- .../common/machines/mech/TileEntityRod.java | 13 +- .../common/machines/pipes/BlockPipe.java | 13 +- .../machines/pipes/TileEntityNewPipes.java | 68 ----- .../common/machines/pipes/TileEntityPipe.java | 30 +- src/minecraft/hydraulic/core/Hydraulics.java | 3 - .../core/helpers/connectionHelper.java | 2 +- .../hydraulic/core/implement/ColorCode.java | 5 +- .../hydraulic/core/implement/IFluidPipe.java | 1 - .../core/liquids/HydraulicNetwork.java | 2 - .../core/liquids/HydraulicNetworkManager.java | 1 - .../hydraulic/prefab/BlockFluidPipe.java | 54 ---- .../hydraulic/prefab/LiquidFiniteFlowing.java | 244 --------------- .../hydraulic/prefab/LiquidFiniteStill.java | 56 ---- .../prefab/TileEntityFluidConveyor.java | 234 -------------- .../languages/de_DE.properties | 36 +++ .../languages/en_US.properties | 36 +++ .../languages/es_ES.properties | 37 +++ .../languages/it_IT.properties | 35 +++ .../languages/nl_NL.properties | 35 +++ .../languages/pl_PL.properties | 35 +++ .../languages/zh_CN.properties | 37 +++ .../textures/blocks/batteryBox.png | Bin 0 -> 4591 bytes .../textures/blocks/coalGenerator.png | Bin 0 -> 4968 bytes .../textures/blocks/copperWire.png | Bin 0 -> 3751 bytes .../textures/blocks/electricFurnace.png | Bin 0 -> 5323 bytes .../textures/blocks/machine.png | Bin 0 -> 4557 bytes .../textures/blocks/machine_input.png | Bin 0 -> 4623 bytes .../textures/blocks/machine_output.png | Bin 0 -> 4585 bytes .../textures/blocks/machine_side.png | Bin 0 -> 4817 bytes .../textures/blocks/oreCopper.png | Bin 0 -> 3402 bytes .../textures/blocks/oreTin.png | Bin 0 -> 3332 bytes .../textures/gui/battery_box.png | Bin 0 -> 4383 bytes .../textures/gui/coal_generator.png | Bin 0 -> 3956 bytes .../textures/gui/electric_furnace.png | Bin 0 -> 3979 bytes .../textures/items/battery.png | Bin 0 -> 3754 bytes .../textures/items/circuitAdvanced.png | Bin 0 -> 3655 bytes .../textures/items/circuitBasic.png | Bin 0 -> 3652 bytes .../textures/items/circuitElite.png | Bin 0 -> 3633 bytes .../textures/items/dustBronze.png | Bin 0 -> 3312 bytes .../textures/items/dustSteel.png | Bin 0 -> 3645 bytes .../textures/items/infiniteBattery.png | Bin 0 -> 3920 bytes .../textures/items/ingotBronze.png | Bin 0 -> 3029 bytes .../textures/items/ingotCopper.png | Bin 0 -> 3032 bytes .../textures/items/ingotSteel.png | Bin 0 -> 3038 bytes .../textures/items/ingotTin.png | Bin 0 -> 3048 bytes .../basiccomponents/textures/items/motor.png | Bin 0 -> 3909 bytes .../textures/items/plateBronze.png | Bin 0 -> 3726 bytes .../textures/items/plateCopper.png | Bin 0 -> 3727 bytes .../textures/items/plateGold.png | Bin 0 -> 3747 bytes .../textures/items/plateIron.png | Bin 0 -> 3630 bytes .../textures/items/plateSteel.png | Bin 0 -> 3572 bytes .../textures/items/plateTin.png | Bin 0 -> 3715 bytes .../basiccomponents/textures/items/wrench.png | Bin 0 -> 3225 bytes .../textures/models/copperWire.png | Bin 0 -> 798 bytes 71 files changed, 845 insertions(+), 1445 deletions(-) delete mode 100644 src/minecraft/fluidmech/common/item/ItemValve.java delete mode 100644 src/minecraft/fluidmech/common/machines/pipes/TileEntityNewPipes.java delete mode 100644 src/minecraft/hydraulic/prefab/BlockFluidPipe.java delete mode 100644 src/minecraft/hydraulic/prefab/LiquidFiniteFlowing.java delete mode 100644 src/minecraft/hydraulic/prefab/LiquidFiniteStill.java delete mode 100644 src/minecraft/hydraulic/prefab/TileEntityFluidConveyor.java create mode 100644 src/mods/basiccomponents/languages/de_DE.properties create mode 100644 src/mods/basiccomponents/languages/en_US.properties create mode 100644 src/mods/basiccomponents/languages/es_ES.properties create mode 100644 src/mods/basiccomponents/languages/it_IT.properties create mode 100644 src/mods/basiccomponents/languages/nl_NL.properties create mode 100644 src/mods/basiccomponents/languages/pl_PL.properties create mode 100644 src/mods/basiccomponents/languages/zh_CN.properties create mode 100644 src/mods/basiccomponents/textures/blocks/batteryBox.png create mode 100644 src/mods/basiccomponents/textures/blocks/coalGenerator.png create mode 100644 src/mods/basiccomponents/textures/blocks/copperWire.png create mode 100644 src/mods/basiccomponents/textures/blocks/electricFurnace.png create mode 100644 src/mods/basiccomponents/textures/blocks/machine.png create mode 100644 src/mods/basiccomponents/textures/blocks/machine_input.png create mode 100644 src/mods/basiccomponents/textures/blocks/machine_output.png create mode 100644 src/mods/basiccomponents/textures/blocks/machine_side.png create mode 100644 src/mods/basiccomponents/textures/blocks/oreCopper.png create mode 100644 src/mods/basiccomponents/textures/blocks/oreTin.png create mode 100644 src/mods/basiccomponents/textures/gui/battery_box.png create mode 100644 src/mods/basiccomponents/textures/gui/coal_generator.png create mode 100644 src/mods/basiccomponents/textures/gui/electric_furnace.png create mode 100644 src/mods/basiccomponents/textures/items/battery.png create mode 100644 src/mods/basiccomponents/textures/items/circuitAdvanced.png create mode 100644 src/mods/basiccomponents/textures/items/circuitBasic.png create mode 100644 src/mods/basiccomponents/textures/items/circuitElite.png create mode 100644 src/mods/basiccomponents/textures/items/dustBronze.png create mode 100644 src/mods/basiccomponents/textures/items/dustSteel.png create mode 100644 src/mods/basiccomponents/textures/items/infiniteBattery.png create mode 100644 src/mods/basiccomponents/textures/items/ingotBronze.png create mode 100644 src/mods/basiccomponents/textures/items/ingotCopper.png create mode 100644 src/mods/basiccomponents/textures/items/ingotSteel.png create mode 100644 src/mods/basiccomponents/textures/items/ingotTin.png create mode 100644 src/mods/basiccomponents/textures/items/motor.png create mode 100644 src/mods/basiccomponents/textures/items/plateBronze.png create mode 100644 src/mods/basiccomponents/textures/items/plateCopper.png create mode 100644 src/mods/basiccomponents/textures/items/plateGold.png create mode 100644 src/mods/basiccomponents/textures/items/plateIron.png create mode 100644 src/mods/basiccomponents/textures/items/plateSteel.png create mode 100644 src/mods/basiccomponents/textures/items/plateTin.png create mode 100644 src/mods/basiccomponents/textures/items/wrench.png create mode 100644 src/mods/basiccomponents/textures/models/copperWire.png diff --git a/src/minecraft/fluidmech/client/model/ModelGenerator.java b/src/minecraft/fluidmech/client/model/ModelGenerator.java index 2c6fd304..734a83fa 100644 --- a/src/minecraft/fluidmech/client/model/ModelGenerator.java +++ b/src/minecraft/fluidmech/client/model/ModelGenerator.java @@ -6,10 +6,10 @@ package fluidmech.client.model; -import fluidmech.common.machines.mech.TileEntityGenerator; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelRenderer; import net.minecraft.tileentity.TileEntity; +import fluidmech.common.machines.mech.TileEntityGenerator; public class ModelGenerator extends ModelBase { diff --git a/src/minecraft/fluidmech/client/model/ModelLiquidTank.java b/src/minecraft/fluidmech/client/model/ModelLiquidTank.java index 31635ddd..b3cbb67d 100644 --- a/src/minecraft/fluidmech/client/model/ModelLiquidTank.java +++ b/src/minecraft/fluidmech/client/model/ModelLiquidTank.java @@ -6,11 +6,11 @@ package fluidmech.client.model; -import fluidmech.common.machines.TileEntityTank; -import fluidmech.common.machines.pipes.TileEntityPipe; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelRenderer; import net.minecraft.tileentity.TileEntity; +import fluidmech.common.machines.TileEntityTank; +import fluidmech.common.machines.pipes.TileEntityPipe; public class ModelLiquidTank extends ModelBase { diff --git a/src/minecraft/fluidmech/common/FluidMech.java b/src/minecraft/fluidmech/common/FluidMech.java index 62125ee0..9dde4485 100644 --- a/src/minecraft/fluidmech/common/FluidMech.java +++ b/src/minecraft/fluidmech/common/FluidMech.java @@ -1,5 +1,27 @@ package fluidmech.common; +import fluidmech.common.block.BlockPumpMachine; +import fluidmech.common.block.BlockReleaseValve; +import fluidmech.common.block.BlockSink; +import fluidmech.common.block.BlockTank; +import fluidmech.common.block.liquids.BlockWasteLiquid; +import fluidmech.common.item.ItemGuage; +import fluidmech.common.item.ItemLiquidMachine; +import fluidmech.common.item.ItemParts; +import fluidmech.common.item.ItemParts.Parts; +import fluidmech.common.item.ItemPipe; +import fluidmech.common.item.ItemReleaseValve; +import fluidmech.common.item.ItemTank; +import fluidmech.common.machines.TileEntityMinorPump; +import fluidmech.common.machines.TileEntityReleaseValve; +import fluidmech.common.machines.TileEntitySink; +import fluidmech.common.machines.TileEntityTank; +import fluidmech.common.machines.mech.BlockGenerator; +import fluidmech.common.machines.mech.BlockRod; +import fluidmech.common.machines.mech.TileEntityGenerator; +import fluidmech.common.machines.mech.TileEntityRod; +import fluidmech.common.machines.pipes.BlockPipe; +import fluidmech.common.machines.pipes.TileEntityPipe; import hydraulic.core.implement.ColorCode; import hydraulic.core.liquids.LiquidHandler; @@ -32,28 +54,6 @@ import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.network.NetworkMod; import cpw.mods.fml.common.registry.GameRegistry; -import fluidmech.common.block.BlockPumpMachine; -import fluidmech.common.block.BlockReleaseValve; -import fluidmech.common.block.BlockSink; -import fluidmech.common.block.BlockTank; -import fluidmech.common.block.liquids.BlockWasteLiquid; -import fluidmech.common.item.ItemGuage; -import fluidmech.common.item.ItemLiquidMachine; -import fluidmech.common.item.ItemParts; -import fluidmech.common.item.ItemPipe; -import fluidmech.common.item.ItemReleaseValve; -import fluidmech.common.item.ItemTank; -import fluidmech.common.item.ItemParts.Parts; -import fluidmech.common.machines.TileEntityMinorPump; -import fluidmech.common.machines.TileEntityReleaseValve; -import fluidmech.common.machines.TileEntitySink; -import fluidmech.common.machines.TileEntityTank; -import fluidmech.common.machines.mech.BlockGenerator; -import fluidmech.common.machines.mech.BlockRod; -import fluidmech.common.machines.mech.TileEntityGenerator; -import fluidmech.common.machines.mech.TileEntityRod; -import fluidmech.common.machines.pipes.BlockPipe; -import fluidmech.common.machines.pipes.TileEntityPipe; /** * Used in the creation of a new mod class diff --git a/src/minecraft/fluidmech/common/TabFluidMech.java b/src/minecraft/fluidmech/common/TabFluidMech.java index dedf9869..5b323c2c 100644 --- a/src/minecraft/fluidmech/common/TabFluidMech.java +++ b/src/minecraft/fluidmech/common/TabFluidMech.java @@ -3,7 +3,6 @@ package fluidmech.common; import net.minecraft.block.Block; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.ItemStack; -import cpw.mods.fml.common.registry.LanguageRegistry; public class TabFluidMech extends CreativeTabs { diff --git a/src/minecraft/fluidmech/common/block/BlockPumpMachine.java b/src/minecraft/fluidmech/common/block/BlockPumpMachine.java index 4212f391..7cdc93f7 100644 --- a/src/minecraft/fluidmech/common/block/BlockPumpMachine.java +++ b/src/minecraft/fluidmech/common/block/BlockPumpMachine.java @@ -4,11 +4,6 @@ import hydraulic.core.helpers.MetaGroup; import java.util.List; -import fluidmech.client.render.BlockRenderHelper; -import fluidmech.common.FluidMech; -import fluidmech.common.TabFluidMech; -import fluidmech.common.machines.TileEntityMinorPump; - import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.EntityLiving; @@ -18,123 +13,134 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MathHelper; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; -import universalelectricity.prefab.BlockMachine; +import universalelectricity.components.common.BasicComponents; +import universalelectricity.components.common.block.BlockBasicMachine; +import universalelectricity.prefab.block.BlockAdvanced; import universalelectricity.prefab.tile.TileEntityAdvanced; +import fluidmech.client.render.BlockRenderHelper; +import fluidmech.common.FluidMech; +import fluidmech.common.TabFluidMech; +import fluidmech.common.machines.TileEntityMinorPump; -public class BlockPumpMachine extends BlockMachine +public class BlockPumpMachine extends BlockAdvanced { - public BlockPumpMachine(int id) - { - super("lmMachines", id, Material.iron, TabFluidMech.INSTANCE); - this.setHardness(1f); - this.setResistance(5f); - } + public BlockPumpMachine(int id) + { + super(id, Material.iron); + this.setUnlocalizedName("lmMachines"); + this.setCreativeTab(TabFluidMech.INSTANCE); + this.setHardness(1f); + this.setResistance(5f); + } - @Override - public boolean isOpaqueCube() - { - return false; - } + @Override + public boolean isOpaqueCube() + { + return false; + } - @Override - public boolean renderAsNormalBlock() - { - return false; - } + @Override + public boolean renderAsNormalBlock() + { + return false; + } - @Override - public int getRenderType() - { - return BlockRenderHelper.renderID; - } + @Override + public int getRenderType() + { + return BlockRenderHelper.renderID; + } - @Override - public int damageDropped(int meta) - { - if (meta < 4) { return 0; } - return meta; - } + @Override + public int damageDropped(int meta) + { + if (meta < 4) + { + return 0; + } + return meta; + } - @Override - public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z) - { - int meta = world.getBlockMetadata(x, y, z); - TileEntity ent = world.getBlockTileEntity(x, y, z); + @Override + public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z) + { + int meta = world.getBlockMetadata(x, y, z); + TileEntity ent = world.getBlockTileEntity(x, y, z); - if (meta < 4) - { - new ItemStack(FluidMech.blockMachine, 1, 0); - } + if (meta < 4) + { + new ItemStack(FluidMech.blockMachine, 1, 0); + } - return null; - } + return null; + } - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLiving p) - { - int meta = world.getBlockMetadata(x, y, z); - int angle = MathHelper.floor_double((p.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; - TileEntity ent = world.getBlockTileEntity(x, y, z); + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLiving p, ItemStack itemStack) + { + int meta = world.getBlockMetadata(x, y, z); + int angle = MathHelper.floor_double((p.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; + TileEntity ent = world.getBlockTileEntity(x, y, z); - world.setBlockMetadata(x, y, z, angle + MetaGroup.getGroupStartMeta(MetaGroup.getGrouping(meta))); - if (ent instanceof TileEntityAdvanced) - { - ((TileEntityAdvanced) world.getBlockTileEntity(x, y, z)).initiate(); - } + world.setBlockMetadataWithNotify(x, y, z, angle + MetaGroup.getGroupStartMeta(MetaGroup.getGrouping(meta)), 3); + if (ent instanceof TileEntityAdvanced) + { + ((TileEntityAdvanced) world.getBlockTileEntity(x, y, z)).initiate(); + } - world.notifyBlocksOfNeighborChange(x, y, z, this.blockID); - if (p instanceof EntityPlayer) - { - // ((EntityPlayer) p).sendChatToPlayer("meta:" + - // world.getBlockMetadata(x, y, z)); - } - } + world.notifyBlocksOfNeighborChange(x, y, z, this.blockID); + if (p instanceof EntityPlayer) + { + // ((EntityPlayer) p).sendChatToPlayer("meta:" + + // world.getBlockMetadata(x, y, z)); + } + } - @Override - public TileEntity createNewTileEntity(World var1, int meta) - { - if (meta >= 12) - { - } - else if (meta >= 8) - { + @Override + public TileEntity createTileEntity(World var1, int meta) + { + if (meta >= 12) + { + } + else if (meta >= 8) + { - } - else if (meta >= 4) - { + } + else if (meta >= 4) + { - } - else - { - return new TileEntityMinorPump(); - } - return null; - } + } + else + { + return new TileEntityMinorPump(); + } + return null; + } - @Override - public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) - { - par3List.add(new ItemStack(par1, 1, 0)); - } + @Override + public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) + { + par3List.add(new ItemStack(par1, 1, 0)); + } - public boolean onUseWrench(World par1World, int x, int y, int z, EntityPlayer par5EntityPlayer, int side, float hitX, float hitY, float hitZ) - { - int meta = par1World.getBlockMetadata(x, y, z); - int g = MetaGroup.getGrouping(meta); - TileEntity ent = par1World.getBlockTileEntity(x, y, z); - int angle = MathHelper.floor_double((par5EntityPlayer.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; + public boolean onUseWrench(World par1World, int x, int y, int z, EntityPlayer par5EntityPlayer, int side, float hitX, float hitY, float hitZ) + { + int meta = par1World.getBlockMetadata(x, y, z); + int g = MetaGroup.getGrouping(meta); + TileEntity ent = par1World.getBlockTileEntity(x, y, z); + int angle = MathHelper.floor_double((par5EntityPlayer.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; - if (meta == (g * 4) + 3) - { - par1World.setBlockMetadataWithNotify(x, y, z, (g * 4)); - return true; - } - else - { - par1World.setBlockMetadataWithNotify(x, y, z, meta + 1); - return true; - } - //return false; - } + if (meta == (g * 4) + 3) + { + par1World.setBlockMetadataWithNotify(x, y, z, (g * 4), 3); + return true; + } + else + { + par1World.setBlockMetadataWithNotify(x, y, z, meta + 1, 3); + return true; + } + // return false; + } } diff --git a/src/minecraft/fluidmech/common/block/BlockReleaseValve.java b/src/minecraft/fluidmech/common/block/BlockReleaseValve.java index 11489fa4..3b15a6bb 100644 --- a/src/minecraft/fluidmech/common/block/BlockReleaseValve.java +++ b/src/minecraft/fluidmech/common/block/BlockReleaseValve.java @@ -2,27 +2,26 @@ package fluidmech.common.block; import java.util.Random; -import fluidmech.common.FluidMech; -import fluidmech.common.TabFluidMech; -import fluidmech.common.machines.TileEntityReleaseValve; - import net.minecraft.block.material.Material; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import universalelectricity.prefab.BlockMachine; -import universalelectricity.prefab.implement.IRedstoneReceptor; +import universalelectricity.prefab.block.BlockAdvanced; +import fluidmech.common.FluidMech; +import fluidmech.common.TabFluidMech; +import fluidmech.common.machines.TileEntityReleaseValve; -public class BlockReleaseValve extends BlockMachine +public class BlockReleaseValve extends BlockAdvanced { public BlockReleaseValve(int par1) { - super("eValve",par1, Material.iron,TabFluidMech.INSTANCE); + super(par1, Material.iron); + this.setCreativeTab(TabFluidMech.INSTANCE); + this.setUnlocalizedName("eValve"); this.setHardness(1f); this.setResistance(5f); - this.setTextureFile(FluidMech.BLOCK_TEXTURE_FILE); } @Override @@ -43,12 +42,6 @@ public class BlockReleaseValve extends BlockMachine return false; } - @Override - public int getBlockTextureFromSideAndMetadata(int side, int meta) - { - return 0; - } - @Override public boolean renderAsNormalBlock() { diff --git a/src/minecraft/fluidmech/common/block/BlockSink.java b/src/minecraft/fluidmech/common/block/BlockSink.java index e92f9dc4..6b8c468b 100644 --- a/src/minecraft/fluidmech/common/block/BlockSink.java +++ b/src/minecraft/fluidmech/common/block/BlockSink.java @@ -2,9 +2,6 @@ package fluidmech.common.block; import hydraulic.core.helpers.MetaGroup; import hydraulic.core.liquids.LiquidHandler; -import fluidmech.client.render.BlockRenderHelper; -import fluidmech.common.TabFluidMech; -import fluidmech.common.machines.TileEntitySink; import net.minecraft.block.material.Material; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.player.EntityPlayer; @@ -19,170 +16,179 @@ import net.minecraft.world.World; import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.liquids.LiquidContainerRegistry; import net.minecraftforge.liquids.LiquidStack; -import universalelectricity.prefab.BlockMachine; +import universalelectricity.prefab.block.BlockAdvanced; import universalelectricity.prefab.tile.TileEntityAdvanced; +import fluidmech.client.render.BlockRenderHelper; +import fluidmech.common.TabFluidMech; +import fluidmech.common.machines.TileEntitySink; -public class BlockSink extends BlockMachine +public class BlockSink extends BlockAdvanced { - public BlockSink(int par1) - { - super("lmSink", par1, Material.iron, TabFluidMech.INSTANCE); - this.setResistance(4f); - this.setHardness(4f); - } + public BlockSink(int par1) + { + super(par1, Material.iron); + this.setUnlocalizedName("lmSink"); + this.setCreativeTab(TabFluidMech.INSTANCE); + this.setResistance(4f); + this.setHardness(4f); + } - @Override - public TileEntity createNewTileEntity(World var1) - { - return new TileEntitySink(); - } + @Override + public TileEntity createNewTileEntity(World var1) + { + return new TileEntitySink(); + } - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer entityplayer, int side, float hitX, float hitY, float hitZ) - { - if (entityplayer.isSneaking()) { return false; } - ItemStack current = entityplayer.inventory.getCurrentItem(); - if (current != null) - { + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer entityplayer, int side, float hitX, float hitY, float hitZ) + { + if (entityplayer.isSneaking()) + { + return false; + } + ItemStack current = entityplayer.inventory.getCurrentItem(); + if (current != null) + { - LiquidStack liquid = LiquidContainerRegistry.getLiquidForFilledItem(current); + LiquidStack liquid = LiquidContainerRegistry.getLiquidForFilledItem(current); - TileEntity tileEntity = world.getBlockTileEntity(x, y, z); + TileEntity tileEntity = world.getBlockTileEntity(x, y, z); - if (tileEntity instanceof TileEntitySink) - { - TileEntitySink tank = (TileEntitySink) tileEntity; + if (tileEntity instanceof TileEntitySink) + { + TileEntitySink tank = (TileEntitySink) tileEntity; - // Handle filled containers - if (liquid != null) - { - if (current.isItemEqual(new ItemStack(Item.potion))) - { - liquid = new LiquidStack(liquid.itemID, (LiquidContainerRegistry.BUCKET_VOLUME / 4), liquid.itemMeta); - } - int filled = tank.fill(ForgeDirection.UNKNOWN, liquid, true); + // Handle filled containers + if (liquid != null) + { + if (current.isItemEqual(new ItemStack(Item.potion))) + { + liquid = new LiquidStack(liquid.itemID, (LiquidContainerRegistry.BUCKET_VOLUME / 4), liquid.itemMeta); + } + int filled = tank.fill(ForgeDirection.UNKNOWN, liquid, true); - if (filled != 0 && !entityplayer.capabilities.isCreativeMode) - { - entityplayer.inventory.setInventorySlotContents(entityplayer.inventory.currentItem, LiquidHandler.consumeItem(current)); - } + if (filled != 0 && !entityplayer.capabilities.isCreativeMode) + { + entityplayer.inventory.setInventorySlotContents(entityplayer.inventory.currentItem, LiquidHandler.consumeItem(current)); + } - return true; + return true; - // Handle empty containers - } - else - { + // Handle empty containers + } + else + { - if (current.getItem() instanceof ItemArmor && ((ItemArmor) current.getItem()).getArmorMaterial() == EnumArmorMaterial.CLOTH) - { - ItemArmor var13 = (ItemArmor) current.getItem(); - var13.removeColor(current); - return true; - } - LiquidStack stack = tank.getStack(); - if (stack != null) - { - ItemStack liquidItem = LiquidContainerRegistry.fillLiquidContainer(stack, current); + if (current.getItem() instanceof ItemArmor && ((ItemArmor) current.getItem()).getArmorMaterial() == EnumArmorMaterial.CLOTH) + { + ItemArmor var13 = (ItemArmor) current.getItem(); + var13.removeColor(current); + return true; + } + LiquidStack stack = tank.getStack(); + if (stack != null) + { + ItemStack liquidItem = LiquidContainerRegistry.fillLiquidContainer(stack, current); - liquid = LiquidContainerRegistry.getLiquidForFilledItem(liquidItem); + liquid = LiquidContainerRegistry.getLiquidForFilledItem(liquidItem); - if (liquid != null) - { - if (!entityplayer.capabilities.isCreativeMode) - { - if (current.stackSize > 1) - { - if (!entityplayer.inventory.addItemStackToInventory(liquidItem)) return false; - else - { - entityplayer.inventory.setInventorySlotContents(entityplayer.inventory.currentItem, LiquidHandler.consumeItem(current)); - } - } - else - { - entityplayer.inventory.setInventorySlotContents(entityplayer.inventory.currentItem, LiquidHandler.consumeItem(current)); - entityplayer.inventory.setInventorySlotContents(entityplayer.inventory.currentItem, liquidItem); - } - } - int ammount = liquid.amount; - if (current.isItemEqual(new ItemStack(Item.glassBottle))) - { - ammount = (LiquidContainerRegistry.BUCKET_VOLUME / 4); - } - tank.drain(null, ammount, true); - return true; - } - } - } - } - } + if (liquid != null) + { + if (!entityplayer.capabilities.isCreativeMode) + { + if (current.stackSize > 1) + { + if (!entityplayer.inventory.addItemStackToInventory(liquidItem)) + return false; + else + { + entityplayer.inventory.setInventorySlotContents(entityplayer.inventory.currentItem, LiquidHandler.consumeItem(current)); + } + } + else + { + entityplayer.inventory.setInventorySlotContents(entityplayer.inventory.currentItem, LiquidHandler.consumeItem(current)); + entityplayer.inventory.setInventorySlotContents(entityplayer.inventory.currentItem, liquidItem); + } + } + int ammount = liquid.amount; + if (current.isItemEqual(new ItemStack(Item.glassBottle))) + { + ammount = (LiquidContainerRegistry.BUCKET_VOLUME / 4); + } + tank.drain(null, ammount, true); + return true; + } + } + } + } + } - return false; + return false; - } + } - @Override - public boolean onUseWrench(World par1World, int x, int y, int z, EntityPlayer par5EntityPlayer, int side, float hitX, float hitY, float hitZ) - { - int meta = par1World.getBlockMetadata(x, y, z); - int g = MetaGroup.getGrouping(meta); - TileEntity ent = par1World.getBlockTileEntity(x, y, z); - int angle = MathHelper.floor_double((par5EntityPlayer.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; + @Override + public boolean onUseWrench(World par1World, int x, int y, int z, EntityPlayer par5EntityPlayer, int side, float hitX, float hitY, float hitZ) + { + int meta = par1World.getBlockMetadata(x, y, z); + int g = MetaGroup.getGrouping(meta); + TileEntity ent = par1World.getBlockTileEntity(x, y, z); + int angle = MathHelper.floor_double((par5EntityPlayer.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; - if (meta == (g * 4) + 3) - { - par1World.setBlockMetadataWithNotify(x, y, z, (g * 4)); - return true; - } - else - { - par1World.setBlockMetadataWithNotify(x, y, z, meta + 1); - return true; - } - // return false; - } + if (meta == (g * 4) + 3) + { + par1World.setBlockMetadataWithNotify(x, y, z, (g * 4), 3); + return true; + } + else + { + par1World.setBlockMetadataWithNotify(x, y, z, meta + 1, 3); + return true; + } + // return false; + } - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLiving par5EntityLiving) - { - int meta = world.getBlockMetadata(x, y, z); - int angle = MathHelper.floor_double((par5EntityLiving.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; - TileEntity ent = world.getBlockTileEntity(x, y, z); + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLiving par5EntityLiving, ItemStack itemStack) + { + int meta = world.getBlockMetadata(x, y, z); + int angle = MathHelper.floor_double((par5EntityLiving.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; + TileEntity ent = world.getBlockTileEntity(x, y, z); - world.setBlockMetadata(x, y, z, angle + MetaGroup.getGroupStartMeta(MetaGroup.getGrouping(meta))); - if (ent instanceof TileEntityAdvanced) - { - ((TileEntityAdvanced) world.getBlockTileEntity(x, y, z)).initiate(); - } + world.setBlockMetadataWithNotify(x, y, z, angle + MetaGroup.getGroupStartMeta(MetaGroup.getGrouping(meta)), 3); + if (ent instanceof TileEntityAdvanced) + { + ((TileEntityAdvanced) world.getBlockTileEntity(x, y, z)).initiate(); + } - world.notifyBlocksOfNeighborChange(x, y, z, this.blockID); - } + world.notifyBlocksOfNeighborChange(x, y, z, this.blockID); + } - @Override - public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z) - { - int meta = world.getBlockMetadata(x, y, z); + @Override + public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z) + { + int meta = world.getBlockMetadata(x, y, z); - return new ItemStack(this, 1, 0); + return new ItemStack(this, 1, 0); - } + } - @Override - public boolean isOpaqueCube() - { - return false; - } + @Override + public boolean isOpaqueCube() + { + return false; + } - @Override - public boolean renderAsNormalBlock() - { - return false; - } + @Override + public boolean renderAsNormalBlock() + { + return false; + } - @Override - public int getRenderType() - { - return BlockRenderHelper.renderID; - } + @Override + public int getRenderType() + { + return BlockRenderHelper.renderID; + } } diff --git a/src/minecraft/fluidmech/common/block/BlockTank.java b/src/minecraft/fluidmech/common/block/BlockTank.java index b56fd017..2de2442f 100644 --- a/src/minecraft/fluidmech/common/block/BlockTank.java +++ b/src/minecraft/fluidmech/common/block/BlockTank.java @@ -4,9 +4,7 @@ import hydraulic.core.liquids.LiquidHandler; import java.util.List; -import fluidmech.client.render.BlockRenderHelper; -import fluidmech.common.TabFluidMech; -import fluidmech.common.machines.TileEntityTank; +import universalelectricity.prefab.block.BlockAdvanced; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; @@ -19,142 +17,150 @@ import net.minecraft.world.World; import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.liquids.LiquidContainerRegistry; import net.minecraftforge.liquids.LiquidStack; -import universalelectricity.prefab.BlockMachine; +import fluidmech.client.render.BlockRenderHelper; +import fluidmech.common.TabFluidMech; +import fluidmech.common.machines.TileEntityTank; -public class BlockTank extends BlockMachine +public class BlockTank extends BlockAdvanced { - public BlockTank(int id) - { - super("lmTank", id, Material.rock, TabFluidMech.INSTANCE); - this.setHardness(1f); - this.setResistance(5f); - } + public BlockTank(int id) + { + super(id, Material.rock); + this.setCreativeTab(TabFluidMech.INSTANCE); + this.setUnlocalizedName("lmTank"); + this.setHardness(1f); + this.setResistance(5f); + } - @Override - public boolean isOpaqueCube() - { - return false; - } + @Override + public boolean isOpaqueCube() + { + return false; + } - @Override - public boolean renderAsNormalBlock() - { - return false; - } + @Override + public boolean renderAsNormalBlock() + { + return false; + } - @Override - public int getRenderType() - { - return BlockRenderHelper.renderID; - } + @Override + public int getRenderType() + { + return BlockRenderHelper.renderID; + } - @Override - public int damageDropped(int meta) - { - return meta; - } + @Override + public int damageDropped(int meta) + { + return meta; + } - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer entityplayer, int side, float hitX, float hitY, float hitZ) - { - if (entityplayer.isSneaking()) { return false; } - ItemStack current = entityplayer.inventory.getCurrentItem(); - if (current != null) - { + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer entityplayer, int side, float hitX, float hitY, float hitZ) + { + if (entityplayer.isSneaking()) + { + return false; + } + ItemStack current = entityplayer.inventory.getCurrentItem(); + if (current != null) + { - LiquidStack liquid = LiquidContainerRegistry.getLiquidForFilledItem(current); + LiquidStack liquid = LiquidContainerRegistry.getLiquidForFilledItem(current); - TileEntity tileEntity = world.getBlockTileEntity(x, y, z); + TileEntity tileEntity = world.getBlockTileEntity(x, y, z); - if (tileEntity instanceof TileEntityTank) - { - TileEntityTank tank = (TileEntityTank) tileEntity; + if (tileEntity instanceof TileEntityTank) + { + TileEntityTank tank = (TileEntityTank) tileEntity; - // Handle filled containers - if (liquid != null) - { - if (current.isItemEqual(new ItemStack(Item.potion))) - { - liquid = new LiquidStack(liquid.itemID, (LiquidContainerRegistry.BUCKET_VOLUME / 4), liquid.itemMeta); - } - int filled = tank.fill(ForgeDirection.UNKNOWN, liquid, true); + // Handle filled containers + if (liquid != null) + { + if (current.isItemEqual(new ItemStack(Item.potion))) + { + liquid = new LiquidStack(liquid.itemID, (LiquidContainerRegistry.BUCKET_VOLUME / 4), liquid.itemMeta); + } + int filled = tank.fill(ForgeDirection.UNKNOWN, liquid, true); - if (filled != 0 && !entityplayer.capabilities.isCreativeMode) - { - entityplayer.inventory.setInventorySlotContents(entityplayer.inventory.currentItem, LiquidHandler.consumeItem(current)); - } + if (filled != 0 && !entityplayer.capabilities.isCreativeMode) + { + entityplayer.inventory.setInventorySlotContents(entityplayer.inventory.currentItem, LiquidHandler.consumeItem(current)); + } - return true; + return true; - // Handle empty containers - } - else - { + // Handle empty containers + } + else + { - LiquidStack stack = tank.getStack(); - if (stack != null) - { - ItemStack liquidItem = LiquidContainerRegistry.fillLiquidContainer(stack, current); + LiquidStack stack = tank.getStack(); + if (stack != null) + { + ItemStack liquidItem = LiquidContainerRegistry.fillLiquidContainer(stack, current); - liquid = LiquidContainerRegistry.getLiquidForFilledItem(liquidItem); + liquid = LiquidContainerRegistry.getLiquidForFilledItem(liquidItem); - if (liquid != null) - { - if (!entityplayer.capabilities.isCreativeMode) - { - if (current.stackSize > 1) - { - if (!entityplayer.inventory.addItemStackToInventory(liquidItem)) return false; - else - { - entityplayer.inventory.setInventorySlotContents(entityplayer.inventory.currentItem, LiquidHandler.consumeItem(current)); - } - } - else - { - entityplayer.inventory.setInventorySlotContents(entityplayer.inventory.currentItem, LiquidHandler.consumeItem(current)); - entityplayer.inventory.setInventorySlotContents(entityplayer.inventory.currentItem, liquidItem); - } - } - int ammount = liquid.amount; - if (current.isItemEqual(new ItemStack(Item.glassBottle))) - { - ammount = (LiquidContainerRegistry.BUCKET_VOLUME / 4); - } - tank.drain(null, ammount, true); - return true; - } - } - } - } - } + if (liquid != null) + { + if (!entityplayer.capabilities.isCreativeMode) + { + if (current.stackSize > 1) + { + if (!entityplayer.inventory.addItemStackToInventory(liquidItem)) + return false; + else + { + entityplayer.inventory.setInventorySlotContents(entityplayer.inventory.currentItem, LiquidHandler.consumeItem(current)); + } + } + else + { + entityplayer.inventory.setInventorySlotContents(entityplayer.inventory.currentItem, LiquidHandler.consumeItem(current)); + entityplayer.inventory.setInventorySlotContents(entityplayer.inventory.currentItem, liquidItem); + } + } + int ammount = liquid.amount; + if (current.isItemEqual(new ItemStack(Item.glassBottle))) + { + ammount = (LiquidContainerRegistry.BUCKET_VOLUME / 4); + } + tank.drain(null, ammount, true); + return true; + } + } + } + } + } - return false; + return false; - } + } - @Override - public TileEntity createNewTileEntity(World var1) - { - return new TileEntityTank(); - } + @Override + public TileEntity createNewTileEntity(World var1) + { + return new TileEntityTank(); + } - @Override - public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z) - { - int meta = world.getBlockMetadata(x, y, z); + @Override + public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z) + { + int meta = world.getBlockMetadata(x, y, z); - return new ItemStack(this, 1, meta); + return new ItemStack(this, 1, meta); - } + } - @Override - public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) - { - par3List.add(new ItemStack(par1, 1, 1)); - par3List.add(new ItemStack(par1, 1, 4)); - par3List.add(new ItemStack(par1, 1, 13)); - par3List.add(new ItemStack(par1, 1, 15)); - } + @Override + public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) + { + par3List.add(new ItemStack(par1, 1, 1)); + par3List.add(new ItemStack(par1, 1, 4)); + par3List.add(new ItemStack(par1, 1, 13)); + par3List.add(new ItemStack(par1, 1, 15)); + } } diff --git a/src/minecraft/fluidmech/common/item/ItemGuage.java b/src/minecraft/fluidmech/common/item/ItemGuage.java index 44858650..5e1d92de 100644 --- a/src/minecraft/fluidmech/common/item/ItemGuage.java +++ b/src/minecraft/fluidmech/common/item/ItemGuage.java @@ -4,31 +4,34 @@ import hydraulic.core.implement.IReadOut; import java.util.List; -import fluidmech.common.FluidMech; -import fluidmech.common.TabFluidMech; +import universalelectricity.components.common.BasicComponents; +import universalelectricity.components.common.item.ItemBasic; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +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.tileentity.TileEntity; +import net.minecraft.util.Icon; import net.minecraft.world.World; import net.minecraftforge.common.ForgeDirection; +import fluidmech.common.FluidMech; +import fluidmech.common.TabFluidMech; -public class ItemGuage extends Item +public class ItemGuage extends ItemBasic { private int spawnID; public ItemGuage(int id) { - super(id); + super("lmTool", id); this.setMaxDamage(0); this.setHasSubtypes(true); - this.setIconIndex(10); - this.setItemName("lmTool"); this.setCreativeTab(TabFluidMech.INSTANCE); this.setMaxStackSize(1); - this.setTextureFile(FluidMech.ITEM_TEXTURE_FILE); } @Override @@ -37,18 +40,6 @@ public class ItemGuage extends Item par3List.add(new ItemStack(this, 1, 0)); } - @Override - public int getIconFromDamage(int par1) - { - switch (par1) - { - case 0: - return 24; - case 1: - } - return this.iconIndex; - } - @Override public boolean onItemUse(ItemStack itemStack, EntityPlayer player, World par3World, int x, int y, int z, int side, float par8, float par9, float par10) { @@ -80,10 +71,4 @@ public class ItemGuage extends Item return false; } - - @Override - public String getItemNameIS(ItemStack itemstack) - { - return this.getItemName() + "." + itemstack.getItemDamage(); - } } diff --git a/src/minecraft/fluidmech/common/item/ItemParts.java b/src/minecraft/fluidmech/common/item/ItemParts.java index 38b197a0..ae02c4a9 100644 --- a/src/minecraft/fluidmech/common/item/ItemParts.java +++ b/src/minecraft/fluidmech/common/item/ItemParts.java @@ -2,12 +2,11 @@ package fluidmech.common.item; import java.util.List; -import fluidmech.common.FluidMech; -import fluidmech.common.TabFluidMech; - import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import fluidmech.common.FluidMech; +import fluidmech.common.TabFluidMech; /** A metadata item containing parts of various machines in Liquid Mechanics Mod. * diff --git a/src/minecraft/fluidmech/common/item/ItemValve.java b/src/minecraft/fluidmech/common/item/ItemValve.java deleted file mode 100644 index 818a3c07..00000000 --- a/src/minecraft/fluidmech/common/item/ItemValve.java +++ /dev/null @@ -1,134 +0,0 @@ -package fluidmech.common.item; - -import java.util.List; - -import fluidmech.common.FluidMech; -import fluidmech.common.TabFluidMech; - -import net.minecraft.block.Block; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.MathHelper; -import net.minecraft.world.World; - -public class ItemValve extends ItemBlock -{ - int index = 26; - private int spawnID; - - public ItemValve(int id) - { - super(id); - this.setMaxDamage(0); - this.setHasSubtypes(true); - this.setIconIndex(10); - this.setItemName("Machine"); - this.setCreativeTab(TabFluidMech.INSTANCE); - } - - @Override - public int getIconFromDamage(int par1) - { - - return par1 + index; - } - - @Override - public String getItemNameIS(ItemStack itemstack) - { - return itemstack.getItemDamage() == 0 ? "Pump" : "Conderser";// itemstack.getItemDamage() == - // 4 ? - // "Condenser":"Unknown"; - } - - @Override - public void getSubItems(int par1, CreativeTabs par2CreativeTabs, List par3List) - { - - par3List.add(new ItemStack(this, 1, 0)); - par3List.add(new ItemStack(this, 1, 4)); - - } - - public String getTextureFile() - { - return FluidMech.ITEM_TEXTURE_FILE; - } - - @Override - public String getItemName() - { - return "Machines"; - } - - @Override - public boolean onItemUse(ItemStack itemStack, EntityPlayer player, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10) - { - int blockID = par3World.getBlockId(par4, par5, par6); - spawnID = FluidMech.blockReleaseValve.blockID; - if (blockID == Block.snow.blockID) - { - par7 = 1; - } - else if (blockID != Block.vine.blockID && blockID != Block.tallGrass.blockID && blockID != Block.deadBush.blockID) - { - if (par7 == 0) - { - --par5; - } - - if (par7 == 1) - { - ++par5; - } - - if (par7 == 2) - { - --par6; - } - - if (par7 == 3) - { - ++par6; - } - - if (par7 == 4) - { - --par4; - } - - if (par7 == 5) - { - ++par4; - } - } - - if (FluidMech.blockPipe.canPlaceBlockAt(par3World, par4, par5, par6)) - { - Block var9 = Block.blocksList[this.spawnID]; - par3World.editingBlocks = true; - int angle = MathHelper.floor_double((double) (player.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; - if (par3World.setBlockAndMetadataWithNotify(par4, par5, par6, var9.blockID, angle + itemStack.getItemDamage())) - { - if (par3World.getBlockId(par4, par5, par6) == var9.blockID) - { - - Block.blocksList[this.spawnID].onBlockAdded(par3World, par4, par5, par6); - Block.blocksList[this.spawnID].onBlockPlacedBy(par3World, par4, par5, par6, player); - TileEntity blockEntity = par3World.getBlockTileEntity(par4, par5, par6); - - } - - --itemStack.stackSize; - par3World.editingBlocks = false; - return true; - } - } - par3World.editingBlocks = false; - return false; - } - -} \ No newline at end of file diff --git a/src/minecraft/fluidmech/common/machines/TileEntityMinorPump.java b/src/minecraft/fluidmech/common/machines/TileEntityMinorPump.java index 6365ecec..5775ce87 100644 --- a/src/minecraft/fluidmech/common/machines/TileEntityMinorPump.java +++ b/src/minecraft/fluidmech/common/machines/TileEntityMinorPump.java @@ -1,5 +1,6 @@ package fluidmech.common.machines; +import fluidmech.common.FluidMech; import hydraulic.core.helpers.MetaGroup; import hydraulic.core.implement.ColorCode; import hydraulic.core.implement.IPsiCreator; @@ -19,19 +20,15 @@ import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.liquids.ITankContainer; import net.minecraftforge.liquids.LiquidContainerRegistry; import net.minecraftforge.liquids.LiquidStack; -import universalelectricity.core.electricity.ElectricityConnections; -import universalelectricity.core.electricity.ElectricityNetwork; import universalelectricity.core.electricity.ElectricityPack; import universalelectricity.core.vector.Vector3; +import universalelectricity.core.vector.VectorHelper; import universalelectricity.prefab.network.IPacketReceiver; import universalelectricity.prefab.network.PacketManager; -import universalelectricity.prefab.tile.TileEntityElectricityReceiver; import universalelectricity.prefab.tile.TileEntityElectricityRunnable; import com.google.common.io.ByteArrayDataInput; -import fluidmech.common.FluidMech; - public class TileEntityMinorPump extends TileEntityElectricityRunnable implements IPacketReceiver, IReadOut, IPsiCreator { public final double WATTS_PER_TICK = (400 / 20); @@ -50,7 +47,6 @@ public class TileEntityMinorPump extends TileEntityElectricityRunnable implement public void initiate() { this.getConnections(); - ElectricityConnections.registerConnector(this, EnumSet.of(back, side)); this.worldObj.notifyBlocksOfNeighborChange(this.xCoord, this.yCoord, this.zCoord, FluidMech.blockMachine.blockID); } @@ -62,7 +58,7 @@ public class TileEntityMinorPump extends TileEntityElectricityRunnable implement int notchMeta = MetaGroup.getFacingMeta(worldObj.getBlockMetadata(xCoord, yCoord, zCoord)); back = ForgeDirection.getOrientation(notchMeta); - side = Vector3.getOrientationFromSide(back, ForgeDirection.WEST); + side = VectorHelper.getOrientationFromSide(back, ForgeDirection.WEST); if (notchMeta == 2 || notchMeta == 3) { @@ -231,4 +227,10 @@ public class TileEntityMinorPump extends TileEntityElectricityRunnable implement return dir == this.side.getOpposite() && this.color.isValidLiquid(type.getStack()); } + @Override + public boolean canConnect(ForgeDirection direction) + { + return direction == back; + } + } diff --git a/src/minecraft/fluidmech/common/machines/TileEntityReleaseValve.java b/src/minecraft/fluidmech/common/machines/TileEntityReleaseValve.java index 443d9c4c..b69d5f66 100644 --- a/src/minecraft/fluidmech/common/machines/TileEntityReleaseValve.java +++ b/src/minecraft/fluidmech/common/machines/TileEntityReleaseValve.java @@ -1,5 +1,6 @@ package fluidmech.common.machines; +import fluidmech.common.machines.pipes.TileEntityPipe; import hydraulic.core.helpers.connectionHelper; import hydraulic.core.implement.ColorCode; import hydraulic.core.implement.IColorCoded; @@ -11,11 +12,7 @@ import hydraulic.core.liquids.LiquidHandler; import java.util.ArrayList; import java.util.List; -import fluidmech.common.block.BlockReleaseValve; -import fluidmech.common.machines.pipes.TileEntityPipe; - 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; @@ -23,7 +20,6 @@ import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.liquids.ILiquidTank; import net.minecraftforge.liquids.ITankContainer; import net.minecraftforge.liquids.LiquidStack; -import universalelectricity.prefab.implement.IRedstoneReceptor; import universalelectricity.prefab.tile.TileEntityAdvanced; public class TileEntityReleaseValve extends TileEntityAdvanced implements IPsiCreator, IReadOut @@ -43,7 +39,7 @@ public class TileEntityReleaseValve extends TileEntityAdvanced implements IPsiCr { super.updateEntity(); - this.isPowered = worldObj.isBlockGettingPowered(xCoord, yCoord, zCoord) || worldObj.isBlockIndirectlyGettingPowered(xCoord, yCoord, zCoord); + this.isPowered = worldObj.isBlockIndirectlyGettingPowered(xCoord, yCoord, zCoord); connected = connectionHelper.getSurroundingTileEntities(this); diff --git a/src/minecraft/fluidmech/common/machines/TileEntitySink.java b/src/minecraft/fluidmech/common/machines/TileEntitySink.java index b3d480b8..68b338fe 100644 --- a/src/minecraft/fluidmech/common/machines/TileEntitySink.java +++ b/src/minecraft/fluidmech/common/machines/TileEntitySink.java @@ -1,5 +1,6 @@ package fluidmech.common.machines; +import fluidmech.common.FluidMech; import hydraulic.core.implement.ColorCode; import hydraulic.core.implement.IColorCoded; import hydraulic.core.liquids.LiquidHandler; @@ -21,8 +22,6 @@ import universalelectricity.prefab.network.PacketManager; import com.google.common.io.ByteArrayDataInput; -import fluidmech.common.FluidMech; - public class TileEntitySink extends TileEntity implements IPacketReceiver, ITankContainer, IColorCoded { public TileEntity[] cc = { null, null, null, null, null, null }; diff --git a/src/minecraft/fluidmech/common/machines/mech/BlockGenerator.java b/src/minecraft/fluidmech/common/machines/mech/BlockGenerator.java index ac232876..f00f56b6 100644 --- a/src/minecraft/fluidmech/common/machines/mech/BlockGenerator.java +++ b/src/minecraft/fluidmech/common/machines/mech/BlockGenerator.java @@ -2,10 +2,6 @@ package fluidmech.common.machines.mech; import java.util.ArrayList; -import fluidmech.client.render.BlockRenderHelper; -import fluidmech.common.FluidMech; -import fluidmech.common.TabFluidMech; - import net.minecraft.block.material.Material; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.player.EntityPlayer; @@ -14,14 +10,19 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MathHelper; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; +import universalelectricity.prefab.block.BlockAdvanced; import universalelectricity.prefab.implement.IRedstoneReceptor; +import fluidmech.client.render.BlockRenderHelper; +import fluidmech.common.FluidMech; +import fluidmech.common.TabFluidMech; -public class BlockGenerator extends universalelectricity.prefab.BlockMachine +public class BlockGenerator extends BlockAdvanced { public BlockGenerator(int id) { - super("lmGen", id, Material.iron); + super(id, Material.iron); + this.setUnlocalizedName("lmGen"); this.setCreativeTab(TabFluidMech.INSTANCE); this.setHardness(1f); this.setResistance(5f); @@ -41,10 +42,10 @@ public class BlockGenerator extends universalelectricity.prefab.BlockMachine } @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLiving par5EntityLiving) + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLiving par5EntityLiving, ItemStack stack) { int angle = MathHelper.floor_double((par5EntityLiving.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; - world.setBlockAndMetadataWithUpdate(x, y, z, blockID, angle, true); + world.setBlockAndMetadataWithNotify(x, y, z, blockID, angle, 3); } @Override @@ -54,11 +55,11 @@ public class BlockGenerator extends universalelectricity.prefab.BlockMachine int metadata = par1World.getBlockMetadata(x, y, z); if (metadata < 3) { - par1World.setBlockAndMetadata(x, y, z, blockID, metadata + angle); + par1World.setBlockAndMetadataWithNotify(x, y, z, blockID, metadata + angle, 3); } else { - par1World.setBlockAndMetadata(x, y, z, blockID, 0); + par1World.setBlockAndMetadataWithNotify(x, y, z, blockID, 0, 3); } return true; } @@ -91,26 +92,6 @@ public class BlockGenerator extends universalelectricity.prefab.BlockMachine public void onNeighborBlockChange(World par1World, int x, int y, int z, int side) { super.onNeighborBlockChange(par1World, x, y, z, side); - this.checkForPower(par1World, x, y, z); } - - public static void checkForPower(World world, int x, int y, int z) - { - TileEntity tileEntity = world.getBlockTileEntity(x, y, z); - - if (tileEntity instanceof TileEntityGenerator) - { - boolean powered = ((TileEntityGenerator) tileEntity).isPowered; - boolean beingPowered = world.isBlockIndirectlyGettingPowered(x, y, z) || world.isBlockGettingPowered(x, y, z); - if (powered && !beingPowered) - { - ((IRedstoneReceptor) world.getBlockTileEntity(x, y, z)).onPowerOff(); - } - else if (!powered && beingPowered) - { - ((IRedstoneReceptor) world.getBlockTileEntity(x, y, z)).onPowerOn(); - } - } - } } diff --git a/src/minecraft/fluidmech/common/machines/mech/BlockRod.java b/src/minecraft/fluidmech/common/machines/mech/BlockRod.java index 6ed43317..1cab9bb6 100644 --- a/src/minecraft/fluidmech/common/machines/mech/BlockRod.java +++ b/src/minecraft/fluidmech/common/machines/mech/BlockRod.java @@ -1,8 +1,6 @@ package fluidmech.common.machines.mech; -import fluidmech.client.render.BlockRenderHelper; -import fluidmech.common.FluidMech; -import fluidmech.common.TabFluidMech; +import universalelectricity.prefab.block.BlockAdvanced; import net.minecraft.block.material.Material; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.player.EntityPlayer; @@ -12,99 +10,101 @@ import net.minecraft.util.MathHelper; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; import net.minecraftforge.common.ForgeDirection; +import fluidmech.client.render.BlockRenderHelper; +import fluidmech.common.FluidMech; +import fluidmech.common.TabFluidMech; -public class BlockRod extends universalelectricity.prefab.BlockMachine +public class BlockRod extends BlockAdvanced { - public BlockRod(int par1) - { - super("MechanicRod", par1, Material.iron); - this.setCreativeTab(TabFluidMech.INSTANCE); - this.setHardness(1f); - this.setResistance(5f); - } + public BlockRod(int par1) + { + super(par1, Material.iron); + this.setCreativeTab(TabFluidMech.INSTANCE); + this.setUnlocalizedName("MechanicRod"); + this.setHardness(1f); + this.setResistance(5f); + } - @Override - public int damageDropped(int metadata) - { - return 0; - } + @Override + public int damageDropped(int metadata) + { + return 0; + } - @Override - public void onBlockPlacedBy(World world, int i, int j, int k, - EntityLiving player) - { - int angle = MathHelper - .floor_double((player.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; - int meta = 0; - ForgeDirection idr; - int dZ = 0; - int dX = 0; - switch (angle) - { - case 0: - meta = 2; - dZ--; - break; - case 1: - meta = 5; - dX--; - break; - case 2: - meta = 3; - dZ++; - break; - case 3: - meta = 4; - dX++; - break; - } - world.setBlockAndMetadataWithUpdate(i, j, k, blockID, meta, true); - } + @Override + public void onBlockPlacedBy(World world, int i, int j, int k, EntityLiving player, ItemStack stack) + { + int angle = MathHelper.floor_double((player.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; + int meta = 0; + ForgeDirection idr; + int dZ = 0; + int dX = 0; + switch (angle) + { + case 0: + meta = 2; + dZ--; + break; + case 1: + meta = 5; + dX--; + break; + case 2: + meta = 3; + dZ++; + break; + case 3: + meta = 4; + dX++; + break; + } + world.setBlockAndMetadataWithNotify(i, j, k, blockID, meta, 3); + } - @Override - public boolean onUseWrench(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) - { - int meta = world.getBlockMetadata(x, y, z); - if (meta >= 5) - { - world.setBlockMetadataWithNotify(x, y, z, 0); - } - else - { - world.setBlockMetadataWithNotify(x, y, z, meta + 1); - } - return true; - } + @Override + public boolean onUseWrench(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) + { + int meta = world.getBlockMetadata(x, y, z); + if (meta >= 5) + { + world.setBlockMetadataWithNotify(x, y, z, 0, 3); + } + else + { + world.setBlockMetadataWithNotify(x, y, z, meta + 1, 3); + } + return true; + } - @Override - public TileEntity createNewTileEntity(World var1) - { - return new TileEntityRod(); - } + @Override + public TileEntity createNewTileEntity(World var1) + { + return new TileEntityRod(); + } - @Override - public boolean isOpaqueCube() - { - return false; - } + @Override + public boolean isOpaqueCube() + { + return false; + } - @Override - public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z) - { - return new ItemStack(FluidMech.blockRod, 1, 0); - } + @Override + public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z) + { + return new ItemStack(FluidMech.blockRod, 1, 0); + } - @Override - public boolean renderAsNormalBlock() - { - return false; - } + @Override + public boolean renderAsNormalBlock() + { + return false; + } - @Override - public int getRenderType() - { - return BlockRenderHelper.renderID; - } + @Override + public int getRenderType() + { + return BlockRenderHelper.renderID; + } } diff --git a/src/minecraft/fluidmech/common/machines/mech/TileEntityGenerator.java b/src/minecraft/fluidmech/common/machines/mech/TileEntityGenerator.java index 49623f40..dbb685b0 100644 --- a/src/minecraft/fluidmech/common/machines/mech/TileEntityGenerator.java +++ b/src/minecraft/fluidmech/common/machines/mech/TileEntityGenerator.java @@ -11,21 +11,22 @@ import net.minecraft.network.INetworkManager; import net.minecraft.network.packet.Packet250CustomPayload; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.ForgeDirection; -import universalelectricity.core.electricity.ElectricityConnections; +import universalelectricity.core.block.IConductor; import universalelectricity.core.electricity.ElectricityNetwork; -import universalelectricity.core.implement.IConductor; +import universalelectricity.core.electricity.ElectricityNetworkHelper; +import universalelectricity.core.electricity.IElectricityNetwork; import universalelectricity.core.vector.Vector3; +import universalelectricity.core.vector.VectorHelper; import universalelectricity.prefab.implement.IRedstoneReceptor; import universalelectricity.prefab.network.IPacketReceiver; -import universalelectricity.prefab.tile.TileEntityElectricityProducer; +import universalelectricity.prefab.tile.TileEntityElectrical; import com.google.common.io.ByteArrayDataInput; import fluidmech.api.mech.IForce; import fluidmech.common.FluidMech; - -public class TileEntityGenerator extends TileEntityElectricityProducer implements IPacketReceiver, IForce, IReadOut, IRedstoneReceptor +public class TileEntityGenerator extends TileEntityElectrical implements IPacketReceiver, IForce, IReadOut, IRedstoneReceptor { public boolean isPowered = false; @@ -42,34 +43,6 @@ public class TileEntityGenerator extends TileEntityElectricityProducer implement IConductor[] wires = { null, null, null, null, null, null }; - public boolean needUpdate() - { - return false; - } - - public void initiate() - { - this.registerConnections(); - this.worldObj.notifyBlocksOfNeighborChange(this.xCoord, this.yCoord, this.zCoord, FluidMech.blockGenerator.blockID); - } - - public void registerConnections() - { - int notchMeta = MetaGroup.getFacingMeta(worldObj.getBlockMetadata(xCoord, yCoord, zCoord)); - ForgeDirection facing = ForgeDirection.getOrientation(notchMeta).getOpposite(); - ForgeDirection[] dirs = new ForgeDirection[] { ForgeDirection.UNKNOWN, ForgeDirection.UNKNOWN, ForgeDirection.UNKNOWN, ForgeDirection.UNKNOWN, ForgeDirection.UNKNOWN, ForgeDirection.UNKNOWN }; - ElectricityConnections.registerConnector(this, EnumSet.of(facing.getOpposite())); - for (int i = 2; i < 6; i++) - { - ForgeDirection dir = ForgeDirection.getOrientation(i); - if (dir != facing && dir != facing.getOpposite()) - { - dirs[i] = dir; - } - } - ElectricityConnections.registerConnector(this, EnumSet.of(dirs[0], dirs[1], dirs[2], dirs[3], dirs[4], dirs[5])); - } - @Override public void updateEntity() { @@ -88,7 +61,6 @@ public class TileEntityGenerator extends TileEntityElectricityProducer implement }// end wire count if (tCount-- <= 0) { - BlockGenerator.checkForPower(worldObj, xCoord, yCoord, zCoord); tCount = 10; if (this.force > 0 || this.isPowered) { @@ -115,8 +87,8 @@ public class TileEntityGenerator extends TileEntityElectricityProducer implement if (dir != facing && dir != facing.getOpposite()) { - TileEntity outputTile = Vector3.getConnectorFromSide(this.worldObj, new Vector3(this), dir); - ElectricityNetwork network = ElectricityNetwork.getNetworkFromTileEntity(outputTile, dir); + TileEntity outputTile = VectorHelper.getConnectorFromSide(this.worldObj, new Vector3(this), dir); + IElectricityNetwork network = ElectricityNetworkHelper.getNetworkFromTileEntity(outputTile, dir); if (network != null) { if (network.getRequest().getWatts() > 0) @@ -138,8 +110,8 @@ public class TileEntityGenerator extends TileEntityElectricityProducer implement ForgeDirection dir = ForgeDirection.getOrientation(i); if (dir != facing && dir != facing.getOpposite()) { - TileEntity inputTile = Vector3.getTileEntityFromSide(this.worldObj, new Vector3(this), dir); - ElectricityNetwork network = ElectricityNetwork.getNetworkFromTileEntity(inputTile, dir); + TileEntity inputTile = VectorHelper.getTileEntityFromSide(this.worldObj, new Vector3(this), dir); + IElectricityNetwork network = ElectricityNetworkHelper.getNetworkFromTileEntity(inputTile, dir); if (network != null) { @@ -158,7 +130,7 @@ public class TileEntityGenerator extends TileEntityElectricityProducer implement if (this.joulesReceived >= this.WATTS_PER_TICK - 50) { joulesReceived -= this.WATTS_PER_TICK; - TileEntity rod = Vector3.getTileEntityFromSide(worldObj, new Vector3(this), facing); + TileEntity rod = VectorHelper.getTileEntityFromSide(worldObj, new Vector3(this), facing); if (rod instanceof IForce && ((IForce) rod).canInputSide(facing)) { ((IForce) rod).applyForce(10000); @@ -223,7 +195,10 @@ public class TileEntityGenerator extends TileEntityElectricityProducer implement @Override public int getForceSide(ForgeDirection side) { - if (side == facing.getOpposite()) { return aForce; } + if (side == facing.getOpposite()) + { + return aForce; + } return 0; } @@ -236,14 +211,20 @@ public class TileEntityGenerator extends TileEntityElectricityProducer implement @Override public boolean canOutputSide(ForgeDirection side) { - if (side == facing) { return true; } + if (side == facing) + { + return true; + } return false; } @Override public boolean canInputSide(ForgeDirection side) { - if (side == facing || side == facing.getOpposite()) { return true; } + if (side == facing || side == facing.getOpposite()) + { + return true; + } return false; } @@ -272,15 +253,18 @@ public class TileEntityGenerator extends TileEntityElectricityProducer implement @Override public boolean isDisabled() { - if (disableTicks-- <= 0) { return false; } + if (disableTicks-- <= 0) + { + return false; + } return true; } @Override - public double getVoltage(Object... data) + public double getVoltage() { - return 120; - + return 120; + } @Override @@ -308,4 +292,13 @@ public class TileEntityGenerator extends TileEntityElectricityProducer implement } + @Override + public boolean canConnect(ForgeDirection dir) + { + int notchMeta = MetaGroup.getFacingMeta(worldObj.getBlockMetadata(xCoord, yCoord, zCoord)); + ForgeDirection facing = ForgeDirection.getOrientation(notchMeta).getOpposite(); + + return dir != facing && dir != facing.getOpposite(); + } + } diff --git a/src/minecraft/fluidmech/common/machines/mech/TileEntityRod.java b/src/minecraft/fluidmech/common/machines/mech/TileEntityRod.java index 41beb192..ca6728af 100644 --- a/src/minecraft/fluidmech/common/machines/mech/TileEntityRod.java +++ b/src/minecraft/fluidmech/common/machines/mech/TileEntityRod.java @@ -16,7 +16,6 @@ import com.google.common.io.ByteArrayDataInput; import fluidmech.api.mech.IForce; import fluidmech.common.FluidMech; - public class TileEntityRod extends TileEntity implements IPacketReceiver, IForce, IReadOut { @@ -46,7 +45,7 @@ public class TileEntityRod extends TileEntity implements IPacketReceiver, IForce } if (!worldObj.isRemote) { - TileEntity ent = Vector3.getTileEntityFromSide(worldObj, new Vector3(this), facing); + TileEntity ent = worldObj.getBlockTileEntity(xCoord + facing.offsetX, yCoord + facing.offsetY, zCoord + facing.offsetZ); appliedForce = Math.max(currentForce - 20, 0); if (ent instanceof IForce && (((IForce) ent).canInputSide(facing))) { @@ -72,14 +71,20 @@ public class TileEntityRod extends TileEntity implements IPacketReceiver, IForce @Override public boolean canOutputSide(ForgeDirection side) { - if (side == facing || side == facing.getOpposite()) { return true; } + if (side == facing || side == facing.getOpposite()) + { + return true; + } return false; } @Override public boolean canInputSide(ForgeDirection side) { - if (side == facing || side == facing.getOpposite()) { return true; } + if (side == facing || side == facing.getOpposite()) + { + return true; + } return false; } diff --git a/src/minecraft/fluidmech/common/machines/pipes/BlockPipe.java b/src/minecraft/fluidmech/common/machines/pipes/BlockPipe.java index 7e12ab22..153d469e 100644 --- a/src/minecraft/fluidmech/common/machines/pipes/BlockPipe.java +++ b/src/minecraft/fluidmech/common/machines/pipes/BlockPipe.java @@ -2,8 +2,7 @@ package fluidmech.common.machines.pipes; import java.util.List; -import fluidmech.common.FluidMech; -import fluidmech.common.TabFluidMech; +import universalelectricity.prefab.block.BlockAdvanced; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; @@ -11,16 +10,18 @@ import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; -import universalelectricity.prefab.BlockMachine; +import fluidmech.common.FluidMech; +import fluidmech.common.TabFluidMech; -public class BlockPipe extends BlockMachine +public class BlockPipe extends BlockAdvanced { public BlockPipe(int id) { - super("Pipe", id, Material.iron, TabFluidMech.INSTANCE); + super(id, Material.iron); this.setBlockBounds(0.30F, 0.30F, 0.30F, 0.70F, 0.70F, 0.70F); this.setHardness(1f); - this.setBlockName("lmPipe"); + this.setCreativeTab(TabFluidMech.INSTANCE); + this.setUnlocalizedName("lmPipe"); this.setResistance(3f); } diff --git a/src/minecraft/fluidmech/common/machines/pipes/TileEntityNewPipes.java b/src/minecraft/fluidmech/common/machines/pipes/TileEntityNewPipes.java deleted file mode 100644 index a71aedfb..00000000 --- a/src/minecraft/fluidmech/common/machines/pipes/TileEntityNewPipes.java +++ /dev/null @@ -1,68 +0,0 @@ -package fluidmech.common.machines.pipes; - -import fluidmech.common.FluidMech; -import hydraulic.core.implement.ColorCode; -import hydraulic.prefab.TileEntityFluidConveyor; -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.network.INetworkManager; -import net.minecraft.network.packet.Packet250CustomPayload; -import net.minecraftforge.common.ForgeDirection; -import net.minecraftforge.liquids.LiquidContainerRegistry; -import net.minecraftforge.liquids.LiquidStack; - -import com.google.common.io.ByteArrayDataInput; - -public class TileEntityNewPipes extends TileEntityFluidConveyor -{ - public static int MAX_FLOW = LiquidContainerRegistry.BUCKET_VOLUME; - public static double MAX_AMPS = 200; - - public ColorCode color = ColorCode.NONE; - - public TileEntityNewPipes() - { - this.channel = FluidMech.CHANNEL; - } - - @Override - public int getMaxFlowRate(LiquidStack stack) - { - return this.MAX_FLOW; - } - - @Override - public double getMaxPressure(ForgeDirection side) - { - return this.MAX_AMPS; - } - - @Override - public void onOverPressure() - { - if (!this.worldObj.isRemote) - { - this.worldObj.setBlockWithNotify(this.xCoord, this.yCoord, this.zCoord, Block.fire.blockID); - // TODO make place a broken pipe, damage stuff, go boom, or something instead of just - // destroying it - } - - } - - @Override - public void handlePacketData(INetworkManager network, int packetType, Packet250CustomPayload packet, EntityPlayer player, ByteArrayDataInput dataStream) - { - } - - @Override - public ColorCode getColor() - { - return color; - } - - @Override - public void setColor(Object obj) - { - this.color = ColorCode.get(obj); - } -} diff --git a/src/minecraft/fluidmech/common/machines/pipes/TileEntityPipe.java b/src/minecraft/fluidmech/common/machines/pipes/TileEntityPipe.java index bb23939e..347f1659 100644 --- a/src/minecraft/fluidmech/common/machines/pipes/TileEntityPipe.java +++ b/src/minecraft/fluidmech/common/machines/pipes/TileEntityPipe.java @@ -210,7 +210,7 @@ public class TileEntityPipe extends TileEntity implements ITankContainer, IReadO } else { - return this.causeMix(stack, resource); + //return this.causeMix(stack, resource); } } @@ -227,33 +227,7 @@ public class TileEntityPipe extends TileEntity implements ITankContainer, IReadO return tank.fill(resource, doFill); } - public int causeMix(LiquidStack stored, LiquidStack fill) - { - if (stored == null || fill == null) - { - return 0; - } - // water flowing into lava creates obby - if (fill.isLiquidEqual(LiquidHandler.lava.getStack()) && fill.isLiquidEqual(LiquidHandler.water.getStack())) - { - worldObj.setBlockWithNotify(xCoord, yCoord, zCoord, Block.obsidian.blockID); - return fill.amount; - }// lava flowing into water creates cobble - else if (fill.isLiquidEqual(LiquidHandler.water.getStack()) && fill.isLiquidEqual(LiquidHandler.lava.getStack())) - { - worldObj.setBlockWithNotify(xCoord, yCoord, zCoord, Block.cobblestone.blockID); - return fill.amount; - } - else - // anything else creates waste liquid - { - int f = this.tank.fill(new LiquidStack(stored.itemID, fill.amount, stored.itemMeta), true); - int s = this.tank.getLiquid().amount; - LiquidStack stack = LiquidHandler.getStack(LiquidHandler.waste, s); - this.tank.setLiquid(stack); - return f; - } - } + @Override public LiquidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) diff --git a/src/minecraft/hydraulic/core/Hydraulics.java b/src/minecraft/hydraulic/core/Hydraulics.java index dd89868a..c28071e6 100644 --- a/src/minecraft/hydraulic/core/Hydraulics.java +++ b/src/minecraft/hydraulic/core/Hydraulics.java @@ -4,10 +4,7 @@ import java.io.File; import java.util.ArrayList; import java.util.List; -import net.minecraft.block.material.MapColor; -import net.minecraft.block.material.Material; import net.minecraftforge.common.Configuration; -import net.minecraftforge.common.ForgeVersion; import cpw.mods.fml.common.FMLLog; import cpw.mods.fml.common.Loader; diff --git a/src/minecraft/hydraulic/core/helpers/connectionHelper.java b/src/minecraft/hydraulic/core/helpers/connectionHelper.java index 5bae07af..724f0971 100644 --- a/src/minecraft/hydraulic/core/helpers/connectionHelper.java +++ b/src/minecraft/hydraulic/core/helpers/connectionHelper.java @@ -1,9 +1,9 @@ package hydraulic.core.helpers; -import universalelectricity.core.vector.Vector3; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.ForgeDirection; +import universalelectricity.core.vector.Vector3; public class connectionHelper { diff --git a/src/minecraft/hydraulic/core/implement/ColorCode.java b/src/minecraft/hydraulic/core/implement/ColorCode.java index 4bb44ba4..448c5f5d 100644 --- a/src/minecraft/hydraulic/core/implement/ColorCode.java +++ b/src/minecraft/hydraulic/core/implement/ColorCode.java @@ -1,11 +1,12 @@ package hydraulic.core.implement; +import hydraulic.core.liquids.LiquidData; +import hydraulic.core.liquids.LiquidHandler; + import java.util.ArrayList; import java.util.List; import net.minecraftforge.liquids.LiquidStack; -import hydraulic.core.liquids.LiquidData; -import hydraulic.core.liquids.LiquidHandler; public enum ColorCode { diff --git a/src/minecraft/hydraulic/core/implement/IFluidPipe.java b/src/minecraft/hydraulic/core/implement/IFluidPipe.java index c95310c7..11b03f1e 100644 --- a/src/minecraft/hydraulic/core/implement/IFluidPipe.java +++ b/src/minecraft/hydraulic/core/implement/IFluidPipe.java @@ -4,7 +4,6 @@ import hydraulic.core.liquids.HydraulicNetwork; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.liquids.LiquidStack; -import universalelectricity.core.electricity.ElectricityNetwork; /** * Must be applied to all tile entities that are conductors. diff --git a/src/minecraft/hydraulic/core/liquids/HydraulicNetwork.java b/src/minecraft/hydraulic/core/liquids/HydraulicNetwork.java index 70b35866..a9ad59b4 100644 --- a/src/minecraft/hydraulic/core/liquids/HydraulicNetwork.java +++ b/src/minecraft/hydraulic/core/liquids/HydraulicNetwork.java @@ -5,10 +5,8 @@ import hydraulic.core.implement.ColorCode; import hydraulic.core.implement.IFluidPipe; import hydraulic.core.implement.IPsiCreator; import hydraulic.core.implement.IPsiMachine; -import hydraulic.core.implement.IPsiReciever; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; import net.minecraft.tileentity.TileEntity; diff --git a/src/minecraft/hydraulic/core/liquids/HydraulicNetworkManager.java b/src/minecraft/hydraulic/core/liquids/HydraulicNetworkManager.java index 9f030494..306fe59c 100644 --- a/src/minecraft/hydraulic/core/liquids/HydraulicNetworkManager.java +++ b/src/minecraft/hydraulic/core/liquids/HydraulicNetworkManager.java @@ -6,7 +6,6 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; - import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.ForgeDirection; import universalelectricity.core.vector.Vector3; diff --git a/src/minecraft/hydraulic/prefab/BlockFluidPipe.java b/src/minecraft/hydraulic/prefab/BlockFluidPipe.java deleted file mode 100644 index 6f1e1d05..00000000 --- a/src/minecraft/hydraulic/prefab/BlockFluidPipe.java +++ /dev/null @@ -1,54 +0,0 @@ -package hydraulic.prefab; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; -import universalelectricity.core.implement.IConductor; - -public abstract class BlockFluidPipe extends BlockContainer -{ - public BlockFluidPipe(int id, Material material) - { - super(id, material); - } - - /** - * Called whenever the block is added into the world. Args: world, x, y, z - */ - @Override - public void onBlockAdded(World world, int x, int y, int z) - { - super.onBlockAdded(world, x, y, z); - - TileEntity tileEntity = world.getBlockTileEntity(x, y, z); - - if (tileEntity != null) - { - if (tileEntity instanceof IConductor) - { - ((IConductor) tileEntity).refreshConnectedBlocks(); - world.markBlockForUpdate(x, y, z); - } - } - } - - /** - * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed - * (coordinates passed are their own) Args: x, y, z, neighbor blockID - */ - @Override - public void onNeighborBlockChange(World world, int x, int y, int z, int blockID) - { - TileEntity tileEntity = world.getBlockTileEntity(x, y, z); - - if (tileEntity != null) - { - if (tileEntity instanceof IConductor) - { - ((IConductor) tileEntity).refreshConnectedBlocks(); - world.markBlockForUpdate(x, y, z); - } - } - } -} diff --git a/src/minecraft/hydraulic/prefab/LiquidFiniteFlowing.java b/src/minecraft/hydraulic/prefab/LiquidFiniteFlowing.java deleted file mode 100644 index 93dd5594..00000000 --- a/src/minecraft/hydraulic/prefab/LiquidFiniteFlowing.java +++ /dev/null @@ -1,244 +0,0 @@ -package hydraulic.prefab; - -import java.util.Random; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockFlowing; -import net.minecraft.block.material.Material; -import net.minecraft.world.World; -import net.minecraftforge.liquids.ILiquid; - - -public class LiquidFiniteFlowing extends BlockFlowing implements ILiquid { - - int numAdjacentSources = 0; - int[] flowCost = new int[4]; - boolean[] isOptimalFlowDirection = new boolean[4]; - - public LiquidFiniteFlowing(int blockId) - { - super(blockId, Material.water); - this.disableStats(); - this.setHardness(100); - this.setTextureFile(""); - } - - private void updateFlow(World world, int i, int j, int k) { - world.markBlockRangeForRenderUpdate(i, j, k, i, j, k); - world.markBlockForUpdate(i, j, k); - } - - @Override - public void updateTick(World world, int i, int j, int k, Random random) { - int l = getFlowDecay(world, i, j, k); - byte byte0 = 1; - boolean flag = true; - if (l > 0) { - int i1 = -100; - numAdjacentSources = 0; - i1 = getSmallestFlowDecay(world, i - 1, j, k, i1); - i1 = getSmallestFlowDecay(world, i + 1, j, k, i1); - i1 = getSmallestFlowDecay(world, i, j, k - 1, i1); - i1 = getSmallestFlowDecay(world, i, j, k + 1, i1); - int j1 = i1 + byte0; - if (j1 >= 8 || i1 < 0) { - j1 = -1; - } - if (getFlowDecay(world, i, j + 1, k) >= 0) { - int l1 = getFlowDecay(world, i, j + 1, k); - if (l1 >= 8) { - j1 = l1; - } else { - j1 = l1 + 8; - } - } - if (j1 != l) { - l = j1; - if (l < 0) { - world.setBlockWithNotify(i, j, k, 0); - } else { - world.setBlockMetadataWithNotify(i, j, k, l); - world.scheduleBlockUpdate(i, j, k, blockID, tickRate()); - world.notifyBlocksOfNeighborChange(i, j, k, blockID); - } - } else if (flag) { - updateFlow(world, i, j, k); - } - } else { - updateFlow(world, i, j, k); - } - if (liquidCanDisplaceBlock(world, i, j - 1, k)) { - if (l >= 8) { - world.setBlockAndMetadataWithNotify(i, j - 1, k, blockID, l); - } else { - world.setBlockAndMetadataWithNotify(i, j - 1, k, blockID, l + 8); - } - } else if (l >= 0 && (l == 0 || blockBlocksFlow(world, i, j - 1, k))) { - boolean aflag[] = getOptimalFlowDirections(world, i, j, k); - int k1 = l + byte0; - if (l >= 8) { - k1 = 1; - } - if (k1 >= 8) - return; - if (aflag[0]) { - flowIntoBlock(world, i - 1, j, k, k1); - } - if (aflag[1]) { - flowIntoBlock(world, i + 1, j, k, k1); - } - if (aflag[2]) { - flowIntoBlock(world, i, j, k - 1, k1); - } - if (aflag[3]) { - flowIntoBlock(world, i, j, k + 1, k1); - } - } - } - - private void flowIntoBlock(World world, int i, int j, int k, int l) { - if (liquidCanDisplaceBlock(world, i, j, k)) { - int i1 = world.getBlockId(i, j, k); - if (i1 > 0) { - Block.blocksList[i1].dropBlockAsItem(world, i, j, k, world.getBlockMetadata(i, j, k), 0); - } - world.setBlockAndMetadataWithNotify(i, j, k, blockID, l); - } - } - - 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 world, int i, int j, int k) { - int l = world.getBlockId(i, j, k); - if (l == Block.doorWood.blockID || l == Block.doorSteel.blockID || l == Block.signPost.blockID || l == Block.ladder.blockID || l == Block.reed.blockID) - return true; - if (l == 0) - return false; - Material material = Block.blocksList[l].blockMaterial; - return material.isSolid(); - } - - protected int getSmallestFlowDecay(World world, int i, int j, int k, int l) { - int i1 = getFlowDecay(world, i, j, k); - if (i1 < 0) - return l; - if (i1 >= 8) { - i1 = 0; - } - return l >= 0 && i1 >= l ? l : 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 void onBlockAdded(World world, int i, int j, int k) { - super.onBlockAdded(world, i, j, k); - if (world.getBlockId(i, j, k) == blockID) { - world.scheduleBlockUpdate(i, j, k, blockID, tickRate()); - } - } - - @Override - public int stillLiquidId() { - return this.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; - } -} diff --git a/src/minecraft/hydraulic/prefab/LiquidFiniteStill.java b/src/minecraft/hydraulic/prefab/LiquidFiniteStill.java deleted file mode 100644 index 1dad0727..00000000 --- a/src/minecraft/hydraulic/prefab/LiquidFiniteStill.java +++ /dev/null @@ -1,56 +0,0 @@ -package hydraulic.prefab; - -import net.minecraft.block.BlockStationary; -import net.minecraft.block.material.Material; -import net.minecraft.world.World; -import net.minecraftforge.liquids.ILiquid; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class LiquidFiniteStill extends BlockStationary implements ILiquid -{ - - public LiquidFiniteStill(int blockId) - { - super(blockId, Material.water); - this.setHardness(100); - this.disableStats(); - this.setTextureFile(""); - } - - @SideOnly(Side.CLIENT) - public int getBlockColor() - { - return 0xFFFFFF; - } - - @Override - public int tickRate() - { - return 20; - } - - @Override - public int stillLiquidId() - { - return this.blockID; - } - - @Override - public boolean isMetaSensitive() - { - return false; - } - - @Override - public int stillLiquidMeta() - { - return 0; - } - - @Override - public boolean isBlockReplaceable(World world, int x, int y, int z) - { - return true; - } -} diff --git a/src/minecraft/hydraulic/prefab/TileEntityFluidConveyor.java b/src/minecraft/hydraulic/prefab/TileEntityFluidConveyor.java deleted file mode 100644 index a7f63dee..00000000 --- a/src/minecraft/hydraulic/prefab/TileEntityFluidConveyor.java +++ /dev/null @@ -1,234 +0,0 @@ -package hydraulic.prefab; - -import hydraulic.core.implement.IColorCoded; -import hydraulic.core.implement.IFluidPipe; -import hydraulic.core.implement.IPsiCreator; -import hydraulic.core.implement.IPsiMachine; -import hydraulic.core.liquids.HydraulicNetworkManager; -import hydraulic.core.liquids.HydraulicNetwork; -import hydraulic.core.liquids.LiquidData; -import hydraulic.core.liquids.LiquidHandler; -import net.minecraft.network.packet.Packet; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraftforge.common.ForgeDirection; -import net.minecraftforge.liquids.ITankContainer; - -import org.bouncycastle.util.Arrays; - -import universalelectricity.core.vector.Vector3; -import universalelectricity.prefab.network.IPacketReceiver; -import universalelectricity.prefab.network.PacketManager; -import universalelectricity.prefab.tile.TileEntityAdvanced; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -/** - * A Pre-made TileEntity for creating new pipe like TileEntities - * - * @author Calclavia,DarkGuardsman - * - */ -public abstract class TileEntityFluidConveyor extends TileEntityAdvanced implements IFluidPipe, IPacketReceiver -{ - private HydraulicNetwork network; - - /** - * Used client side to render. - */ - public boolean[] visuallyConnected = { false, false, false, false, false, false }; - - /** - * Stores information on the blocks that this conductor is connected to. - */ - public TileEntity[] connectedBlocks = { null, null, null, null, null, null }; - - protected String channel = ""; - - protected LiquidData liquidData = LiquidHandler.unkown; - - public TileEntityFluidConveyor() - { - this.reset(); - } - - @Override - public HydraulicNetwork getNetwork() - { - return this.network; - } - - @Override - public void setNetwork(HydraulicNetwork network) - { - this.network = network; - } - - @Override - public TileEntity[] getConnectedBlocks() - { - return this.connectedBlocks; - } - - @Override - public void updateConnection(TileEntity tileEntity, ForgeDirection side) - { - if (!this.worldObj.isRemote) - { - if (tileEntity != null) - { - if (this.canConnect(tileEntity, side.getOpposite())) - { - this.connectedBlocks[side.ordinal()] = tileEntity; - this.visuallyConnected[side.ordinal()] = true; - - if (tileEntity.getClass() == this.getClass()) - { - HydraulicNetworkManager.instance.mergeConnection(this.getNetwork(), ((IFluidPipe) tileEntity).getNetwork()); - } - - return; - } - } - - if (this.connectedBlocks[side.ordinal()] != null) - { - if (this.connectedBlocks[side.ordinal()] instanceof IFluidPipe) - { - HydraulicNetworkManager.instance.splitConnection(this, (IFluidPipe) this.getConnectedBlocks()[side.ordinal()]); - } - } - - this.connectedBlocks[side.ordinal()] = null; - this.visuallyConnected[side.ordinal()] = false; - } - } - - /** - * checks to see if this pipe can connect to the tileEntity - */ - public boolean canConnect(TileEntity tileEntity, ForgeDirection opposite) - { - if (tileEntity instanceof IPsiMachine && ((IPsiMachine) tileEntity).getMaxPressure(opposite) <= this.getMaxPressure(opposite)) - { - return true; - } - else if (tileEntity instanceof IPsiCreator && ((IPsiCreator) tileEntity).getCanPressureTo(getLiquidData(), opposite)) - { - return true; - } - else if (tileEntity instanceof ITankContainer) - { - ITankContainer tank = (ITankContainer) tileEntity; - return tank.getTank(opposite, getLiquidData().getStack()) != null || getLiquidData() == LiquidHandler.unkown; - } - else if (tileEntity instanceof IFluidPipe) - { - return true; - } - - return false; - } - - /** - * gets the sample stack to use for pipe connection checks - * - * @return - */ - public LiquidData getLiquidData() - { - return LiquidHandler.unkown; - } - - @Override - public void updateConnectionWithoutSplit(TileEntity tileEntity, ForgeDirection side) - { - if (!this.worldObj.isRemote) - { - if (tileEntity != null) - { - if (this.canConnect(tileEntity, side.getOpposite())) - { - this.connectedBlocks[side.ordinal()] = tileEntity; - this.visuallyConnected[side.ordinal()] = true; - - if (tileEntity.getClass() == this.getClass()) - { - HydraulicNetworkManager.instance.mergeConnection(this.getNetwork(), ((IFluidPipe) tileEntity).getNetwork()); - } - - return; - } - } - - this.connectedBlocks[side.ordinal()] = null; - this.visuallyConnected[side.ordinal()] = false; - } - } - - @Override - public void initiate() - { - this.refreshConnectedBlocks(); - } - - @Override - public void updateEntity() - { - super.updateEntity(); - - if (this.ticks % 300 == 0) - { - this.refreshConnectedBlocks(); - } - } - - @Override - public void reset() - { - this.network = null; - - if (HydraulicNetworkManager.instance != null) - { - HydraulicNetworkManager.instance.registerConductor(this); - } - } - - @Override - public void refreshConnectedBlocks() - { - if (this.worldObj != null) - { - if (!this.worldObj.isRemote) - { - boolean[] previousConnections = this.visuallyConnected.clone(); - - for (byte i = 0; i < 6; i++) - { - this.updateConnection(Vector3.getConnectorFromSide(this.worldObj, new Vector3(this), ForgeDirection.getOrientation(i)), ForgeDirection.getOrientation(i)); - } - - /** - * Only send packet updates if visuallyConnected changed. - */ - if (!Arrays.areEqual(previousConnections, this.visuallyConnected)) - { - this.worldObj.markBlockForUpdate(this.xCoord, this.yCoord, this.zCoord); - } - } - - } - } - - @Override - public Packet getDescriptionPacket() - { - return PacketManager.getPacket(this.channel, this, this.visuallyConnected[0], this.visuallyConnected[1], this.visuallyConnected[2], this.visuallyConnected[3], this.visuallyConnected[4], this.visuallyConnected[5]); - } - - @SideOnly(Side.CLIENT) - public AxisAlignedBB getRenderBoundingBox() - { - return INFINITE_EXTENT_AABB; - } -} diff --git a/src/mods/basiccomponents/languages/de_DE.properties b/src/mods/basiccomponents/languages/de_DE.properties new file mode 100644 index 00000000..beb16d30 --- /dev/null +++ b/src/mods/basiccomponents/languages/de_DE.properties @@ -0,0 +1,36 @@ +# Basic Components Language Properties +# @author Calclavia +# @translator TheVanoq + +# Blocks +tile.bcOre.0.name=Kupfererz +tile.bcOre.1.name=Zinnerz +tile.oilMoving.name=Öl +tile.oilStill.name=Öl +tile.copperWire.name=Kupferkabel +tile.bcMachine.0.name=Kohle Generator +tile.bcMachine.1.name=Batteriekasten +tile.bcMachine.2.name=Elektro-Ofen + +# Items +item.battery.name=Batterie +item.circuit.name=Schaltkreis +item.circuit.0.name=Einfacher Schaltkreis +item.circuit.1.name=Erweiterter Schaltkreis +item.circuit.2.name=Elite Schaltkreis +item.bucketOil.name=Eimer mit Öl +item.wrench.name=Schraubenschlüssel +item.motor.name=Motor + +item.plateCopper.name=Kupferplatte +item.plateTin.name=Zinnplatte +item.plateBronze.name=Bronzeplatte +item.plateSteel.name=Stahlplatte + +item.ingotCopper.name=Kupferbarren +item.ingotTin.name=Zinnbarren +item.ingotBronze.name=Bronzebarren +item.ingotSteel.name=Stahlbarren + +item.dustBronze.name=Bronzestaub +item.dustSteel.name=Stahlstaub diff --git a/src/mods/basiccomponents/languages/en_US.properties b/src/mods/basiccomponents/languages/en_US.properties new file mode 100644 index 00000000..aaaac879 --- /dev/null +++ b/src/mods/basiccomponents/languages/en_US.properties @@ -0,0 +1,36 @@ +# Basic Components Language Properties +# @author Calclavia + +itemGroup.BasicComponents=Basic Components + +# Blocks +tile.bcOre.0.name=Copper Ore +tile.bcOre.1.name=Tin Ore +tile.copperWire.name=Copper Wire +tile.bcMachine.0.name=Coal Generator +tile.bcMachine.1.name=Battery Box +tile.bcMachine.2.name=Electric Furnace + +# Items +item.battery.name=Battery +item.infiniteBattery.name=Infinite Battery +item.circuitBasic.name=Basic Circuit +item.circuitAdvanced.name=Advanced Circuit +item.circuitElite.name=Elite Circuit +item.wrench.name=Wrench +item.motor.name=Motor + +item.plateCopper.name=Copper Plate +item.plateTin.name=Tin Plate +item.plateBronze.name=Bronze Plate +item.plateSteel.name=Steel Plate +item.plateIron.name=Iron Plate +item.plateGold.name=Gold Plate + +item.ingotCopper.name=Copper Ingot +item.ingotTin.name=Tin Ingot +item.ingotBronze.name=Bronze Ingot +item.ingotSteel.name=Steel Ingot + +item.dustBronze.name=Bronze Dust +item.dustSteel.name=Steel Dust \ No newline at end of file diff --git a/src/mods/basiccomponents/languages/es_ES.properties b/src/mods/basiccomponents/languages/es_ES.properties new file mode 100644 index 00000000..b1914f88 --- /dev/null +++ b/src/mods/basiccomponents/languages/es_ES.properties @@ -0,0 +1,37 @@ +# Basic Components Language Properties +# @author francogp + +children=es_AR,es_MX,es_UY,es_VE + +# Blocks +tile.bcOre.0.name=Mineral de Cobre +tile.bcOre.1.name=Mineral de Esta\u00F1o +tile.oilMoving.name=Petr\u00F3leo +tile.oilStill.name=Petr\u00F3leo +tile.copperWire.name=Cable de Cobre +tile.bcMachine.0.name=Generador a Carb\u00F3n +tile.bcMachine.1.name=Caja de Bater\u00EDa +tile.bcMachine.2.name=Horno El\u00E9ctrico + +# Items +item.battery.name=Bater\u00EDa +item.circuit.name=Circuito +item.circuit.0.name=Circuito B\u00E1sico +item.circuit.1.name=Circuito Avanzado +item.circuit.2.name=Circuito \u00E9lite +item.bucketOil.name=Balde de Petr\u00F3leo +item.wrench.name=Llave Inglesa +item.motor.name=Motor + +item.plateCopper.name=Placa de Cobre +item.plateTin.name=Placa de Esta\u00F1o +item.plateBronze.name=Placa de Bronce +item.plateSteel.name=Placa de Acero + +item.ingotCopper.name=Lingote de Cobre +item.ingotTin.name=Lingote de Esta\u00F1o +item.ingotBronze.name=Lingote de Bronce +item.ingotSteel.name=Lingote de Acero + +item.dustBronze.name=Polvo de Bronce +item.dustSteel.name=Polvo de Acero \ No newline at end of file diff --git a/src/mods/basiccomponents/languages/it_IT.properties b/src/mods/basiccomponents/languages/it_IT.properties new file mode 100644 index 00000000..b4b8e77a --- /dev/null +++ b/src/mods/basiccomponents/languages/it_IT.properties @@ -0,0 +1,35 @@ +# Basic Components Language Properties +# @author Calclavia + +# Blocks +tile.bcOre.0.name=Minerale Di Rame +tile.bcOre.1.name=Minerale Di Stagno +tile.oilMoving.name=Petrolio +tile.oilStill.name=Petrolio +tile.copperWire.name=Cavo Di Rame +tile.bcMachine.0.name=Generatore A Carbone +tile.bcMachine.1.name=Scatola Batteria +tile.bcMachine.2.name=Fornace Elettrica + +# Items +item.battery.name=Batteria +item.circuit.name=Circuito +item.circuit.0.name=Circuito Base +item.circuit.1.name=Circuito Avanzato +item.circuit.2.name=Circuito Elite +item.bucketOil.name=Secchio Di Petrolio +item.wrench.name=Chiave Inglese +item.motor.name=Motore + +item.plateCopper.name=Piastra Di Rame +item.plateTin.name=Piastra Di Stagno +item.plateBronze.name=Piastra Di Bronzo +item.plateSteel.name=Piastra D'Acciaio + +item.ingotCopper.name=Lingotto Di Rame +item.ingotTin.name=Lingotto Di Stagno +item.ingotBronze.name=Lingotto Di Bronzo +item.ingotSteel.name=Lingotto D'Acciaio + +item.dustBronze.name=Polvere Di Bronzo +item.dustSteel.name=Polvere D'Acciaio \ No newline at end of file diff --git a/src/mods/basiccomponents/languages/nl_NL.properties b/src/mods/basiccomponents/languages/nl_NL.properties new file mode 100644 index 00000000..3577a189 --- /dev/null +++ b/src/mods/basiccomponents/languages/nl_NL.properties @@ -0,0 +1,35 @@ +# Basic Components Language Properties +# @author Kees Nijenhuis + +# Blocks +tile.bcOre.0.name=Koper Erts +tile.bcOre.1.name=Tin Erts +tile.oilMoving.name=Olie +tile.oilStill.name=Olie +tile.copperWire.name=Koper Draad +tile.bcMachine.0.name=Kool Generator +tile.bcMachine.1.name=Batterijen Doos +tile.bcMachine.2.name=Elektrische Oven + +# Items +item.battery.name=Batterij +item.circuit.name=Stroomkring +item.circuit.0.name=Basis Stroomkring +item.circuit.1.name=Geavanceerde Stroomkring +item.circuit.2.name=Elite Stroomkring +item.bucketOil.name=Emmer Olie +item.wrench.name=Moersleutel +item.motor.name=Moter + +item.plateCopper.name=Koperen Plaat +item.plateTin.name=Tinnen Plaat +item.plateBronze.name=Bronzen Plaat +item.plateSteel.name=Stalen Plaat + +item.ingotCopper.name=Koper Staaf +item.ingotTin.name=Tin Staaf +item.ingotBronze.name=Brons Staaf +item.ingotSteel.name=Staal Staaf + +item.dustBronze.name=Brons Poeder +item.dustSteel.name=Staal Poede diff --git a/src/mods/basiccomponents/languages/pl_PL.properties b/src/mods/basiccomponents/languages/pl_PL.properties new file mode 100644 index 00000000..d421639d --- /dev/null +++ b/src/mods/basiccomponents/languages/pl_PL.properties @@ -0,0 +1,35 @@ +# Basic Components Language Properties +# @author unekpl + +# Bloki +tile.bcOre.0.name=Ruda miedzi +tile.bcOre.1.name=Ruda cyny +tile.oilMoving.name=Ropa naftowa +tile.oilStill.name=Ropa naftowa +tile.copperWire.name=Miedziany kabel +tile.bcMachine.0.name=Generator cieplny +tile.bcMachine.1.name=Akumulator +tile.bcMachine.2.name=Piec elektryczny + +# Przedmioty +item.battery.name=Ogniwo +item.circuit.name=Obw\u00F3d elektroniczny +item.circuit.0.name=Prosty obw\u00F3d elektroniczny +item.circuit.1.name=Zaawansowany obw\u00F3d elektroniczny +item.circuit.2.name=Skomplikowany obw\u00F3d elektroniczny +item.bucketOil.name=Wiadro ropy +item.wrench.name=Klucz +item.motor.name=Silnik + +item.plateCopper.name=Miedziana p\u0142ytka +item.plateTin.name=Cynowa p\u0142ytka +item.plateBronze.name=Br\u0105zowa p\u0142ytka +item.plateSteel.name=Stalowa p\u0142ytka + +item.ingotCopper.name=Sztabka miedzi +item.ingotTin.name=Sztabka cyny +item.ingotBronze.name=Sztabka br\u0105zu +item.ingotSteel.name=Sztabka stali + +item.dustBronze.name=Py\u0142 br\u0105zu +item.dustSteel.name=Py\u0142 stali \ No newline at end of file diff --git a/src/mods/basiccomponents/languages/zh_CN.properties b/src/mods/basiccomponents/languages/zh_CN.properties new file mode 100644 index 00000000..dd9b0d35 --- /dev/null +++ b/src/mods/basiccomponents/languages/zh_CN.properties @@ -0,0 +1,37 @@ +#Basic Components Language Properties +#@author Calclavia + +children=zh_TW + +# Blocks +tile.bcOre.0.name=\u94dc\u77ff\u77f3 +tile.bcOre.1.name=\u9521\u77ff\u77f3 +tile.oilMoving.name=\u77f3\u6cb9 +tile.oilStill.name=\u77f3\u6cb9 +tile.copperWire.name=\u94dc\u7ebf +tile.bcMachine.0.name=\u71c3\u7164\u53d1\u7535\u673a +tile.bcMachine.1.name=\u7535\u6c60\u76d2 +tile.bcMachine.2.name=\u7535\u529b\u7194\u7089 + +# Items +item.battery.name=\u7535\u6c60 +item.circuit.name=\u7535\u5b50\u677f +item.circuit.0.name=\u7535\u5b50\u677f (\u4e00\u7ea7) +item.circuit.1.name=\u7535\u5b50\u677f (\u4e8c\u7ea7) +item.circuit.2.name=\u7535\u5b50\u677f (\u4e09\u7ea7) +item.bucketOil.name=\u77f3\u6cb9\u6876 +item.wrench.name=\u6273\u624b +item.motor.name=\u9a6c\u8fbe + +item.plateCopper.name=\u94dc\u677f +item.plateTin.name=\u9521\u677f +item.plateBronze.name=\u9752\u94dc\u677f +item.plateSteel.name=\u94a2\u677f + +item.ingotCopper.name=\u94dc\u952d +item.ingotTin.name=\u9521\u952d +item.ingotBronze.name=\u9752\u94dc\u952d +item.ingotSteel.name=\u94a2\u952d + +item.dustBronze.name=\u9752\u94dc\u7c89 +item.dustSteel.name=\u94a2\u7c89 diff --git a/src/mods/basiccomponents/textures/blocks/batteryBox.png b/src/mods/basiccomponents/textures/blocks/batteryBox.png new file mode 100644 index 0000000000000000000000000000000000000000..5795f1c03a4c9de5a8a49f460f42a0c1a43c1855 GIT binary patch literal 4591 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 literal 0 HcmV?d00001 diff --git a/src/mods/basiccomponents/textures/blocks/machine.png b/src/mods/basiccomponents/textures/blocks/machine.png new file mode 100644 index 0000000000000000000000000000000000000000..28e43c0fd00e1db7ed03a3e2fcc17a3de80dbd43 GIT binary patch literal 4557 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 literal 0 HcmV?d00001 diff --git a/src/mods/basiccomponents/textures/blocks/machine_input.png b/src/mods/basiccomponents/textures/blocks/machine_input.png new file mode 100644 index 0000000000000000000000000000000000000000..df5fde3c953556aa452826d354b47d1e4896ef11 GIT binary patch literal 4623 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 FV1oatwVwb0 literal 0 HcmV?d00001 diff --git a/src/mods/basiccomponents/textures/blocks/machine_output.png b/src/mods/basiccomponents/textures/blocks/machine_output.png new file mode 100644 index 0000000000000000000000000000000000000000..76348943432cb238e895bcb0b701d9a59748c57e GIT binary patch literal 4585 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 literal 0 HcmV?d00001 diff --git a/src/mods/basiccomponents/textures/blocks/oreCopper.png b/src/mods/basiccomponents/textures/blocks/oreCopper.png new file mode 100644 index 0000000000000000000000000000000000000000..94736cb645e4dfc15cd18037f511a395dea7933d GIT binary patch literal 3402 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 literal 0 HcmV?d00001 diff --git a/src/mods/basiccomponents/textures/blocks/oreTin.png b/src/mods/basiccomponents/textures/blocks/oreTin.png new file mode 100644 index 0000000000000000000000000000000000000000..914647c782c0c26b3254cb3c08bb218ecc4a2f36 GIT binary patch literal 3332 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 aAOm%08K!bioNB=N(Ya};QLXOy=)VA1;FZ+? literal 0 HcmV?d00001 diff --git a/src/mods/basiccomponents/textures/gui/coal_generator.png b/src/mods/basiccomponents/textures/gui/coal_generator.png new file mode 100644 index 0000000000000000000000000000000000000000..aaa65afb33361c3e40eb0932b0913b76a0abe0e3 GIT binary patch literal 3956 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 E7neq(asU7T literal 0 HcmV?d00001 diff --git a/src/mods/basiccomponents/textures/gui/electric_furnace.png b/src/mods/basiccomponents/textures/gui/electric_furnace.png new file mode 100644 index 0000000000000000000000000000000000000000..3563c6b0ef78df2da726a8534160ab6f8e448944 GIT binary patch literal 3979 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 LSfXkWuDAXJO8c@5 literal 0 HcmV?d00001 diff --git a/src/mods/basiccomponents/textures/items/battery.png b/src/mods/basiccomponents/textures/items/battery.png new file mode 100644 index 0000000000000000000000000000000000000000..60fcdb6291fd42058ad92d01a68eb3dd57756bc3 GIT binary patch literal 3754 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 UYu1CNzW@LL07*qoM6N<$f=c%J<^TWy literal 0 HcmV?d00001 diff --git a/src/mods/basiccomponents/textures/items/circuitAdvanced.png b/src/mods/basiccomponents/textures/items/circuitAdvanced.png new file mode 100644 index 0000000000000000000000000000000000000000..1402e4f32195549eddf552ab0697ce9ba68f86db GIT binary patch literal 3655 zcmV-N4!H4&P)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000AWNkltx4daq-1HgI~eFF%_7B7T6j45x;&RG zcgo^ciqD~Rl5R?!@nRlR*eUGMUuRi^bxQE5C$*0-l+fA)C$e>i&KH{Ps;BmEz9LH zuMLB(tu1=J9zqBV!_eTHj>Ek-Z}|Pi3rhJs2k+itnkE2+Lg7*;E_EQ4N=bl9r2;^` zUdQ)+mYYpBaybA^L7C&G1IN~Kany|Vtt?k-YFR@!Y=+HE#+IUPjH zvWC=$kL=}_FX!bJi(TCZQmK?&SXhXt__V#PYulQei)@a^<2rm7lmD#I0AM4RBNmHk z^(u@2p689Og8BLRi271K&!gjGDxP<)dTx$*Jg&RmrsMGM*RNDO5BJ_oA1*H9`#!y14=E*5%8|fVHX_@$WuZ`@ z)9KLf_jRLrbbPFT69#^~v;@G@y}cpz?Llb6z+=qXxlm3&Su* z0*^h6!X!GK4ksT!YG4(%zn?tOjpzI7Dr;+NV_!0^wKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000ATNklY}j6o#KW*S1vRICea-jgY!PNL2+^WQD4j1sjwdQbG_?g(C4E zP$hQ!0m=_(7p$xZ2|+2XDoVsAi#lBf7T#2C7KD0Sf8iLC)H8EfjA!hLUBzyYvdP(5 z^33y|_nvd^86_f|Wf+`soC`Q}0TBSD)al=pSK(^@L)63q{tvKzcY$ckAUvvr)>_u-5>i{Zaq6%AJaIXGg_Riix2+w#xI_LM@=%tBmjr5K`f!D zZ#F#Ov8a};mlozr1?Y?xfR(Ll0Q~sq9_CJzqmFRF@XoqcZZmgv9;F~MtNh{%L{v)_ zih!_zt06oDVssqJF#8fa`cF_+V!v-iQ)l^nKZV{{!9 zFxyP=_|GS>jT&jgaT${k=nTZ!qEJ8-!B9f2-1ag&24+2n)&KntZ&NS+1qwQ;HgEAJ zkKcPDz6d2EM6wa_!CSW;P+#mJpC6%a$Aau--zBQR2I}P&i^057evibE6QQ2jy7gdiHn(H&)jnKLcvcxg^7l2l?Ma8O+T2Gx=`GfO}fxHNT z0oX>3p96U%Tu%h8*Z8RuveU`BLF)~JgKn{Gq6ZpRK-}@*lP6(biMgD{=sGwqw14i9 zSxa%)bI^06mG2KA+p){w?UwiQ@v^U-=M#J0E<9 zlXWNFhNjyG`XV0Q`E4v1z^OS?Z#GjcB>u4S<22w`-iZ85>$KpIfb$QNa{*@={|x}9 WIMs=2Ab2zY0000KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000AANkl5W&V;BU~S zHd<-pZxP7S-OjQbE0GKh^`e15O;sqB!D`c?1X&u%Gk#sz@1Yl|u@o1)@!br}yqR-EIk1pW`;LZLt^l_H%^d{W zLMWv^C;}R|R4OqVjR44IvjDiR3qZ5kyfP9C6PN@ZkH^+CDWw6|b`^=GMSwleQ?*)+ zQmI7zu!#@?Aq30I%Sb7$^N!9$b26omg)|_gRGCbMTCE1a_r32>(H`uVS$cdx zqE#V|V=MH>#XSIu$KMi$A?dX>fSH>3&lE^06+olW0HED&69fT+!2nThlW0|lq6krK zBc4CPaU6#Ce=xuRVHjG3I#2ITrDKY~yTFHshlF8B5CkUYaU4UX#nOu}0SE@G^iN|R z+><8!0G-@301~YV0B2`sbh}-;-L9A-Fw0}daf}y15DVJM z5AI3hajvs%5m!nPMUh29D5c0|vq}T|zK`p=#tZHJXf#3yfl`WKuxbIn?O$l%pWaXO zPh+YZcdYjS5{U#WD=Q3#Ln{(i75Khy=|Fow*)8?8P~6~cKQ`b1tKJvLOoII%-k&nqhhjYh+Se$soB`-e@F)8GG;6XhVAQR}r0tjA{^E}JsR0J4mOnSj*XJjJwHSeE z0-D6;=B8CXiB^TlbNYk1&Nln)R{(td)%~fcy$|^EDrWWp&+}Aq=Y;gjCzgWGA3X;k z{ql*`cpS%}lY3?wPY?t|QG`+orPNH|_jbZwuP1nVSFK%iFyl$GT_uVlxSV*iY*I7Y zW&vN>iZ45sD(;+^5Go*@PFv^RZM&0pbaX^2m6{1W_cZi8PnAj~0LJ67nRt`HI``#r z8Gzm0-MN>NxyG@cg1+yYipX`gO}VbGuLDr8*U4lub8kZn?E_kvxz4t^r#-IM>j3oo z{e?H1g%%Rsth8MR_=7hhJ+!V1Y!SHqF}WphllJcbkKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0006TNklhB_sudz78=*&NQh_4>EYq_Ph@--_QGf z-uK~7NGX|SoM6h~0eAo&z|;Z!0CI^x8BI#D5g=2aliF`PG0<%#(j|7Uzn3O zFV6$eYIj*$-C*|WT@tAjreWCP;q)2ys^tNvws`k?MYuKxTJ0`%t7GS;(d+G?_@#x# zq1p2{#6$pt;$O@Tv%r3*4KO5L+AI?f`e^+4>CPyA{-!Jd`K_@J!1~s%`2O;R!^@f6 z+>m%Y=;Q3U^Z(?+p$`0ku%l9`IPz#TDs@eBi1%C6FirPI@j=lS1Tc@d_t*fcs*32T u)AFDbe|*1o=p_{1e}MzXt&P&F)wJ!2RI>0000KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000AMNkl+6vscgNJ6G$NT56g%}}A6gNqKn1z&-5^96Kqv7=oabS{Em z@fGOq+{HeSK8`hlhtqDG9@nFbn~{1!64&^ZA@02*|Pw+qU^! z9H7x?P!xr^9*@TW*tSg+MXIVQzA_f8ZbVuGI)QE5=HA}ko&gZYF-1|}x-O360I*mr z$nzY}^SHgeCCf6hEaU3xYAuMZ8mOvD(@CD^G#U-cvNVMsA0GiYKR>4|OPbB5VQjHj zd`rL^8Sp$00N?kQI`4EkoSd8hAf=?+?b2$s0LZcofRB$4Y}>~3Jn}rJs;U(hHZmZD zP>n_dfHY021TX<%!`xx_%T*;HW|ny$kzG~&`! z15Bq=T-PjWl33jhoc#rJ(&*EQhE zvRv_zjcb_a`3jJtC~zFd%oyPQ{@%>}=H|u}a~y{t2#Dj@{8ocp=MyU;6hbJyep-lH zNP4z_Sv4K~et(ILqA1K-)^liY*eJpzNvtS})WyYx5n8|BH|wZ%(Cv1)yu1Y9{r%mz zVV%k6=V!*_u>pF0eQiK&b;7Eun9t|5+ikKeTk1?F%k!Lmzi-|jA0IERVXxOiN@<$N zvTW@-t_6@JiS_XCpziMOmS|7Y6uqLlu;+Pro@a_{!ReVxDYrV}S|iem)x}-crP*u} z$1!P|;&~oYO0)A-Rk6FfyR?>4N_xE>0E5Bc>l&!DP+uEu!#a8WI0l%_W=m&>j=^AH zoKoij6ku&+;OOW`0gOf?Yu)Z{I^jM)FKA2meSc{*v)PO|jxFOz`lXA%y}hZImlvgh z{4|6RDvBZ%MUgrKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000DgNkl?g9)JxgjB8KZJRWppovZFYGWT|;%40^7?-T+lIFjQuF=X6g<_6$6O8jTv$WA%(K7f%O!V$p8d&I5)Yinx)AoTw3y%rD(g^0)FB$G)FA3jVz zpJ#SZX6A|8(;iXxIE z@lJpjFaCTZKomv%em@?shsnuFmT%qS(f5y8UHyY+&wl0d=U2FW=Qi=dFXGUgYNf&qSb@*`KjxW;eKpY!|bDtEvAhL10O$|s*)=BKAmnFt5*OMd48 zUauFQ&&R_@D_p;MgXMd7Sb6e<%h#@P<@%Q_Eidul;RB>#fIuMNJU~$t!r?GdFu>2h zJmb5S$1LCbn(H@jaC2#irKKgLV1Ti}7_nH)d4Md-sH!?dT)KLN`z!bP>h3a9Fn|;c z5RFEO#bWrRQRe~4WRhB~Mx)W7)9G;R*fBDh3{z8696EG}OeVw8qeq#UnL(E257U8M zE=QqIpwsD~C<^1_k%%#cVV2#3SY0=!-?sZ@%5K98npoIZV;X0wT5 z7#M~@sZ>Hy6jG@a`}gnPd}KWy=Kz|fk5A%7K_Zz&LYb)>2#X8xjE+nTP@!L zR4Ntn`8-FC9O2->gQU}G(&;pnN(IZZoClbuNvqXjVPS!@XU}3;7KUMWmWhN#jNG6l0s!FL;B9%(v^ZAHGA{2{7G);3JFg-nu$KxRw3?j=i zqobn)0s$mR!tHhwjYb(CAII%>lgVV92e{pCa=9D}3kxhRE@GM{`}XZ46bezR)i6zy zdc97eP{8GKeHcKYP+)O!k#pzHVcRzGc${c7ifNjdrb(mGKvh-t?AhZyz~yq0&1N}s z<_s4uT-eqDP1Ck@z~k{a4^R|kcn>5J30y80KA#Usl5n|Pgu`L{em{Hn?j@JYIS;Tb zi~0F^ve_)jWD-SDIDY&%<#L&+sVSn-D2YUZ`T2QtU3VU!X&NU^oZ#Zci=01yo_4!U zv)LS8f73LvEQ@x#O|4dQ9xyjIhi%)~woSX;rqya;S=O+yWmzEnC{#Cq%D3wYW zhC!pzpwVbhuh)k+-`1D0TrQ*Q`n&xVzisHcPQ6~ITCJk%I@M~GN~MCPX;iCK>h=1t z_^t+%e!nlQch@%ulU`5gcDurxAX}|}weYS18ykboZNI;5JbU@_rO@qmgKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z00031Nklu1kim719SXj7#J8B z7`)Ym7#J8B7$mzd;SGtw9|FYsln}rb5`!lMsO3{qLt@}V0Os?0TL}gR1_p)<3o)t~ z9JuT*Uil5z-w%#7zyf2)3PPAOPP`&1ByjmuMTnJwfq{WRS%71RgaDzCAlIjZzBXjR zB>@YG(jAYe;!_wn`RMB)4S~n+|DgCB9gynto%cSYq;_1T@ZhTpU?n0fBo5sFf;R+U zak}90Te520!Pg!@4~e@UelRdFFfhFN^p_%^4!t%ZEF@lh`bE>0^uUL}Xy0(eI{+{M X22NQyZ8g0000000NkvXXu0mjfU{IF9 literal 0 HcmV?d00001 diff --git a/src/mods/basiccomponents/textures/items/ingotCopper.png b/src/mods/basiccomponents/textures/items/ingotCopper.png new file mode 100644 index 0000000000000000000000000000000000000000..62758ef071a4dc67fd8d1a63a4af99baa3dea9af GIT binary patch literal 3032 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 To4q(`00000NkvXXu0mjf94tMI literal 0 HcmV?d00001 diff --git a/src/mods/basiccomponents/textures/items/plateBronze.png b/src/mods/basiccomponents/textures/items/plateBronze.png new file mode 100644 index 0000000000000000000000000000000000000000..85fa709f5f3b440cd973943aa8798dc0e6ea6695 GIT binary patch literal 3726 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 literal 0 HcmV?d00001 diff --git a/src/mods/basiccomponents/textures/items/plateCopper.png b/src/mods/basiccomponents/textures/items/plateCopper.png new file mode 100644 index 0000000000000000000000000000000000000000..f036fd8bf501616f65b5e1e8ac1623b777513c21 GIT binary patch literal 3727 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 N002ovPDHLkV1g@f1El}} literal 0 HcmV?d00001 diff --git a/src/mods/basiccomponents/textures/items/plateIron.png b/src/mods/basiccomponents/textures/items/plateIron.png new file mode 100644 index 0000000000000000000000000000000000000000..f3b08a2d90c12f38502dfc2062969e062f221708 GIT binary patch literal 3630 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 A`2YX_ literal 0 HcmV?d00001 diff --git a/src/mods/basiccomponents/textures/items/plateSteel.png b/src/mods/basiccomponents/textures/items/plateSteel.png new file mode 100644 index 0000000000000000000000000000000000000000..9f65ea2b646e88922767ad6ba63fe5a1db98f699 GIT binary patch literal 3572 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 literal 0 HcmV?d00001 diff --git a/src/mods/basiccomponents/textures/items/wrench.png b/src/mods/basiccomponents/textures/items/wrench.png new file mode 100644 index 0000000000000000000000000000000000000000..ad13e8a8a1aef658ecaabebac9dc59b669ac8de7 GIT binary patch literal 3225 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 LNkvXXu0mjffk^a0 literal 0 HcmV?d00001 diff --git a/src/mods/basiccomponents/textures/models/copperWire.png b/src/mods/basiccomponents/textures/models/copperWire.png new file mode 100644 index 0000000000000000000000000000000000000000..c92754d8aef86b6595fc196afaf764fd2791eb1a GIT binary patch literal 798 zcmV+(1L6FMP)004R= z004l4008;_004mL004C`008P>0026e000+nl3&F}00009a7bBm000iZ000iZ0XPLy zBme*a8gxZibW?9;ba!ELWdKlNX>N2bPDNB8b~7$DE-^4L^m3s900MqVL_t(&L+zMr zY63A7g9m>jVH)p10tS$D>11m|v|{*9aJmMm_={gT1U~u5|(cA9`Kj z&*yV80WndKLUQsm3VF1E+mHwR>2&e}0hi0g3;o04P)Z11#q07s8UpaRjR5wrIK6!BDyhM4AX8!G^@S!gP zR4X6>se>cg#u6YBLhyJVv19=LUIYl7&3Q!tfY}@HB8f;)1fY2ioeZwdgJqs40tD8E zy!AZbu`AodrhwY2{&l|we?~wZlCn)^;2$zT4qDMEE#JY+L+NMQS1lR&667_6Zag}{afsKj8 zQd@yjnA?}PRoeoc*cKqVfItFmfH7`?F^<<|Ya>7vUJ;;NE{ekEIhP#TXwA{KeT}0V zgNj+e-of?XoGP@f*kKAN0u=f-e{bcv^>mo`b?ZwEwrraj$P8o#G6R``%s^%!Gmsg` c4BTYk3usN|`Kgy1+W-In07*qoM6N<$f~@mmjQ{`u literal 0 HcmV?d00001