diff options
Diffstat (limited to 'src/Java/miscutil/core')
-rw-r--r-- | src/Java/miscutil/core/block/HeliumGenerator.java | 160 | ||||
-rw-r--r-- | src/Java/miscutil/core/block/ModBlocks.java | 5 | ||||
-rw-r--r-- | src/Java/miscutil/core/gui/ContainerHeliumGenerator.java | 95 | ||||
-rw-r--r-- | src/Java/miscutil/core/gui/GUIHeliumGenerator.java | 44 | ||||
-rw-r--r-- | src/Java/miscutil/core/gui/ModGUI.java | 37 | ||||
-rw-r--r-- | src/Java/miscutil/core/item/ModItems.java | 330 | ||||
-rw-r--r-- | src/Java/miscutil/core/item/base/BaseItemGeneric.java | 17 | ||||
-rw-r--r-- | src/Java/miscutil/core/tileentities/TILE_ENTITY_BASE.java | 39 | ||||
-rw-r--r-- | src/Java/miscutil/core/tileentities/TileEntityHeliumGenerator.java | 134 | ||||
-rw-r--r-- | src/Java/miscutil/core/util/UtilsItems.java | 11 |
10 files changed, 716 insertions, 156 deletions
diff --git a/src/Java/miscutil/core/block/HeliumGenerator.java b/src/Java/miscutil/core/block/HeliumGenerator.java new file mode 100644 index 0000000000..0df56d0022 --- /dev/null +++ b/src/Java/miscutil/core/block/HeliumGenerator.java @@ -0,0 +1,160 @@ +package miscutil.core.block; + +import java.util.Random; + +import miscutil.MiscUtils; +import miscutil.core.creative.AddToCreativeTab; +import miscutil.core.lib.CORE; +import miscutil.core.tileentities.TileEntityHeliumGenerator; +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.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.MathHelper; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class HeliumGenerator extends BlockContainer { + + private IIcon top, sides, front; + private Random randy = new Random(); + + public HeliumGenerator(){ + super(Material.iron); + setStepSound(Block.soundTypeMetal); + setHardness(20.0F); + setBlockName("helium_collector"); + setHarvestLevel("pickaxe", 3); + setCreativeTab(AddToCreativeTab.tabMachines); + } + + @SideOnly(Side.CLIENT) + @Override + public void registerBlockIcons (IIconRegister iconRegister) + { + this.top = iconRegister.registerIcon(CORE.MODID+":blockDefault"); + this.sides = iconRegister.registerIcon(CORE.MODID+":blockDefault"); + this.front = iconRegister.registerIcon(CORE.MODID+":blockDefault"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side){ + if(side == 1) + return top; + int facing = 2; + TileEntityHeliumGenerator machine = (TileEntityHeliumGenerator)world.getTileEntity(x, y, z); + if(machine != null) + facing = machine.getFacing(); + if(side == facing) + return front; + else + return sides; + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon (int side, int metadata) + { + if(side == 1) + return top; + if(side == 3) + return front; + return sides; + } + + @Override + public boolean onBlockActivated (World world, int x, int y, int z, EntityPlayer player, int par6, float par7, float par8, float par9) + { + if (world.isRemote) + { + return true; + } + player.openGui(MiscUtils.instance, 2, world, x, y, z); + return true; + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) + { + return new TileEntityHeliumGenerator(); + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack item) + { + TileEntity tile = world.getTileEntity(x, y, z); + if(tile instanceof TileEntityHeliumGenerator) { + TileEntityHeliumGenerator machine = (TileEntityHeliumGenerator)tile; + int l = MathHelper.floor_double((double) (player.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; + + if (l == 0) + machine.setFacing(2); + + if (l == 1) + machine.setFacing(5); + + if (l == 2) + machine.setFacing(3); + + if (l == 3) + machine.setFacing(4); + } + + } + + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int wut) + { + TileEntityHeliumGenerator collector = (TileEntityHeliumGenerator)world.getTileEntity(x, y, z); + + if (collector != null) + { + ItemStack itemstack = collector.getStackInSlot(0); + + if (itemstack != null) + { + float f = this.randy.nextFloat() * 0.8F + 0.1F; + float f1 = this.randy.nextFloat() * 0.8F + 0.1F; + float f2 = this.randy.nextFloat() * 0.8F + 0.1F; + + while (itemstack.stackSize > 0) + { + int j1 = this.randy.nextInt(21) + 10; + + if (j1 > itemstack.stackSize) + { + j1 = itemstack.stackSize; + } + + itemstack.stackSize -= j1; + EntityItem entityitem = new EntityItem(world, (double)((float)x + f), (double)((float)y + f1), (double)((float)z + f2), new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); + + if (itemstack.hasTagCompound()) + { + entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy()); + } + + float f3 = 0.05F; + entityitem.motionX = (double)((float)this.randy.nextGaussian() * f3); + entityitem.motionY = (double)((float)this.randy.nextGaussian() * f3 + 0.2F); + entityitem.motionZ = (double)((float)this.randy.nextGaussian() * f3); + world.spawnEntityInWorld(entityitem); + } + } + + world.func_147453_f(x, y, z, block); + } + + super.breakBlock(world, x, y, z, block, wut); + } +} diff --git a/src/Java/miscutil/core/block/ModBlocks.java b/src/Java/miscutil/core/block/ModBlocks.java index 7ddc3d07af..b9a74a08c4 100644 --- a/src/Java/miscutil/core/block/ModBlocks.java +++ b/src/Java/miscutil/core/block/ModBlocks.java @@ -2,6 +2,7 @@ package miscutil.core.block; import miscutil.core.block.fluids.BlocktestFluid; import miscutil.core.lib.CORE; +import miscutil.core.tileentities.TileEntityHeliumGenerator; import miscutil.core.util.Utils; import miscutil.gregtech.common.blocks.GregtechMetaCasingBlocks; import net.minecraft.block.Block; @@ -18,6 +19,7 @@ public final class ModBlocks { // WIP TODO public static Block blockToolBuilder; public static Block blockGriefSaver; public static Block blockCasingsMisc; + public static Block blockHeliumGenerator; @@ -74,6 +76,9 @@ public final class ModBlocks { testFluidBlock = new BlocktestFluid(testFluid, Material.water).setBlockName("yourFluid"); GameRegistry.registerBlock(testFluidBlock, CORE.MODID + "_" + testFluidBlock.getUnlocalizedName().substring(5)); testFluid.setUnlocalizedName(testFluidBlock.getUnlocalizedName()); + + blockHeliumGenerator = GameRegistry.registerBlock(new HeliumGenerator(), "Helium_Collector"); + GameRegistry.registerTileEntity(TileEntityHeliumGenerator.class, "Helium"); //WIP TODO //GameRegistry.registerBlock(blockGriefSaver, "blockGriefSaver"); diff --git a/src/Java/miscutil/core/gui/ContainerHeliumGenerator.java b/src/Java/miscutil/core/gui/ContainerHeliumGenerator.java new file mode 100644 index 0000000000..ae8e2d3176 --- /dev/null +++ b/src/Java/miscutil/core/gui/ContainerHeliumGenerator.java @@ -0,0 +1,95 @@ +package miscutil.core.gui; + +import miscutil.core.tileentities.TileEntityHeliumGenerator; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.inventory.SlotFurnace; +import net.minecraft.item.ItemStack; + +public class ContainerHeliumGenerator extends Container { + private TileEntityHeliumGenerator tileThis; + + public ContainerHeliumGenerator(InventoryPlayer player, TileEntityHeliumGenerator machine) + { + this.tileThis = machine; + this.addSlotToContainer(new SlotFurnace(player.player, machine, 2, 80, 35)); + int i; + + for (i = 0; i < 3; ++i) + { + for (int j = 0; j < 9; ++j) + { + this.addSlotToContainer(new Slot(player, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); + } + } + + for (i = 0; i < 9; ++i) + { + this.addSlotToContainer(new Slot(player, i, 8 + i * 18, 142)); + } + } + + public boolean canInteractWith(EntityPlayer player) + { + return this.tileThis.isUseableByPlayer(player); + } + + /** + * Called when a player shift-clicks on a slot. You must override this or you will crash when someone does that. + */ + public ItemStack transferStackInSlot(EntityPlayer player, int slotNumber) + { + ItemStack itemstack = null; + Slot slot = (Slot)this.inventorySlots.get(slotNumber); + + if (slot != null && slot.getHasStack()) + { + ItemStack itemstack1 = slot.getStack(); + itemstack = itemstack1.copy(); + + if (slotNumber == 0) + { + if (!this.mergeItemStack(itemstack1, 1, 37, true)) + { + return null; + } + + slot.onSlotChange(itemstack1, itemstack); + } + else + { + if (slotNumber >= 1 && slotNumber < 28) + { + if (!this.mergeItemStack(itemstack1, 28, 37, false)) + { + return null; + } + } + else if (slotNumber >= 28 && slotNumber < 37 && !this.mergeItemStack(itemstack1, 1, 28, false)) + { + return null; + } + } + + if (itemstack1.stackSize == 0) + { + slot.putStack((ItemStack)null); + } + else + { + slot.onSlotChanged(); + } + + if (itemstack1.stackSize == itemstack.stackSize) + { + return null; + } + + slot.onPickupFromSlot(player, itemstack1); + } + + return itemstack; + } +}
\ No newline at end of file diff --git a/src/Java/miscutil/core/gui/GUIHeliumGenerator.java b/src/Java/miscutil/core/gui/GUIHeliumGenerator.java new file mode 100644 index 0000000000..6510f7480f --- /dev/null +++ b/src/Java/miscutil/core/gui/GUIHeliumGenerator.java @@ -0,0 +1,44 @@ +package miscutil.core.gui; + +import miscutil.core.lib.CORE; +import miscutil.core.tileentities.TileEntityHeliumGenerator; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.StatCollector; + +import org.lwjgl.opengl.GL11; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +@SideOnly(Side.CLIENT) +public class GUIHeliumGenerator extends GuiContainer +{ + private static final ResourceLocation collectorGuiTexture = new ResourceLocation(CORE.MODID, "textures/gui/helium_collector_gui.png"); + + public GUIHeliumGenerator(InventoryPlayer player, TileEntityHeliumGenerator machine) + { + super(new ContainerHeliumGenerator(player, machine)); + } + + /** + * Draw the foreground layer for the GuiContainer (everything in front of the items) + */ + protected void drawGuiContainerForegroundLayer(int p_146979_1_, int p_146979_2_) + { + String s = StatCollector.translateToLocal("container.helium_collector"); + this.fontRendererObj.drawString(s, this.xSize / 2 - this.fontRendererObj.getStringWidth(s) / 2, 6, 4210752); + this.fontRendererObj.drawString(StatCollector.translateToLocal("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) + { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + this.mc.getTextureManager().bindTexture(collectorGuiTexture); + int k = (this.width - this.xSize) / 2; + int l = (this.height - this.ySize) / 2; + this.drawTexturedModalRect(k, l, 0, 0, this.xSize, this.ySize); + + } +}
\ No newline at end of file diff --git a/src/Java/miscutil/core/gui/ModGUI.java b/src/Java/miscutil/core/gui/ModGUI.java index 28987ccc1b..1e4d172637 100644 --- a/src/Java/miscutil/core/gui/ModGUI.java +++ b/src/Java/miscutil/core/gui/ModGUI.java @@ -1,6 +1,12 @@ package miscutil.core.gui; +import miscutil.MiscUtils; +import miscutil.core.tileentities.TileEntityHeliumGenerator; import miscutil.core.util.Utils; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.World; +import cpw.mods.fml.common.network.IGuiHandler; +import cpw.mods.fml.common.network.NetworkRegistry; public class ModGUI { @@ -8,8 +14,37 @@ public class ModGUI { public static void init(){ Utils.LOG_INFO("Registering GUIs."); - + NetworkRegistry.INSTANCE.registerGuiHandler(MiscUtils.instance, new GUI_HANDLER()); //Register GuiHandler //NetworkRegistry.INSTANCE.registerGuiHandler(MiscUtils.instance, new GuiHandler()); } } + +class GUI_HANDLER implements IGuiHandler { + + @Override + public Object getClientGuiElement (int ID, EntityPlayer player, World world, int x, int y, int z){ + if(ID == 0) + return false; + else if(ID == 1) + return false; + else if(ID == 2) + return new GUIHeliumGenerator(player.inventory, (TileEntityHeliumGenerator)world.getTileEntity(x, y, z)); + else if(ID == 3) + return false; + return null; + } + + @Override + public Object getServerGuiElement (int ID, EntityPlayer player, World world, int x, int y, int z){ + if(ID == 0) + return false; + else if(ID == 1) + return false; + else if(ID == 2) + return new ContainerHeliumGenerator(player.inventory, (TileEntityHeliumGenerator)world.getTileEntity(x, y, z)); + else if(ID == 3) + return false; + return null; + } +} diff --git a/src/Java/miscutil/core/item/ModItems.java b/src/Java/miscutil/core/item/ModItems.java index 0d7f4c2542..ab97e89edc 100644 --- a/src/Java/miscutil/core/item/ModItems.java +++ b/src/Java/miscutil/core/item/ModItems.java @@ -1,9 +1,7 @@ package miscutil.core.item; -import static miscutil.core.creative.AddToCreativeTab.tabMisc; import static miscutil.core.lib.CORE.LOAD_ALL_CONTENT; import miscutil.core.creative.AddToCreativeTab; -import miscutil.core.item.effects.RarityUncommon; import miscutil.core.item.general.BufferCore; import miscutil.core.item.tool.misc.SandstoneHammer; import miscutil.core.item.tool.staballoy.StaballoyAxe; @@ -11,13 +9,14 @@ import miscutil.core.item.tool.staballoy.StaballoyPickaxe; import miscutil.core.lib.CORE; import miscutil.core.lib.LoadedMods; import miscutil.core.util.Utils; +import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.Item.ToolMaterial; -import net.minecraft.item.ItemArmor.ArmorMaterial; import net.minecraftforge.common.util.EnumHelper; import cpw.mods.fml.common.registry.GameRegistry; public final class ModItems { + private static int totalGenerated = 0; /* A name for the material. This should be the same as the name of the variable we use to store the material (in this case "TUTORIAL"). A harvest level for pickaxes. This is a value between 0 and 3 and defines which blocks can be mined with this tool. Its also possible to create blocks which need a higher harvest level than 3, but then you are not able to mine them with vanilla tools. Common values for the harvest level are: @@ -59,22 +58,6 @@ public final class ModItems { public static ToolMaterial tutMaterial = EnumHelper.addToolMaterial("BloodSteel Tool Material", 3, 200, 15.0F, 4.0F, 10); public static ToolMaterial STABALLOY = EnumHelper.addToolMaterial("Staballoy", 3, 2500, 7, 1.0F, 18); - //Armour Materials - public static ArmorMaterial tutArmorMaterial = EnumHelper.addArmorMaterial("BloodSteel Armor Material", 33, new int[]{2, 5, 4, 2}, 10); - - //Base Classes For Items - public static Item tutPickaxe; - public static Item tutAxe; - public static Item tutSword; - public static Item tutHoe; - public static Item tutSpade; - - //Base Classes For Armour - public static Item tutHelmet; - public static Item tutPlate; - public static Item tutPants; - public static Item tutBoots; - //EnderIO public static Item itemPlateSoularium; public static Item itemPlateRedstoneAlloy; @@ -114,77 +97,34 @@ public final class ModItems { public static Item itemStaballoyAxe; public static Item itemPlateStaballoy; public static Item itemIngotStaballoy; - + //Tools public static Item itemSandstoneHammer; //Machine Related public static Item itemBufferCore0; - + //Material related public static Item itemStickyRubber; public static Item itemIngotBatteryAlloy; public static Item itemPlateBatteryAlloy; - public static Item item_PLEASE_FACTOR_ME_3; + public static Item itemHeliumBlob; public static Item item_PLEASE_FACTOR_ME_4; - - //@SuppressWarnings("unused") public static final void init(){ - /* //Blood Steel Equipment - - //Item Init - tutPickaxe = new BloodSteelPickaxe(tutMaterial).setUnlocalizedName("BloodSteelPickaxe").setCreativeTab(TMCreativeTabs.tabTools).setTextureName(CORE.MODID + ":BloodSteelPickaxe"); - tutAxe = new BloodSteelAxe(tutMaterial).setUnlocalizedName("BloodSteelAxe").setCreativeTab(TMCreativeTabs.tabTools).setTextureName(CORE.MODID + ":BloodSteelAxe"); - tutSword = new BloodSteelSword(tutMaterial).setUnlocalizedName("BloodSteelSword").setCreativeTab(TMCreativeTabs.tabCombat).setTextureName(CORE.MODID + ":BloodSteelSword"); - tutHoe = new BloodSteelHoe(tutMaterial).setUnlocalizedName("BloodSteelHoe").setCreativeTab(TMCreativeTabs.tabTools).setTextureName(CORE.MODID + ":BloodSteelHoe"); - tutSpade = new BloodSteelSpade(tutMaterial).setUnlocalizedName("BloodSteelSpade").setCreativeTab(TMCreativeTabs.tabTools).setTextureName(CORE.MODID + ":BloodSteelSpade"); - tutHelmet = new BloodSteelArmor(tutArmorMaterial, MiscUtils.proxy.addArmor("BloodSteelArmor"), 0).setUnlocalizedName("BloodSteelHelmet").setCreativeTab(TMCreativeTabs.tabCombat).setTextureName(CORE.MODID + ":BloodSteelHelmet"); - tutPlate = new BloodSteelArmor(tutArmorMaterial, MiscUtils.proxy.addArmor("BloodSteelArmor"), 1).setUnlocalizedName("BloodSteelPlate").setCreativeTab(TMCreativeTabs.tabCombat).setTextureName(CORE.MODID + ":BloodSteelPlate"); - tutPants = new BloodSteelArmor(tutArmorMaterial, MiscUtils.proxy.addArmor("BloodSteelArmor"), 2).setUnlocalizedName("BloodSteelPants").setCreativeTab(TMCreativeTabs.tabCombat).setTextureName(CORE.MODID + ":BloodSteelPants"); - tutBoots = new BloodSteelArmor(tutArmorMaterial, MiscUtils.proxy.addArmor("BloodSteelArmor"), 3).setUnlocalizedName("BloodSteelBoots").setCreativeTab(TMCreativeTabs.tabCombat).setTextureName(CORE.MODID + ":BloodSteelBoots"); - - //Registry - GameRegistry.registerItem(tutPickaxe, tutPickaxe.getUnlocalizedName()); - GameRegistry.registerItem(tutAxe, tutAxe.getUnlocalizedName()); - GameRegistry.registerItem(tutSword, tutSword.getUnlocalizedName()); - GameRegistry.registerItem(tutHoe, tutHoe.getUnlocalizedName()); - GameRegistry.registerItem(tutSpade, tutSpade.getUnlocalizedName()); - GameRegistry.registerItem(tutHelmet, tutHelmet.getUnlocalizedName()); - GameRegistry.registerItem(tutPlate, tutPlate.getUnlocalizedName()); - GameRegistry.registerItem(tutPants, tutPants.getUnlocalizedName()); - GameRegistry.registerItem(tutBoots, tutBoots.getUnlocalizedName()); */ - - - - - - //EnderIO Resources if (LoadedMods.EnderIO || LOAD_ALL_CONTENT){ - Utils.LOG_INFO("EnderIO Found - Loading Resources."); - //Item Init - itemPlateSoularium = new Item().setUnlocalizedName("itemPlateSoularium").setCreativeTab(AddToCreativeTab.tabMisc).setTextureName(CORE.MODID + ":itemPlateSoularium"); - itemPlateRedstoneAlloy = new Item().setUnlocalizedName("itemPlateRedstoneAlloy").setCreativeTab(AddToCreativeTab.tabMisc).setTextureName(CORE.MODID + ":itemPlateRedstoneAlloy"); - itemPlateElectricalSteel = new Item().setUnlocalizedName("itemPlateElectricalSteel").setCreativeTab(AddToCreativeTab.tabMisc).setTextureName(CORE.MODID + ":itemPlateElectricalSteel"); - itemPlatePulsatingIron = new Item().setUnlocalizedName("itemPlatePulsatingIron").setCreativeTab(AddToCreativeTab.tabMisc).setTextureName(CORE.MODID + ":itemPlatePulsatingIron"); - itemPlateEnergeticAlloy = new Item().setUnlocalizedName("itemPlateEnergeticAlloy").setCreativeTab(AddToCreativeTab.tabMisc).setTextureName(CORE.MODID + ":itemPlateEnergeticAlloy"); - itemPlateVibrantAlloy = new Item().setUnlocalizedName("itemPlateVibrantAlloy").setCreativeTab(AddToCreativeTab.tabMisc).setTextureName(CORE.MODID + ":itemPlateVibrantAlloy"); - itemPlateConductiveIron = new Item().setUnlocalizedName("itemPlateConductiveIron").setCreativeTab(AddToCreativeTab.tabMisc).setTextureName(CORE.MODID + ":itemPlateConductiveIron"); - itemPlateDarkSteel = new Item().setUnlocalizedName("itemPlateDarkSteel").setCreativeTab(AddToCreativeTab.tabMisc).setTextureName(CORE.MODID + ":itemPlateDarkSteel"); - - - //Registry - GameRegistry.registerItem(itemPlateSoularium, "itemPlateSoularium"); - GameRegistry.registerItem(itemPlateRedstoneAlloy, "itemPlateRedstoneAlloy"); - GameRegistry.registerItem(itemPlateElectricalSteel, "itemPlateElectricalSteel"); - GameRegistry.registerItem(itemPlatePulsatingIron, "itemPlatePulsatingIron"); - GameRegistry.registerItem(itemPlateEnergeticAlloy, "itemPlateEnergeticAlloy"); - GameRegistry.registerItem(itemPlateVibrantAlloy, "itemPlateVibrantAlloy"); - GameRegistry.registerItem(itemPlateConductiveIron, "itemPlateConductiveIron"); - GameRegistry.registerItem(itemPlateDarkSteel, "itemPlateDarkSteel"); + Utils.LOG_INFO("EnderIO Found - Loading Resources."); + GenerateItem(itemPlateSoularium, "itemPlateSoularium", AddToCreativeTab.tabMisc, 64, 0); + GenerateItem(itemPlateRedstoneAlloy, "itemPlateRedstoneAlloy", AddToCreativeTab.tabMisc, 64, 0); + GenerateItem(itemPlateElectricalSteel, "itemPlateElectricalSteel", AddToCreativeTab.tabMisc, 64, 0); + GenerateItem(itemPlatePulsatingIron, "itemPlatePulsatingIron", AddToCreativeTab.tabMisc, 64, 0); + GenerateItem(itemPlateEnergeticAlloy, "itemPlateEnergeticAlloy", AddToCreativeTab.tabMisc, 64, 0); + GenerateItem(itemPlateVibrantAlloy, "itemPlateVibrantAlloy", AddToCreativeTab.tabMisc, 64, 0); + GenerateItem(itemPlateConductiveIron, "itemPlateConductiveIron", AddToCreativeTab.tabMisc, 64, 0); + GenerateItem(itemPlateDarkSteel, "itemPlateDarkSteel", AddToCreativeTab.tabMisc, 64, 0); } else { Utils.LOG_WARNING("EnderIO not Found - Skipping Resources."); @@ -192,17 +132,10 @@ public final class ModItems { //Big Reactors if (LoadedMods.Big_Reactors|| LOAD_ALL_CONTENT){ - Utils.LOG_INFO("BigReactors Found - Loading Resources."); - //Item Init - itemPlateBlutonium = new Item().setUnlocalizedName("itemPlateBlutonium").setCreativeTab(AddToCreativeTab.tabMisc).setTextureName(CORE.MODID + ":itemPlateBlutonium"); - itemPlateCyanite = new Item().setUnlocalizedName("itemPlateCyanite").setCreativeTab(AddToCreativeTab.tabMisc).setTextureName(CORE.MODID + ":itemPlateCyanite"); - itemPlateLudicrite = new Item().setUnlocalizedName("itemPlateLudicrite").setCreativeTab(AddToCreativeTab.tabMisc).setTextureName(CORE.MODID + ":itemPlateLudicrite"); - - //Registry - GameRegistry.registerItem(itemPlateBlutonium, "itemPlateBlutonium"); - GameRegistry.registerItem(itemPlateCyanite, "itemPlateCyanite"); - GameRegistry.registerItem(itemPlateLudicrite, "itemPlateLudicrite"); - + Utils.LOG_INFO("BigReactors Found - Loading Resources."); + GenerateItem(itemPlateBlutonium, "itemPlateBlutonium", AddToCreativeTab.tabMisc, 64, 0); + GenerateItem(itemPlateCyanite, "itemPlateCyanite", AddToCreativeTab.tabMisc, 64, 0); + GenerateItem(itemPlateLudicrite, "itemPlateLudicrite", AddToCreativeTab.tabMisc, 64, 0); } else { Utils.LOG_WARNING("BigReactors not Found - Skipping Resources."); @@ -210,17 +143,8 @@ public final class ModItems { //Thaumcraft if (LoadedMods.Thaumcraft|| LOAD_ALL_CONTENT){ - Utils.LOG_INFO("Thaumcraft Found - Loading Resources."); - //Item Init - try { - itemPlateVoidMetal = new Item().setUnlocalizedName("itemPlateVoidMetal").setCreativeTab(AddToCreativeTab.tabMisc).setTextureName(CORE.MODID + ":itemPlateVoidMetal"); - } catch (NullPointerException e){ - e.getClass(); - } - - //Registry - GameRegistry.registerItem(itemPlateVoidMetal, "itemPlateVoidMetal"); - + Utils.LOG_INFO("Thaumcraft Found - Loading Resources."); + GenerateItem(itemPlateVoidMetal, "itemPlateVoidMetal", AddToCreativeTab.tabMisc, 64, 0); } else { Utils.LOG_WARNING("Thaumcraft not Found - Skipping Resources."); @@ -228,16 +152,8 @@ public final class ModItems { //ExtraUtils if (LoadedMods.Extra_Utils|| LOAD_ALL_CONTENT){ - Utils.LOG_INFO("ExtraUtilities Found - Loading Resources."); - //Item Init - try { - itemPlateBedrockium = new Item().setUnlocalizedName("itemPlateBedrockium").setCreativeTab(AddToCreativeTab.tabMisc).setTextureName(CORE.MODID + ":itemPlateBedrockium"); - } catch (NullPointerException e){ - e.getClass(); - } - //Registry - GameRegistry.registerItem(itemPlateBedrockium, "itemPlateBedrockium"); - + Utils.LOG_INFO("ExtraUtilities Found - Loading Resources."); + GenerateItem(itemPlateBedrockium, "itemPlateBedrockium", AddToCreativeTab.tabMisc, 64, 0); } else { Utils.LOG_WARNING("ExtraUtilities not Found - Skipping Resources."); @@ -245,13 +161,8 @@ public final class ModItems { //Pneumaticraft if (LoadedMods.PneumaticCraft|| LOAD_ALL_CONTENT){ - Utils.LOG_INFO("PneumaticCraft Found - Loading Resources."); - //Item Init - itemPlateCompressedIron = new Item().setUnlocalizedName("itemPlateCompressedIron").setCreativeTab(AddToCreativeTab.tabMisc).setTextureName(CORE.MODID + ":itemPlateCompressedIron"); - - //Registry - GameRegistry.registerItem(itemPlateCompressedIron, "itemPlateCompressedIron"); - + Utils.LOG_INFO("PneumaticCraft Found - Loading Resources."); + GenerateItem(itemPlateCompressedIron, "itemPlateCompressedIron", AddToCreativeTab.tabMisc, 64, 0); } else { Utils.LOG_WARNING("PneumaticCraft not Found - Skipping Resources."); @@ -260,12 +171,7 @@ public final class ModItems { //Simply Jetpacks if (LoadedMods.Simply_Jetpacks|| LOAD_ALL_CONTENT){ Utils.LOG_INFO("SimplyJetpacks Found - Loading Resources."); - //Item Init - itemPlateEnrichedSoularium = new RarityUncommon().setUnlocalizedName("itemPlateEnrichedSoularium").setCreativeTab(AddToCreativeTab.tabMisc).setTextureName(CORE.MODID + ":itemPlateSoularium"); - - //Registry - GameRegistry.registerItem(itemPlateEnrichedSoularium, "itemPlateEnrichedSoularium"); - + GenerateItem(itemPlateEnrichedSoularium, "itemPlateEnrichedSoularium", AddToCreativeTab.tabMisc, 64, 0); } else { Utils.LOG_WARNING("SimplyJetpacks not Found - Skipping Resources."); @@ -275,12 +181,7 @@ public final class ModItems { //rfTools if (LoadedMods.RFTools|| LOAD_ALL_CONTENT){ Utils.LOG_INFO("rfTools Found - Loading Resources."); - //Item Init - itemPlateDimensionShard = new Item().setUnlocalizedName("itemPlateDimensionShard").setCreativeTab(AddToCreativeTab.tabMisc).setTextureName(CORE.MODID + ":itemPlateDimensionShard"); - - //Registry - GameRegistry.registerItem(itemPlateDimensionShard, "itemPlateDimensionShard"); - + GenerateItem(itemPlateDimensionShard, "itemPlateDimensionShard", AddToCreativeTab.tabMisc, 64, 0); } else { Utils.LOG_WARNING("rfTools not Found - Skipping Resources."); @@ -295,50 +196,165 @@ public final class ModItems { GameRegistry.registerItem(itemStaballoyPickaxe, itemStaballoyPickaxe.getUnlocalizedName()); itemStaballoyAxe = new StaballoyAxe("itemStaballoyAxe", STABALLOY).setCreativeTab(AddToCreativeTab.tabTools); GameRegistry.registerItem(itemStaballoyAxe, itemStaballoyAxe.getUnlocalizedName()); - - //Staballoy Ingot/Plate - itemIngotStaballoy = new Item().setUnlocalizedName("itemIngotStaballoy").setCreativeTab(tabMisc).setTextureName(CORE.MODID + ":itemIngotStaballoy"); - GameRegistry.registerItem(itemIngotStaballoy, "itemIngotStaballoy"); - itemPlateStaballoy = new Item().setUnlocalizedName("itemPlateStaballoy").setCreativeTab(tabMisc).setTextureName(CORE.MODID + ":itemPlateStaballoy"); - GameRegistry.registerItem(itemPlateStaballoy, "itemPlateStaballoy"); - - //Blood Steel Ingot/Plate - itemIngotBloodSteel = new Item().setUnlocalizedName("itemIngotBloodSteel").setCreativeTab(tabMisc).setTextureName(CORE.MODID + ":itemIngotBloodSteel"); - GameRegistry.registerItem(itemIngotBloodSteel, "itemIngotBloodSteel"); - itemPlateBloodSteel = new Item().setUnlocalizedName("itemPlateBloodSteel").setCreativeTab(tabMisc).setTextureName(CORE.MODID + ":itemPlateBloodSteel"); - GameRegistry.registerItem(itemPlateBloodSteel, "itemPlateBloodSteel"); - + //Sandstone Hammer itemSandstoneHammer = new SandstoneHammer("itemSandstoneHammer").setCreativeTab(AddToCreativeTab.tabTools); GameRegistry.registerItem(itemSandstoneHammer, itemSandstoneHammer.getUnlocalizedName()); - + //Buffer Cores! Item itemBufferCore; for(int i=1; i<=10; i++){ Utils.LOG_INFO(""+i); itemBufferCore = new BufferCore("itemBufferCore", i).setCreativeTab(AddToCreativeTab.tabMisc); GameRegistry.registerItem(itemBufferCore, itemBufferCore.getUnlocalizedName()+i); - System.out.println("Buffer Core registration count is: "+i); - } - + System.out.println("Buffer Core registration count is: "+i); + } + + GenerateItem(itemHeliumBlob, "itemHeliumBlob", AddToCreativeTab.tabMisc, 32, 2); + GenerateItem(itemStickyRubber, "itemStickyRubber", AddToCreativeTab.tabMisc, 64, 0); + GenerateItem(itemIngotBatteryAlloy, "itemIngotBatteryAlloy", AddToCreativeTab.tabMisc, 64, 0); + GenerateItem(itemPlateBatteryAlloy, "itemPlateBatteryAlloy", AddToCreativeTab.tabMisc, 64, 0); + GenerateItem(itemIngotStaballoy, "itemIngotStaballoy", AddToCreativeTab.tabMisc, 64, 0); + GenerateItem(itemPlateStaballoy, "itemPlateStaballoy", AddToCreativeTab.tabMisc, 64, 0); + GenerateItem(itemIngotBloodSteel, "itemIngotBloodSteel", AddToCreativeTab.tabMisc, 64, 0); + GenerateItem(itemPlateBloodSteel, "itemPlateBloodSteel", AddToCreativeTab.tabMisc, 64, 0); + + + /*GenerateItem(itemHeliumBlob, "heliumBlob", AddToCreativeTab.tabMisc); + GenerateItem(itemHeliumBlob, "heliumBlob", AddToCreativeTab.tabMisc); + +//Armour Materials + public static ArmorMaterial tutArmorMaterial = EnumHelper.addArmorMaterial("BloodSteel Armor Material", 33, new int[]{2, 5, 4, 2}, 10); + + //Base Classes For Items + public static Item tutPickaxe; + public static Item tutAxe; + public static Item tutSword; + public static Item tutHoe; + public static Item tutSpade; + + //Base Classes For Armour + public static Item tutHelmet; + public static Item tutPlate; + public static Item tutPants; + public static Item tutBoots; + + itemPlateDimensionShard = new Item().setUnlocalizedName("itemPlateDimensionShard").setCreativeTab(AddToCreativeTab.tabMisc).setTextureName(CORE.MODID + ":itemPlateDimensionShard"); + GameRegistry.registerItem(itemPlateDimensionShard, "itemPlateDimensionShard"); + + + //Item Init + itemPlateSoularium = new Item().setUnlocalizedName("itemPlateSoularium").setCreativeTab(AddToCreativeTab.tabMisc).setTextureName(CORE.MODID + ":itemPlateSoularium"); + itemPlateRedstoneAlloy = new Item().setUnlocalizedName("itemPlateRedstoneAlloy").setCreativeTab(AddToCreativeTab.tabMisc).setTextureName(CORE.MODID + ":itemPlateRedstoneAlloy"); + itemPlateElectricalSteel = new Item().setUnlocalizedName("itemPlateElectricalSteel").setCreativeTab(AddToCreativeTab.tabMisc).setTextureName(CORE.MODID + ":itemPlateElectricalSteel"); + itemPlatePulsatingIron = new Item().setUnlocalizedName("itemPlatePulsatingIron").setCreativeTab(AddToCreativeTab.tabMisc).setTextureName(CORE.MODID + ":itemPlatePulsatingIron"); + itemPlateEnergeticAlloy = new Item().setUnlocalizedName("itemPlateEnergeticAlloy").setCreativeTab(AddToCreativeTab.tabMisc).setTextureName(CORE.MODID + ":itemPlateEnergeticAlloy"); + itemPlateVibrantAlloy = new Item().setUnlocalizedName("itemPlateVibrantAlloy").setCreativeTab(AddToCreativeTab.tabMisc).setTextureName(CORE.MODID + ":itemPlateVibrantAlloy"); + itemPlateConductiveIron = new Item().setUnlocalizedName("itemPlateConductiveIron").setCreativeTab(AddToCreativeTab.tabMisc).setTextureName(CORE.MODID + ":itemPlateConductiveIron"); + itemPlateDarkSteel = new Item().setUnlocalizedName("itemPlateDarkSteel").setCreativeTab(AddToCreativeTab.tabMisc).setTextureName(CORE.MODID + ":itemPlateDarkSteel"); + + //Blood Steel Equipment + + //Item Init + tutPickaxe = new BloodSteelPickaxe(tutMaterial).setUnlocalizedName("BloodSteelPickaxe").setCreativeTab(TMCreativeTabs.tabTools).setTextureName(CORE.MODID + ":BloodSteelPickaxe"); + tutAxe = new BloodSteelAxe(tutMaterial).setUnlocalizedName("BloodSteelAxe").setCreativeTab(TMCreativeTabs.tabTools).setTextureName(CORE.MODID + ":BloodSteelAxe"); + tutSword = new BloodSteelSword(tutMaterial).setUnlocalizedName("BloodSteelSword").setCreativeTab(TMCreativeTabs.tabCombat).setTextureName(CORE.MODID + ":BloodSteelSword"); + tutHoe = new BloodSteelHoe(tutMaterial).setUnlocalizedName("BloodSteelHoe").setCreativeTab(TMCreativeTabs.tabTools).setTextureName(CORE.MODID + ":BloodSteelHoe"); + tutSpade = new BloodSteelSpade(tutMaterial).setUnlocalizedName("BloodSteelSpade").setCreativeTab(TMCreativeTabs.tabTools).setTextureName(CORE.MODID + ":BloodSteelSpade"); + tutHelmet = new BloodSteelArmor(tutArmorMaterial, MiscUtils.proxy.addArmor("BloodSteelArmor"), 0).setUnlocalizedName("BloodSteelHelmet").setCreativeTab(TMCreativeTabs.tabCombat).setTextureName(CORE.MODID + ":BloodSteelHelmet"); + tutPlate = new BloodSteelArmor(tutArmorMaterial, MiscUtils.proxy.addArmor("BloodSteelArmor"), 1).setUnlocalizedName("BloodSteelPlate").setCreativeTab(TMCreativeTabs.tabCombat).setTextureName(CORE.MODID + ":BloodSteelPlate"); + tutPants = new BloodSteelArmor(tutArmorMaterial, MiscUtils.proxy.addArmor("BloodSteelArmor"), 2).setUnlocalizedName("BloodSteelPants").setCreativeTab(TMCreativeTabs.tabCombat).setTextureName(CORE.MODID + ":BloodSteelPants"); + tutBoots = new BloodSteelArmor(tutArmorMaterial, MiscUtils.proxy.addArmor("BloodSteelArmor"), 3).setUnlocalizedName("BloodSteelBoots").setCreativeTab(TMCreativeTabs.tabCombat).setTextureName(CORE.MODID + ":BloodSteelBoots"); + + //Registry + GameRegistry.registerItem(tutPickaxe, tutPickaxe.getUnlocalizedName()); + GameRegistry.registerItem(tutAxe, tutAxe.getUnlocalizedName()); + GameRegistry.registerItem(tutSword, tutSword.getUnlocalizedName()); + GameRegistry.registerItem(tutHoe, tutHoe.getUnlocalizedName()); + GameRegistry.registerItem(tutSpade, tutSpade.getUnlocalizedName()); + GameRegistry.registerItem(tutHelmet, tutHelmet.getUnlocalizedName()); + GameRegistry.registerItem(tutPlate, tutPlate.getUnlocalizedName()); + GameRegistry.registerItem(tutPants, tutPants.getUnlocalizedName()); + GameRegistry.registerItem(tutBoots, tutBoots.getUnlocalizedName()); + + //Registry + GameRegistry.registerItem(itemPlateSoularium, "itemPlateSoularium"); + GameRegistry.registerItem(itemPlateRedstoneAlloy, "itemPlateRedstoneAlloy"); + GameRegistry.registerItem(itemPlateElectricalSteel, "itemPlateElectricalSteel"); + GameRegistry.registerItem(itemPlatePulsatingIron, "itemPlatePulsatingIron"); + GameRegistry.registerItem(itemPlateEnergeticAlloy, "itemPlateEnergeticAlloy"); + GameRegistry.registerItem(itemPlateVibrantAlloy, "itemPlateVibrantAlloy"); + GameRegistry.registerItem(itemPlateConductiveIron, "itemPlateConductiveIron"); + GameRegistry.registerItem(itemPlateDarkSteel, "itemPlateDarkSteel"); + + //Item Init + itemPlateEnrichedSoularium = new RarityUncommon().setUnlocalizedName("itemPlateEnrichedSoularium").setCreativeTab(AddToCreativeTab.tabMisc).setTextureName(CORE.MODID + ":itemPlateSoularium"); + + //Registry + GameRegistry.registerItem(itemPlateEnrichedSoularium, "itemPlateEnrichedSoularium"); + //Item Init + itemPlateCompressedIron = new Item().setUnlocalizedName("itemPlateCompressedIron").setCreativeTab(AddToCreativeTab.tabMisc).setTextureName(CORE.MODID + ":itemPlateCompressedIron"); + + //Registry + GameRegistry.registerItem(itemPlateCompressedIron, "itemPlateCompressedIron"); + + //Item Init + itemPlateBlutonium = new Item().setUnlocalizedName("itemPlateBlutonium").setCreativeTab(AddToCreativeTab.tabMisc).setTextureName(CORE.MODID + ":itemPlateBlutonium"); + itemPlateCyanite = new Item().setUnlocalizedName("itemPlateCyanite").setCreativeTab(AddToCreativeTab.tabMisc).setTextureName(CORE.MODID + ":itemPlateCyanite"); + itemPlateLudicrite = new Item().setUnlocalizedName("itemPlateLudicrite").setCreativeTab(AddToCreativeTab.tabMisc).setTextureName(CORE.MODID + ":itemPlateLudicrite"); + + //Registry + GameRegistry.registerItem(itemPlateBlutonium, "itemPlateBlutonium"); + GameRegistry.registerItem(itemPlateCyanite, "itemPlateCyanite"); + GameRegistry.registerItem(itemPlateLudicrite, "itemPlateLudicrite"); + + //Item Init + try { + itemPlateVoidMetal = new Item().setUnlocalizedName("itemPlateVoidMetal").setCreativeTab(AddToCreativeTab.tabMisc).setTextureName(CORE.MODID + ":itemPlateVoidMetal"); + } catch (NullPointerException e){ + e.getClass(); + } + + //Registry + GameRegistry.registerItem(itemPlateVoidMetal, "itemPlateVoidMetal"); + + //Item Init + try { + itemPlateBedrockium = new Item().setUnlocalizedName("itemPlateBedrockium").setCreativeTab(AddToCreativeTab.tabMisc).setTextureName(CORE.MODID + ":itemPlateBedrockium"); + } catch (NullPointerException e){ + e.getClass(); + } + //Registry + GameRegistry.registerItem(itemPlateBedrockium, "itemPlateBedrockium"); + //Dev Items itemStickyRubber = new Item().setUnlocalizedName("itemStickyRubber").setCreativeTab(tabMisc).setTextureName(CORE.MODID + ":itemDefault"); GameRegistry.registerItem(itemStickyRubber, "itemStickyRubber"); - + //Battery Alloy For cheap Niggers itemIngotBatteryAlloy = new Item().setUnlocalizedName("itemIngotBatteryAlloy").setCreativeTab(tabMisc).setTextureName(CORE.MODID + ":itemDefault"); GameRegistry.registerItem(itemIngotBatteryAlloy, "itemIngotBatteryAlloy"); itemPlateBatteryAlloy = new Item().setUnlocalizedName("itemPlateBatteryAlloy").setCreativeTab(tabMisc).setTextureName(CORE.MODID + ":itemDefault"); - GameRegistry.registerItem(itemPlateBatteryAlloy, "itemPlateBatteryAlloy"); - - - /* - item_PLEASE_FACTOR_ME_3 = new Item().setUnlocalizedName("unlocalName3").setCreativeTab(tabMisc).setTextureName(CORE.MODID + ":itemDefault"); - GameRegistry.registerItem(item_PLEASE_FACTOR_ME_3, "localName3"); - item_PLEASE_FACTOR_ME_4 = new Item().setUnlocalizedName("unlocalName4").setCreativeTab(tabMisc).setTextureName(CORE.MODID + ":itemDefault"); + GameRegistry.registerItem(itemPlateBatteryAlloy, "itemPlateBatteryAlloy");*/ + + + /*//Staballoy Ingot/Plate + itemIngotStaballoy = new Item().setUnlocalizedName("itemIngotStaballoy").setCreativeTab(tabMisc).setTextureName(CORE.MODID + ":itemIngotStaballoy"); + GameRegistry.registerItem(itemIngotStaballoy, "itemIngotStaballoy"); + itemPlateStaballoy = new Item().setUnlocalizedName("itemPlateStaballoy").setCreativeTab(tabMisc).setTextureName(CORE.MODID + ":itemPlateStaballoy"); + GameRegistry.registerItem(itemPlateStaballoy, "itemPlateStaballoy"); + + //Blood Steel Ingot/Plate + itemIngotBloodSteel = new Item().setUnlocalizedName("itemIngotBloodSteel").setCreativeTab(tabMisc).setTextureName(CORE.MODID + ":itemIngotBloodSteel"); + GameRegistry.registerItem(itemIngotBloodSteel, "itemIngotBloodSteel"); + itemPlateBloodSteel = new Item().setUnlocalizedName("itemPlateBloodSteel").setCreativeTab(tabMisc).setTextureName(CORE.MODID + ":itemPlateBloodSteel"); + GameRegistry.registerItem(itemPlateBloodSteel, "itemPlateBloodSteel");*/ + + + /*item_PLEASE_FACTOR_ME_4 = new Item().setUnlocalizedName("unlocalName4").setCreativeTab(tabMisc).setTextureName(CORE.MODID + ":itemDefault"); GameRegistry.registerItem(item_PLEASE_FACTOR_ME_4, "localName4");*/ - - + + //Try some New Tools from GT //GT_Tool_Item x = null; //x = GregTech_API.constructHardHammerItem("rockBelter", "Sandstone Hammer", 5000 /**Max Damage**/,50 /**Entity Damage**/); @@ -347,4 +363,14 @@ public final class ModItems { } + private static void GenerateItem(Item item, String name, CreativeTabs tab, int stackSize, int itemDamage){ + //item = new BaseItemGeneric(name, tab, stackSize, itemDamage); + item = new Item().setUnlocalizedName(name).setCreativeTab(tab).setTextureName(CORE.MODID + name); + Utils.LOG_INFO("Generating Item ["+totalGenerated+"] Name: "+item.getUnlocalizedName()); + GameRegistry.registerItem(item, name); + totalGenerated++; + + } + + } diff --git a/src/Java/miscutil/core/item/base/BaseItemGeneric.java b/src/Java/miscutil/core/item/base/BaseItemGeneric.java new file mode 100644 index 0000000000..ffdb495a21 --- /dev/null +++ b/src/Java/miscutil/core/item/base/BaseItemGeneric.java @@ -0,0 +1,17 @@ +package miscutil.core.item.base; + +import miscutil.core.lib.CORE; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; + +public class BaseItemGeneric extends Item +{ + public BaseItemGeneric(String s, CreativeTabs c, int stackSize, int maxDmg) + { + setUnlocalizedName(CORE.MODID + "_" + s); + setTextureName(CORE.MODID + ":" + s); + setCreativeTab(c); + setMaxStackSize(stackSize); + setMaxDamage(maxDmg); + } +}
\ No newline at end of file diff --git a/src/Java/miscutil/core/tileentities/TILE_ENTITY_BASE.java b/src/Java/miscutil/core/tileentities/TILE_ENTITY_BASE.java new file mode 100644 index 0000000000..790312a182 --- /dev/null +++ b/src/Java/miscutil/core/tileentities/TILE_ENTITY_BASE.java @@ -0,0 +1,39 @@ +package miscutil.core.tileentities; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; + +public class TILE_ENTITY_BASE extends TileEntity { + + @Override + public void writeToNBT(NBTTagCompound tag) { + super.writeToNBT(tag); + writeCustomNBT(tag); + } + + @Override + public void readFromNBT(NBTTagCompound tag) { + super.readFromNBT(tag); + readCustomNBT(tag); + } + + public void writeCustomNBT(NBTTagCompound tag) {} + public void readCustomNBT(NBTTagCompound tag) {} + + @Override + public Packet getDescriptionPacket() { + NBTTagCompound tag = new NBTTagCompound(); + writeCustomNBT(tag); + return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, -999, tag); + } + + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity packet) { + super.onDataPacket(net, packet); + readCustomNBT(packet.func_148857_g()); + } + +} diff --git a/src/Java/miscutil/core/tileentities/TileEntityHeliumGenerator.java b/src/Java/miscutil/core/tileentities/TileEntityHeliumGenerator.java new file mode 100644 index 0000000000..bc1d452495 --- /dev/null +++ b/src/Java/miscutil/core/tileentities/TileEntityHeliumGenerator.java @@ -0,0 +1,134 @@ +package miscutil.core.tileentities; + +import miscutil.core.item.ModItems; +import miscutil.core.util.UtilsItems; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + +public class TileEntityHeliumGenerator extends TILE_ENTITY_BASE implements IInventory { + + private ItemStack heliumStack; + private int facing = 2; + private int progress; + + @Override + public void updateEntity(){ + if(++progress >= 40){ + //if(++progress >= 300){ + if(heliumStack == null) + heliumStack = UtilsItems.getSimpleStack(ModItems.itemHeliumBlob); + else if(heliumStack.getItem() == ModItems.itemHeliumBlob && heliumStack.stackSize < 64) + heliumStack.stackSize++; + progress = 0; + markDirty(); + } + } + + public int getFacing(){ + return facing; + } + + public void setFacing(int dir){ + facing = dir; + } + + @Override + public void readCustomNBT(NBTTagCompound tag) + { + this.heliumStack = ItemStack.loadItemStackFromNBT(tag.getCompoundTag("Helium")); + this.progress = tag.getInteger("Progress"); + this.facing = tag.getShort("Facing"); + } + + @Override + public void writeCustomNBT(NBTTagCompound tag) + { + tag.setInteger("Progress", this.progress); + tag.setShort("Facing", (short) this.facing); + if(heliumStack != null) { + NBTTagCompound produce = new NBTTagCompound(); + heliumStack.writeToNBT(produce); + tag.setTag("Helium", produce); + } + else + tag.removeTag("Helium"); + } + + @Override + public int getSizeInventory() + { + return 1; + } + + @Override + public ItemStack getStackInSlot(int slot){ + return heliumStack; + } + + @Override + public ItemStack decrStackSize(int slot, int decrement){ + if(heliumStack == null) + return null; + if(decrement < heliumStack.stackSize){ + ItemStack take = heliumStack.splitStack(decrement); + if(heliumStack.stackSize <= 0) + heliumStack = null; + return take; + } + ItemStack take = heliumStack; + heliumStack = null; + return take; + } + + @Override + public void openInventory() {} + @Override + public void closeInventory() {} + + @Override + public boolean isUseableByPlayer(EntityPlayer player) + { + return this.worldObj.getTileEntity(this.xCoord, this.yCoord, this.zCoord) == this && player.getDistanceSq((double)this.xCoord + 0.5D, (double)this.yCoord + 0.5D, (double)this.zCoord + 0.5D) <= 64.0D; + } + + @Override + public boolean isItemValidForSlot(int slot, ItemStack stack){ + return false; + } + + @Override + public int getInventoryStackLimit(){ + return 64; + } + + @Override + public void setInventorySlotContents(int slot, ItemStack stack){ + heliumStack = stack; + } + + @Override + public ItemStack getStackInSlotOnClosing(int slot){ + return null; + } + + /** + * Returns the name of the inventory + */ + @Override + public String getInventoryName() + { + return "container.helium_collector"; + } + + /** + * Returns if the inventory is named + */ + @Override + public boolean hasCustomInventoryName() + { + return false; + } + +} diff --git a/src/Java/miscutil/core/util/UtilsItems.java b/src/Java/miscutil/core/util/UtilsItems.java index 6f26b2c3db..bd82cc104a 100644 --- a/src/Java/miscutil/core/util/UtilsItems.java +++ b/src/Java/miscutil/core/util/UtilsItems.java @@ -24,15 +24,15 @@ public class UtilsItems { Item em1 = getItem(mod_itemname_meta); Utils.LOG_WARNING("Found: "+em1.toString()); - if (!em1.equals(null)){ + if (em1 != null){ em = em1; } else { em = null; return null; } - if (!em.equals(null)){ - ItemStack returnStack = new ItemStack(em,1,16); + if (em != null ){ + ItemStack returnStack = new ItemStack(em,1); return returnStack; } Utils.LOG_WARNING(mod_itemname_meta+" not found."); @@ -44,6 +44,11 @@ public class UtilsItems { } return null; } + + public static ItemStack getSimpleStack(Item x){ + ItemStack r = new ItemStack(x, 1); + return r; + } public static void getItemForOreDict(String FQRN, String oreDictName, String itemName, int meta){ try { |