diff options
Diffstat (limited to 'src/Java/gtPlusPlus/xmod/ic2')
18 files changed, 1183 insertions, 1058 deletions
diff --git a/src/Java/gtPlusPlus/xmod/ic2/HANDLER_IC2.java b/src/Java/gtPlusPlus/xmod/ic2/HANDLER_IC2.java index 2e32eacab6..97f37a8628 100644 --- a/src/Java/gtPlusPlus/xmod/ic2/HANDLER_IC2.java +++ b/src/Java/gtPlusPlus/xmod/ic2/HANDLER_IC2.java @@ -4,25 +4,25 @@ import gtPlusPlus.core.lib.LoadedMods; import gtPlusPlus.xmod.ic2.item.IC2_Items; import gtPlusPlus.xmod.ic2.recipe.RECIPE_IC2; -public class HANDLER_IC2 { +public class HANDLER_IC2{ - public static void init() { - if (LoadedMods.IndustrialCraft2) { + public static void preInit() { + if (LoadedMods.IndustrialCraft2){ + IC2_Items.register(); + //new BlockRTG(InternalName.beer); + } + } - } + public static void init() { + if (LoadedMods.IndustrialCraft2){ + + } } public static void postInit() { - if (LoadedMods.IndustrialCraft2) { + if (LoadedMods.IndustrialCraft2){ RECIPE_IC2.initRecipes(); - } - } - - public static void preInit() { - if (LoadedMods.IndustrialCraft2) { - IC2_Items.register(); - // new BlockRTG(InternalName.beer); - } + } } } diff --git a/src/Java/gtPlusPlus/xmod/ic2/block/RTGGenerator/BlockRTG.java b/src/Java/gtPlusPlus/xmod/ic2/block/RTGGenerator/BlockRTG.java index 215b1dd0a3..9d238e4c97 100644 --- a/src/Java/gtPlusPlus/xmod/ic2/block/RTGGenerator/BlockRTG.java +++ b/src/Java/gtPlusPlus/xmod/ic2/block/RTGGenerator/BlockRTG.java @@ -1,13 +1,5 @@ package gtPlusPlus.xmod.ic2.block.RTGGenerator; -import java.util.List; -import java.util.Random; - -import org.apache.commons.lang3.mutable.MutableObject; - -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import gtPlusPlus.core.creative.AddToCreativeTab; import gtPlusPlus.xmod.ic2.block.kieticgenerator.tileentity.TileEntityKineticWindGenerator; import gtPlusPlus.xmod.ic2.item.IC2_Items; @@ -18,20 +10,34 @@ import ic2.core.block.BlockMultiID; import ic2.core.block.TileEntityBlock; import ic2.core.block.reactor.tileentity.TileEntityNuclearReactorElectric; import ic2.core.init.InternalName; -import net.minecraft.block.Block; + +import java.util.List; +import java.util.Random; + import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.*; +import net.minecraft.item.EnumRarity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; -public class BlockRTG extends BlockMultiID { - public BlockRTG(final InternalName internalName1) { +import org.apache.commons.lang3.mutable.MutableObject; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class BlockRTG +extends BlockMultiID +{ + public BlockRTG(InternalName internalName1) + { super(internalName1, Material.iron, ItemGenerators.class); - this.setCreativeTab(AddToCreativeTab.tabMachines); - this.setHardness(3.0F); - this.setStepSound(Block.soundTypeMetal); + setCreativeTab(AddToCreativeTab.tabMachines); + setHardness(3.0F); + setStepSound(soundTypeMetal); IC2_Items.blockRTG = new ItemStack(this, 1, 0); IC2_Items.blockKineticGenerator = new ItemStack(this, 1, 1); @@ -41,29 +47,14 @@ public class BlockRTG extends BlockMultiID { } @Override - public int damageDropped(final int meta) { - switch (meta) { - case 2: - return 2; - } - return 0; - } - - @Override - @SideOnly(Side.CLIENT) - public EnumRarity getRarity(final ItemStack stack) { - return stack.getItemDamage() == 5 ? EnumRarity.uncommon : EnumRarity.common; - } - - @Override - public void getSubBlocks(final Item j, final CreativeTabs tabs, final List itemList) { - final Item item = Item.getItemFromBlock(this); + public void getSubBlocks(Item j, CreativeTabs tabs, List itemList) { + Item item = Item.getItemFromBlock(this); if (!item.getHasSubtypes()) { itemList.add(new ItemStack(this)); - } - else { - for (int i = 0; i < 16; i++) { - final ItemStack is = new ItemStack(this, 1, i); + } else { + for (int i = 0; i < 16; i++) + { + ItemStack is = new ItemStack(this, 1, i); if (is.getItem().getUnlocalizedName(is) == null) { break; } @@ -72,96 +63,114 @@ public class BlockRTG extends BlockMultiID { } } + + @Override + public String getTextureFolder(int id) + { + return "generator"; + } + + @Override + public int damageDropped(int meta) + { + switch (meta) + { + case 2: + return 2; + } + return 0; + } + @Override - public Class<? extends TileEntity> getTeClass(final int meta, final MutableObject<Class<?>[]> ctorArgTypes, - final MutableObject<Object[]> ctorArgs) { - try { - switch (meta) { - case 0: - return TileEntityRTG.class; - case 1: - return TileEntityKineticWindGenerator.class; + public Class<? extends TileEntity> getTeClass(int meta, MutableObject<Class<?>[]> ctorArgTypes, MutableObject<Object[]> ctorArgs) + { + try + { + switch (meta) + { + case 0: + return TileEntityRTG.class; + case 1: + return TileEntityKineticWindGenerator.class; } } - catch (final Exception e) { + catch (Exception e) + { throw new RuntimeException(e); } return null; } /* - * - * { case 0: return TileEntityGenerator.class; case 1: return - * TileEntityGeoGenerator.class; case 2: return - * TileEntityWaterGenerator.class; case 3: return - * TileEntitySolarGenerator.class; case 4: return - * TileEntityWindGenerator.class; case 5: return - * TileEntityNuclearReactorElectric.class; case 6: return - * TileEntityRTGenerator.class; case 7: return - * TileEntitySemifluidGenerator.class; case 8: return - * TileEntityStirlingGenerator.class; case 9: return - * TileEntityKineticGenerator.class; } - * - * (non-Javadoc) * - * @see - * net.minecraft.block.Block#randomDisplayTick(net.minecraft.world.World, - * int, int, int, java.util.Random) + * { + case 0: + return TileEntityGenerator.class; + case 1: + return TileEntityGeoGenerator.class; + case 2: + return TileEntityWaterGenerator.class; + case 3: + return TileEntitySolarGenerator.class; + case 4: + return TileEntityWindGenerator.class; + case 5: + return TileEntityNuclearReactorElectric.class; + case 6: + return TileEntityRTGenerator.class; + case 7: + return TileEntitySemifluidGenerator.class; + case 8: + return TileEntityStirlingGenerator.class; + case 9: + return TileEntityKineticGenerator.class; + } + * + * (non-Javadoc) + * @see net.minecraft.block.Block#randomDisplayTick(net.minecraft.world.World, int, int, int, java.util.Random) */ @Override - public String getTextureFolder(final int id) { - return "generator"; - } - - @Override - public boolean onBlockActivated(final World world, final int i, final int j, final int k, - final EntityPlayer entityplayer, final int side, final float a, final float b, final float c) { - if (entityplayer.getCurrentEquippedItem() != null - && entityplayer.getCurrentEquippedItem().isItemEqual(Ic2Items.reactorChamber)) { - return false; - } - return super.onBlockActivated(world, i, j, k, entityplayer, side, a, b, c); - } - - @Override - public void randomDisplayTick(final World world, final int x, final int y, final int z, final Random random) { + public void randomDisplayTick(World world, int x, int y, int z, Random random) + { if (!IC2.platform.isRendering()) { return; } - final int meta = world.getBlockMetadata(x, y, z); - if (meta == 0 && this.isActive(world, x, y, z)) { - final TileEntityBlock te = (TileEntityBlock) this.getOwnTe(world, x, y, z); + int meta = world.getBlockMetadata(x, y, z); + if ((meta == 0) && (isActive(world, x, y, z))) + { + TileEntityBlock te = (TileEntityBlock)getOwnTe(world, x, y, z); if (te == null) { return; } - final int l = te.getFacing(); - final float f = x + 0.5F; - final float f1 = y + 0.0F + random.nextFloat() * 6.0F / 16.0F; - final float f2 = z + 0.5F; - final float f3 = 0.52F; - final float f4 = random.nextFloat() * 0.6F - 0.3F; - switch (l) { - case 4: - world.spawnParticle("smoke", f - f3, f1, f2 + f4, 0.0D, 0.0D, 0.0D); - world.spawnParticle("flame", f - f3, f1, f2 + f4, 0.0D, 0.0D, 0.0D); - break; - case 5: - world.spawnParticle("smoke", f + f3, f1, f2 + f4, 0.0D, 0.0D, 0.0D); - world.spawnParticle("flame", f + f3, f1, f2 + f4, 0.0D, 0.0D, 0.0D); - break; - case 2: - world.spawnParticle("smoke", f + f4, f1, f2 - f3, 0.0D, 0.0D, 0.0D); - world.spawnParticle("flame", f + f4, f1, f2 - f3, 0.0D, 0.0D, 0.0D); - break; - case 3: - world.spawnParticle("smoke", f + f4, f1, f2 + f3, 0.0D, 0.0D, 0.0D); - world.spawnParticle("flame", f + f4, f1, f2 + f3, 0.0D, 0.0D, 0.0D); + int l = te.getFacing(); + float f = x + 0.5F; + float f1 = y + 0.0F + random.nextFloat() * 6.0F / 16.0F; + float f2 = z + 0.5F; + float f3 = 0.52F; + float f4 = random.nextFloat() * 0.6F - 0.3F; + switch (l) + { + case 4: + world.spawnParticle("smoke", f - f3, f1, f2 + f4, 0.0D, 0.0D, 0.0D); + world.spawnParticle("flame", f - f3, f1, f2 + f4, 0.0D, 0.0D, 0.0D); + break; + case 5: + world.spawnParticle("smoke", f + f3, f1, f2 + f4, 0.0D, 0.0D, 0.0D); + world.spawnParticle("flame", f + f3, f1, f2 + f4, 0.0D, 0.0D, 0.0D); + break; + case 2: + world.spawnParticle("smoke", f + f4, f1, f2 - f3, 0.0D, 0.0D, 0.0D); + world.spawnParticle("flame", f + f4, f1, f2 - f3, 0.0D, 0.0D, 0.0D); + break; + case 3: + world.spawnParticle("smoke", f + f4, f1, f2 + f3, 0.0D, 0.0D, 0.0D); + world.spawnParticle("flame", f + f4, f1, f2 + f3, 0.0D, 0.0D, 0.0D); } } - else if (meta == 5) { - final TileEntityNuclearReactorElectric te = (TileEntityNuclearReactorElectric) this.getOwnTe(world, x, y, - z); + else if (meta == 5) + { + TileEntityNuclearReactorElectric te = (TileEntityNuclearReactorElectric)getOwnTe(world, x, y, z); if (te == null) { return; } @@ -171,14 +180,28 @@ public class BlockRTG extends BlockMultiID { } puffs = world.rand.nextInt(puffs); for (int n = 0; n < puffs; n++) { - world.spawnParticle("smoke", x + random.nextFloat(), y + 0.95F, z + random.nextFloat(), 0.0D, 0.0D, - 0.0D); + world.spawnParticle("smoke", x + random.nextFloat(), y + 0.95F, z + random.nextFloat(), 0.0D, 0.0D, 0.0D); } puffs -= world.rand.nextInt(4) + 3; for (int n = 0; n < puffs; n++) { - world.spawnParticle("flame", x + random.nextFloat(), y + 1.0F, z + random.nextFloat(), 0.0D, 0.0D, - 0.0D); + world.spawnParticle("flame", x + random.nextFloat(), y + 1.0F, z + random.nextFloat(), 0.0D, 0.0D, 0.0D); } } } + + @Override + public boolean onBlockActivated(World world, int i, int j, int k, EntityPlayer entityplayer, int side, float a, float b, float c) + { + if ((entityplayer.getCurrentEquippedItem() != null) && (entityplayer.getCurrentEquippedItem().isItemEqual(Ic2Items.reactorChamber))) { + return false; + } + return super.onBlockActivated(world, i, j, k, entityplayer, side, a, b, c); + } + + @Override + @SideOnly(Side.CLIENT) + public EnumRarity getRarity(ItemStack stack) + { + return stack.getItemDamage() == 5 ? EnumRarity.uncommon : EnumRarity.common; + } } diff --git a/src/Java/gtPlusPlus/xmod/ic2/block/RTGGenerator/TileEntityRTG.java b/src/Java/gtPlusPlus/xmod/ic2/block/RTGGenerator/TileEntityRTG.java index cac4cbf9db..cea09bdd5c 100644 --- a/src/Java/gtPlusPlus/xmod/ic2/block/RTGGenerator/TileEntityRTG.java +++ b/src/Java/gtPlusPlus/xmod/ic2/block/RTGGenerator/TileEntityRTG.java @@ -1,7 +1,5 @@ package gtPlusPlus.xmod.ic2.block.RTGGenerator; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import gtPlusPlus.xmod.ic2.block.RTGGenerator.gui.CONTAINER_RTG; import gtPlusPlus.xmod.ic2.block.RTGGenerator.gui.GUI_RTG; import ic2.core.ContainerBase; @@ -12,65 +10,77 @@ import ic2.core.block.invslot.InvSlotConsumableId; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; -public class TileEntityRTG extends TileEntityRTGenerator { +public class TileEntityRTG +extends TileEntityRTGenerator +{ public final InvSlotConsumable fuelSlot; - public TileEntityRTG() { - this.fuelSlot = new InvSlotConsumableId(this, "fuelSlot", 0, 12, new Item[] { - Ic2Items.RTGPellets.getItem() - }); + public TileEntityRTG() + { + this.fuelSlot = new InvSlotConsumableId(this, "fuelSlot", 0, 12, new Item[] { Ic2Items.RTGPellets.getItem() }); } @Override - public boolean delayActiveUpdate() { - return true; + public int gaugeFuelScaled(int i) + { + return i; } @Override - public boolean gainEnergy() { - int counter = 0; - for (int i = 0; i < this.fuelSlot.size(); i++) { - if (this.fuelSlot.get(i) != null) { - counter++; - } - } - if (counter == 0) { - return false; - } - this.storage += (int) Math.pow(2.0D, counter - 1); - return true; - } + public boolean gainEnergy() + { + int counter = 0; + for (int i = 0; i < this.fuelSlot.size(); i++) { + if (this.fuelSlot.get(i) != null) { + counter++; + } + } + if (counter == 0) { + return false; + } + this.storage += (int)Math.pow(2.0D, counter - 1); + return true; + } @Override - public boolean gainFuel() { + public boolean gainFuel() + { return false; } @Override - public int gaugeFuelScaled(final int i) { - return i; + public boolean needsFuel() + { + return true; } @Override - @SideOnly(Side.CLIENT) - public GuiScreen getGui(final EntityPlayer entityPlayer, final boolean isAdmin) { - return new GUI_RTG(new CONTAINER_RTG(entityPlayer, this)); + public String getInventoryName() + { + return "RTG"; } - + @Override - public ContainerBase<TileEntityRTGenerator> getGuiContainer(final EntityPlayer entityPlayer) { + public ContainerBase<TileEntityRTGenerator> getGuiContainer(EntityPlayer entityPlayer) + { return new CONTAINER_RTG(entityPlayer, this); } @Override - public String getInventoryName() { - return "RTG"; + @SideOnly(Side.CLIENT) + public GuiScreen getGui(EntityPlayer entityPlayer, boolean isAdmin) + { + return new GUI_RTG(new CONTAINER_RTG(entityPlayer, this)); } @Override - public boolean needsFuel() { + public boolean delayActiveUpdate() + { return true; } + } diff --git a/src/Java/gtPlusPlus/xmod/ic2/block/RTGGenerator/gui/CONTAINER_RTG.java b/src/Java/gtPlusPlus/xmod/ic2/block/RTGGenerator/gui/CONTAINER_RTG.java index 8336cad6f4..e9c7b5cc81 100644 --- a/src/Java/gtPlusPlus/xmod/ic2/block/RTGGenerator/gui/CONTAINER_RTG.java +++ b/src/Java/gtPlusPlus/xmod/ic2/block/RTGGenerator/gui/CONTAINER_RTG.java @@ -1,29 +1,34 @@ package gtPlusPlus.xmod.ic2.block.RTGGenerator.gui; -import java.util.List; - import gtPlusPlus.xmod.ic2.block.RTGGenerator.TileEntityRTG; import ic2.core.block.generator.container.ContainerRTGenerator; import ic2.core.slot.SlotInvSlot; + +import java.util.List; + import net.minecraft.entity.player.EntityPlayer; -public class CONTAINER_RTG extends ContainerRTGenerator { - public CONTAINER_RTG(final EntityPlayer entityPlayer, final TileEntityRTG tileEntity1) { +public class CONTAINER_RTG +extends ContainerRTGenerator +{ + public CONTAINER_RTG(EntityPlayer entityPlayer, TileEntityRTG tileEntity1) + { super(entityPlayer, tileEntity1); for (int i = 0; i < 4; i++) { - this.addSlotToContainer(new SlotInvSlot(tileEntity1.fuelSlot, i, 36 + i * 18, 18)); + addSlotToContainer(new SlotInvSlot(tileEntity1.fuelSlot, i, 36 + i * 18, 18)); } for (int i = 4; i < 8; i++) { - this.addSlotToContainer(new SlotInvSlot(tileEntity1.fuelSlot, i, 36 + (i - 4) * 18, 36)); + addSlotToContainer(new SlotInvSlot(tileEntity1.fuelSlot, i, 36 + (i - 4) * 18, 36)); } for (int i = 8; i < 12; i++) { - this.addSlotToContainer(new SlotInvSlot(tileEntity1.fuelSlot, i, 36 + (i - 8) * 18, 54)); + addSlotToContainer(new SlotInvSlot(tileEntity1.fuelSlot, i, 36 + (i - 8) * 18, 54)); } } @Override - public List<String> getNetworkedFields() { - final List<String> ret = super.getNetworkedFields(); + public List<String> getNetworkedFields() + { + List<String> ret = super.getNetworkedFields(); ret.add("storage"); diff --git a/src/Java/gtPlusPlus/xmod/ic2/block/RTGGenerator/gui/GUI_RTG.java b/src/Java/gtPlusPlus/xmod/ic2/block/RTGGenerator/gui/GUI_RTG.java index d7cdc17fe8..0d5f701b7a 100644 --- a/src/Java/gtPlusPlus/xmod/ic2/block/RTGGenerator/gui/GUI_RTG.java +++ b/src/Java/gtPlusPlus/xmod/ic2/block/RTGGenerator/gui/GUI_RTG.java @@ -1,9 +1,5 @@ package gtPlusPlus.xmod.ic2.block.RTGGenerator.gui; -import org.lwjgl.opengl.GL11; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import gtPlusPlus.xmod.ic2.block.RTGGenerator.TileEntityRTG; import ic2.core.IC2; import ic2.core.block.generator.gui.GuiRTGenerator; @@ -11,41 +7,46 @@ import ic2.core.util.GuiTooltipHelper; import net.minecraft.util.ResourceLocation; import net.minecraft.util.StatCollector; -@SideOnly(Side.CLIENT) -public class GUI_RTG extends GuiRTGenerator { - private static final ResourceLocation background = new ResourceLocation(IC2.textureDomain, - "textures/gui/GUIRTGenerator.png"); - public CONTAINER_RTG container; - - public String name; - - public GUI_RTG(final CONTAINER_RTG container1) { - super(container1); - - this.container = container1; - this.name = "RTG Mach II"; - } - - @Override - protected void drawGuiContainerBackgroundLayer(final float f, final int x, final int y) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.mc.getTextureManager().bindTexture(GUI_RTG.background); - final int j = (this.width - this.xSize) / 2; - final int k = (this.height - this.ySize) / 2; - this.drawTexturedModalRect(j, k, 0, 0, this.xSize, this.ySize); - - final int i1 = ((TileEntityRTG) this.container.base).gaugeStorageScaled(31); - this.drawTexturedModalRect(j + 119, k + 40, 179, 3, i1, 8); - } +import org.lwjgl.opengl.GL11; - @Override - protected void drawGuiContainerForegroundLayer(final int par1, final int par2) { - this.fontRendererObj.drawString(this.name, (this.xSize - this.fontRendererObj.getStringWidth(this.name)) / 2, 4, - 4210752); +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; - GuiTooltipHelper.drawAreaTooltip(par1 - this.guiLeft, par2 - this.guiTop, - StatCollector.translateToLocalFormatted("ic2.generic.text.bufferEU", new Object[] { - Double.valueOf(((TileEntityRTG) this.container.base).storage) - }), 117, 38, 150, 48); - } +@SideOnly(Side.CLIENT) +public class GUI_RTG + extends GuiRTGenerator +{ + public CONTAINER_RTG container; + public String name; + + public GUI_RTG(CONTAINER_RTG container1) + { + super(container1); + + this.container = container1; + this.name = "RTG Mach II"; + } + + @Override +protected void drawGuiContainerForegroundLayer(int par1, int par2) + { + this.fontRendererObj.drawString(this.name, (this.xSize - this.fontRendererObj.getStringWidth(this.name)) / 2, 4, 4210752); + + GuiTooltipHelper.drawAreaTooltip(par1 - this.guiLeft, par2 - this.guiTop, StatCollector.translateToLocalFormatted("ic2.generic.text.bufferEU", new Object[] { Double.valueOf(((TileEntityRTG)this.container.base).storage) }), 117, 38, 150, 48); + } + + @Override +protected void drawGuiContainerBackgroundLayer(float f, int x, int y) + { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + this.mc.getTextureManager().bindTexture(background); + int j = (this.width - this.xSize) / 2; + int k = (this.height - this.ySize) / 2; + drawTexturedModalRect(j, k, 0, 0, this.xSize, this.ySize); + + int i1 = ((TileEntityRTG)this.container.base).gaugeStorageScaled(31); + drawTexturedModalRect(j + 119, k + 40, 179, 3, i1, 8); + } + + private static final ResourceLocation background = new ResourceLocation(IC2.textureDomain, "textures/gui/GUIRTGenerator.png"); } diff --git a/src/Java/gtPlusPlus/xmod/ic2/block/kieticgenerator/IC2_BlockKineticGenerator.java b/src/Java/gtPlusPlus/xmod/ic2/block/kieticgenerator/IC2_BlockKineticGenerator.java index d4597cecab..74d94011ea 100644 --- a/src/Java/gtPlusPlus/xmod/ic2/block/kieticgenerator/IC2_BlockKineticGenerator.java +++ b/src/Java/gtPlusPlus/xmod/ic2/block/kieticgenerator/IC2_BlockKineticGenerator.java @@ -1,8 +1,5 @@ package gtPlusPlus.xmod.ic2.block.kieticgenerator; -import org.apache.commons.lang3.mutable.MutableObject; - -import cpw.mods.fml.common.registry.GameRegistry; import gtPlusPlus.core.creative.AddToCreativeTab; import ic2.core.block.BlockMultiID; import ic2.core.block.kineticgenerator.tileentity.TileEntityManualKineticGenerator; @@ -15,53 +12,65 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; -public class IC2_BlockKineticGenerator extends BlockMultiID { - public IC2_BlockKineticGenerator(final InternalName internalName1) { - super(internalName1, Material.iron, ItemKineticGenerator.class); - - this.setHardness(3.0F); - this.setStepSound(Block.soundTypeMetal); - this.setCreativeTab(AddToCreativeTab.tabMachines); - - GameRegistry.registerTileEntity(TileEntityWindKineticGenerator.class, "Advanced Kinetic Wind Generator"); - - } - - @Override - public int damageDropped(final int meta) { - return meta; - } - - @Override - public Class<? extends TileEntity> getTeClass(final int meta, final MutableObject<Class<?>[]> ctorArgTypes, - final MutableObject<Object[]> ctorArgs) { - try { - switch (meta) { - case 0: - return TileEntityWindKineticGenerator.class; - } - } - catch (final Exception e) { - throw new RuntimeException(e); - } - return null; - } +import org.apache.commons.lang3.mutable.MutableObject; - @Override - public String getTextureFolder(final int id) { - return "kineticgenerator"; - } +import cpw.mods.fml.common.registry.GameRegistry; - @Override - public boolean onBlockActivated(final World world, final int x, final int y, final int z, - final EntityPlayer entityPlayer, final int side, final float a, final float b, final float c) { - if (entityPlayer.isSneaking()) { - return false; - } - final TileEntity te = this.getOwnTe(world, x, y, z); - if (te != null && te instanceof TileEntityManualKineticGenerator) { - return ((TileEntityManualKineticGenerator) te).playerKlicked(entityPlayer); - } - return super.onBlockActivated(world, x, y, z, entityPlayer, side, a, b, c); - } +public class IC2_BlockKineticGenerator + extends BlockMultiID +{ + public IC2_BlockKineticGenerator(InternalName internalName1) + { + super(internalName1, Material.iron, ItemKineticGenerator.class); + + setHardness(3.0F); + setStepSound(Block.soundTypeMetal); + this.setCreativeTab(AddToCreativeTab.tabMachines); + + GameRegistry.registerTileEntity(TileEntityWindKineticGenerator.class, "Advanced Kinetic Wind Generator"); + + } + + @Override +public String getTextureFolder(int id) + { + return "kineticgenerator"; + } + + @Override +public int damageDropped(int meta) + { + return meta; + } + + @Override +public Class<? extends TileEntity> getTeClass(int meta, MutableObject<Class<?>[]> ctorArgTypes, MutableObject<Object[]> ctorArgs) + { + try + { + switch (meta) + { + case 0: + return TileEntityWindKineticGenerator.class; + } + } + catch (Exception e) + { + throw new RuntimeException(e); + } + return null; + } + + @Override +public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer entityPlayer, int side, float a, float b, float c) + { + if (entityPlayer.isSneaking()) { + return false; + } + TileEntity te = getOwnTe(world, x, y, z); + if ((te != null) && ((te instanceof TileEntityManualKineticGenerator))) { + return ((TileEntityManualKineticGenerator)te).playerKlicked(entityPlayer); + } + return super.onBlockActivated(world, x, y, z, entityPlayer, side, a, b, c); + } } diff --git a/src/Java/gtPlusPlus/xmod/ic2/block/kieticgenerator/IC2_TEComponent.java b/src/Java/gtPlusPlus/xmod/ic2/block/kieticgenerator/IC2_TEComponent.java index 7d61881016..f356441921 100644 --- a/src/Java/gtPlusPlus/xmod/ic2/block/kieticgenerator/IC2_TEComponent.java +++ b/src/Java/gtPlusPlus/xmod/ic2/block/kieticgenerator/IC2_TEComponent.java @@ -1,48 +1,48 @@ package gtPlusPlus.xmod.ic2.block.kieticgenerator; +import ic2.core.block.TileEntityBlock; + import java.io.DataInput; import java.io.IOException; -import ic2.core.block.TileEntityBlock; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.nbt.NBTTagCompound; -public abstract class IC2_TEComponent { - protected final TileEntityBlock parent; - - public IC2_TEComponent(final TileEntityBlock parent) { - this.parent = parent; - } - - public boolean enableWorldTick() { - return false; - } - - public abstract String getDefaultName(); - - public void onContainerUpdate(final String name, final EntityPlayerMP player) { - } - - public void onLoaded() { - } - - public void onNeighborUpdate(final Block srcBlock) { - } - - public void onNetworkUpdate(final DataInput is) throws IOException { - } - - public void onUnloaded() { - } - - public void onWorldTick() { - } - - public void readFromNbt(final NBTTagCompound nbt) { - } - - public NBTTagCompound writeToNbt() { - return null; - } +public abstract class IC2_TEComponent +{ + protected final TileEntityBlock parent; + + public IC2_TEComponent(TileEntityBlock parent) + { + this.parent = parent; + } + + public abstract String getDefaultName(); + + public void readFromNbt(NBTTagCompound nbt) {} + + public NBTTagCompound writeToNbt() + { + return null; + } + + public void onLoaded() {} + + public void onUnloaded() {} + + public void onNeighborUpdate(Block srcBlock) {} + + public void onContainerUpdate(String name, EntityPlayerMP player) {} + + public void onNetworkUpdate(DataInput is) + throws IOException + {} + + public boolean enableWorldTick() + { + return false; + } + + public void onWorldTick() {} } diff --git a/src/Java/gtPlusPlus/xmod/ic2/block/kieticgenerator/container/ContainerKineticWindgenerator.java b/src/Java/gtPlusPlus/xmod/ic2/block/kieticgenerator/container/ContainerKineticWindgenerator.java index 7d65a042ec..b3ceea52d4 100644 --- a/src/Java/gtPlusPlus/xmod/ic2/block/kieticgenerator/container/ContainerKineticWindgenerator.java +++ b/src/Java/gtPlusPlus/xmod/ic2/block/kieticgenerator/container/ContainerKineticWindgenerator.java @@ -1,24 +1,27 @@ package gtPlusPlus.xmod.ic2.block.kieticgenerator.container; -import java.util.List; - import ic2.core.ContainerFullInv; import ic2.core.block.kineticgenerator.tileentity.TileEntityWindKineticGenerator; import ic2.core.slot.SlotInvSlot; -import net.minecraft.entity.player.EntityPlayer; -public class ContainerKineticWindgenerator extends ContainerFullInv<TileEntityWindKineticGenerator> { - public ContainerKineticWindgenerator(final EntityPlayer entityPlayer, - final TileEntityWindKineticGenerator tileEntity1) { - super(entityPlayer, tileEntity1, 166); +import java.util.List; - this.addSlotToContainer(new SlotInvSlot(tileEntity1.rotorSlot, 0, 80, 26)); - } +import net.minecraft.entity.player.EntityPlayer; - @Override - public List<String> getNetworkedFields() { - final List<String> ret = super.getNetworkedFields(); - ret.add("windStrength"); - return ret; - } +public class ContainerKineticWindgenerator + extends ContainerFullInv<TileEntityWindKineticGenerator> +{ + public ContainerKineticWindgenerator(EntityPlayer entityPlayer, TileEntityWindKineticGenerator tileEntity1) + { + super(entityPlayer, tileEntity1, 166); + + addSlotToContainer(new SlotInvSlot(tileEntity1.rotorSlot, 0, 80, 26)); + } + + public List<String> getNetworkedFields() + { + List<String> ret = super.getNetworkedFields(); + ret.add("windStrength"); + return ret; + } } diff --git a/src/Java/gtPlusPlus/xmod/ic2/block/kieticgenerator/gui/GuiKineticWindGenerator.java b/src/Java/gtPlusPlus/xmod/ic2/block/kieticgenerator/gui/GuiKineticWindGenerator.java index 3380b83c39..f677e7fcfb 100644 --- a/src/Java/gtPlusPlus/xmod/ic2/block/kieticgenerator/gui/GuiKineticWindGenerator.java +++ b/src/Java/gtPlusPlus/xmod/ic2/block/kieticgenerator/gui/GuiKineticWindGenerator.java @@ -1,77 +1,76 @@ package gtPlusPlus.xmod.ic2.block.kieticgenerator.gui; -import org.lwjgl.opengl.GL11; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import ic2.core.IC2; import ic2.core.block.kineticgenerator.container.ContainerWindKineticGenerator; +import ic2.core.block.kineticgenerator.tileentity.TileEntityWindKineticGenerator; import ic2.core.util.GuiTooltipHelper; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.util.ResourceLocation; import net.minecraft.util.StatCollector; -@SideOnly(Side.CLIENT) -public class GuiKineticWindGenerator extends GuiContainer { - private static final ResourceLocation background = new ResourceLocation(IC2.textureDomain, - "textures/gui/GUIWindKineticGenerator.png"); - public ContainerWindKineticGenerator container; - - public String name; - - public GuiKineticWindGenerator(final ContainerWindKineticGenerator container1) { - super(container1); - - this.container = container1; - this.name = StatCollector.translateToLocal("ic2.WindKineticGenerator.gui.name"); - } +import org.lwjgl.opengl.GL11; - @Override - protected void drawGuiContainerBackgroundLayer(final float f, final int x, final int y) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.mc.getTextureManager().bindTexture(GuiKineticWindGenerator.background); - final int j = (this.width - this.xSize) / 2; - final int k = (this.height - this.ySize) / 2; - this.drawTexturedModalRect(j, k, 0, 0, this.xSize, this.ySize); - if (this.container.base.guiisoverload() && this.container.base.checkrotor()) { - this.drawTexturedModalRect(j + 44, k + 20, 176, 0, 30, 26); - this.drawTexturedModalRect(j + 102, k + 20, 176, 0, 30, 26); - } - } +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; - @Override - protected void drawGuiContainerForegroundLayer(final int par1, final int par2) { - this.fontRendererObj.drawString(this.name, (this.xSize - this.fontRendererObj.getStringWidth(this.name)) / 2, 6, - 4210752); - if (this.container.base.checkrotor()) { - if (!this.container.base.rotorspace()) { - this.fontRendererObj.drawString( - StatCollector.translateToLocal("ic2.WindKineticGenerator.gui.rotorspace"), 20, 52, 2157374); - } - else if (this.container.base.checkrotor() && !this.container.base.guiisminWindStrength()) { - this.fontRendererObj.drawString( - StatCollector.translateToLocal("ic2.WindKineticGenerator.gui.windweak1"), 27, 52, 2157374); - this.fontRendererObj.drawString( - StatCollector.translateToLocal("ic2.WindKineticGenerator.gui.windweak2"), 24, 69, 2157374); - } - else { - this.fontRendererObj.drawString( - StatCollector.translateToLocalFormatted("ic2.WindKineticGenerator.gui.output", new Object[] { - Integer.valueOf(this.container.base.getKuOutput()) - }), 55, 52, 2157374); - this.fontRendererObj.drawString(this.container.base.getRotorhealth() + " %", 46, 70, 2157374); - if (this.container.base.guiisoverload()) { - GuiTooltipHelper.drawAreaTooltip(par1 - this.guiLeft, par2 - this.guiTop, - StatCollector.translateToLocal("ic2.WindKineticGenerator.error.overload"), 44, 20, 79, 45); - GuiTooltipHelper.drawAreaTooltip(par1 - this.guiLeft, par2 - this.guiTop, - StatCollector.translateToLocal("ic2.WindKineticGenerator.error.overload2"), 102, 20, 131, - 45); - } - } - } - else { - this.fontRendererObj.drawString(StatCollector.translateToLocal("ic2.WindKineticGenerator.gui.rotormiss"), - 27, 52, 2157374); - } - } +@SideOnly(Side.CLIENT) +public class GuiKineticWindGenerator + extends GuiContainer +{ + public ContainerWindKineticGenerator container; + public String name; + + public GuiKineticWindGenerator(ContainerWindKineticGenerator container1) + { + super(container1); + + this.container = container1; + this.name = StatCollector.translateToLocal("ic2.WindKineticGenerator.gui.name"); + } + + protected void drawGuiContainerForegroundLayer(int par1, int par2) + { + this.fontRendererObj.drawString(this.name, (this.xSize - this.fontRendererObj.getStringWidth(this.name)) / 2, 6, 4210752); + if (((TileEntityWindKineticGenerator)this.container.base).checkrotor()) + { + if (!((TileEntityWindKineticGenerator)this.container.base).rotorspace()) + { + this.fontRendererObj.drawString(StatCollector.translateToLocal("ic2.WindKineticGenerator.gui.rotorspace"), 20, 52, 2157374); + } + else if ((((TileEntityWindKineticGenerator)this.container.base).checkrotor()) && (!((TileEntityWindKineticGenerator)this.container.base).guiisminWindStrength())) + { + this.fontRendererObj.drawString(StatCollector.translateToLocal("ic2.WindKineticGenerator.gui.windweak1"), 27, 52, 2157374); + this.fontRendererObj.drawString(StatCollector.translateToLocal("ic2.WindKineticGenerator.gui.windweak2"), 24, 69, 2157374); + } + else + { + this.fontRendererObj.drawString(StatCollector.translateToLocalFormatted("ic2.WindKineticGenerator.gui.output", new Object[] { Integer.valueOf(((TileEntityWindKineticGenerator)this.container.base).getKuOutput()) }), 55, 52, 2157374); + this.fontRendererObj.drawString(((TileEntityWindKineticGenerator)this.container.base).getRotorhealth() + " %", 46, 70, 2157374); + if (((TileEntityWindKineticGenerator)this.container.base).guiisoverload()) + { + GuiTooltipHelper.drawAreaTooltip(par1 - this.guiLeft, par2 - this.guiTop, StatCollector.translateToLocal("ic2.WindKineticGenerator.error.overload"), 44, 20, 79, 45); + GuiTooltipHelper.drawAreaTooltip(par1 - this.guiLeft, par2 - this.guiTop, StatCollector.translateToLocal("ic2.WindKineticGenerator.error.overload2"), 102, 20, 131, 45); + } + } + } + else { + this.fontRendererObj.drawString(StatCollector.translateToLocal("ic2.WindKineticGenerator.gui.rotormiss"), 27, 52, 2157374); + } + } + + protected void drawGuiContainerBackgroundLayer(float f, int x, int y) + { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + this.mc.getTextureManager().bindTexture(background); + int j = (this.width - this.xSize) / 2; + int k = (this.height - this.ySize) / 2; + drawTexturedModalRect(j, k, 0, 0, this.xSize, this.ySize); + if ((((TileEntityWindKineticGenerator)this.container.base).guiisoverload()) && (((TileEntityWindKineticGenerator)this.container.base).checkrotor())) + { + drawTexturedModalRect(j + 44, k + 20, 176, 0, 30, 26); + drawTexturedModalRect(j + 102, k + 20, 176, 0, 30, 26); + } + } + + private static final ResourceLocation background = new ResourceLocation(IC2.textureDomain, "textures/gui/GUIWindKineticGenerator.png"); } diff --git a/src/Java/gtPlusPlus/xmod/ic2/block/kieticgenerator/tileentity/TileEntityKineticWindGenerator.java b/src/Java/gtPlusPlus/xmod/ic2/block/kieticgenerator/tileentity/TileEntityKineticWindGenerator.java index 1dc9d39acf..f094c8f928 100644 --- a/src/Java/gtPlusPlus/xmod/ic2/block/kieticgenerator/tileentity/TileEntityKineticWindGenerator.java +++ b/src/Java/gtPlusPlus/xmod/ic2/block/kieticgenerator/tileentity/TileEntityKineticWindGenerator.java @@ -1,19 +1,22 @@ package gtPlusPlus.xmod.ic2.block.kieticgenerator.tileentity; -import java.util.List; -import java.util.Vector; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import ic2.api.energy.tile.IKineticSource; import ic2.api.item.IKineticRotor; import ic2.api.item.IKineticRotor.GearboxType; -import ic2.core.*; +import ic2.core.ContainerBase; +import ic2.core.IC2; +import ic2.core.IHasGui; +import ic2.core.WorldData; import ic2.core.block.invslot.InvSlotConsumableKineticRotor; import ic2.core.block.kineticgenerator.container.ContainerWindKineticGenerator; import ic2.core.block.kineticgenerator.gui.GuiWindKineticGenerator; import ic2.core.block.kineticgenerator.tileentity.TileEntityWindKineticGenerator; +import ic2.core.network.NetworkManager; import ic2.core.util.Util; + +import java.util.List; +import java.util.Vector; + import net.minecraft.block.Block; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; @@ -22,321 +25,368 @@ import net.minecraft.util.ResourceLocation; import net.minecraft.util.StatCollector; import net.minecraft.world.ChunkCache; import net.minecraftforge.common.util.ForgeDirection; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; -public class TileEntityKineticWindGenerator extends TileEntityWindKineticGenerator implements IKineticSource, IHasGui { - private static final double efficiencyRollOffExponent = 2.0D; - private static final int nominalRotationPeriod = 500; - public final InvSlotConsumableKineticRotor rotorSlot; - private double windStrength; - private int obstructedCrossSection; - private int crossSection; - private int updateTicker; - private float rotationSpeed; - - public TileEntityKineticWindGenerator() { - this.updateTicker = IC2.random.nextInt(this.getTickRate()); +public class TileEntityKineticWindGenerator +extends TileEntityWindKineticGenerator +implements IKineticSource, IHasGui +{ + public final InvSlotConsumableKineticRotor rotorSlot; + private double windStrength; + private int obstructedCrossSection; + private int crossSection; + private int updateTicker; + private float rotationSpeed; + private static final double efficiencyRollOffExponent = 2.0D; + private static final int nominalRotationPeriod = 500; + + public TileEntityKineticWindGenerator() + { + this.updateTicker = IC2.random.nextInt(getTickRate()); this.rotorSlot = new InvSlotConsumableKineticRotor(this, "rotorslot", 0, null, 1, null, GearboxType.WIND); } - @Override - public double calcWindStrength() { - double windStr = WorldData.get(this.worldObj).windSim.getWindAt(this.yCoord); - - windStr *= 1.0D - Math.pow(this.obstructedCrossSection / this.crossSection, 2.0D); - - return Math.max(0.0D, windStr); - } - - @Override - public boolean checkrotor() { - return !this.rotorSlot.isEmpty(); - } + + public void update2Entity() + { + super.updateEntity(); - @Override - public int checkSpace(int length, final boolean onlyrotor) { - int box = this.getRotorDiameter() / 2; - int lentemp = 0; - if (onlyrotor) { - length = 1; - lentemp = length + 1; + assert (IC2.platform.isSimulating()); + if (this.updateTicker++ % getTickRate() != 0) { + return; } - if (!onlyrotor) { - box *= 2; + boolean needsInvUpdate = false; + if (!this.rotorSlot.isEmpty()) + { + if (checkSpace(1, true) == 0) + { + if (getActive() != true) { + setActive(true); + } + needsInvUpdate = true; + } + else + { + if (getActive()) { + setActive(false); + } + needsInvUpdate = true; + } } - final ForgeDirection fwdDir = ForgeDirection.VALID_DIRECTIONS[this.getFacing()]; - final ForgeDirection rightDir = fwdDir.getRotation(ForgeDirection.DOWN); - - final int xMaxDist = Math.abs(length * fwdDir.offsetX + box * rightDir.offsetX); - - final int zMaxDist = Math.abs(length * fwdDir.offsetZ + box * rightDir.offsetZ); - - final ChunkCache chunkCache = new ChunkCache(this.worldObj, this.xCoord - xMaxDist, this.yCoord - box, - this.zCoord - zMaxDist, this.xCoord + xMaxDist, this.yCoord + box, this.zCoord + zMaxDist, 0); + else + { + if (getActive()) { + setActive(false); + } + needsInvUpdate = true; + } + if (getActive()) + { + this.crossSection = (getRotorDiameter() / 2 * 2 * 2 + 1); - int ret = 0; - for (int up = -box; up <= box; up++) { - final int y = this.yCoord + up; - for (int right = -box; right <= box; right++) { - boolean occupied = false; - for (int fwd = lentemp - length; fwd <= length; fwd++) { - final int x = this.xCoord + fwd * fwdDir.offsetX + right * rightDir.offsetX; + this.crossSection *= this.crossSection; + this.obstructedCrossSection = checkSpace(getRotorDiameter() * 3, false); + if ((this.obstructedCrossSection > 0) && (this.obstructedCrossSection <= (getRotorDiameter() + 1) / 2)) { + this.obstructedCrossSection = 0; + } else if (this.obstructedCrossSection < 0) { + this.obstructedCrossSection = this.crossSection; + } + this.windStrength = calcWindStrength(); - final int z = this.zCoord + fwd * fwdDir.offsetZ + right * rightDir.offsetZ; + float speed = (float)Util.limit((this.windStrength - getMinWindStrength()) / getMaxWindStrength(), 0.0D, 2.0D); - assert Math.abs(x - this.xCoord) <= xMaxDist; - assert Math.abs(z - this.zCoord) <= zMaxDist; - final Block block = chunkCache.getBlock(x, y, z); - if (!block.isAir(chunkCache, x, y, z)) { - occupied = true; - if ((up != 0 || right != 0 || fwd != 0) - && chunkCache.getTileEntity(x, y, z) instanceof TileEntityKineticWindGenerator - && !onlyrotor) { - return -1; - } - } - } - if (occupied) { - ret++; + setRotationSpeed(speed*2); + if (this.windStrength >= getMinWindStrength()) { + if (this.windStrength <= getMaxWindStrength()) { + this.rotorSlot.damage(1, false); + } else { + this.rotorSlot.damage(4, false); } } } - return ret; } - public boolean enableUpdateEntity() { - return IC2.platform.isSimulating(); - } - @Override - public boolean facingMatchesDirection(final ForgeDirection direction) { - return direction.ordinal() == this.getFacing(); - } @Override - public float getAngle() { - if (this.rotationSpeed > 0.0F) { - final long period = (long) (5.0E+008F / this.rotationSpeed); + public List<String> getNetworkedFields() + { + List<String> ret = new Vector<String>(1); - return (float) (System.nanoTime() % period) / (float) period * 360.0F; - } - return 0.0F; + ret.add("rotationSpeed"); + ret.add("rotorSlot"); + ret.addAll(super.getNetworkedFields()); + + return ret; } @Override - public float getefficiency() { - final ItemStack stack = this.rotorSlot.get(); - if (stack != null && stack.getItem() instanceof IKineticRotor) { - return (float) (((IKineticRotor) stack.getItem()).getEfficiency(stack) * 1.5); - } - return 0.0F; + public ContainerBase<TileEntityWindKineticGenerator> getGuiContainer(EntityPlayer entityPlayer) + { + return new ContainerWindKineticGenerator(entityPlayer, this); } @Override @SideOnly(Side.CLIENT) - public GuiScreen getGui(final EntityPlayer entityPlayer, final boolean isAdmin) { + public GuiScreen getGui(EntityPlayer entityPlayer, boolean isAdmin) + { return new GuiWindKineticGenerator(new ContainerWindKineticGenerator(entityPlayer, this)); } @Override - public ContainerBase<TileEntityWindKineticGenerator> getGuiContainer(final EntityPlayer entityPlayer) { - return new ContainerWindKineticGenerator(entityPlayer, this); + public boolean facingMatchesDirection(ForgeDirection direction) + { + return direction.ordinal() == getFacing(); } @Override - public String getInventoryName() { - return "Advanced Kinetic Wind Generator"; + public boolean wrenchCanSetFacing(EntityPlayer entityPlayer, int side) + { + if ((side == 0) || (side == 1)) { + return false; + } + return getFacing() != side; } @Override - public int getKuOutput() { - if (this.windStrength >= this.getMinWindStrength() && this.getActive()) { - return (int) (this.windStrength * 50.0D * this.getefficiency()); - } - return 0; + public void setFacing(short side) + { + super.setFacing(side); + } + + public boolean enableUpdateEntity() + { + return IC2.platform.isSimulating(); } @Override - public int getMaxWindStrength() { - final ItemStack stack = this.rotorSlot.get(); - if (stack != null && stack.getItem() instanceof IKineticRotor) { - return ((IKineticRotor) stack.getItem()).getMaxWindStrength(stack) * 2; + public String getRotorhealth() + { + if (!this.rotorSlot.isEmpty()) { + return StatCollector.translateToLocalFormatted("ic2.WindKineticGenerator.gui.rotorhealth", new Object[] { Integer.valueOf((int)(100.0F - this.rotorSlot.get().getItemDamage() / this.rotorSlot.get().getMaxDamage() * 100.0F)) }); } - return 0; + return ""; } @Override - public int getMinWindStrength() { - final ItemStack stack = this.rotorSlot.get(); - if (stack != null && stack.getItem() instanceof IKineticRotor) { - return ((IKineticRotor) stack.getItem()).getMinWindStrength(stack) / 2; + public int maxrequestkineticenergyTick(ForgeDirection directionFrom) + { + return getKuOutput(); + } + + @Override + public int requestkineticenergy(ForgeDirection directionFrom, int requestkineticenergy) + { + if (facingMatchesDirection(directionFrom.getOpposite())) { + return Math.min(requestkineticenergy, getKuOutput()); } return 0; } @Override - public List<String> getNetworkedFields() { - final List<String> ret = new Vector<String>(1); + public String getInventoryName() + { + return "Advanced Kinetic Wind Generator"; + } - ret.add("rotationSpeed"); - ret.add("rotorSlot"); - ret.addAll(super.getNetworkedFields()); + @Override + public void onGuiClosed(EntityPlayer entityPlayer) {} - return ret; + @Override + public boolean shouldRenderInPass(int pass) + { + return pass == 0; } @Override - public int getRotorDiameter() { - final ItemStack stack = this.rotorSlot.get(); - if (stack != null && stack.getItem() instanceof IKineticRotor) { - return ((IKineticRotor) stack.getItem()).getDiameter(stack) / 2; + public int checkSpace(int length, boolean onlyrotor) + { + int box = getRotorDiameter() / 2; + int lentemp = 0; + if (onlyrotor) + { + length = 1; + lentemp = length + 1; } - return 0; + if (!onlyrotor) { + box *= 2; + } + ForgeDirection fwdDir = ForgeDirection.VALID_DIRECTIONS[getFacing()]; + ForgeDirection rightDir = fwdDir.getRotation(ForgeDirection.DOWN); + + int xMaxDist = Math.abs(length * fwdDir.offsetX + box * rightDir.offsetX); + + int zMaxDist = Math.abs(length * fwdDir.offsetZ + box * rightDir.offsetZ); + + + ChunkCache chunkCache = new ChunkCache(this.worldObj, this.xCoord - xMaxDist, this.yCoord - box, this.zCoord - zMaxDist, this.xCoord + xMaxDist, this.yCoord + box, this.zCoord + zMaxDist, 0); + + + + int ret = 0; + for (int up = -box; up <= box; up++) + { + int y = this.yCoord + up; + for (int right = -box; right <= box; right++) + { + boolean occupied = false; + for (int fwd = lentemp - length; fwd <= length; fwd++) + { + int x = this.xCoord + fwd * fwdDir.offsetX + right * rightDir.offsetX; + + int z = this.zCoord + fwd * fwdDir.offsetZ + right * rightDir.offsetZ; + + + assert (Math.abs(x - this.xCoord) <= xMaxDist); + assert (Math.abs(z - this.zCoord) <= zMaxDist); + + Block block = chunkCache.getBlock(x, y, z); + if (!block.isAir(chunkCache, x, y, z)) + { + occupied = true; + if (((up != 0) || (right != 0) || (fwd != 0)) && ((chunkCache.getTileEntity(x, y, z) instanceof TileEntityKineticWindGenerator)) && (!onlyrotor)) { + return -1; + } + } + } + if (occupied) { + ret++; + } + } + } + return ret; } @Override - public String getRotorhealth() { - if (!this.rotorSlot.isEmpty()) { - return StatCollector.translateToLocalFormatted("ic2.WindKineticGenerator.gui.rotorhealth", new Object[] { - Integer.valueOf((int) (100.0F - - this.rotorSlot.get().getItemDamage() / this.rotorSlot.get().getMaxDamage() * 100.0F)) - }); - } - return ""; + public boolean checkrotor() + { + return !this.rotorSlot.isEmpty(); } @Override - public ResourceLocation getRotorRenderTexture() { - final ItemStack stack = this.rotorSlot.get(); - if (stack != null && stack.getItem() instanceof IKineticRotor) { - return ((IKineticRotor) stack.getItem()).getRotorRenderTexture(stack); + public boolean rotorspace() + { + return checkSpace(1, true) == 0; + } + + private void setRotationSpeed(float speed) + { + if (this.rotationSpeed != speed) + { + this.rotationSpeed = speed; + ((NetworkManager)IC2.network.get()).updateTileEntityField(this, "rotationSpeed"); } - return new ResourceLocation(IC2.textureDomain, "textures/items/rotors/rotorWoodmodel.png"); } @Override - public int getTickRate() { + public int getTickRate() + { return 32; } @Override - public int getWindStrength() { - return (int) this.windStrength; - } + public double calcWindStrength() + { + double windStr = WorldData.get(this.worldObj).windSim.getWindAt(this.yCoord); - @Override - public boolean guiisminWindStrength() { - return this.windStrength >= this.getMinWindStrength(); + windStr *= (1.0D - Math.pow(this.obstructedCrossSection / this.crossSection, 2.0D)); + + + return Math.max(0.0D, windStr); } @Override - public boolean guiisoverload() { - if (this.windStrength > this.getMaxWindStrength()) { - return true; + public float getAngle() + { + if (this.rotationSpeed > 0.0F) + { + long period = (long) (5.0E+008F / this.rotationSpeed); + + + return (float)(System.nanoTime() % period) / (float)period * 360.0F; } - return false; + return 0.0F; } @Override - public int maxrequestkineticenergyTick(final ForgeDirection directionFrom) { - return this.getKuOutput(); + public float getefficiency() + { + ItemStack stack = this.rotorSlot.get(); + if ((stack != null) && ((stack.getItem() instanceof IKineticRotor))) { + return (float) (((IKineticRotor)stack.getItem()).getEfficiency(stack)*1.5); + } + return 0.0F; } @Override - public void onGuiClosed(final EntityPlayer entityPlayer) { + public int getMinWindStrength() + { + ItemStack stack = this.rotorSlot.get(); + if ((stack != null) && ((stack.getItem() instanceof IKineticRotor))) { + return ((IKineticRotor)stack.getItem()).getMinWindStrength(stack)/2; + } + return 0; } @Override - public int requestkineticenergy(final ForgeDirection directionFrom, final int requestkineticenergy) { - if (this.facingMatchesDirection(directionFrom.getOpposite())) { - return Math.min(requestkineticenergy, this.getKuOutput()); + public int getMaxWindStrength() + { + ItemStack stack = this.rotorSlot.get(); + if ((stack != null) && ((stack.getItem() instanceof IKineticRotor))) { + return ((IKineticRotor)stack.getItem()).getMaxWindStrength(stack)*2; } return 0; } @Override - public boolean rotorspace() { - return this.checkSpace(1, true) == 0; + public int getRotorDiameter() + { + ItemStack stack = this.rotorSlot.get(); + if ((stack != null) && ((stack.getItem() instanceof IKineticRotor))) { + return ((IKineticRotor)stack.getItem()).getDiameter(stack)/2; + } + return 0; } @Override - public void setFacing(final short side) { - super.setFacing(side); + public ResourceLocation getRotorRenderTexture() + { + ItemStack stack = this.rotorSlot.get(); + if ((stack != null) && ((stack.getItem() instanceof IKineticRotor))) { + return ((IKineticRotor)stack.getItem()).getRotorRenderTexture(stack); + } + return new ResourceLocation(IC2.textureDomain, "textures/items/rotors/rotorWoodmodel.png"); } - private void setRotationSpeed(final float speed) { - if (this.rotationSpeed != speed) { - this.rotationSpeed = speed; - IC2.network.get().updateTileEntityField(this, "rotationSpeed"); + @Override + public boolean guiisoverload() + { + if (this.windStrength > getMaxWindStrength()) { + return true; } + return false; } @Override - public boolean shouldRenderInPass(final int pass) { - return pass == 0; + public boolean guiisminWindStrength() + { + return this.windStrength >= getMinWindStrength(); } - public void update2Entity() { - super.updateEntity(); - - assert IC2.platform.isSimulating(); - if (this.updateTicker++ % this.getTickRate() != 0) { - return; - } - boolean needsInvUpdate = false; - if (!this.rotorSlot.isEmpty()) { - if (this.checkSpace(1, true) == 0) { - if (this.getActive() != true) { - this.setActive(true); - } - needsInvUpdate = true; - } - else { - if (this.getActive()) { - this.setActive(false); - } - needsInvUpdate = true; - } - } - else { - if (this.getActive()) { - this.setActive(false); - } - needsInvUpdate = true; - } - if (this.getActive()) { - this.crossSection = this.getRotorDiameter() / 2 * 2 * 2 + 1; - - this.crossSection *= this.crossSection; - this.obstructedCrossSection = this.checkSpace(this.getRotorDiameter() * 3, false); - if (this.obstructedCrossSection > 0 && this.obstructedCrossSection <= (this.getRotorDiameter() + 1) / 2) { - this.obstructedCrossSection = 0; - } - else if (this.obstructedCrossSection < 0) { - this.obstructedCrossSection = this.crossSection; - } - this.windStrength = this.calcWindStrength(); - - final float speed = (float) Util - .limit((this.windStrength - this.getMinWindStrength()) / this.getMaxWindStrength(), 0.0D, 2.0D); - - this.setRotationSpeed(speed * 2); - if (this.windStrength >= this.getMinWindStrength()) { - if (this.windStrength <= this.getMaxWindStrength()) { - this.rotorSlot.damage(1, false); - } - else { - this.rotorSlot.damage(4, false); - } - } + @Override + public int getKuOutput() + { + if ((this.windStrength >= getMinWindStrength()) && (getActive())) { + return (int)(this.windStrength * 50.0D * getefficiency()); } + return 0; } @Override - public boolean wrenchCanSetFacing(final EntityPlayer entityPlayer, final int side) { - if (side == 0 || side == 1) { - return false; - } - return this.getFacing() != side; + public int getWindStrength() + { + return (int)this.windStrength; } } diff --git a/src/Java/gtPlusPlus/xmod/ic2/item/IC2_ItemGradual.java b/src/Java/gtPlusPlus/xmod/ic2/item/IC2_ItemGradual.java index 96c61d65b5..b6ec4d66df 100644 --- a/src/Java/gtPlusPlus/xmod/ic2/item/IC2_ItemGradual.java +++ b/src/Java/gtPlusPlus/xmod/ic2/item/IC2_ItemGradual.java @@ -1,33 +1,42 @@ package gtPlusPlus.xmod.ic2.item; +import gtPlusPlus.core.creative.AddToCreativeTab; +import gtPlusPlus.core.item.base.CoreItem; + import java.util.List; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.EnumRarity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import gtPlusPlus.core.creative.AddToCreativeTab; -import gtPlusPlus.core.item.base.CoreItem; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.*; -public class IC2_ItemGradual extends CoreItem { - public IC2_ItemGradual(final String internalName) { +public class IC2_ItemGradual +extends CoreItem +{ + public IC2_ItemGradual(String internalName) + { super(internalName, AddToCreativeTab.tabMachines, 1, 10000, "", EnumRarity.uncommon); - this.setNoRepair(); + setNoRepair(); } @Override - @SideOnly(Side.CLIENT) - public void getSubItems(final Item item, final CreativeTabs tabs, final List itemList) { - itemList.add(new ItemStack(this, 1, 1)); + public boolean isDamaged(ItemStack stack) + { + return getDamage(stack) > 1; } @Override - public boolean isDamaged(final ItemStack stack) { - return this.getDamage(stack) > 1; + public boolean showDurabilityBar(ItemStack stack) + { + return true; } @Override - public boolean showDurabilityBar(final ItemStack stack) { - return true; + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tabs, List itemList) + { + itemList.add(new ItemStack(this, 1, 1)); } } diff --git a/src/Java/gtPlusPlus/xmod/ic2/item/IC2_ItemGradualInteger.java b/src/Java/gtPlusPlus/xmod/ic2/item/IC2_ItemGradualInteger.java index 54e8ae855e..4922e0f806 100644 --- a/src/Java/gtPlusPlus/xmod/ic2/item/IC2_ItemGradualInteger.java +++ b/src/Java/gtPlusPlus/xmod/ic2/item/IC2_ItemGradualInteger.java @@ -6,41 +6,48 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -public class IC2_ItemGradualInteger extends IC2_ItemGradual implements ICustomDamageItem { - private final int maxDmg; - - public IC2_ItemGradualInteger(final String internalName, final int maxdmg) { - super(internalName); - - this.maxDmg = maxdmg; - } - - @Override - public boolean applyCustomDamage(final ItemStack stack, final int damage, final EntityLivingBase src) { - this.setCustomDamage(stack, this.getCustomDamage(stack) + damage); - return true; - } - - @Override - public int getCustomDamage(final ItemStack stack) { - final NBTTagCompound nbt = StackUtil.getOrCreateNbtData(stack); - return nbt.getInteger("advDmg"); - } - - @Override - public int getMaxCustomDamage(final ItemStack stack) { - return this.maxDmg; - } - - @Override - public void setCustomDamage(final ItemStack stack, final int damage) { - final NBTTagCompound nbt = StackUtil.getOrCreateNbtData(stack); - nbt.setInteger("advDmg", 0); - - final int maxStackDamage = stack.getMaxDamage(); - if (maxStackDamage > 2) { - // stack.setItemDamage(1 + (int)Util.map(damage, this.maxDmg, - // maxStackDamage - 2)); - } - } +public class IC2_ItemGradualInteger + extends IC2_ItemGradual + implements ICustomDamageItem +{ + private final int maxDmg; + + public IC2_ItemGradualInteger(String internalName, int maxdmg) + { + super(internalName); + + this.maxDmg = maxdmg; + } + + @Override +public int getCustomDamage(ItemStack stack) + { + NBTTagCompound nbt = StackUtil.getOrCreateNbtData(stack); + return nbt.getInteger("advDmg"); + } + + @Override +public int getMaxCustomDamage(ItemStack stack) + { + return this.maxDmg; + } + + @Override +public void setCustomDamage(ItemStack stack, int damage) + { + NBTTagCompound nbt = StackUtil.getOrCreateNbtData(stack); + nbt.setInteger("advDmg", 0); + + int maxStackDamage = stack.getMaxDamage(); + if (maxStackDamage > 2) { + //stack.setItemDamage(1 + (int)Util.map(damage, this.maxDmg, maxStackDamage - 2)); + } + } + + @Override +public boolean applyCustomDamage(ItemStack stack, int damage, EntityLivingBase src) + { + setCustomDamage(stack, getCustomDamage(stack) + damage); + return true; + } } diff --git a/src/Java/gtPlusPlus/xmod/ic2/item/IC2_ItemIC2.java b/src/Java/gtPlusPlus/xmod/ic2/item/IC2_ItemIC2.java index d7cb77ee40..852830dc5c 100644 --- a/src/Java/gtPlusPlus/xmod/ic2/item/IC2_ItemIC2.java +++ b/src/Java/gtPlusPlus/xmod/ic2/item/IC2_ItemIC2.java @@ -1,76 +1,104 @@ package gtPlusPlus.xmod.ic2.item; -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import gtPlusPlus.core.creative.AddToCreativeTab; import gtPlusPlus.core.lib.CORE; -import net.minecraft.item.*; +import net.minecraft.item.EnumRarity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import net.minecraft.util.StatCollector; +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; -public class IC2_ItemIC2 extends Item { - private int rarity = 0; - - protected IIcon[] textures; - - /* - * public String getTextureName(int index) { if ((!this.hasSubtypes) && - * (index > 0)) { return null; } String name = getUnlocalizedName(new - * ItemStack(this, 1, index)); if ((name != null) && (name.length() > 4)) { - * return name.substring(4); } return name; } - * - * @Override - * - * @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister - * iconRegister) { int indexCount = 0; while (getTextureName(indexCount) != - * null) { indexCount++; if (indexCount > 32767) { throw new - * RuntimeException("More Item Icons than actually possible @ " + - * getUnlocalizedName()); } } this.textures = new IIcon[indexCount]; for - * (int index = 0; index < indexCount; index++) { this.textures[index] = - * iconRegister.registerIcon(CORE.MODID + ":" + getUnlocalizedName()); } } - * - * @Override - * - * @SideOnly(Side.CLIENT) public IIcon getIconFromDamage(int meta) { if - * (meta < this.textures.length) { return this.textures[meta]; } return - * this.textures.length < 1 ? null : this.textures[0]; } - */ - - public IC2_ItemIC2(final String internalName) { - this.setUnlocalizedName(internalName); - this.setCreativeTab(AddToCreativeTab.tabMachines); - this.setTextureName(CORE.MODID + ":" + internalName); +public class IC2_ItemIC2 +extends Item +{ + public IC2_ItemIC2(String internalName) + { + setUnlocalizedName(internalName); + setCreativeTab(AddToCreativeTab.tabMachines); + setTextureName(CORE.MODID + ":" + internalName); GameRegistry.registerItem(this, internalName); } - @Override - public String getItemStackDisplayName(final ItemStack itemStack) { - return StatCollector.translateToLocal(this.getUnlocalizedName(itemStack)); + public String getTextureFolder() + { + return null; } - @Override - @SideOnly(Side.CLIENT) - public EnumRarity getRarity(final ItemStack stack) { - return EnumRarity.values()[this.rarity]; - } + /* public String getTextureName(int index) + { + if ((!this.hasSubtypes) && (index > 0)) { + return null; + } + String name = getUnlocalizedName(new ItemStack(this, 1, index)); + if ((name != null) && (name.length() > 4)) { + return name.substring(4); + } + return name; + } - public String getTextureFolder() { - return null; - } + @Override +@SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister iconRegister) + { + int indexCount = 0; + while (getTextureName(indexCount) != null) + { + indexCount++; + if (indexCount > 32767) { + throw new RuntimeException("More Item Icons than actually possible @ " + getUnlocalizedName()); + } + } + this.textures = new IIcon[indexCount]; + for (int index = 0; index < indexCount; index++) { + this.textures[index] = iconRegister.registerIcon(CORE.MODID + ":" + getUnlocalizedName()); + } + } + + @Override +@SideOnly(Side.CLIENT) + public IIcon getIconFromDamage(int meta) + { + if (meta < this.textures.length) { + return this.textures[meta]; + } + return this.textures.length < 1 ? null : this.textures[0]; + }*/ @Override - public String getUnlocalizedName() { + public String getUnlocalizedName() + { return super.getUnlocalizedName(); } @Override - public String getUnlocalizedName(final ItemStack itemStack) { - return this.getUnlocalizedName(); + public String getUnlocalizedName(ItemStack itemStack) + { + return getUnlocalizedName(); + } + + @Override + public String getItemStackDisplayName(ItemStack itemStack) + { + return StatCollector.translateToLocal(getUnlocalizedName(itemStack)); } - public IC2_ItemIC2 setRarity(final int aRarity) { + + public IC2_ItemIC2 setRarity(int aRarity) + { this.rarity = aRarity; return this; } + + @Override + @SideOnly(Side.CLIENT) + public EnumRarity getRarity(ItemStack stack) + { + return EnumRarity.values()[this.rarity]; + } + + private int rarity = 0; + protected IIcon[] textures; } diff --git a/src/Java/gtPlusPlus/xmod/ic2/item/IC2_Items.java b/src/Java/gtPlusPlus/xmod/ic2/item/IC2_Items.java index c7645d309e..bf6f3bc1cd 100644 --- a/src/Java/gtPlusPlus/xmod/ic2/item/IC2_Items.java +++ b/src/Java/gtPlusPlus/xmod/ic2/item/IC2_Items.java @@ -10,98 +10,62 @@ import net.minecraft.util.ResourceLocation; public class IC2_Items { - public static ItemStack rotor_Material_1; // Energetic Alloy - public static ItemStack rotor_Material_2; // TungstenSteel - public static ItemStack rotor_Material_3; // Vibrant Alloy - public static ItemStack rotor_Material_4; // Iridium + public static ItemStack rotor_Material_1; //Energetic Alloy + public static ItemStack rotor_Material_2; //TungstenSteel + public static ItemStack rotor_Material_3; //Vibrant Alloy + public static ItemStack rotor_Material_4; //Iridium - public static ItemStack rotor_Blade_Material_1; - public static ItemStack rotor_Blade_Material_2; - public static ItemStack rotor_Blade_Material_3; - public static ItemStack rotor_Blade_Material_4; + public static ItemStack rotor_Blade_Material_1; + public static ItemStack rotor_Blade_Material_2; + public static ItemStack rotor_Blade_Material_3; + public static ItemStack rotor_Blade_Material_4; - public static ItemStack shaft_Material_1; // Energetic Alloy - public static ItemStack shaft_Material_2; // TungstenSteel - public static ItemStack shaft_Material_3; // Vibrant Alloy - public static ItemStack shaft_Material_4; // Iridium + public static ItemStack shaft_Material_1; //Energetic Alloy + public static ItemStack shaft_Material_2; //TungstenSteel + public static ItemStack shaft_Material_3; //Vibrant Alloy + public static ItemStack shaft_Material_4; //Iridium + + public static ItemStack blockRTG; + public static ItemStack blockKineticGenerator; - public static ItemStack blockRTG; - public static ItemStack blockKineticGenerator; + public static void register(){ - public static void register() { - - if (LoadedMods.EnderIO) { - // Tier 1 - IC2_Items.rotor_Blade_Material_1 = new ItemStack(new CoreItem("itemEnergeticRotorBlade", - AddToCreativeTab.tabMachines, 16, "A part for an advanced Kinetic Rotor")); - IC2_Items.shaft_Material_1 = new ItemStack(new CoreItem("itemEnergeticShaft", AddToCreativeTab.tabMachines, - 16, "A part for an advanced Kinetic Rotor")); - IC2_Items.rotor_Material_1 = new ItemStack(new RotorBase(InternalName.itemwoodrotor, 9, 512000, 0.9F, 12, - 80, new ResourceLocation(IC2.textureDomain, "textures/items/rotors/rotorEnergeticModel.png")) - .setCreativeTab(AddToCreativeTab.tabMachines).setUnlocalizedName("itemEnergeticRotor")); - // Tier 2 - IC2_Items.rotor_Blade_Material_2 = new ItemStack(new CoreItem("itemTungstenSteelRotorBlade", - AddToCreativeTab.tabMachines, 16, "A part for an advanced Kinetic Rotor")); - IC2_Items.shaft_Material_2 = new ItemStack(new CoreItem("itemTungstenSteelShaft", - AddToCreativeTab.tabMachines, 16, "A part for an advanced Kinetic Rotor")); - IC2_Items.rotor_Material_2 = new ItemStack(new RotorBase(InternalName.itemironrotor, 11, 809600, 1.0F, 14, - 120, new ResourceLocation(IC2.textureDomain, "textures/items/rotors/rotorTungstenSteelModel.png")) - .setCreativeTab(AddToCreativeTab.tabMachines).setUnlocalizedName("itemTungstenSteelRotor")); - // Tier 3 - IC2_Items.rotor_Blade_Material_3 = new ItemStack(new CoreItem("itemVibrantRotorBlade", - AddToCreativeTab.tabMachines, 16, "A part for an advanced Kinetic Rotor")); - IC2_Items.shaft_Material_3 = new ItemStack(new CoreItem("itemVibrantShaft", AddToCreativeTab.tabMachines, - 16, "A part for an advanced Kinetic Rotor")); - IC2_Items.rotor_Material_3 = new ItemStack(new RotorBase(InternalName.itemsteelrotor, 13, 1600000, 1.2F, 16, - 160, new ResourceLocation(IC2.textureDomain, "textures/items/rotors/rotorVibrantModel.png")) - .setCreativeTab(AddToCreativeTab.tabMachines).setUnlocalizedName("itemVibrantRotor")); - // Tier 4 - IC2_Items.rotor_Blade_Material_4 = new ItemStack(new CoreItem("itemIridiumRotorBlade", - AddToCreativeTab.tabMachines, 16, "A part for an advanced Kinetic Rotor")); - IC2_Items.shaft_Material_4 = new ItemStack(new CoreItem("itemIridiumShaft", AddToCreativeTab.tabMachines, - 16, "A part for an advanced Kinetic Rotor")); - IC2_Items.rotor_Material_4 = new ItemStack( - new RotorIridium(InternalName.itemwcarbonrotor, 15, 3200000, 1.5F, 18, 320, - new ResourceLocation(IC2.textureDomain, "textures/items/rotors/rotorIridiumModel.png")) - .setCreativeTab(AddToCreativeTab.tabMachines) - .setUnlocalizedName("itemIridiumRotor")); + if(LoadedMods.EnderIO){ + //Tier 1 + rotor_Blade_Material_1 = new ItemStack (new CoreItem("itemEnergeticRotorBlade", AddToCreativeTab.tabMachines, 16, "A part for an advanced Kinetic Rotor")); + shaft_Material_1 = new ItemStack (new CoreItem("itemEnergeticShaft", AddToCreativeTab.tabMachines, 16, "A part for an advanced Kinetic Rotor")); + rotor_Material_1 = new ItemStack (new RotorBase(InternalName.itemwoodrotor, 9, 512000, 0.9F, 12, 80, new ResourceLocation(IC2.textureDomain, "textures/items/rotors/rotorEnergeticModel.png")).setCreativeTab(AddToCreativeTab.tabMachines).setUnlocalizedName("itemEnergeticRotor")); + //Tier 2 + rotor_Blade_Material_2 = new ItemStack (new CoreItem("itemTungstenSteelRotorBlade", AddToCreativeTab.tabMachines, 16, "A part for an advanced Kinetic Rotor")); + shaft_Material_2 = new ItemStack (new CoreItem("itemTungstenSteelShaft", AddToCreativeTab.tabMachines, 16, "A part for an advanced Kinetic Rotor")); + rotor_Material_2 = new ItemStack (new RotorBase(InternalName.itemironrotor, 11, 809600, 1.0F, 14, 120, new ResourceLocation(IC2.textureDomain, "textures/items/rotors/rotorTungstenSteelModel.png")).setCreativeTab(AddToCreativeTab.tabMachines).setUnlocalizedName("itemTungstenSteelRotor")); + //Tier 3 + rotor_Blade_Material_3 = new ItemStack (new CoreItem("itemVibrantRotorBlade", AddToCreativeTab.tabMachines, 16, "A part for an advanced Kinetic Rotor")); + shaft_Material_3 = new ItemStack (new CoreItem("itemVibrantShaft", AddToCreativeTab.tabMachines, 16, "A part for an advanced Kinetic Rotor")); + rotor_Material_3 = new ItemStack (new RotorBase(InternalName.itemsteelrotor, 13, 1600000, 1.2F, 16, 160, new ResourceLocation(IC2.textureDomain, "textures/items/rotors/rotorVibrantModel.png")).setCreativeTab(AddToCreativeTab.tabMachines).setUnlocalizedName("itemVibrantRotor")); + //Tier 4 + rotor_Blade_Material_4 = new ItemStack (new CoreItem("itemIridiumRotorBlade", AddToCreativeTab.tabMachines, 16, "A part for an advanced Kinetic Rotor")); + shaft_Material_4 = new ItemStack (new CoreItem("itemIridiumShaft", AddToCreativeTab.tabMachines, 16, "A part for an advanced Kinetic Rotor")); + rotor_Material_4 = new ItemStack (new RotorIridium(InternalName.itemwcarbonrotor, 15, 3200000, 1.5F, 18, 320, new ResourceLocation(IC2.textureDomain, "textures/items/rotors/rotorIridiumModel.png")).setCreativeTab(AddToCreativeTab.tabMachines).setUnlocalizedName("itemIridiumRotor")); } else { - // Tier 1 - Magnalium - IC2_Items.rotor_Blade_Material_1 = new ItemStack(new CoreItem("itemMagnaliumRotorBlade", - AddToCreativeTab.tabMachines, 16, "A part for an advanced Kinetic Rotor")); - IC2_Items.shaft_Material_1 = new ItemStack(new CoreItem("itemMagnaliumShaft", AddToCreativeTab.tabMachines, - 16, "A part for an advanced Kinetic Rotor")); - IC2_Items.rotor_Material_1 = new ItemStack(new RotorBase(InternalName.itemwoodrotor, 9, 512000, 0.9F, 12, - 80, new ResourceLocation(IC2.textureDomain, "textures/items/rotors/rotorMagnaliumModel.png")) - .setCreativeTab(AddToCreativeTab.tabMachines).setUnlocalizedName("itemMagnaliumRotor")); - // Tier 2 - IC2_Items.rotor_Blade_Material_2 = new ItemStack(new CoreItem("itemTungstenSteelRotorBlade", - AddToCreativeTab.tabMachines, 16, "A part for an advanced Kinetic Rotor")); - IC2_Items.shaft_Material_2 = new ItemStack(new CoreItem("itemTungstenSteelShaft", - AddToCreativeTab.tabMachines, 16, "A part for an advanced Kinetic Rotor")); - IC2_Items.rotor_Material_2 = new ItemStack(new RotorBase(InternalName.itemironrotor, 11, 809600, 1.0F, 14, - 120, new ResourceLocation(IC2.textureDomain, "textures/items/rotors/rotorTungstenSteelModel.png")) - .setCreativeTab(AddToCreativeTab.tabMachines).setUnlocalizedName("itemTungstenSteelRotor")); - // Tier 3 - Ultimet - IC2_Items.rotor_Blade_Material_3 = new ItemStack(new CoreItem("itemUltimetRotorBlade", - AddToCreativeTab.tabMachines, 16, "A part for an advanced Kinetic Rotor")); - IC2_Items.shaft_Material_3 = new ItemStack(new CoreItem("itemUltimetShaft", AddToCreativeTab.tabMachines, - 16, "A part for an advanced Kinetic Rotor")); - IC2_Items.rotor_Material_3 = new ItemStack(new RotorBase(InternalName.itemsteelrotor, 13, 1600000, 1.2F, 16, - 160, new ResourceLocation(IC2.textureDomain, "textures/items/rotors/rotorUltimetModel.png")) - .setCreativeTab(AddToCreativeTab.tabMachines).setUnlocalizedName("itemUltimetRotor")); - // Tier 4 - IC2_Items.rotor_Blade_Material_4 = new ItemStack(new CoreItem("itemIridiumRotorBlade", - AddToCreativeTab.tabMachines, 16, "A part for an advanced Kinetic Rotor")); - IC2_Items.shaft_Material_4 = new ItemStack(new CoreItem("itemIridiumShaft", AddToCreativeTab.tabMachines, - 16, "A part for an advanced Kinetic Rotor")); - IC2_Items.rotor_Material_4 = new ItemStack( - new RotorIridium(InternalName.itemwcarbonrotor, 15, 3200000, 1.5F, 18, 320, - new ResourceLocation(IC2.textureDomain, "textures/items/rotors/rotorIridiumModel.png")) - .setCreativeTab(AddToCreativeTab.tabMachines) - .setUnlocalizedName("itemIridiumRotor")); + //Tier 1 - Magnalium + rotor_Blade_Material_1 = new ItemStack (new CoreItem("itemMagnaliumRotorBlade", AddToCreativeTab.tabMachines, 16, "A part for an advanced Kinetic Rotor")); + shaft_Material_1 = new ItemStack (new CoreItem("itemMagnaliumShaft", AddToCreativeTab.tabMachines, 16, "A part for an advanced Kinetic Rotor")); + rotor_Material_1 = new ItemStack (new RotorBase(InternalName.itemwoodrotor, 9, 512000, 0.9F, 12, 80, new ResourceLocation(IC2.textureDomain, "textures/items/rotors/rotorMagnaliumModel.png")).setCreativeTab(AddToCreativeTab.tabMachines).setUnlocalizedName("itemMagnaliumRotor")); + //Tier 2 + rotor_Blade_Material_2 = new ItemStack (new CoreItem("itemTungstenSteelRotorBlade", AddToCreativeTab.tabMachines, 16, "A part for an advanced Kinetic Rotor")); + shaft_Material_2 = new ItemStack (new CoreItem("itemTungstenSteelShaft", AddToCreativeTab.tabMachines, 16, "A part for an advanced Kinetic Rotor")); + rotor_Material_2 = new ItemStack (new RotorBase(InternalName.itemironrotor, 11, 809600, 1.0F, 14, 120, new ResourceLocation(IC2.textureDomain, "textures/items/rotors/rotorTungstenSteelModel.png")).setCreativeTab(AddToCreativeTab.tabMachines).setUnlocalizedName("itemTungstenSteelRotor")); + //Tier 3 - Ultimet + rotor_Blade_Material_3 = new ItemStack (new CoreItem("itemUltimetRotorBlade", AddToCreativeTab.tabMachines, 16, "A part for an advanced Kinetic Rotor")); + shaft_Material_3 = new ItemStack (new CoreItem("itemUltimetShaft", AddToCreativeTab.tabMachines, 16, "A part for an advanced Kinetic Rotor")); + rotor_Material_3 = new ItemStack (new RotorBase(InternalName.itemsteelrotor, 13, 1600000, 1.2F, 16, 160, new ResourceLocation(IC2.textureDomain, "textures/items/rotors/rotorUltimetModel.png")).setCreativeTab(AddToCreativeTab.tabMachines).setUnlocalizedName("itemUltimetRotor")); + //Tier 4 + rotor_Blade_Material_4 = new ItemStack (new CoreItem("itemIridiumRotorBlade", AddToCreativeTab.tabMachines, 16, "A part for an advanced Kinetic Rotor")); + shaft_Material_4 = new ItemStack (new CoreItem("itemIridiumShaft", AddToCreativeTab.tabMachines, 16, "A part for an advanced Kinetic Rotor")); + rotor_Material_4 = new ItemStack (new RotorIridium(InternalName.itemwcarbonrotor, 15, 3200000, 1.5F, 18, 320, new ResourceLocation(IC2.textureDomain, "textures/items/rotors/rotorIridiumModel.png")).setCreativeTab(AddToCreativeTab.tabMachines).setUnlocalizedName("itemIridiumRotor")); } } diff --git a/src/Java/gtPlusPlus/xmod/ic2/item/ItemGenerators.java b/src/Java/gtPlusPlus/xmod/ic2/item/ItemGenerators.java index 38f259b578..2d73638ce9 100644 --- a/src/Java/gtPlusPlus/xmod/ic2/item/ItemGenerators.java +++ b/src/Java/gtPlusPlus/xmod/ic2/item/ItemGenerators.java @@ -1,49 +1,55 @@ package gtPlusPlus.xmod.ic2.item; +import ic2.core.item.block.ItemBlockIC2; + import java.util.List; -import ic2.core.item.block.ItemBlockIC2; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.StatCollector; -public class ItemGenerators extends ItemBlockIC2 { - public ItemGenerators(final Block block) { - super(block); - - this.setMaxDamage(0); - this.setHasSubtypes(true); - } - - @Override - public void addInformation(final ItemStack itemStack, final EntityPlayer player, final List info, final boolean b) { - final int meta = itemStack.getItemDamage(); - switch (meta) { - case 0: - info.add(StatCollector.translateToLocal("ic2.item.tooltip.PowerOutput") + " 1-32 EU/t " - + StatCollector.translateToLocal("ic2.item.tooltip.max")); - break; - case 1: - info.add(StatCollector.translateToLocal("ic2.item.tooltip.PowerOutput") + " 1-512 EU/t " - + StatCollector.translateToLocal("ic2.item.tooltip.max")); - } - } - - @Override - public int getMetadata(final int i) { - return i; - } - - @Override - public String getUnlocalizedName(final ItemStack itemstack) { - final int meta = itemstack.getItemDamage(); - switch (meta) { - case 0: - return "ic2.blockRTGenerator2"; - case 1: - return "ic2.blockKineticGenerator2"; - } - return null; - } +public class ItemGenerators + extends ItemBlockIC2 +{ + public ItemGenerators(Block block) + { + super(block); + + setMaxDamage(0); + setHasSubtypes(true); + } + + @Override +public int getMetadata(int i) + { + return i; + } + + @Override +public String getUnlocalizedName(ItemStack itemstack) + { + int meta = itemstack.getItemDamage(); + switch (meta) + { + case 0: + return "ic2.blockRTGenerator2"; + case 1: + return "ic2.blockKineticGenerator2"; + } + return null; + } + + @Override +public void addInformation(ItemStack itemStack, EntityPlayer player, List info, boolean b) + { + int meta = itemStack.getItemDamage(); + switch (meta) + { + case 0: + info.add(StatCollector.translateToLocal("ic2.item.tooltip.PowerOutput") + " 1-32 EU/t " + StatCollector.translateToLocal("ic2.item.tooltip.max")); break; + case 1: + info.add(StatCollector.translateToLocal("ic2.item.tooltip.PowerOutput") + " 1-512 EU/t " + StatCollector.translateToLocal("ic2.item.tooltip.max")); + } + } } diff --git a/src/Java/gtPlusPlus/xmod/ic2/item/RotorBase.java b/src/Java/gtPlusPlus/xmod/ic2/item/RotorBase.java index 8f1dd7f479..06e33d6793 100644 --- a/src/Java/gtPlusPlus/xmod/ic2/item/RotorBase.java +++ b/src/Java/gtPlusPlus/xmod/ic2/item/RotorBase.java @@ -1,94 +1,99 @@ package gtPlusPlus.xmod.ic2.item; -import java.util.List; - import ic2.api.item.IKineticRotor; import ic2.core.block.kineticgenerator.gui.GuiWaterKineticGenerator; import ic2.core.block.kineticgenerator.gui.GuiWindKineticGenerator; import ic2.core.init.InternalName; import ic2.core.item.resources.ItemWindRotor; + +import java.util.List; + import net.minecraft.client.Minecraft; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; import net.minecraft.util.StatCollector; -public class RotorBase extends ItemWindRotor { +public class RotorBase extends ItemWindRotor{ - private final int maxWindStrength; - private final int minWindStrength; - private final int radius; - private final float efficiency; - private final ResourceLocation renderTexture; - private final boolean water; + private final int maxWindStrength; + private final int minWindStrength; + private final int radius; + private final float efficiency; + private final ResourceLocation renderTexture; + private final boolean water; - public RotorBase(final InternalName internalName, final int Radius, final int durability, final float efficiency, - final int minWindStrength, final int maxWindStrength, final ResourceLocation RenderTexture) { + public RotorBase(InternalName internalName, int Radius, int durability, float efficiency, int minWindStrength, int maxWindStrength, ResourceLocation RenderTexture) + { super(internalName, Radius, durability, efficiency, minWindStrength, maxWindStrength, RenderTexture); - this.setMaxStackSize(1); - this.setMaxDamage(durability); + + + setMaxStackSize(1); + setMaxDamage(durability); this.radius = Radius; this.efficiency = efficiency; this.renderTexture = RenderTexture; this.minWindStrength = minWindStrength; this.maxWindStrength = maxWindStrength; - this.water = internalName != InternalName.itemwoodrotor; + this.water = (internalName != InternalName.itemwoodrotor); } @Override - public void addInformation(final ItemStack itemStack, final EntityPlayer player, final List info, final boolean b) { - info.add(StatCollector.translateToLocalFormatted("ic2.itemrotor.wind.info", new Object[] { - Integer.valueOf(this.minWindStrength), Integer.valueOf(this.maxWindStrength) - })); + public void addInformation(ItemStack itemStack, EntityPlayer player, List info, boolean b) + { + info.add(StatCollector.translateToLocalFormatted("ic2.itemrotor.wind.info", new Object[] { Integer.valueOf(this.minWindStrength), Integer.valueOf(this.maxWindStrength) })); IKineticRotor.GearboxType type = null; - if (Minecraft.getMinecraft().currentScreen != null - && Minecraft.getMinecraft().currentScreen instanceof GuiWaterKineticGenerator) { + if ((Minecraft.getMinecraft().currentScreen != null) && ((Minecraft.getMinecraft().currentScreen instanceof GuiWaterKineticGenerator))) { type = IKineticRotor.GearboxType.WATER; - } - else if (Minecraft.getMinecraft().currentScreen != null - && Minecraft.getMinecraft().currentScreen instanceof GuiWindKineticGenerator) { + } else if ((Minecraft.getMinecraft().currentScreen != null) && ((Minecraft.getMinecraft().currentScreen instanceof GuiWindKineticGenerator))) { type = IKineticRotor.GearboxType.WIND; } if (type != null) { - // info.add(StatCollector.translateToLocal("ic2.itemrotor.fitsin." + - // isAcceptedType(itemStack, type))); + //info.add(StatCollector.translateToLocal("ic2.itemrotor.fitsin." + isAcceptedType(itemStack, type))); } } @Override - public int getDiameter(final ItemStack stack) { - return this.radius; + public String getTextureFolder() + { + return "rotors"; } @Override - public float getEfficiency(final ItemStack stack) { - return this.efficiency; + public int getDiameter(ItemStack stack) + { + return this.radius; } @Override - public int getMaxWindStrength(final ItemStack stack) { - return this.maxWindStrength; + public ResourceLocation getRotorRenderTexture(ItemStack stack) + { + return this.renderTexture; } @Override - public int getMinWindStrength(final ItemStack stack) { - return this.minWindStrength; + public float getEfficiency(ItemStack stack) + { + return this.efficiency; } @Override - public ResourceLocation getRotorRenderTexture(final ItemStack stack) { - return this.renderTexture; + public int getMinWindStrength(ItemStack stack) + { + return this.minWindStrength; } @Override - public String getTextureFolder() { - return "rotors"; + public int getMaxWindStrength(ItemStack stack) + { + return this.maxWindStrength; } - @Override - public boolean isAcceptedType(final ItemStack stack, final IKineticRotor.GearboxType type) { - return type == IKineticRotor.GearboxType.WIND || this.water; + public boolean isAcceptedType(ItemStack stack, IKineticRotor.GearboxType type) + { + return (type == IKineticRotor.GearboxType.WIND) || (this.water); } } + diff --git a/src/Java/gtPlusPlus/xmod/ic2/item/RotorIridium.java b/src/Java/gtPlusPlus/xmod/ic2/item/RotorIridium.java index 2aa89bd868..f35b1e88f0 100644 --- a/src/Java/gtPlusPlus/xmod/ic2/item/RotorIridium.java +++ b/src/Java/gtPlusPlus/xmod/ic2/item/RotorIridium.java @@ -1,12 +1,13 @@ package gtPlusPlus.xmod.ic2.item; -import java.util.List; - import ic2.api.item.IKineticRotor; import ic2.core.block.kineticgenerator.gui.GuiWaterKineticGenerator; import ic2.core.block.kineticgenerator.gui.GuiWindKineticGenerator; import ic2.core.init.InternalName; import ic2.core.util.StackUtil; + +import java.util.List; + import net.minecraft.client.Minecraft; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -15,100 +16,106 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ResourceLocation; import net.minecraft.util.StatCollector; -public class RotorIridium extends RotorBase { +public class RotorIridium extends RotorBase{ - private final int maxWindStrength; - private final int minWindStrength; - private final int radius; - private final float efficiency; - private final ResourceLocation renderTexture; - private final boolean water; + private final int maxWindStrength; + private final int minWindStrength; + private final int radius; + private final float efficiency; + private final ResourceLocation renderTexture; + private final boolean water; - public RotorIridium(final InternalName internalName, final int Radius, final int durability, final float efficiency, - final int minWindStrength, final int maxWindStrength, final ResourceLocation RenderTexture) { + public RotorIridium(InternalName internalName, int Radius, int durability, float efficiency, int minWindStrength, int maxWindStrength, ResourceLocation RenderTexture) + { super(internalName, Radius, durability, efficiency, minWindStrength, maxWindStrength, RenderTexture); - this.setMaxStackSize(1); - this.setMaxDamage(Integer.MAX_VALUE); + + + setMaxStackSize(1); + setMaxDamage(Integer.MAX_VALUE); this.radius = Radius; this.efficiency = efficiency; this.renderTexture = RenderTexture; this.minWindStrength = minWindStrength; this.maxWindStrength = maxWindStrength; - this.water = internalName != InternalName.itemwoodrotor; + this.water = (internalName != InternalName.itemwoodrotor); } @Override - public void addInformation(final ItemStack itemStack, final EntityPlayer player, final List info, final boolean b) { - info.add(StatCollector.translateToLocalFormatted("ic2.itemrotor.wind.info", new Object[] { - Integer.valueOf(this.minWindStrength), Integer.valueOf(this.maxWindStrength) - })); + public void addInformation(ItemStack itemStack, EntityPlayer player, List info, boolean b) + { + info.add(StatCollector.translateToLocalFormatted("ic2.itemrotor.wind.info", new Object[] { Integer.valueOf(this.minWindStrength), Integer.valueOf(this.maxWindStrength) })); IKineticRotor.GearboxType type = null; - if (Minecraft.getMinecraft().currentScreen != null - && Minecraft.getMinecraft().currentScreen instanceof GuiWaterKineticGenerator) { + if ((Minecraft.getMinecraft().currentScreen != null) && ((Minecraft.getMinecraft().currentScreen instanceof GuiWaterKineticGenerator))) { type = IKineticRotor.GearboxType.WATER; - } - else if (Minecraft.getMinecraft().currentScreen != null - && Minecraft.getMinecraft().currentScreen instanceof GuiWindKineticGenerator) { + } else if ((Minecraft.getMinecraft().currentScreen != null) && ((Minecraft.getMinecraft().currentScreen instanceof GuiWindKineticGenerator))) { type = IKineticRotor.GearboxType.WIND; } if (type != null) { - // info.add(StatCollector.translateToLocal("ic2.itemrotor.fitsin." + - // isAcceptedType(itemStack, type))); + //info.add(StatCollector.translateToLocal("ic2.itemrotor.fitsin." + isAcceptedType(itemStack, type))); } } @Override - public boolean applyCustomDamage(final ItemStack stack, final int damage, final EntityLivingBase src) { - this.setCustomDamage(stack, this.getCustomDamage(stack) + damage); - return true; - } - - @Override - public int getDiameter(final ItemStack stack) { - return this.radius; - } - - @Override - public float getEfficiency(final ItemStack stack) { - return this.efficiency; - } - - @Override - public int getMaxWindStrength(final ItemStack stack) { - return this.maxWindStrength; - } - - @Override - public int getMinWindStrength(final ItemStack stack) { - return this.minWindStrength; - } - - @Override - public ResourceLocation getRotorRenderTexture(final ItemStack stack) { - return this.renderTexture; - } - - @Override - public String getTextureFolder() { - return "rotors"; - } - - @Override - public boolean isAcceptedType(final ItemStack stack, final IKineticRotor.GearboxType type) { - return type == IKineticRotor.GearboxType.WIND || this.water; - } - - @Override - public void setCustomDamage(final ItemStack stack, final int damage) { - final NBTTagCompound nbt = StackUtil.getOrCreateNbtData(stack); - nbt.setInteger("advDmg", 0); - - final int maxStackDamage = stack.getMaxDamage(); - if (maxStackDamage > 2) { - // stack.setItemDamage(1 + (int)Util.map(damage, this.maxDmg, - // maxStackDamage - 2)); - } + public String getTextureFolder() + { + return "rotors"; + } + + @Override + public int getDiameter(ItemStack stack) + { + return this.radius; + } + + @Override + public ResourceLocation getRotorRenderTexture(ItemStack stack) + { + return this.renderTexture; + } + + @Override + public float getEfficiency(ItemStack stack) + { + return this.efficiency; + } + + @Override + public int getMinWindStrength(ItemStack stack) + { + return this.minWindStrength; + } + + @Override + public int getMaxWindStrength(ItemStack stack) + { + return this.maxWindStrength; + } + + public boolean isAcceptedType(ItemStack stack, IKineticRotor.GearboxType type) + { + return (type == IKineticRotor.GearboxType.WIND) || (this.water); + } + + + @Override + public void setCustomDamage(ItemStack stack, int damage) + { + NBTTagCompound nbt = StackUtil.getOrCreateNbtData(stack); + nbt.setInteger("advDmg", 0); + + int maxStackDamage = stack.getMaxDamage(); + if (maxStackDamage > 2) { + //stack.setItemDamage(1 + (int)Util.map(damage, this.maxDmg, maxStackDamage - 2)); + } + } + + @Override + public boolean applyCustomDamage(ItemStack stack, int damage, EntityLivingBase src) + { + setCustomDamage(stack, getCustomDamage(stack) + damage); + return true; + } } -} + diff --git a/src/Java/gtPlusPlus/xmod/ic2/recipe/RECIPE_IC2.java b/src/Java/gtPlusPlus/xmod/ic2/recipe/RECIPE_IC2.java index 8fb8336ca0..6b95487773 100644 --- a/src/Java/gtPlusPlus/xmod/ic2/recipe/RECIPE_IC2.java +++ b/src/Java/gtPlusPlus/xmod/ic2/recipe/RECIPE_IC2.java @@ -1,7 +1,12 @@ package gtPlusPlus.xmod.ic2.recipe; -import gregtech.api.enums.*; -import gregtech.api.util.*; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; import gtPlusPlus.core.lib.LoadedMods; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.item.ItemUtils; @@ -11,142 +16,136 @@ import gtPlusPlus.xmod.ic2.item.IC2_Items; import net.minecraft.item.ItemStack; public class RECIPE_IC2 { - - public static String plate_T1 = "plateEnergeticAlloy"; - public static String plate_T2 = "plateTungstenSteel"; - public static String plate_T3 = "plateVibrantAlloy"; - public static String plate_T4 = "plateAlloyIridium"; - - public static ItemStack block_T1 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.EnergeticAlloy, - 1L); - public static ItemStack block_T2 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.TungstenSteel, - 1L); - public static ItemStack block_T3 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.VibrantAlloy, - 1L); - public static ItemStack block_T4 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iridium, 1L); - - public static String ingot_T1 = "ingotEnergeticAlloy"; - public static String ingot_T2 = "ingotTungstenSteel"; - public static String ingot_T3 = "ingotVibrantAlloy"; - public static String ingot_T4 = "ingotIridium"; - - private static ItemStack rotor_blade_T1 = ItemUtils.getSimpleStack(IC2_Items.rotor_Blade_Material_1.getItem()); - private static ItemStack rotor_blade_T2 = ItemUtils.getSimpleStack(IC2_Items.rotor_Blade_Material_2.getItem()); - private static ItemStack rotor_blade_T3 = ItemUtils.getSimpleStack(IC2_Items.rotor_Blade_Material_3.getItem()); - private static ItemStack rotor_blade_T4 = ItemUtils.getSimpleStack(IC2_Items.rotor_Blade_Material_4.getItem()); - - private static ItemStack shaft_T1 = ItemUtils.getSimpleStack(IC2_Items.shaft_Material_1.getItem()); - private static ItemStack shaft_T2 = ItemUtils.getSimpleStack(IC2_Items.shaft_Material_2.getItem()); - private static ItemStack shaft_T3 = ItemUtils.getSimpleStack(IC2_Items.shaft_Material_3.getItem()); - private static ItemStack shaft_T4 = ItemUtils.getSimpleStack(IC2_Items.shaft_Material_4.getItem()); - - private static ItemStack rotor_T1 = ItemUtils.getSimpleStack(IC2_Items.rotor_Material_1.getItem()); - private static ItemStack rotor_T2 = ItemUtils.getSimpleStack(IC2_Items.rotor_Material_2.getItem()); - private static ItemStack rotor_T3 = ItemUtils.getSimpleStack(IC2_Items.rotor_Material_3.getItem()); - private static ItemStack rotor_T4 = ItemUtils.getSimpleStack(IC2_Items.rotor_Material_4.getItem()); - - private static void checkForEnderIO() { - if (!LoadedMods.EnderIO) { - RECIPE_IC2.plate_T1 = "plateMagnalium"; - RECIPE_IC2.plate_T2 = "plateTungstenSteel"; - RECIPE_IC2.plate_T3 = "plateUltimet"; - RECIPE_IC2.plate_T4 = "plateAlloyIridium"; - - RECIPE_IC2.block_T1 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Magnalium, 1L); - RECIPE_IC2.block_T2 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.TungstenSteel, 1L); - RECIPE_IC2.block_T3 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Ultimet, 1L); - RECIPE_IC2.block_T4 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iridium, 1L); - - RECIPE_IC2.ingot_T1 = "ingotMagnalium"; - RECIPE_IC2.ingot_T2 = "ingotTungstenSteel"; - RECIPE_IC2.ingot_T3 = "ingotUltimet"; - RECIPE_IC2.ingot_T4 = "ingotIridium"; + + public static String plate_T1 = "plateEnergeticAlloy"; + public static String plate_T2 = "plateTungstenSteel"; + public static String plate_T3 = "plateVibrantAlloy"; + public static String plate_T4 = "plateAlloyIridium"; + + public static ItemStack block_T1 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.EnergeticAlloy, 1L); + public static ItemStack block_T2 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.TungstenSteel, 1L); + public static ItemStack block_T3 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.VibrantAlloy, 1L); + public static ItemStack block_T4 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iridium, 1L); + + public static String ingot_T1 = "ingotEnergeticAlloy"; + public static String ingot_T2 = "ingotTungstenSteel"; + public static String ingot_T3 = "ingotVibrantAlloy"; + public static String ingot_T4 = "ingotIridium"; + + private static ItemStack rotor_blade_T1 = ItemUtils.getSimpleStack(IC2_Items.rotor_Blade_Material_1.getItem()); + private static ItemStack rotor_blade_T2 = ItemUtils.getSimpleStack(IC2_Items.rotor_Blade_Material_2.getItem()); + private static ItemStack rotor_blade_T3 = ItemUtils.getSimpleStack(IC2_Items.rotor_Blade_Material_3.getItem()); + private static ItemStack rotor_blade_T4 = ItemUtils.getSimpleStack(IC2_Items.rotor_Blade_Material_4.getItem()); + + private static ItemStack shaft_T1 = ItemUtils.getSimpleStack(IC2_Items.shaft_Material_1.getItem()); + private static ItemStack shaft_T2 = ItemUtils.getSimpleStack(IC2_Items.shaft_Material_2.getItem()); + private static ItemStack shaft_T3 = ItemUtils.getSimpleStack(IC2_Items.shaft_Material_3.getItem()); + private static ItemStack shaft_T4 = ItemUtils.getSimpleStack(IC2_Items.shaft_Material_4.getItem()); + + private static ItemStack rotor_T1 = ItemUtils.getSimpleStack(IC2_Items.rotor_Material_1.getItem()); + private static ItemStack rotor_T2 = ItemUtils.getSimpleStack(IC2_Items.rotor_Material_2.getItem()); + private static ItemStack rotor_T3 = ItemUtils.getSimpleStack(IC2_Items.rotor_Material_3.getItem()); + private static ItemStack rotor_T4 = ItemUtils.getSimpleStack(IC2_Items.rotor_Material_4.getItem()); + + private static void checkForEnderIO(){ + if(!LoadedMods.EnderIO){ + plate_T1 = "plateMagnalium"; + plate_T2 = "plateTungstenSteel"; + plate_T3 = "plateUltimet"; + plate_T4 = "plateAlloyIridium"; + + block_T1 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Magnalium, 1L); + block_T2 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.TungstenSteel, 1L); + block_T3 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Ultimet, 1L); + block_T4 = GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Iridium, 1L); + + ingot_T1 = "ingotMagnalium"; + ingot_T2 = "ingotTungstenSteel"; + ingot_T3 = "ingotUltimet"; + ingot_T4 = "ingotIridium"; } } - - public static void initRecipes() { - - // Rotor Blade Recipes - RecipeUtils.recipeBuilder(RECIPE_IC2.plate_T1, RECIPE_IC2.ingot_T1, RECIPE_IC2.plate_T1, RECIPE_IC2.plate_T1, - RECIPE_IC2.ingot_T1, RECIPE_IC2.plate_T1, RECIPE_IC2.plate_T1, RECIPE_IC2.ingot_T1, RECIPE_IC2.plate_T1, - RECIPE_IC2.rotor_blade_T1); - - RecipeUtils.recipeBuilder(RECIPE_IC2.plate_T2, RECIPE_IC2.ingot_T2, RECIPE_IC2.plate_T2, RECIPE_IC2.plate_T2, - RECIPE_IC2.ingot_T2, RECIPE_IC2.plate_T2, RECIPE_IC2.plate_T2, RECIPE_IC2.ingot_T2, RECIPE_IC2.plate_T2, - RECIPE_IC2.rotor_blade_T2); - - RecipeUtils.recipeBuilder(RECIPE_IC2.plate_T3, RECIPE_IC2.ingot_T3, RECIPE_IC2.plate_T3, RECIPE_IC2.plate_T3, - RECIPE_IC2.ingot_T3, RECIPE_IC2.plate_T3, RECIPE_IC2.plate_T3, RECIPE_IC2.ingot_T3, RECIPE_IC2.plate_T3, - RECIPE_IC2.rotor_blade_T3); - - RecipeUtils.recipeBuilder(RECIPE_IC2.plate_T4, RECIPE_IC2.ingot_T4, RECIPE_IC2.plate_T4, RECIPE_IC2.plate_T4, - RECIPE_IC2.ingot_T4, RECIPE_IC2.plate_T4, RECIPE_IC2.plate_T4, RECIPE_IC2.ingot_T4, RECIPE_IC2.plate_T4, - RECIPE_IC2.rotor_blade_T4); - - // Shaft Extruder Recipe - GT_ModHandler.addCraftingRecipe(GregtechItemList.Shape_Extruder_WindmillShaft.get(1L, new Object[0]), - GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE - | GT_ModHandler.RecipeBits.REVERSIBLE, - new Object[] { - "hXS", "XPX", "fXd", Character.valueOf('P'), ItemList.Shape_Extruder_Rod, - Character.valueOf('X'), OrePrefixes.plate.get(Materials.DarkIron), Character.valueOf('S'), - OrePrefixes.screw.get(Materials.DarkIron) - }); - GT_ModHandler.addCraftingRecipe(GregtechItemList.Shape_Extruder_WindmillShaft.get(1L, new Object[0]), - GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE - | GT_ModHandler.RecipeBits.REVERSIBLE, - new Object[] { - "hXS", "XPX", "fXd", Character.valueOf('P'), ItemList.Shape_Extruder_Rod, - Character.valueOf('X'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('S'), - OrePrefixes.screw.get(Materials.TungstenSteel) - }); - GT_ModHandler.addCraftingRecipe(GregtechItemList.Shape_Extruder_WindmillShaft.get(1L, new Object[0]), - GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE - | GT_ModHandler.RecipeBits.REVERSIBLE, - new Object[] { - "hXS", "XPX", "fXd", Character.valueOf('P'), ItemList.Shape_Extruder_Rod, - Character.valueOf('X'), OrePrefixes.plate.get(Materials.Molybdenum), Character.valueOf('S'), - OrePrefixes.screw.get(Materials.Molybdenum) - }); + + public static void initRecipes(){ + + //Rotor Blade Recipes + RecipeUtils.recipeBuilder( + plate_T1, ingot_T1, plate_T1, + plate_T1, ingot_T1, plate_T1, + plate_T1, ingot_T1, plate_T1, + rotor_blade_T1); + + RecipeUtils.recipeBuilder( + plate_T2, ingot_T2, plate_T2, + plate_T2, ingot_T2, plate_T2, + plate_T2, ingot_T2, plate_T2, + rotor_blade_T2); + + RecipeUtils.recipeBuilder( + plate_T3, ingot_T3, plate_T3, + plate_T3, ingot_T3, plate_T3, + plate_T3, ingot_T3, plate_T3, + rotor_blade_T3); + + RecipeUtils.recipeBuilder( + plate_T4, ingot_T4, plate_T4, + plate_T4, ingot_T4, plate_T4, + plate_T4, ingot_T4, plate_T4, + rotor_blade_T4); + + //Shaft Extruder Recipe + GT_ModHandler.addCraftingRecipe(GregtechItemList.Shape_Extruder_WindmillShaft.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"hXS", "XPX", "fXd", Character.valueOf('P'), ItemList.Shape_Extruder_Rod, Character.valueOf('X'), OrePrefixes.plate.get(Materials.DarkIron), Character.valueOf('S'), OrePrefixes.screw.get(Materials.DarkIron)}); + GT_ModHandler.addCraftingRecipe(GregtechItemList.Shape_Extruder_WindmillShaft.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"hXS", "XPX", "fXd", Character.valueOf('P'), ItemList.Shape_Extruder_Rod, Character.valueOf('X'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('S'), OrePrefixes.screw.get(Materials.TungstenSteel)}); + GT_ModHandler.addCraftingRecipe(GregtechItemList.Shape_Extruder_WindmillShaft.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"hXS", "XPX", "fXd", Character.valueOf('P'), ItemList.Shape_Extruder_Rod, Character.valueOf('X'), OrePrefixes.plate.get(Materials.Molybdenum), Character.valueOf('S'), OrePrefixes.screw.get(Materials.Molybdenum)}); Utils.LOG_INFO("Added recipe item for GT5 Extruder: Shaft Shape"); - - // Shaft Recipes - GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(9L, RECIPE_IC2.block_T1), - GregtechItemList.Shape_Extruder_WindmillShaft.get(0L, new Object[0]), RECIPE_IC2.shaft_T1, 2560, 250); - if (LoadedMods.EnderIO) { - Utils.LOG_INFO("Added recipe for GT5 Extruder: Windmill Shaft [Energetic]"); + + //Shaft Recipes + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(9L, block_T1), GregtechItemList.Shape_Extruder_WindmillShaft.get(0L, new Object[0]), shaft_T1, 2560, 250); + if (LoadedMods.EnderIO){ + Utils.LOG_INFO("Added recipe for GT5 Extruder: Windmill Shaft [Energetic]"); } else { Utils.LOG_INFO("Added recipe for GT5 Extruder: Windmill Shaft [Magnalium]"); } - GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(9L, RECIPE_IC2.block_T2), - GregtechItemList.Shape_Extruder_WindmillShaft.get(0L, new Object[0]), RECIPE_IC2.shaft_T2, 5120, 500); + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(9L, block_T2), GregtechItemList.Shape_Extruder_WindmillShaft.get(0L, new Object[0]), shaft_T2, 5120, 500); Utils.LOG_INFO("Added recipe for GT5 Extruder: Windmill Shaft [TungstenSteel]"); - GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(9L, RECIPE_IC2.block_T3), - GregtechItemList.Shape_Extruder_WindmillShaft.get(0L, new Object[0]), RECIPE_IC2.shaft_T3, 10240, 2000); - if (LoadedMods.EnderIO) { - Utils.LOG_INFO("Added recipe for GT5 Extruder: Windmill Shaft [Vibrant]"); + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(9L, block_T3), GregtechItemList.Shape_Extruder_WindmillShaft.get(0L, new Object[0]), shaft_T3, 10240, 2000); + if (LoadedMods.EnderIO){ + Utils.LOG_INFO("Added recipe for GT5 Extruder: Windmill Shaft [Vibrant]"); } else { Utils.LOG_INFO("Added recipe for GT5 Extruder: Windmill Shaft [Ultimet]"); } - GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(9L, RECIPE_IC2.block_T4), - GregtechItemList.Shape_Extruder_WindmillShaft.get(0L, new Object[0]), RECIPE_IC2.shaft_T4, 20480, 4000); + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(9L, block_T4), GregtechItemList.Shape_Extruder_WindmillShaft.get(0L, new Object[0]), shaft_T4, 20480, 4000); Utils.LOG_INFO("Added recipe for GT5 Extruder: Windmill Shaft [Iridium]"); - - // Rotor Recipes - RecipeUtils.recipeBuilder(null, RECIPE_IC2.rotor_blade_T1, null, RECIPE_IC2.rotor_blade_T1, RECIPE_IC2.shaft_T1, - RECIPE_IC2.rotor_blade_T1, null, RECIPE_IC2.rotor_blade_T1, null, RECIPE_IC2.rotor_T1); - - RecipeUtils.recipeBuilder(null, RECIPE_IC2.rotor_blade_T2, null, RECIPE_IC2.rotor_blade_T2, RECIPE_IC2.shaft_T2, - RECIPE_IC2.rotor_blade_T2, null, RECIPE_IC2.rotor_blade_T2, null, RECIPE_IC2.rotor_T2); - - RecipeUtils.recipeBuilder(null, RECIPE_IC2.rotor_blade_T3, null, RECIPE_IC2.rotor_blade_T3, RECIPE_IC2.shaft_T3, - RECIPE_IC2.rotor_blade_T3, null, RECIPE_IC2.rotor_blade_T3, null, RECIPE_IC2.rotor_T3); - - RecipeUtils.recipeBuilder(null, RECIPE_IC2.rotor_blade_T4, null, RECIPE_IC2.rotor_blade_T4, RECIPE_IC2.shaft_T4, - RECIPE_IC2.rotor_blade_T4, null, RECIPE_IC2.rotor_blade_T4, null, RECIPE_IC2.rotor_T4); - + + //Rotor Recipes + RecipeUtils.recipeBuilder( + null, rotor_blade_T1, null, + rotor_blade_T1, shaft_T1, rotor_blade_T1, + null, rotor_blade_T1, null, + rotor_T1); + + RecipeUtils.recipeBuilder( + null, rotor_blade_T2, null, + rotor_blade_T2, shaft_T2, rotor_blade_T2, + null, rotor_blade_T2, null, + rotor_T2); + + RecipeUtils.recipeBuilder( + null, rotor_blade_T3, null, + rotor_blade_T3, shaft_T3, rotor_blade_T3, + null, rotor_blade_T3, null, + rotor_T3); + + RecipeUtils.recipeBuilder( + null, rotor_blade_T4, null, + rotor_blade_T4, shaft_T4, rotor_blade_T4, + null, rotor_blade_T4, null, + rotor_T4); + } - + + + } |