From c0a2f2d92950b303b7610cfdcd1e2ebc33b0d2a1 Mon Sep 17 00:00:00 2001 From: pahimar Date: Tue, 1 Apr 2014 22:47:08 -0400 Subject: [PATCH] Some more work on stuffs --- .../com/pahimar/ee3/EquivalentExchange3.java | 6 +- .../ee3/block/BlockAlchemicalFuel.java | 81 +++++++++ .../com/pahimar/ee3/block/BlockChalk.java | 31 ++++ .../java/com/pahimar/ee3/block/BlockEE.java | 134 ++++++++++++++ .../pahimar/ee3/block/BlockInfusedCloth.java | 94 ++++++++++ .../pahimar/ee3/block/BlockInfusedPlank.java | 93 ++++++++++ .../pahimar/ee3/block/BlockInfusedWood.java | 168 ++++++++++++++++++ .../java/com/pahimar/ee3/block/ModBlocks.java | 20 ++- .../ee3/item/ItemBlockAlchemicalFuel.java | 14 ++ .../ee3/item/ItemBlockInfusedCloth.java | 34 ++++ .../ee3/item/ItemBlockInfusedPlank.java | 34 ++++ .../ee3/item/ItemBlockInfusedWood.java | 34 ++++ .../com/pahimar/ee3/item/ItemDiviningRod.java | 8 + .../java/com/pahimar/ee3/item/ModItems.java | 21 +-- .../com/pahimar/ee3/reference/Messages.java | 1 + .../java/com/pahimar/ee3/reference/Names.java | 9 + .../pahimar/ee3/tileentity/TileEntityEE.java | 121 +++++++++++++ src/main/resources/assets/ee3/lang/en_US.lang | 8 +- ...=> alchemicalFuel.aeternalisFuel_side.png} | Bin ...hemicalFuel.aeternalisFuel_side.png.mcmeta | 7 + ... => alchemicalFuel.aeternalisFuel_top.png} | Bin ...=> alchemicalFuel.alchemicalCoal_side.png} | Bin ... => alchemicalFuel.alchemicalCoal_top.png} | Bin ...png => alchemicalFuel.mobiusFuel_side.png} | Bin .../alchemicalFuel.mobiusFuel_side.png.mcmeta | 7 + ....png => alchemicalFuel.mobiusFuel_top.png} | Bin 26 files changed, 907 insertions(+), 18 deletions(-) create mode 100644 src/main/java/com/pahimar/ee3/block/BlockAlchemicalFuel.java create mode 100644 src/main/java/com/pahimar/ee3/block/BlockChalk.java create mode 100644 src/main/java/com/pahimar/ee3/block/BlockEE.java create mode 100644 src/main/java/com/pahimar/ee3/block/BlockInfusedCloth.java create mode 100644 src/main/java/com/pahimar/ee3/block/BlockInfusedPlank.java create mode 100644 src/main/java/com/pahimar/ee3/block/BlockInfusedWood.java create mode 100644 src/main/java/com/pahimar/ee3/item/ItemBlockAlchemicalFuel.java create mode 100644 src/main/java/com/pahimar/ee3/item/ItemBlockInfusedCloth.java create mode 100644 src/main/java/com/pahimar/ee3/item/ItemBlockInfusedPlank.java create mode 100644 src/main/java/com/pahimar/ee3/item/ItemBlockInfusedWood.java create mode 100644 src/main/java/com/pahimar/ee3/tileentity/TileEntityEE.java rename src/main/resources/assets/ee3/textures/blocks/{alchemicalFuelBlock.aeternalisFuel_side.png => alchemicalFuel.aeternalisFuel_side.png} (100%) create mode 100644 src/main/resources/assets/ee3/textures/blocks/alchemicalFuel.aeternalisFuel_side.png.mcmeta rename src/main/resources/assets/ee3/textures/blocks/{alchemicalFuelBlock.aeternalisFuel_top.png => alchemicalFuel.aeternalisFuel_top.png} (100%) rename src/main/resources/assets/ee3/textures/blocks/{alchemicalFuelBlock.alchemicalCoal_side.png => alchemicalFuel.alchemicalCoal_side.png} (100%) rename src/main/resources/assets/ee3/textures/blocks/{alchemicalFuelBlock.alchemicalCoal_top.png => alchemicalFuel.alchemicalCoal_top.png} (100%) rename src/main/resources/assets/ee3/textures/blocks/{alchemicalFuelBlock.mobiusFuel_side.png => alchemicalFuel.mobiusFuel_side.png} (100%) create mode 100644 src/main/resources/assets/ee3/textures/blocks/alchemicalFuel.mobiusFuel_side.png.mcmeta rename src/main/resources/assets/ee3/textures/blocks/{alchemicalFuelBlock.mobiusFuel_top.png => alchemicalFuel.mobiusFuel_top.png} (100%) diff --git a/src/main/java/com/pahimar/ee3/EquivalentExchange3.java b/src/main/java/com/pahimar/ee3/EquivalentExchange3.java index c6037bd3..aecbcde0 100644 --- a/src/main/java/com/pahimar/ee3/EquivalentExchange3.java +++ b/src/main/java/com/pahimar/ee3/EquivalentExchange3.java @@ -41,11 +41,11 @@ public class EquivalentExchange3 @EventHandler public void preInit(FMLPreInitializationEvent event) { - // Initialize mod blocks - ModBlocks.init(); - // Initialize mod items ModItems.init(); + + // Initialize mod blocks + ModBlocks.init(); } @EventHandler diff --git a/src/main/java/com/pahimar/ee3/block/BlockAlchemicalFuel.java b/src/main/java/com/pahimar/ee3/block/BlockAlchemicalFuel.java new file mode 100644 index 00000000..f743d50a --- /dev/null +++ b/src/main/java/com/pahimar/ee3/block/BlockAlchemicalFuel.java @@ -0,0 +1,81 @@ +package com.pahimar.ee3.block; + +import com.pahimar.ee3.reference.Names; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.util.MathHelper; +import net.minecraftforge.common.util.ForgeDirection; + +import java.util.List; +import java.util.Random; + +public class BlockAlchemicalFuel extends BlockEE +{ + @SideOnly(Side.CLIENT) + private IIcon[] blockTop, blockSide; + + public BlockAlchemicalFuel() + { + super(); + this.setBlockName(Names.Items.ALCHEMICAL_FUEL); + this.setHardness(5.0f); + this.setResistance(10.0f); + } + + @Override + public Item getItemDropped(int par1, Random random, int par2) + { + return Item.getItemFromBlock(this); + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubBlocks(Item item, CreativeTabs creativeTabs, List list) + { + for (int meta = 0; meta < Names.Items.ALCHEMICAL_FUEL_SUBTYPES.length; meta++) + { + list.add(new ItemStack(item, 1, meta)); + } + } + + @Override + public int damageDropped(int metaData) + { + return metaData; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) + { + this.blockTop = new IIcon[Names.Items.ALCHEMICAL_FUEL_SUBTYPES.length]; + this.blockSide = new IIcon[Names.Items.ALCHEMICAL_FUEL_SUBTYPES.length]; + + for (int i = 0; i < Names.Items.ALCHEMICAL_FUEL_SUBTYPES.length; i++) + { + blockTop[i] = iconRegister.registerIcon(String.format("%s.%s_top", getUnwrappedUnlocalizedName(this.getUnlocalizedName()), Names.Items.ALCHEMICAL_FUEL_SUBTYPES[i])); + blockSide[i] = iconRegister.registerIcon(String.format("%s.%s_side", getUnwrappedUnlocalizedName(this.getUnlocalizedName()), Names.Items.ALCHEMICAL_FUEL_SUBTYPES[i])); + } + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metaData) + { + metaData = MathHelper.clamp_int(metaData, 0, Names.Items.ALCHEMICAL_FUEL_SUBTYPES.length - 1); + + if (ForgeDirection.getOrientation(side) == ForgeDirection.UP || ForgeDirection.getOrientation(side) == ForgeDirection.DOWN) + { + return blockTop[metaData]; + } + else + { + return blockSide[metaData]; + } + } +} diff --git a/src/main/java/com/pahimar/ee3/block/BlockChalk.java b/src/main/java/com/pahimar/ee3/block/BlockChalk.java new file mode 100644 index 00000000..98ccdd51 --- /dev/null +++ b/src/main/java/com/pahimar/ee3/block/BlockChalk.java @@ -0,0 +1,31 @@ +package com.pahimar.ee3.block; + +import com.pahimar.ee3.item.ModItems; +import com.pahimar.ee3.reference.Names; +import net.minecraft.block.material.Material; +import net.minecraft.item.Item; + +import java.util.Random; + +public class BlockChalk extends BlockEE +{ + public BlockChalk() + { + super(Material.clay); + this.setBlockName(Names.Items.CHALK); + this.setHardness(0.6f); + this.setStepSound(soundTypeStone); + } + + @Override + public Item getItemDropped(int par1, Random random, int par2) + { + return ModItems.chalk; + } + + @Override + public int quantityDropped(Random random) + { + return (random.nextInt(4) + 1); + } +} diff --git a/src/main/java/com/pahimar/ee3/block/BlockEE.java b/src/main/java/com/pahimar/ee3/block/BlockEE.java new file mode 100644 index 00000000..241c0fe8 --- /dev/null +++ b/src/main/java/com/pahimar/ee3/block/BlockEE.java @@ -0,0 +1,134 @@ +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.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 class BlockEE extends Block +{ + public BlockEE() + { + this(Material.rock); + } + + public BlockEE(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) + { + 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/BlockInfusedCloth.java b/src/main/java/com/pahimar/ee3/block/BlockInfusedCloth.java new file mode 100644 index 00000000..ffb20d7f --- /dev/null +++ b/src/main/java/com/pahimar/ee3/block/BlockInfusedCloth.java @@ -0,0 +1,94 @@ +package com.pahimar.ee3.block; + +import com.pahimar.ee3.reference.Colors; +import com.pahimar.ee3.reference.Names; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; + +import java.util.List; + +public class BlockInfusedCloth extends BlockEE +{ + public BlockInfusedCloth() + { + super(Material.cloth); + this.setHardness(0.8f); + this.setBlockName(Names.Blocks.INFUSED_CLOTH); + this.setStepSound(soundTypeCloth); + } + + @Override + public int damageDropped(int metaData) + { + return metaData; + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubBlocks(Item item, CreativeTabs creativeTabs, List list) + { + for (int meta = 0; meta < 3; meta++) + { + list.add(new ItemStack(item, 1, meta)); + } + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) + { + blockIcon = iconRegister.registerIcon("wool_colored_white"); + } + + @Override + @SideOnly(Side.CLIENT) + public int colorMultiplier(IBlockAccess blockAccess, int x, int y, int z) + { + int metaData = blockAccess.getBlockMetadata(x, y, z); + + if (metaData == 0) + { + return Integer.parseInt(Colors.INFUSED_CLOTH_VERDANT, 16); + } + else if (metaData == 1) + { + return Integer.parseInt(Colors.INFUSED_CLOTH_AZURE, 16); + } + else if (metaData == 2) + { + return Integer.parseInt(Colors.INFUSED_CLOTH_MINIUM, 16); + } + else + { + return Integer.parseInt(Colors.PURE_WHITE, 16); + } + } + + @Override + @SideOnly(Side.CLIENT) + public int getRenderColor(int metaData) + { + if (metaData == 0) + { + return Integer.parseInt(Colors.INFUSED_CLOTH_VERDANT, 16); + } + else if (metaData == 1) + { + return Integer.parseInt(Colors.INFUSED_CLOTH_AZURE, 16); + } + else if (metaData == 2) + { + return Integer.parseInt(Colors.INFUSED_CLOTH_MINIUM, 16); + } + else + { + return Integer.parseInt(Colors.PURE_WHITE, 16); + } + } +} diff --git a/src/main/java/com/pahimar/ee3/block/BlockInfusedPlank.java b/src/main/java/com/pahimar/ee3/block/BlockInfusedPlank.java new file mode 100644 index 00000000..e39c3885 --- /dev/null +++ b/src/main/java/com/pahimar/ee3/block/BlockInfusedPlank.java @@ -0,0 +1,93 @@ +package com.pahimar.ee3.block; + +import com.pahimar.ee3.reference.Colors; +import com.pahimar.ee3.reference.Names; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; + +import java.util.List; + +public class BlockInfusedPlank extends BlockEE +{ + public BlockInfusedPlank() + { + super(Material.wood); + this.setHardness(2.0f); + this.setResistance(5.0f); + this.setBlockName(Names.Blocks.INFUSED_PLANK); + this.setStepSound(soundTypeWood); + } + + @Override + public int damageDropped(int metaData) + { + return metaData; + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubBlocks(Item item, CreativeTabs creativeTabs, List list) + { + for (int meta = 0; meta < 3; meta++) + { + list.add(new ItemStack(item, 1, meta)); + } + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) + { + blockIcon = iconRegister.registerIcon("planks_oak"); + } + + @SideOnly(Side.CLIENT) + public int colorMultiplier(IBlockAccess blockAccess, int x, int y, int z) + { + int metaData = blockAccess.getBlockMetadata(x, y, z); + + if (metaData == 0) + { + return Integer.parseInt(Colors.INFUSED_PLANKS_VERDANT, 16); + } + else if (metaData == 1) + { + return Integer.parseInt(Colors.INFUSED_PLANKS_AZURE, 16); + } + else if (metaData == 2) + { + return Integer.parseInt(Colors.INFUSED_PLANKS_MINIUM, 16); + } + else + { + return Integer.parseInt(Colors.PURE_WHITE, 16); + } + } + + @SideOnly(Side.CLIENT) + public int getRenderColor(int metaData) + { + if (metaData == 0) + { + return Integer.parseInt(Colors.INFUSED_PLANKS_VERDANT, 16); + } + else if (metaData == 1) + { + return Integer.parseInt(Colors.INFUSED_PLANKS_AZURE, 16); + } + else if (metaData == 2) + { + return Integer.parseInt(Colors.INFUSED_PLANKS_MINIUM, 16); + } + else + { + return Integer.parseInt(Colors.PURE_WHITE, 16); + } + } +} diff --git a/src/main/java/com/pahimar/ee3/block/BlockInfusedWood.java b/src/main/java/com/pahimar/ee3/block/BlockInfusedWood.java new file mode 100644 index 00000000..406f3e78 --- /dev/null +++ b/src/main/java/com/pahimar/ee3/block/BlockInfusedWood.java @@ -0,0 +1,168 @@ +package com.pahimar.ee3.block; + +import com.pahimar.ee3.reference.Colors; +import com.pahimar.ee3.reference.Names; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +import java.util.List; + +public class BlockInfusedWood extends BlockEE +{ + @SideOnly(Side.CLIENT) + private IIcon logEnd, logSide; + + public BlockInfusedWood() + { + super(Material.wood); + this.setHardness(2.0f); + this.setBlockName(Names.Blocks.INFUSED_WOOD); + this.setStepSound(soundTypeWood); + } + + @Override + public int damageDropped(int metaData) + { + return metaData & 3; + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubBlocks(Item item, CreativeTabs creativeTabs, List list) + { + for (int meta = 0; meta < 3; meta++) + { + list.add(new ItemStack(item, 1, meta)); + } + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) + { + logEnd = iconRegister.registerIcon("log_oak_top"); + logSide = iconRegister.registerIcon("log_oak"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metaData) + { + if (ForgeDirection.getOrientation(side) == ForgeDirection.UP || ForgeDirection.getOrientation(side) == ForgeDirection.DOWN) + { + if (metaData >> 2 == 0) + { + return logEnd; + } + else + { + return logSide; + } + } + else if (ForgeDirection.getOrientation(side) == ForgeDirection.NORTH || ForgeDirection.getOrientation(side) == ForgeDirection.SOUTH) + { + if (metaData >> 2 == 2) + { + return logEnd; + } + else + { + return logSide; + } + } + else + { + if (metaData >> 2 == 1) + { + return logEnd; + } + else + { + return logSide; + } + } + } + + /** + * Called when a block is placed using its ItemBlock. Args: World, X, Y, Z, side, hitX, hitY, hitZ, block metadata + */ + @Override + public int onBlockPlaced(World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ, int metaData) + { + int logType = metaData & 3; + byte rotation = 0; + + switch (side) + { + case 0: + case 1: + rotation = 0; + break; + case 2: + case 3: + rotation = 8; + break; + case 4: + case 5: + rotation = 4; + } + + int newMetaData = logType | rotation; + world.setBlockMetadataWithNotify(x, y, z, newMetaData, 3); + return newMetaData; + } + + @SideOnly(Side.CLIENT) + public int colorMultiplier(IBlockAccess blockAccess, int x, int y, int z) + { + int metaData = blockAccess.getBlockMetadata(x, y, z) & 3; + + if (metaData == 0) + { + return Integer.parseInt(Colors.INFUSED_WOOD_VERDANT, 16); + } + else if (metaData == 1) + { + return Integer.parseInt(Colors.INFUSED_WOOD_AZURE, 16); + } + else if (metaData == 2) + { + return Integer.parseInt(Colors.INFUSED_WOOD_MINIUM, 16); + } + else + { + return Integer.parseInt(Colors.PURE_WHITE, 16); + } + } + + @SideOnly(Side.CLIENT) + public int getRenderColor(int metaData) + { + int adjustedMetaData = metaData & 3; + if (adjustedMetaData == 0) + { + return Integer.parseInt(Colors.INFUSED_WOOD_VERDANT, 16); + } + else if (adjustedMetaData == 1) + { + return Integer.parseInt(Colors.INFUSED_WOOD_AZURE, 16); + } + else if (adjustedMetaData == 2) + { + return Integer.parseInt(Colors.INFUSED_WOOD_MINIUM, 16); + } + else + { + return Integer.parseInt(Colors.PURE_WHITE, 16); + } + } +} diff --git a/src/main/java/com/pahimar/ee3/block/ModBlocks.java b/src/main/java/com/pahimar/ee3/block/ModBlocks.java index 44925017..4a8b6cba 100644 --- a/src/main/java/com/pahimar/ee3/block/ModBlocks.java +++ b/src/main/java/com/pahimar/ee3/block/ModBlocks.java @@ -1,9 +1,27 @@ package com.pahimar.ee3.block; +import com.pahimar.ee3.item.ItemBlockAlchemicalFuel; +import com.pahimar.ee3.item.ItemBlockInfusedCloth; +import com.pahimar.ee3.item.ItemBlockInfusedPlank; +import com.pahimar.ee3.item.ItemBlockInfusedWood; +import com.pahimar.ee3.reference.Names; +import cpw.mods.fml.common.registry.GameRegistry; + public class ModBlocks { + public static final BlockEE chalk = new BlockChalk(); + public static final BlockEE alchemicalFuel = new BlockAlchemicalFuel(); + public static final BlockEE infusedCloth = new BlockInfusedCloth(); + public static final BlockEE infusedWood = new BlockInfusedWood(); + public static final BlockEE infusedPlank = new BlockInfusedPlank(); + + public static void init() { - + GameRegistry.registerBlock(chalk, "tile." + Names.Items.CHALK); + GameRegistry.registerBlock(alchemicalFuel, ItemBlockAlchemicalFuel.class, "tile." + Names.Items.ALCHEMICAL_FUEL); + GameRegistry.registerBlock(infusedCloth, ItemBlockInfusedCloth.class, "tile." + Names.Blocks.INFUSED_CLOTH); + GameRegistry.registerBlock(infusedWood, ItemBlockInfusedWood.class, "tile." + Names.Blocks.INFUSED_WOOD); + GameRegistry.registerBlock(infusedPlank, ItemBlockInfusedPlank.class, "tile." + Names.Blocks.INFUSED_PLANK); } } diff --git a/src/main/java/com/pahimar/ee3/item/ItemBlockAlchemicalFuel.java b/src/main/java/com/pahimar/ee3/item/ItemBlockAlchemicalFuel.java new file mode 100644 index 00000000..b3a33340 --- /dev/null +++ b/src/main/java/com/pahimar/ee3/item/ItemBlockAlchemicalFuel.java @@ -0,0 +1,14 @@ +package com.pahimar.ee3.item; + +import com.pahimar.ee3.block.ModBlocks; +import com.pahimar.ee3.reference.Names; +import net.minecraft.block.Block; +import net.minecraft.item.ItemMultiTexture; + +public class ItemBlockAlchemicalFuel extends ItemMultiTexture +{ + public ItemBlockAlchemicalFuel(Block block) + { + super(ModBlocks.alchemicalFuel, ModBlocks.alchemicalFuel, Names.Items.ALCHEMICAL_FUEL_SUBTYPES); + } +} diff --git a/src/main/java/com/pahimar/ee3/item/ItemBlockInfusedCloth.java b/src/main/java/com/pahimar/ee3/item/ItemBlockInfusedCloth.java new file mode 100644 index 00000000..3ee7ca23 --- /dev/null +++ b/src/main/java/com/pahimar/ee3/item/ItemBlockInfusedCloth.java @@ -0,0 +1,34 @@ +package com.pahimar.ee3.item; + +import com.pahimar.ee3.reference.Messages; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.util.StatCollector; + +import java.util.List; + +public class ItemBlockInfusedCloth extends ItemBlock +{ + public ItemBlockInfusedCloth(Block block) + { + super(block); + this.setHasSubtypes(true); + } + + @Override + public int getMetadata(int meta) + { + return meta; + } + + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack itemStack, EntityPlayer entityPlayer, List list, boolean flag) + { + int dustMetaData = (itemStack.getItemDamage() % 3) + 1; + list.add(String.format("%s %s", StatCollector.translateToLocal(Messages.TOOLTIP_INFUSED_WITH), new ItemStack(ModItems.alchemicalDust, 1, dustMetaData).getDisplayName())); + } +} diff --git a/src/main/java/com/pahimar/ee3/item/ItemBlockInfusedPlank.java b/src/main/java/com/pahimar/ee3/item/ItemBlockInfusedPlank.java new file mode 100644 index 00000000..01c1b700 --- /dev/null +++ b/src/main/java/com/pahimar/ee3/item/ItemBlockInfusedPlank.java @@ -0,0 +1,34 @@ +package com.pahimar.ee3.item; + +import com.pahimar.ee3.reference.Messages; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.util.StatCollector; + +import java.util.List; + +public class ItemBlockInfusedPlank extends ItemBlock +{ + public ItemBlockInfusedPlank(Block block) + { + super(block); + this.setHasSubtypes(true); + } + + @Override + public int getMetadata(int meta) + { + return meta; + } + + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack itemStack, EntityPlayer entityPlayer, List list, boolean flag) + { + int dustMetaData = (itemStack.getItemDamage() % 3) + 1; + list.add(String.format("%s %s", StatCollector.translateToLocal(Messages.TOOLTIP_INFUSED_WITH), new ItemStack(ModItems.alchemicalDust, 1, dustMetaData).getDisplayName())); + } +} diff --git a/src/main/java/com/pahimar/ee3/item/ItemBlockInfusedWood.java b/src/main/java/com/pahimar/ee3/item/ItemBlockInfusedWood.java new file mode 100644 index 00000000..837f80bc --- /dev/null +++ b/src/main/java/com/pahimar/ee3/item/ItemBlockInfusedWood.java @@ -0,0 +1,34 @@ +package com.pahimar.ee3.item; + +import com.pahimar.ee3.reference.Messages; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.util.StatCollector; + +import java.util.List; + +public class ItemBlockInfusedWood extends ItemBlock +{ + public ItemBlockInfusedWood(Block block) + { + super(block); + this.setHasSubtypes(true); + } + + @Override + public int getMetadata(int meta) + { + return meta; + } + + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack itemStack, EntityPlayer entityPlayer, List list, boolean flag) + { + int dustMetaData = (itemStack.getItemDamage() % 3) + 1; + list.add(String.format("%s %s", StatCollector.translateToLocal(Messages.TOOLTIP_INFUSED_WITH), new ItemStack(ModItems.alchemicalDust, 1, dustMetaData).getDisplayName())); + } +} diff --git a/src/main/java/com/pahimar/ee3/item/ItemDiviningRod.java b/src/main/java/com/pahimar/ee3/item/ItemDiviningRod.java index 172fdde1..24095ca1 100644 --- a/src/main/java/com/pahimar/ee3/item/ItemDiviningRod.java +++ b/src/main/java/com/pahimar/ee3/item/ItemDiviningRod.java @@ -1,5 +1,13 @@ package com.pahimar.ee3.item; +import com.pahimar.ee3.reference.Names; + public class ItemDiviningRod extends ItemEE { + public ItemDiviningRod() + { + super(); + this.setHasSubtypes(true); + this.setUnlocalizedName(Names.Items.DIVINING_ROD); + } } diff --git a/src/main/java/com/pahimar/ee3/item/ModItems.java b/src/main/java/com/pahimar/ee3/item/ModItems.java index 3ea1aeed..73182edb 100644 --- a/src/main/java/com/pahimar/ee3/item/ModItems.java +++ b/src/main/java/com/pahimar/ee3/item/ModItems.java @@ -2,19 +2,19 @@ package com.pahimar.ee3.item; import com.pahimar.ee3.reference.Names; import cpw.mods.fml.common.registry.GameRegistry; -import net.minecraft.item.Item; public class ModItems { - public static final Item alchemicalBag = new ItemAlchemicalBag(); - public static final Item alchemicalDust = new ItemAlchemicalDust(); - public static final Item alchemicalFuel = new ItemAlchemicalFuel(); - public static final Item inertStone = new ItemInertStone(); - public static final Item miniumShard = new ItemMiniumShard(); - public static final Item miniumStone = new ItemMiniumStone(); - public static final Item philosophersStone = new ItemPhilosophersStone(); - public static final Item alchemicalInventoryUpgrade = new ItemAlchemicalInventoryUpgrade(); - public static final Item chalk = new ItemChalk(); + public static final ItemEE alchemicalBag = new ItemAlchemicalBag(); + public static final ItemEE alchemicalDust = new ItemAlchemicalDust(); + public static final ItemEE alchemicalFuel = new ItemAlchemicalFuel(); + public static final ItemEE inertStone = new ItemInertStone(); + public static final ItemEE miniumShard = new ItemMiniumShard(); + public static final ItemEE miniumStone = new ItemMiniumStone(); + public static final ItemEE philosophersStone = new ItemPhilosophersStone(); + public static final ItemEE alchemicalInventoryUpgrade = new ItemAlchemicalInventoryUpgrade(); + public static final ItemEE chalk = new ItemChalk(); + public static final ItemEE diviningRod = new ItemDiviningRod(); public static void init() { @@ -27,5 +27,6 @@ public class ModItems GameRegistry.registerItem(philosophersStone, "item." + Names.Items.PHILOSOPHERS_STONE); GameRegistry.registerItem(chalk, "item." + Names.Items.CHALK); GameRegistry.registerItem(alchemicalInventoryUpgrade, "item." + Names.Items.ALCHEMICAL_UPGRADE); + GameRegistry.registerItem(diviningRod, "item." + Names.Items.DIVINING_ROD); } } diff --git a/src/main/java/com/pahimar/ee3/reference/Messages.java b/src/main/java/com/pahimar/ee3/reference/Messages.java index fefed9bf..a07dbd60 100644 --- a/src/main/java/com/pahimar/ee3/reference/Messages.java +++ b/src/main/java/com/pahimar/ee3/reference/Messages.java @@ -2,5 +2,6 @@ package com.pahimar.ee3.reference; public class Messages { + public static final String TOOLTIP_INFUSED_WITH = "tooltip.ee3:infusedPrefix"; public static final String UPGRADES_CHESTS = "tooltip.ee3:upgradesPrefix"; } diff --git a/src/main/java/com/pahimar/ee3/reference/Names.java b/src/main/java/com/pahimar/ee3/reference/Names.java index 089e79d6..107043ac 100644 --- a/src/main/java/com/pahimar/ee3/reference/Names.java +++ b/src/main/java/com/pahimar/ee3/reference/Names.java @@ -2,6 +2,13 @@ package com.pahimar.ee3.reference; public class Names { + public static class Blocks + { + public static final String INFUSED_CLOTH = "infusedCloth"; + public static final String INFUSED_WOOD = "infusedWood"; + public static final String INFUSED_PLANK = "infusedPlank"; + } + public static class Items { public static final String ALCHEMICAL_BAG = "alchemicalBag"; @@ -19,6 +26,7 @@ public class Names public static final String PHILOSOPHERS_STONE = "stonePhilosophers"; public static final String ALCHEMICAL_UPGRADE = "alchemicalUpgrade"; public static final String[] ALCHEMICAL_UPGRADE_SUBTYPES = {"verdant", "azure", "minium"}; + public static final String DIVINING_ROD = "diviningRod"; } public static class NBT @@ -35,5 +43,6 @@ public class Names public static final String STATE = "teState"; public static final String CUSTOM_NAME = "CustomName"; public static final String DIRECTION = "teDirection"; + public static final String OWNER = "owner"; } } diff --git a/src/main/java/com/pahimar/ee3/tileentity/TileEntityEE.java b/src/main/java/com/pahimar/ee3/tileentity/TileEntityEE.java new file mode 100644 index 00000000..d667ebc2 --- /dev/null +++ b/src/main/java/com/pahimar/ee3/tileentity/TileEntityEE.java @@ -0,0 +1,121 @@ +package com.pahimar.ee3.tileentity; + +import com.pahimar.ee3.reference.Names; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityEE extends TileEntity +{ + protected ForgeDirection orientation; + protected byte state; + protected String customName; + protected String owner; + + public TileEntityEE() + { + orientation = ForgeDirection.SOUTH; + state = 0; + customName = ""; + } + + public ForgeDirection getOrientation() + { + return orientation; + } + + public void setOrientation(int orientation) + { + this.orientation = ForgeDirection.getOrientation(orientation); + } + + public void setOrientation(ForgeDirection orientation) + { + this.orientation = orientation; + } + + public short getState() + { + return state; + } + + public void setState(byte state) + { + this.state = state; + } + + public boolean hasCustomName() + { + return customName != null && customName.length() > 0; + } + + public String getCustomName() + { + return customName; + } + + public void setCustomName(String customName) + { + this.customName = customName; + } + + public boolean hasOwner() + { + return owner != null && owner.length() > 0; + } + + public String getOwner() + { + return owner; + } + + public void setOwner(String owner) + { + this.owner = owner; + } + + @Override + public void readFromNBT(NBTTagCompound nbtTagCompound) + { + super.readFromNBT(nbtTagCompound); + + if (nbtTagCompound.hasKey(Names.NBT.DIRECTION)) + { + this.orientation = ForgeDirection.getOrientation(nbtTagCompound.getByte(Names.NBT.DIRECTION)); + } + + if (nbtTagCompound.hasKey(Names.NBT.STATE)) + { + this.state = nbtTagCompound.getByte(Names.NBT.STATE); + } + + if (nbtTagCompound.hasKey(Names.NBT.CUSTOM_NAME)) + { + this.customName = nbtTagCompound.getString(Names.NBT.CUSTOM_NAME); + } + + if (nbtTagCompound.hasKey(Names.NBT.OWNER)) + { + this.owner = nbtTagCompound.getString(Names.NBT.OWNER); + } + } + + @Override + public void writeToNBT(NBTTagCompound nbtTagCompound) + { + super.writeToNBT(nbtTagCompound); + + nbtTagCompound.setByte(Names.NBT.DIRECTION, (byte) orientation.ordinal()); + nbtTagCompound.setByte(Names.NBT.STATE, state); + + if (this.hasCustomName()) + { + nbtTagCompound.setString(Names.NBT.CUSTOM_NAME, customName); + } + + if (this.hasOwner()) + { + nbtTagCompound.setString(Names.NBT.OWNER, owner); + } + } +} diff --git a/src/main/resources/assets/ee3/lang/en_US.lang b/src/main/resources/assets/ee3/lang/en_US.lang index 38aca977..0a6f9ff6 100644 --- a/src/main/resources/assets/ee3/lang/en_US.lang +++ b/src/main/resources/assets/ee3/lang/en_US.lang @@ -25,9 +25,9 @@ item.ee3:alchemicalUpgrade.minium.name=Minium Upgrade # Block localizations tile.ee3:alchemicalChest.name=Alchemical Chest -tile.ee3:alchemicalFuelBlock.alchemicalCoal.name=Alchemical Coal Block -tile.ee3:alchemicalFuelBlock.mobiusFuel.name=Mobius Fuel Block -tile.ee3:alchemicalFuelBlock.aeternalisFuel.name=Aeternalis Fuel Block +tile.ee3:alchemicalFuel.alchemicalCoal.name=Block of Alchemical Coal +tile.ee3:alchemicalFuel.mobiusFuel.name=Block of Mobius Fuel +tile.ee3:alchemicalFuel.aeternalisFuel.name=Block of Aeternalis Fuel tile.ee3:aludel.name=Aludel Base tile.ee3:calcinator.name=Calcinator tile.ee3:chalk.name=Chalk @@ -35,7 +35,7 @@ tile.ee3:glassBell.name=Glass Bell tile.ee3:researchStation.name=Research Station [WIP] tile.ee3:infusedCloth.name=Infused Cloth tile.ee3:infusedWood.name=Infused Wood -tile.ee3:infusedPlanks.name=Infused Wood Planks +tile.ee3:infusedPlank.name=Infused Wood Planks # GUI localizations container.ee3:alchemicalBag=Alchemical Bag diff --git a/src/main/resources/assets/ee3/textures/blocks/alchemicalFuelBlock.aeternalisFuel_side.png b/src/main/resources/assets/ee3/textures/blocks/alchemicalFuel.aeternalisFuel_side.png similarity index 100% rename from src/main/resources/assets/ee3/textures/blocks/alchemicalFuelBlock.aeternalisFuel_side.png rename to src/main/resources/assets/ee3/textures/blocks/alchemicalFuel.aeternalisFuel_side.png diff --git a/src/main/resources/assets/ee3/textures/blocks/alchemicalFuel.aeternalisFuel_side.png.mcmeta b/src/main/resources/assets/ee3/textures/blocks/alchemicalFuel.aeternalisFuel_side.png.mcmeta new file mode 100644 index 00000000..ee414103 --- /dev/null +++ b/src/main/resources/assets/ee3/textures/blocks/alchemicalFuel.aeternalisFuel_side.png.mcmeta @@ -0,0 +1,7 @@ +{ + "animation": { + "frames": [ + 0 + ] + } +} diff --git a/src/main/resources/assets/ee3/textures/blocks/alchemicalFuelBlock.aeternalisFuel_top.png b/src/main/resources/assets/ee3/textures/blocks/alchemicalFuel.aeternalisFuel_top.png similarity index 100% rename from src/main/resources/assets/ee3/textures/blocks/alchemicalFuelBlock.aeternalisFuel_top.png rename to src/main/resources/assets/ee3/textures/blocks/alchemicalFuel.aeternalisFuel_top.png diff --git a/src/main/resources/assets/ee3/textures/blocks/alchemicalFuelBlock.alchemicalCoal_side.png b/src/main/resources/assets/ee3/textures/blocks/alchemicalFuel.alchemicalCoal_side.png similarity index 100% rename from src/main/resources/assets/ee3/textures/blocks/alchemicalFuelBlock.alchemicalCoal_side.png rename to src/main/resources/assets/ee3/textures/blocks/alchemicalFuel.alchemicalCoal_side.png diff --git a/src/main/resources/assets/ee3/textures/blocks/alchemicalFuelBlock.alchemicalCoal_top.png b/src/main/resources/assets/ee3/textures/blocks/alchemicalFuel.alchemicalCoal_top.png similarity index 100% rename from src/main/resources/assets/ee3/textures/blocks/alchemicalFuelBlock.alchemicalCoal_top.png rename to src/main/resources/assets/ee3/textures/blocks/alchemicalFuel.alchemicalCoal_top.png diff --git a/src/main/resources/assets/ee3/textures/blocks/alchemicalFuelBlock.mobiusFuel_side.png b/src/main/resources/assets/ee3/textures/blocks/alchemicalFuel.mobiusFuel_side.png similarity index 100% rename from src/main/resources/assets/ee3/textures/blocks/alchemicalFuelBlock.mobiusFuel_side.png rename to src/main/resources/assets/ee3/textures/blocks/alchemicalFuel.mobiusFuel_side.png diff --git a/src/main/resources/assets/ee3/textures/blocks/alchemicalFuel.mobiusFuel_side.png.mcmeta b/src/main/resources/assets/ee3/textures/blocks/alchemicalFuel.mobiusFuel_side.png.mcmeta new file mode 100644 index 00000000..ee414103 --- /dev/null +++ b/src/main/resources/assets/ee3/textures/blocks/alchemicalFuel.mobiusFuel_side.png.mcmeta @@ -0,0 +1,7 @@ +{ + "animation": { + "frames": [ + 0 + ] + } +} diff --git a/src/main/resources/assets/ee3/textures/blocks/alchemicalFuelBlock.mobiusFuel_top.png b/src/main/resources/assets/ee3/textures/blocks/alchemicalFuel.mobiusFuel_top.png similarity index 100% rename from src/main/resources/assets/ee3/textures/blocks/alchemicalFuelBlock.mobiusFuel_top.png rename to src/main/resources/assets/ee3/textures/blocks/alchemicalFuel.mobiusFuel_top.png