diff --git a/src/main/java/com/pahimar/ee3/array/AlchemyArrayAccelerant.java b/src/main/java/com/pahimar/ee3/array/AlchemyArrayAccelerant.java new file mode 100644 index 00000000..4ca47cd6 --- /dev/null +++ b/src/main/java/com/pahimar/ee3/array/AlchemyArrayAccelerant.java @@ -0,0 +1,12 @@ +package com.pahimar.ee3.array; + +import com.pahimar.ee3.reference.Names; +import com.pahimar.ee3.reference.Textures; + +public class AlchemyArrayAccelerant extends AlchemyArrayEE +{ + public AlchemyArrayAccelerant() + { + super(Textures.AlchemyArray.ACCELERANT_ALCHEMY_ARRAY, Names.AlchemyArrays.ACCELERANT_ALCHEMY_ARRAY); + } +} diff --git a/src/main/java/com/pahimar/ee3/array/AlchemyArrayCombustion.java b/src/main/java/com/pahimar/ee3/array/AlchemyArrayCombustion.java new file mode 100644 index 00000000..4c2f1db9 --- /dev/null +++ b/src/main/java/com/pahimar/ee3/array/AlchemyArrayCombustion.java @@ -0,0 +1,12 @@ +package com.pahimar.ee3.array; + +import com.pahimar.ee3.reference.Names; +import com.pahimar.ee3.reference.Textures; + +public class AlchemyArrayCombustion extends AlchemyArrayEE +{ + public AlchemyArrayCombustion() + { + super(Textures.AlchemyArray.COMBUSTION_ALCHEMY_ARRAY, Names.AlchemyArrays.COMBUSTION_ALCHEMY_ARRAY); + } +} diff --git a/src/main/java/com/pahimar/ee3/array/AlchemyArrayConstruction.java b/src/main/java/com/pahimar/ee3/array/AlchemyArrayConstruction.java new file mode 100644 index 00000000..97f9fa31 --- /dev/null +++ b/src/main/java/com/pahimar/ee3/array/AlchemyArrayConstruction.java @@ -0,0 +1,12 @@ +package com.pahimar.ee3.array; + +import com.pahimar.ee3.reference.Names; +import com.pahimar.ee3.reference.Textures; + +public class AlchemyArrayConstruction extends AlchemyArrayEE +{ + public AlchemyArrayConstruction() + { + super(Textures.AlchemyArray.CONSTRUCTION_ALCHEMY_ARRAY, Names.AlchemyArrays.CONSTRUCTION_ALCHEMY_ARRAY); + } +} diff --git a/src/main/java/com/pahimar/ee3/array/AlchemyArrayConveyor.java b/src/main/java/com/pahimar/ee3/array/AlchemyArrayConveyor.java new file mode 100644 index 00000000..82bce56f --- /dev/null +++ b/src/main/java/com/pahimar/ee3/array/AlchemyArrayConveyor.java @@ -0,0 +1,12 @@ +package com.pahimar.ee3.array; + +import com.pahimar.ee3.reference.Names; +import com.pahimar.ee3.reference.Textures; + +public class AlchemyArrayConveyor extends AlchemyArrayEE +{ + public AlchemyArrayConveyor() + { + super(Textures.AlchemyArray.CONVEYOR_ALCHEMY_ARRAY, Names.AlchemyArrays.CONVEYOR_ALCHEMY_ARRAY); + } +} diff --git a/src/main/java/com/pahimar/ee3/array/AlchemyArrayDestruction.java b/src/main/java/com/pahimar/ee3/array/AlchemyArrayDestruction.java new file mode 100644 index 00000000..2945d629 --- /dev/null +++ b/src/main/java/com/pahimar/ee3/array/AlchemyArrayDestruction.java @@ -0,0 +1,12 @@ +package com.pahimar.ee3.array; + +import com.pahimar.ee3.reference.Names; +import com.pahimar.ee3.reference.Textures; + +public class AlchemyArrayDestruction extends AlchemyArrayEE +{ + public AlchemyArrayDestruction() + { + super(Textures.AlchemyArray.DESTRUCTION_ALCHEMY_ARRAY, Names.AlchemyArrays.DESTRUCTION_ALCHEMY_ARRAY); + } +} diff --git a/src/main/java/com/pahimar/ee3/array/AlchemyArrayEE.java b/src/main/java/com/pahimar/ee3/array/AlchemyArrayEE.java index cd55efd1..7ea8a597 100644 --- a/src/main/java/com/pahimar/ee3/array/AlchemyArrayEE.java +++ b/src/main/java/com/pahimar/ee3/array/AlchemyArrayEE.java @@ -3,7 +3,7 @@ package com.pahimar.ee3.array; import com.pahimar.ee3.api.array.AlchemyArray; import net.minecraft.util.ResourceLocation; -public class AlchemyArrayEE extends AlchemyArray +public abstract class AlchemyArrayEE extends AlchemyArray { public AlchemyArrayEE(ResourceLocation texture, String unlocalizedName) { diff --git a/src/main/java/com/pahimar/ee3/array/AlchemyArrayGelid.java b/src/main/java/com/pahimar/ee3/array/AlchemyArrayGelid.java new file mode 100644 index 00000000..83a4d154 --- /dev/null +++ b/src/main/java/com/pahimar/ee3/array/AlchemyArrayGelid.java @@ -0,0 +1,12 @@ +package com.pahimar.ee3.array; + +import com.pahimar.ee3.reference.Names; +import com.pahimar.ee3.reference.Textures; + +public class AlchemyArrayGelid extends AlchemyArrayEE +{ + public AlchemyArrayGelid() + { + super(Textures.AlchemyArray.GELID_ALCHEMY_ARRAY, Names.AlchemyArrays.GELID_ALCHEMY_ARRAY); + } +} diff --git a/src/main/java/com/pahimar/ee3/array/AlchemyArrayParthenogenesis.java b/src/main/java/com/pahimar/ee3/array/AlchemyArrayParthenogenesis.java new file mode 100644 index 00000000..5a84d3a8 --- /dev/null +++ b/src/main/java/com/pahimar/ee3/array/AlchemyArrayParthenogenesis.java @@ -0,0 +1,12 @@ +package com.pahimar.ee3.array; + +import com.pahimar.ee3.reference.Names; +import com.pahimar.ee3.reference.Textures; + +public class AlchemyArrayParthenogenesis extends AlchemyArrayEE +{ + public AlchemyArrayParthenogenesis() + { + super(Textures.AlchemyArray.PARTHENOGENESIS_ALCHEMY_ARRAY, Names.AlchemyArrays.PARTHENOGENESIS_ALCHEMY_ARRAY); + } +} diff --git a/src/main/java/com/pahimar/ee3/array/AlchemyArrayTransfiguration.java b/src/main/java/com/pahimar/ee3/array/AlchemyArrayTransfiguration.java new file mode 100644 index 00000000..15f4514f --- /dev/null +++ b/src/main/java/com/pahimar/ee3/array/AlchemyArrayTransfiguration.java @@ -0,0 +1,12 @@ +package com.pahimar.ee3.array; + +import com.pahimar.ee3.reference.Names; +import com.pahimar.ee3.reference.Textures; + +public class AlchemyArrayTransfiguration extends AlchemyArrayEE +{ + public AlchemyArrayTransfiguration() + { + super(Textures.AlchemyArray.TRANSFIGURATION_ALCHEMY_ARRAY, Names.AlchemyArrays.TRANSFIGURATION_ALCHEMY_ARRAY); + } +} diff --git a/src/main/java/com/pahimar/ee3/array/TransmutationAlchemyArray.java b/src/main/java/com/pahimar/ee3/array/AlchemyArrayTransmutation.java similarity index 98% rename from src/main/java/com/pahimar/ee3/array/TransmutationAlchemyArray.java rename to src/main/java/com/pahimar/ee3/array/AlchemyArrayTransmutation.java index c23d64c4..c99c2127 100644 --- a/src/main/java/com/pahimar/ee3/array/TransmutationAlchemyArray.java +++ b/src/main/java/com/pahimar/ee3/array/AlchemyArrayTransmutation.java @@ -1,6 +1,5 @@ package com.pahimar.ee3.array; -import com.pahimar.ee3.api.array.AlchemyArray; import com.pahimar.ee3.init.ModBlocks; import com.pahimar.ee3.reference.Names; import com.pahimar.ee3.reference.Particles; @@ -22,11 +21,11 @@ import net.minecraftforge.common.util.ForgeDirection; import java.util.Random; -public class TransmutationAlchemyArray extends AlchemyArray implements IInventory +public class AlchemyArrayTransmutation extends AlchemyArrayEE implements IInventory { private ItemStack[] inventory = new ItemStack[25]; - public TransmutationAlchemyArray() + public AlchemyArrayTransmutation() { super(Textures.AlchemyArray.TRANSMUTATION_ALCHEMY_ARRAY, Names.AlchemyArrays.TRANSMUTATION_ALCHEMY_ARRAY); } diff --git a/src/main/java/com/pahimar/ee3/block/BlockAlchemicalChest.java b/src/main/java/com/pahimar/ee3/block/BlockAlchemicalChest.java index a00eda05..cd3883a9 100644 --- a/src/main/java/com/pahimar/ee3/block/BlockAlchemicalChest.java +++ b/src/main/java/com/pahimar/ee3/block/BlockAlchemicalChest.java @@ -10,7 +10,6 @@ import com.pahimar.ee3.tileentity.TileEntityAlchemicalChestMedium; import com.pahimar.ee3.tileentity.TileEntityAlchemicalChestSmall; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.ITileEntityProvider; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; @@ -22,7 +21,7 @@ import net.minecraftforge.common.util.ForgeDirection; import java.util.List; -public class BlockAlchemicalChest extends BlockEE implements ITileEntityProvider +public class BlockAlchemicalChest extends BlockTileEntityEE { public BlockAlchemicalChest() { @@ -93,14 +92,6 @@ public class BlockAlchemicalChest extends BlockEE implements ITileEntityProvider } } - @Override - public boolean onBlockEventReceived(World world, int x, int y, int z, int eventId, int eventData) - { - super.onBlockEventReceived(world, x, y, z, eventId, eventData); - TileEntity tileentity = world.getTileEntity(x, y, z); - return tileentity != null && tileentity.receiveClientEvent(eventId, eventData); - } - @Override @SideOnly(Side.CLIENT) public void getSubBlocks(Item item, CreativeTabs creativeTabs, List list) diff --git a/src/main/java/com/pahimar/ee3/block/BlockAlchemyArray.java b/src/main/java/com/pahimar/ee3/block/BlockAlchemyArray.java index 30b43e61..eaf9b0ab 100644 --- a/src/main/java/com/pahimar/ee3/block/BlockAlchemyArray.java +++ b/src/main/java/com/pahimar/ee3/block/BlockAlchemyArray.java @@ -11,7 +11,6 @@ import com.pahimar.ee3.tileentity.TileEntityEE; import com.pahimar.ee3.util.CommonSoundHelper; import com.pahimar.ee3.util.EntityHelper; import net.minecraft.block.Block; -import net.minecraft.block.ITileEntityProvider; import net.minecraft.block.material.Material; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; @@ -30,7 +29,7 @@ import net.minecraftforge.common.util.ForgeDirection; import java.util.Random; -public class BlockAlchemyArray extends BlockEE implements ITileEntityProvider +public class BlockAlchemyArray extends BlockTileEntityEE { public BlockAlchemyArray() { diff --git a/src/main/java/com/pahimar/ee3/block/BlockAludel.java b/src/main/java/com/pahimar/ee3/block/BlockAludel.java index 821d534d..4f35ce63 100644 --- a/src/main/java/com/pahimar/ee3/block/BlockAludel.java +++ b/src/main/java/com/pahimar/ee3/block/BlockAludel.java @@ -9,7 +9,6 @@ import com.pahimar.ee3.reference.RenderIds; import com.pahimar.ee3.tileentity.TileEntityAludel; import com.pahimar.ee3.tileentity.TileEntityGlassBell; import net.minecraft.block.Block; -import net.minecraft.block.ITileEntityProvider; import net.minecraft.block.material.Material; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -22,7 +21,7 @@ import net.minecraftforge.common.util.ForgeDirection; import java.util.Random; -public class BlockAludel extends BlockEE implements ITileEntityProvider +public class BlockAludel extends BlockTileEntityEE { public BlockAludel() { @@ -126,14 +125,6 @@ public class BlockAludel extends BlockEE implements ITileEntityProvider } } - @Override - public boolean onBlockEventReceived(World world, int x, int y, int z, int eventId, int eventData) - { - super.onBlockEventReceived(world, x, y, z, eventId, eventData); - TileEntity tileentity = world.getTileEntity(x, y, z); - return tileentity != null && tileentity.receiveClientEvent(eventId, eventData); - } - @Override public int getLightValue(IBlockAccess world, int x, int y, int z) { diff --git a/src/main/java/com/pahimar/ee3/block/BlockAugmentationTable.java b/src/main/java/com/pahimar/ee3/block/BlockAugmentationTable.java index 5e5c5b2a..8eab5fca 100644 --- a/src/main/java/com/pahimar/ee3/block/BlockAugmentationTable.java +++ b/src/main/java/com/pahimar/ee3/block/BlockAugmentationTable.java @@ -5,13 +5,12 @@ import com.pahimar.ee3.reference.GUIs; import com.pahimar.ee3.reference.Names; import com.pahimar.ee3.reference.RenderIds; import com.pahimar.ee3.tileentity.TileEntityAugmentationTable; -import net.minecraft.block.ITileEntityProvider; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; -public class BlockAugmentationTable extends BlockEE implements ITileEntityProvider +public class BlockAugmentationTable extends BlockTileEntityEE { public BlockAugmentationTable() { diff --git a/src/main/java/com/pahimar/ee3/block/BlockCalcinator.java b/src/main/java/com/pahimar/ee3/block/BlockCalcinator.java index e0ea778c..57a9610e 100644 --- a/src/main/java/com/pahimar/ee3/block/BlockCalcinator.java +++ b/src/main/java/com/pahimar/ee3/block/BlockCalcinator.java @@ -6,7 +6,6 @@ import com.pahimar.ee3.reference.Names; import com.pahimar.ee3.reference.Particles; import com.pahimar.ee3.reference.RenderIds; import com.pahimar.ee3.tileentity.TileEntityCalcinator; -import net.minecraft.block.ITileEntityProvider; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; @@ -15,7 +14,7 @@ import net.minecraft.world.World; import java.util.Random; -public class BlockCalcinator extends BlockEE implements ITileEntityProvider +public class BlockCalcinator extends BlockTileEntityEE { public BlockCalcinator() { @@ -56,21 +55,12 @@ public class BlockCalcinator extends BlockEE implements ITileEntityProvider { if (((TileEntityCalcinator) world.getTileEntity(x, y, z)).getState() == 1) { - // Fire pot particles world.spawnParticle(Particles.NORMAL_SMOKE, (double) x + 0.5F, (double) y + 0.4F, (double) ((z + 0.5F) + (random.nextFloat() * 0.5F - 0.3F)), 0.0D, 0.0D, 0.0D); world.spawnParticle(Particles.FLAME, (double) x + 0.5F, (double) y + 0.4F, (double) z + 0.5F, 0.0D, 0.0D, 0.0D); } } } - @Override - public boolean onBlockEventReceived(World world, int x, int y, int z, int eventId, int eventData) - { - super.onBlockEventReceived(world, x, y, z, eventId, eventData); - TileEntity tileentity = world.getTileEntity(x, y, z); - return tileentity != null && tileentity.receiveClientEvent(eventId, eventData); - } - @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int par6, float par7, float par8, float par9) { diff --git a/src/main/java/com/pahimar/ee3/block/BlockDummyArray.java b/src/main/java/com/pahimar/ee3/block/BlockDummyArray.java index 1d0ab110..d6a7f742 100644 --- a/src/main/java/com/pahimar/ee3/block/BlockDummyArray.java +++ b/src/main/java/com/pahimar/ee3/block/BlockDummyArray.java @@ -6,7 +6,6 @@ import com.pahimar.ee3.tileentity.TileEntityAlchemyArray; import com.pahimar.ee3.tileentity.TileEntityDummyArray; import com.pahimar.ee3.tileentity.TileEntityEE; import net.minecraft.block.Block; -import net.minecraft.block.ITileEntityProvider; import net.minecraft.block.material.Material; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; @@ -23,7 +22,7 @@ import net.minecraftforge.common.util.ForgeDirection; import java.util.Random; -public class BlockDummyArray extends BlockEE implements ITileEntityProvider +public class BlockDummyArray extends BlockTileEntityEE { public BlockDummyArray() { diff --git a/src/main/java/com/pahimar/ee3/block/BlockGlassBell.java b/src/main/java/com/pahimar/ee3/block/BlockGlassBell.java index a21b3d08..9877578e 100644 --- a/src/main/java/com/pahimar/ee3/block/BlockGlassBell.java +++ b/src/main/java/com/pahimar/ee3/block/BlockGlassBell.java @@ -7,7 +7,6 @@ import com.pahimar.ee3.reference.RenderIds; import com.pahimar.ee3.tileentity.TileEntityAludel; import com.pahimar.ee3.tileentity.TileEntityEE; import com.pahimar.ee3.tileentity.TileEntityGlassBell; -import net.minecraft.block.ITileEntityProvider; import net.minecraft.block.material.Material; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -19,7 +18,7 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class BlockGlassBell extends BlockEE implements ITileEntityProvider +public class BlockGlassBell extends BlockTileEntityEE { public BlockGlassBell() { diff --git a/src/main/java/com/pahimar/ee3/block/BlockResearchStation.java b/src/main/java/com/pahimar/ee3/block/BlockResearchStation.java index 5704ddf9..cd6da1b4 100644 --- a/src/main/java/com/pahimar/ee3/block/BlockResearchStation.java +++ b/src/main/java/com/pahimar/ee3/block/BlockResearchStation.java @@ -5,13 +5,12 @@ import com.pahimar.ee3.reference.GUIs; import com.pahimar.ee3.reference.Names; import com.pahimar.ee3.reference.RenderIds; import com.pahimar.ee3.tileentity.TileEntityResearchStation; -import net.minecraft.block.ITileEntityProvider; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; -public class BlockResearchStation extends BlockEE implements ITileEntityProvider +public class BlockResearchStation extends BlockTileEntityEE { public BlockResearchStation() { diff --git a/src/main/java/com/pahimar/ee3/block/BlockTileEntityEE.java b/src/main/java/com/pahimar/ee3/block/BlockTileEntityEE.java new file mode 100644 index 00000000..b692632f --- /dev/null +++ b/src/main/java/com/pahimar/ee3/block/BlockTileEntityEE.java @@ -0,0 +1,131 @@ +package com.pahimar.ee3.block; + +import com.pahimar.ee3.creativetab.CreativeTab; +import com.pahimar.ee3.reference.Textures; +import com.pahimar.ee3.tileentity.TileEntityEE; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +import java.util.Random; + +public abstract class BlockTileEntityEE extends BlockContainer +{ + protected BlockTileEntityEE(Material material) + { + super(material); + this.setCreativeTab(CreativeTab.EE3_TAB); + } + + @Override + public String getUnlocalizedName() + { + return String.format("tile.%s%s", Textures.RESOURCE_PREFIX, getUnwrappedUnlocalizedName(super.getUnlocalizedName())); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) + { + blockIcon = iconRegister.registerIcon(String.format("%s", getUnwrappedUnlocalizedName(this.getUnlocalizedName()))); + } + + protected String getUnwrappedUnlocalizedName(String unlocalizedName) + { + return unlocalizedName.substring(unlocalizedName.indexOf(".") + 1); + } + + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int meta) + { + dropInventory(world, x, y, z); + super.breakBlock(world, x, y, z, block, meta); + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase entityLiving, ItemStack itemStack) + { + super.onBlockPlacedBy(world, x, y, z, entityLiving, itemStack); + if (world.getTileEntity(x, y, z) instanceof TileEntityEE) + { + int direction = 0; + int facing = MathHelper.floor_double(entityLiving.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; + + if (facing == 0) + { + direction = ForgeDirection.NORTH.ordinal(); + } + else if (facing == 1) + { + direction = ForgeDirection.EAST.ordinal(); + } + else if (facing == 2) + { + direction = ForgeDirection.SOUTH.ordinal(); + } + else if (facing == 3) + { + direction = ForgeDirection.WEST.ordinal(); + } + + if (itemStack.hasDisplayName()) + { + ((TileEntityEE) world.getTileEntity(x, y, z)).setCustomName(itemStack.getDisplayName()); + } + + ((TileEntityEE) world.getTileEntity(x, y, z)).setOrientation(direction); + } + } + + protected void dropInventory(World world, int x, int y, int z) + { + TileEntity tileEntity = world.getTileEntity(x, y, z); + + if (!(tileEntity instanceof IInventory)) + { + return; + } + + IInventory inventory = (IInventory) tileEntity; + + for (int i = 0; i < inventory.getSizeInventory(); i++) + { + ItemStack itemStack = inventory.getStackInSlot(i); + + if (itemStack != null && itemStack.stackSize > 0) + { + Random rand = new Random(); + + float dX = rand.nextFloat() * 0.8F + 0.1F; + float dY = rand.nextFloat() * 0.8F + 0.1F; + float dZ = rand.nextFloat() * 0.8F + 0.1F; + + EntityItem entityItem = new EntityItem(world, x + dX, y + dY, z + dZ, itemStack.copy()); + + if (itemStack.hasTagCompound()) + { + entityItem.getEntityItem().setTagCompound((NBTTagCompound) itemStack.getTagCompound().copy()); + } + + float factor = 0.05F; + entityItem.motionX = rand.nextGaussian() * factor; + entityItem.motionY = rand.nextGaussian() * factor + 0.2F; + entityItem.motionZ = rand.nextGaussian() * factor; + world.spawnEntityInWorld(entityItem); + itemStack.stackSize = 0; + } + } + } +} diff --git a/src/main/java/com/pahimar/ee3/block/BlockTransmutationTablet.java b/src/main/java/com/pahimar/ee3/block/BlockTransmutationTablet.java index 8a26f669..081d58a8 100644 --- a/src/main/java/com/pahimar/ee3/block/BlockTransmutationTablet.java +++ b/src/main/java/com/pahimar/ee3/block/BlockTransmutationTablet.java @@ -6,7 +6,6 @@ import com.pahimar.ee3.reference.GUIs; import com.pahimar.ee3.reference.Names; import com.pahimar.ee3.reference.RenderIds; import com.pahimar.ee3.tileentity.TileEntityTransmutationTablet; -import net.minecraft.block.ITileEntityProvider; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -16,7 +15,7 @@ import net.minecraft.world.World; import java.util.Random; -public class BlockTransmutationTablet extends BlockEE implements ITileEntityProvider +public class BlockTransmutationTablet extends BlockTileEntityEE { public BlockTransmutationTablet() { diff --git a/src/main/java/com/pahimar/ee3/client/renderer/tileentity/TileEntityRendererAlchemyArray.java b/src/main/java/com/pahimar/ee3/client/renderer/tileentity/TileEntityRendererAlchemyArray.java index 53fb0641..700e3a13 100644 --- a/src/main/java/com/pahimar/ee3/client/renderer/tileentity/TileEntityRendererAlchemyArray.java +++ b/src/main/java/com/pahimar/ee3/client/renderer/tileentity/TileEntityRendererAlchemyArray.java @@ -51,6 +51,14 @@ public class TileEntityRendererAlchemyArray extends TileEntitySpecialRenderer { scale = 5; } + else if (tileEntityAlchemyArray.getSize() == 4) + { + scale = 7; + } + else if (tileEntityAlchemyArray.getSize() == 5) + { + scale = 9; + } GL11.glDisable(GL11.GL_CULL_FACE); GL11.glDisable(GL11.GL_LIGHTING); diff --git a/src/main/java/com/pahimar/ee3/client/renderer/tileentity/TileEntityRendererResearchStation.java b/src/main/java/com/pahimar/ee3/client/renderer/tileentity/TileEntityRendererResearchStation.java index 17aa3c8f..899ef804 100644 --- a/src/main/java/com/pahimar/ee3/client/renderer/tileentity/TileEntityRendererResearchStation.java +++ b/src/main/java/com/pahimar/ee3/client/renderer/tileentity/TileEntityRendererResearchStation.java @@ -1,21 +1,19 @@ package com.pahimar.ee3.client.renderer.tileentity; +import com.pahimar.ee3.client.renderer.model.ModelResearchStation; +import com.pahimar.ee3.reference.Textures; +import com.pahimar.ee3.tileentity.TileEntityResearchStation; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.entity.RenderItem; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.entity.item.EntityItem; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; - import org.lwjgl.opengl.GL11; -import com.pahimar.ee3.client.renderer.model.ModelResearchStation; -import com.pahimar.ee3.reference.Textures; -import com.pahimar.ee3.tileentity.TileEntityResearchStation; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - @SideOnly(Side.CLIENT) public class TileEntityRendererResearchStation extends TileEntitySpecialRenderer { @@ -67,7 +65,7 @@ public class TileEntityRendererResearchStation extends TileEntitySpecialRenderer GL11.glPushMatrix(); ItemStack tome = tileEntityResearchStation.getStackInSlot(TileEntityResearchStation.TOME_SLOT_INVENTORY_INDEX); - if (tome != null) + if (Minecraft.getMinecraft().gameSettings.fancyGraphics && tome != null) { EntityItem ghostEntityItem = new EntityItem(tileEntityResearchStation.getWorldObj()); ghostEntityItem.hoverStart = 0.0F; diff --git a/src/main/java/com/pahimar/ee3/command/CommandSetItemNotRecoverable.java b/src/main/java/com/pahimar/ee3/command/CommandSetItemNotRecoverable.java index 21dd9e4a..6012b955 100644 --- a/src/main/java/com/pahimar/ee3/command/CommandSetItemNotRecoverable.java +++ b/src/main/java/com/pahimar/ee3/command/CommandSetItemNotRecoverable.java @@ -76,7 +76,7 @@ public class CommandSetItemNotRecoverable extends CommandBase } } - AbilityRegistryProxy.setAsRecoverable(itemStack); + AbilityRegistryProxy.setAsNotRecoverable(itemStack); func_152373_a(commandSender, this, Messages.Commands.SET_ITEM_NOT_RECOVERABLE_SUCCESS, new Object[]{commandSender.getCommandSenderName(), itemStack.func_151000_E()}); } } diff --git a/src/main/java/com/pahimar/ee3/exchange/WrappedStack.java b/src/main/java/com/pahimar/ee3/exchange/WrappedStack.java index 93a80c25..d648d112 100644 --- a/src/main/java/com/pahimar/ee3/exchange/WrappedStack.java +++ b/src/main/java/com/pahimar/ee3/exchange/WrappedStack.java @@ -263,74 +263,6 @@ public class WrappedStack implements Comparable, JsonDeserializer< this.stackSize = stackSize; } - public static NBTTagCompound toNBTTagCompound(WrappedStack wrappedStack) - { - if (wrappedStack != null && wrappedStack.getWrappedObject() != null) - { - NBTTagCompound wrappedStackTagCompound = new NBTTagCompound(); - if (wrappedStack.getWrappedObject() instanceof ItemStack) - { - NBTTagCompound wrappedItemTagCompound = new NBTTagCompound(); - ((ItemStack) wrappedStack.getWrappedObject()).writeToNBT(wrappedItemTagCompound); - wrappedStackTagCompound.setInteger("type", 0); - wrappedStackTagCompound.setTag("objectData", wrappedItemTagCompound); - wrappedStackTagCompound.setInteger("stackSize", wrappedStack.getStackSize()); - return wrappedStackTagCompound; - } - else if (wrappedStack.getWrappedObject() instanceof OreStack) - { - NBTTagCompound wrappedOreTagCompound = new NBTTagCompound(); - ((OreStack) wrappedStack.getWrappedObject()).writeToNBT(wrappedOreTagCompound); - wrappedStackTagCompound.setInteger("type", 1); - wrappedStackTagCompound.setTag("objectData", wrappedOreTagCompound); - wrappedStackTagCompound.setInteger("stackSize", wrappedStack.getStackSize()); - return wrappedStackTagCompound; - } - else if (wrappedStack.getWrappedObject() instanceof FluidStack) - { - NBTTagCompound wrappedFluidTagCompound = new NBTTagCompound(); - ((FluidStack) wrappedStack.getWrappedObject()).writeToNBT(wrappedFluidTagCompound); - wrappedStackTagCompound.setInteger("type", 2); - wrappedStackTagCompound.setTag("objectData", wrappedFluidTagCompound); - wrappedStackTagCompound.setInteger("stackSize", wrappedStack.getStackSize()); - return wrappedStackTagCompound; - } - } - - return null; - } - - public static WrappedStack fromNBTTagCompound(NBTTagCompound nbtTagCompound) - { - if (nbtTagCompound.hasKey("type") && nbtTagCompound.hasKey("objectData") && nbtTagCompound.hasKey("stackSize")) - { - int objectType = nbtTagCompound.getInteger("type"); - int stackSize = nbtTagCompound.getInteger("stackSize"); - - if (objectType == 0) - { - ItemStack itemStack = ItemStack.loadItemStackFromNBT(nbtTagCompound.getCompoundTag("objectData")); - return new WrappedStack(itemStack, stackSize); - } - else if (objectType == 1) - { - OreStack oreStack = OreStack.loadOreStackFromNBT(nbtTagCompound.getCompoundTag("objectData")); - return new WrappedStack(oreStack, stackSize); - } - else if (objectType == 2) - { - FluidStack fluidStack = FluidStack.loadFluidStackFromNBT(nbtTagCompound.getCompoundTag("objectData")); - return new WrappedStack(fluidStack, stackSize); - } - else - { - return new WrappedStack(); - } - } - - return new WrappedStack(); - } - public static WrappedStack wrap(Object object) { if (canBeWrapped(object)) diff --git a/src/main/java/com/pahimar/ee3/handler/ConfigurationHandler.java b/src/main/java/com/pahimar/ee3/handler/ConfigurationHandler.java index 2d3f9b7d..4ce9a7b4 100644 --- a/src/main/java/com/pahimar/ee3/handler/ConfigurationHandler.java +++ b/src/main/java/com/pahimar/ee3/handler/ConfigurationHandler.java @@ -15,11 +15,13 @@ public class ConfigurationHandler { public static Configuration configuration; + private final static String CATEGORY_DEBUG = "general.Debug"; + public static void init(File configFile) { if (configuration == null) { - configuration = new Configuration(configFile); + configuration = new Configuration(configFile, true); loadConfiguration(); } } @@ -31,6 +33,7 @@ public class ConfigurationHandler Settings.Sounds.soundMode = ConfigurationHelper.getString(configuration, Messages.Configuration.SOUND_MODE, Configuration.CATEGORY_GENERAL, "All", StatCollector.translateToLocal(Messages.Configuration.SOUND_MODE_COMMENT), new String[]{"All", "Self", "None"}, Messages.Configuration.SOUND_MODE_LABEL); Settings.Abilities.onlyLoadFile = configuration.getBoolean(Messages.Configuration.ABILITIES_ONLY_LOAD_FILE, Configuration.CATEGORY_GENERAL, false, StatCollector.translateToLocal(Messages.Configuration.ABILITIES_ONLY_LOAD_FILE_COMMENT), Messages.Configuration.ABILITIES_ONLY_LOAD_FILE_LABEL); Settings.DynamicEnergyValueGeneration.regenerateEnergyValuesWhen = ConfigurationHelper.getString(configuration, Messages.Configuration.REGENERATE_ENERGYVALUES_WHEN, Configuration.CATEGORY_GENERAL, "When Mods Change", StatCollector.translateToLocal(Messages.Configuration.REGENERATE_ENERGYVALUES_WHEN_COMMENT), new String[]{"Never", "When Mods Change", "Always"}, Messages.Configuration.REGENERATE_ENERGYVALUES_WHEN_LABEL); + Settings.Debug.logTraceToInfo = configuration.getBoolean(Messages.Configuration.LOG_TRACE_TO_INFO, CATEGORY_DEBUG, false, StatCollector.translateToLocal(Messages.Configuration.LOG_TRACE_TO_INFO_COMMENT), Messages.Configuration.LOG_TRACE_TO_INFO_LABEL); if (configuration.hasChanged()) { diff --git a/src/main/java/com/pahimar/ee3/init/AlchemyArrays.java b/src/main/java/com/pahimar/ee3/init/AlchemyArrays.java index f3606aa7..5abecf77 100644 --- a/src/main/java/com/pahimar/ee3/init/AlchemyArrays.java +++ b/src/main/java/com/pahimar/ee3/init/AlchemyArrays.java @@ -2,14 +2,30 @@ package com.pahimar.ee3.init; import com.pahimar.ee3.api.array.AlchemyArray; import com.pahimar.ee3.api.array.AlchemyArrayRegistryProxy; -import com.pahimar.ee3.array.TransmutationAlchemyArray; +import com.pahimar.ee3.array.*; public class AlchemyArrays { - public static final AlchemyArray transmutationAlchemyArray = new TransmutationAlchemyArray(); + public static final AlchemyArray accelerantAlchemyArray = new AlchemyArrayAccelerant(); + public static final AlchemyArray combustionAlchemyArray = new AlchemyArrayCombustion(); + public static final AlchemyArray constructionAlchemyArray = new AlchemyArrayConstruction(); + public static final AlchemyArray conveyorAlchemyArray = new AlchemyArrayConveyor(); + public static final AlchemyArray destructionAlchemyArray = new AlchemyArrayDestruction(); + public static final AlchemyArray gelidAlchemyArray = new AlchemyArrayGelid(); + public static final AlchemyArray parthenogenesisAlchemyArray = new AlchemyArrayParthenogenesis(); + public static final AlchemyArray transfigurationAlchemyArray = new AlchemyArrayTransfiguration(); + public static final AlchemyArray transmutationAlchemyArray = new AlchemyArrayTransmutation(); public static void registerAlchemyArrays() { + AlchemyArrayRegistryProxy.registerAlchemyArray(accelerantAlchemyArray); + AlchemyArrayRegistryProxy.registerAlchemyArray(combustionAlchemyArray); + AlchemyArrayRegistryProxy.registerAlchemyArray(constructionAlchemyArray); + AlchemyArrayRegistryProxy.registerAlchemyArray(conveyorAlchemyArray); + AlchemyArrayRegistryProxy.registerAlchemyArray(destructionAlchemyArray); + AlchemyArrayRegistryProxy.registerAlchemyArray(gelidAlchemyArray); + AlchemyArrayRegistryProxy.registerAlchemyArray(parthenogenesisAlchemyArray); + AlchemyArrayRegistryProxy.registerAlchemyArray(transfigurationAlchemyArray); AlchemyArrayRegistryProxy.registerAlchemyArray(transmutationAlchemyArray); } } diff --git a/src/main/java/com/pahimar/ee3/init/ModBlocks.java b/src/main/java/com/pahimar/ee3/init/ModBlocks.java index ea8992f7..0e073680 100644 --- a/src/main/java/com/pahimar/ee3/init/ModBlocks.java +++ b/src/main/java/com/pahimar/ee3/init/ModBlocks.java @@ -13,16 +13,16 @@ public class ModBlocks { public static final BlockEE chalkBlock = new BlockChalk(); public static final BlockEE alchemicalFuelBlock = new BlockAlchemicalFuel(); - public static final BlockEE alchemicalChest = new BlockAlchemicalChest(); - public static final BlockEE aludel = new BlockAludel(); - public static final BlockEE calcinator = new BlockCalcinator(); - public static final BlockEE glassBell = new BlockGlassBell(); - public static final BlockEE researchStation = new BlockResearchStation(); - public static final BlockEE augmentationTable = new BlockAugmentationTable(); + public static final BlockTileEntityEE alchemicalChest = new BlockAlchemicalChest(); + public static final BlockTileEntityEE aludel = new BlockAludel(); + public static final BlockTileEntityEE calcinator = new BlockCalcinator(); + public static final BlockTileEntityEE glassBell = new BlockGlassBell(); + public static final BlockTileEntityEE researchStation = new BlockResearchStation(); + public static final BlockTileEntityEE augmentationTable = new BlockAugmentationTable(); public static final BlockEE ashInfusedStone = new BlockAshInfusedStone(); - public static final BlockEE alchemyArray = new BlockAlchemyArray(); - public static final BlockEE dummyArray = new BlockDummyArray(); - public static final BlockEE transmutationTablet = new BlockTransmutationTablet(); + public static final BlockTileEntityEE alchemyArray = new BlockAlchemyArray(); + public static final BlockTileEntityEE dummyArray = new BlockDummyArray(); + public static final BlockTileEntityEE transmutationTablet = new BlockTransmutationTablet(); public static final Block ashInfusedStoneSlab = new BlockAshInfusedStoneSlab(); public static void init() diff --git a/src/main/java/com/pahimar/ee3/inventory/ContainerAlchemicalBag.java b/src/main/java/com/pahimar/ee3/inventory/ContainerAlchemicalBag.java index e00131e2..b15083d3 100644 --- a/src/main/java/com/pahimar/ee3/inventory/ContainerAlchemicalBag.java +++ b/src/main/java/com/pahimar/ee3/inventory/ContainerAlchemicalBag.java @@ -132,6 +132,12 @@ public class ContainerAlchemicalBag extends ContainerEE } } + @Override + public boolean canInteractWith(EntityPlayer entityPlayer) + { + return true; + } + public boolean isItemStackParent(ItemStack itemStack) { if (NBTHelper.hasUUID(itemStack)) diff --git a/src/main/java/com/pahimar/ee3/inventory/ContainerAlchemicalChest.java b/src/main/java/com/pahimar/ee3/inventory/ContainerAlchemicalChest.java index b879ad0f..b76b4081 100644 --- a/src/main/java/com/pahimar/ee3/inventory/ContainerAlchemicalChest.java +++ b/src/main/java/com/pahimar/ee3/inventory/ContainerAlchemicalChest.java @@ -114,6 +114,12 @@ public class ContainerAlchemicalChest extends ContainerEE tileEntityAlchemicalChest.closeInventory(); } + @Override + public boolean canInteractWith(EntityPlayer entityPlayer) + { + return this.tileEntityAlchemicalChest.isUseableByPlayer(entityPlayer); + } + @Override public ItemStack transferStackInSlot(EntityPlayer entityPlayer, int slotIndex) { diff --git a/src/main/java/com/pahimar/ee3/inventory/ContainerAlchemicalTome.java b/src/main/java/com/pahimar/ee3/inventory/ContainerAlchemicalTome.java index 78be04c3..7f7f0741 100644 --- a/src/main/java/com/pahimar/ee3/inventory/ContainerAlchemicalTome.java +++ b/src/main/java/com/pahimar/ee3/inventory/ContainerAlchemicalTome.java @@ -131,6 +131,12 @@ public class ContainerAlchemicalTome extends ContainerEE implements IElementButt } } + @Override + public boolean canInteractWith(EntityPlayer entityPlayer) + { + return true; + } + public int getInventorySize() { return inventoryAlchemicalTome.getSizeInventory(); diff --git a/src/main/java/com/pahimar/ee3/inventory/ContainerAludel.java b/src/main/java/com/pahimar/ee3/inventory/ContainerAludel.java index be7abc9e..f1ec4c6a 100644 --- a/src/main/java/com/pahimar/ee3/inventory/ContainerAludel.java +++ b/src/main/java/com/pahimar/ee3/inventory/ContainerAludel.java @@ -190,4 +190,10 @@ public class ContainerAludel extends ContainerEE this.tileEntityAludel.itemCookTime = updatedValue; } } + + @Override + public boolean canInteractWith(EntityPlayer entityPlayer) + { + return this.tileEntityAludel.isUseableByPlayer(entityPlayer); + } } diff --git a/src/main/java/com/pahimar/ee3/inventory/ContainerAugmentationTable.java b/src/main/java/com/pahimar/ee3/inventory/ContainerAugmentationTable.java index 3aef5150..4293e98d 100644 --- a/src/main/java/com/pahimar/ee3/inventory/ContainerAugmentationTable.java +++ b/src/main/java/com/pahimar/ee3/inventory/ContainerAugmentationTable.java @@ -108,4 +108,10 @@ public class ContainerAugmentationTable extends ContainerEE return itemStack; } + + @Override + public boolean canInteractWith(EntityPlayer entityPlayer) + { + return this.tileEntityAugmentationTable.isUseableByPlayer(entityPlayer); + } } diff --git a/src/main/java/com/pahimar/ee3/inventory/ContainerCalcinator.java b/src/main/java/com/pahimar/ee3/inventory/ContainerCalcinator.java index fd7e5903..8a105c00 100644 --- a/src/main/java/com/pahimar/ee3/inventory/ContainerCalcinator.java +++ b/src/main/java/com/pahimar/ee3/inventory/ContainerCalcinator.java @@ -169,6 +169,12 @@ public class ContainerCalcinator extends ContainerEE } } + @Override + public boolean canInteractWith(EntityPlayer entityPlayer) + { + return this.tileEntityCalcinator.isUseableByPlayer(entityPlayer); + } + private class SlotCalcinator extends Slot { public SlotCalcinator(IInventory inventory, int slotIndex, int x, int y) diff --git a/src/main/java/com/pahimar/ee3/inventory/ContainerEE.java b/src/main/java/com/pahimar/ee3/inventory/ContainerEE.java index 2d175260..7e117c7f 100644 --- a/src/main/java/com/pahimar/ee3/inventory/ContainerEE.java +++ b/src/main/java/com/pahimar/ee3/inventory/ContainerEE.java @@ -1,7 +1,6 @@ package com.pahimar.ee3.inventory; import com.pahimar.ee3.util.ItemHelper; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; @@ -11,12 +10,6 @@ public abstract class ContainerEE extends Container protected final int PLAYER_INVENTORY_ROWS = 3; protected final int PLAYER_INVENTORY_COLUMNS = 9; - @Override - public boolean canInteractWith(EntityPlayer entityPlayer) - { - return true; - } - @Override protected boolean mergeItemStack(ItemStack itemStack, int slotMin, int slotMax, boolean ascending) { diff --git a/src/main/java/com/pahimar/ee3/inventory/ContainerGlassBell.java b/src/main/java/com/pahimar/ee3/inventory/ContainerGlassBell.java index 25627165..4015a442 100644 --- a/src/main/java/com/pahimar/ee3/inventory/ContainerGlassBell.java +++ b/src/main/java/com/pahimar/ee3/inventory/ContainerGlassBell.java @@ -8,8 +8,11 @@ import net.minecraft.item.ItemStack; public class ContainerGlassBell extends ContainerEE { + private TileEntityGlassBell tileGlassBell; + public ContainerGlassBell(InventoryPlayer inventoryPlayer, TileEntityGlassBell tileGlassBell) { + this.tileGlassBell = tileGlassBell; this.addSlotToContainer(new Slot(tileGlassBell, TileEntityGlassBell.DISPLAY_SLOT_INVENTORY_INDEX, 80, 26)); // Add the player's inventory slots to the container @@ -67,4 +70,10 @@ public class ContainerGlassBell extends ContainerEE return itemStack; } + + @Override + public boolean canInteractWith(EntityPlayer entityPlayer) + { + return this.tileGlassBell.isUseableByPlayer(entityPlayer); + } } diff --git a/src/main/java/com/pahimar/ee3/inventory/ContainerResearchStation.java b/src/main/java/com/pahimar/ee3/inventory/ContainerResearchStation.java index 291f1ea0..60138b86 100644 --- a/src/main/java/com/pahimar/ee3/inventory/ContainerResearchStation.java +++ b/src/main/java/com/pahimar/ee3/inventory/ContainerResearchStation.java @@ -133,6 +133,12 @@ public class ContainerResearchStation extends ContainerEE } } + @Override + public boolean canInteractWith(EntityPlayer entityPlayer) + { + return this.tileEntityResearchStation.isUseableByPlayer(entityPlayer); + } + @Override public ItemStack transferStackInSlot(EntityPlayer entityPlayer, int slotIndex) { diff --git a/src/main/java/com/pahimar/ee3/inventory/ContainerSymbolSelection.java b/src/main/java/com/pahimar/ee3/inventory/ContainerSymbolSelection.java index 410a2dc8..416ed200 100644 --- a/src/main/java/com/pahimar/ee3/inventory/ContainerSymbolSelection.java +++ b/src/main/java/com/pahimar/ee3/inventory/ContainerSymbolSelection.java @@ -1,5 +1,12 @@ package com.pahimar.ee3.inventory; +import net.minecraft.entity.player.EntityPlayer; + public class ContainerSymbolSelection extends ContainerEE { + @Override + public boolean canInteractWith(EntityPlayer entityPlayer) + { + return true; + } } diff --git a/src/main/java/com/pahimar/ee3/inventory/ContainerTransmutationArray.java b/src/main/java/com/pahimar/ee3/inventory/ContainerTransmutationArray.java index d442b292..8f61c8f2 100644 --- a/src/main/java/com/pahimar/ee3/inventory/ContainerTransmutationArray.java +++ b/src/main/java/com/pahimar/ee3/inventory/ContainerTransmutationArray.java @@ -119,4 +119,10 @@ public class ContainerTransmutationArray extends ContainerEE return itemStack; } + + @Override + public boolean canInteractWith(EntityPlayer entityPlayer) + { + return this.tileEntityAlchemyArray.isUseableByPlayer(entityPlayer); + } } diff --git a/src/main/java/com/pahimar/ee3/item/ItemChalk.java b/src/main/java/com/pahimar/ee3/item/ItemChalk.java index aec05bbf..3fe10fa1 100644 --- a/src/main/java/com/pahimar/ee3/item/ItemChalk.java +++ b/src/main/java/com/pahimar/ee3/item/ItemChalk.java @@ -25,7 +25,7 @@ public class ItemChalk extends ItemEE implements IKeyBound { super(); this.setUnlocalizedName(Names.Items.CHALK); - this.setMaxDamage(49); + this.setMaxDamage(80); this.canRepair = true; } diff --git a/src/main/java/com/pahimar/ee3/network/message/MessageSetEnergyValue.java b/src/main/java/com/pahimar/ee3/network/message/MessageSetEnergyValue.java index 677b3a7d..280f832a 100644 --- a/src/main/java/com/pahimar/ee3/network/message/MessageSetEnergyValue.java +++ b/src/main/java/com/pahimar/ee3/network/message/MessageSetEnergyValue.java @@ -2,21 +2,18 @@ package com.pahimar.ee3.network.message; import com.pahimar.ee3.api.exchange.EnergyValue; import com.pahimar.ee3.exchange.EnergyValueRegistry; +import com.pahimar.ee3.exchange.EnergyValueStackMapping; import com.pahimar.ee3.exchange.WrappedStack; +import com.pahimar.ee3.util.CompressionHelper; import com.pahimar.ee3.util.LogHelper; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import io.netty.buffer.ByteBuf; -import net.minecraft.nbt.CompressedStreamTools; - -import java.io.ByteArrayInputStream; -import java.io.IOException; public class MessageSetEnergyValue implements IMessage, IMessageHandler { - public WrappedStack wrappedStack; - public EnergyValue energyValue; + public EnergyValueStackMapping energyValueStackMapping; public MessageSetEnergyValue() { @@ -24,66 +21,43 @@ public class MessageSetEnergyValue implements IMessage, IMessageHandler 0) + if (energyValueStackMappingByteCount > 0) { - compressedWrappedStack = buf.readBytes(wrappedStackByteCount).array(); + compressedEnergyValueStackMapping = buf.readBytes(energyValueStackMappingByteCount).array(); } - byte[] compressedEnergyValue = null; - int energyValueByteCount = buf.readInt(); - - if (energyValueByteCount > 0) + if (compressedEnergyValueStackMapping != null) { - compressedEnergyValue = buf.readBytes(energyValueByteCount).array(); - } - - if (compressedWrappedStack != null && compressedEnergyValue != null) - { - try - { - this.wrappedStack = WrappedStack.fromNBTTagCompound(CompressedStreamTools.readCompressed(new ByteArrayInputStream(compressedWrappedStack))); - this.energyValue = EnergyValue.loadEnergyValueFromNBT(CompressedStreamTools.readCompressed(new ByteArrayInputStream(compressedEnergyValue))); - } - catch (IOException e) - { - e.printStackTrace(); - } + String decompressedEnergyValueStackMapping = CompressionHelper.decompressStringFromByteArray(compressedEnergyValueStackMapping); + this.energyValueStackMapping = EnergyValueStackMapping.createFromJson(decompressedEnergyValueStackMapping); } } @Override public void toBytes(ByteBuf buf) { - byte[] compressedWrappedStack = null; - byte[] compressedEnergyValue = null; + byte[] compressedBytes = null; + String jsonEnergyValueStackMapping = this.energyValueStackMapping.toJson(); - try + + if (jsonEnergyValueStackMapping != null) { - compressedWrappedStack = CompressedStreamTools.compress(WrappedStack.toNBTTagCompound(wrappedStack)); - compressedEnergyValue = CompressedStreamTools.compress(EnergyValue.writeEnergyValueToNBT(energyValue)); - } - catch (IOException e) - { - e.printStackTrace(); + compressedBytes = CompressionHelper.compressStringToByteArray(jsonEnergyValueStackMapping); } - if (compressedWrappedStack != null && compressedEnergyValue != null) + if (compressedBytes != null) { - buf.writeInt(compressedWrappedStack.length); - buf.writeBytes(compressedWrappedStack); - - buf.writeInt(compressedEnergyValue.length); - buf.writeBytes(compressedEnergyValue); + buf.writeInt(compressedBytes.length); + buf.writeBytes(compressedBytes); } else { @@ -94,10 +68,10 @@ public class MessageSetEnergyValue implements IMessage, IMessageHandler