aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/xmod/ic2/block
diff options
context:
space:
mode:
authorDraknyte1 <Draknyte1@hotmail.com>2016-11-06 19:32:27 +1000
committerDraknyte1 <Draknyte1@hotmail.com>2016-11-06 19:32:27 +1000
commitcbe0e497be8e466c380a5b4fa781b314ede9ada3 (patch)
treeb85848b432adf458e3abda466ee46d9dfc3e454b /src/Java/gtPlusPlus/xmod/ic2/block
parentc40416b036c0e89451e1558253ccf07bbee028d0 (diff)
downloadGT5-Unofficial-cbe0e497be8e466c380a5b4fa781b314ede9ada3.tar.gz
GT5-Unofficial-cbe0e497be8e466c380a5b4fa781b314ede9ada3.tar.bz2
GT5-Unofficial-cbe0e497be8e466c380a5b4fa781b314ede9ada3.zip
Revert "$ Cleaned up the entire project."
This reverts commit 0669f5eb9d5029a8b94ec552171b0837605f7747. # Conflicts: # src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMTE_NuclearReactor.java # src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_MassFabricator.java Revert "% Cleaned up Imports." This reverts commit 3654052fb63a571c5eaca7f20714b87c17f7e966.
Diffstat (limited to 'src/Java/gtPlusPlus/xmod/ic2/block')
-rw-r--r--src/Java/gtPlusPlus/xmod/ic2/block/RTGGenerator/BlockRTG.java241
-rw-r--r--src/Java/gtPlusPlus/xmod/ic2/block/RTGGenerator/TileEntityRTG.java76
-rw-r--r--src/Java/gtPlusPlus/xmod/ic2/block/RTGGenerator/gui/CONTAINER_RTG.java23
-rw-r--r--src/Java/gtPlusPlus/xmod/ic2/block/RTGGenerator/gui/GUI_RTG.java79
-rw-r--r--src/Java/gtPlusPlus/xmod/ic2/block/kieticgenerator/IC2_BlockKineticGenerator.java109
-rw-r--r--src/Java/gtPlusPlus/xmod/ic2/block/kieticgenerator/IC2_TEComponent.java76
-rw-r--r--src/Java/gtPlusPlus/xmod/ic2/block/kieticgenerator/container/ContainerKineticWindgenerator.java33
-rw-r--r--src/Java/gtPlusPlus/xmod/ic2/block/kieticgenerator/gui/GuiKineticWindGenerator.java129
-rw-r--r--src/Java/gtPlusPlus/xmod/ic2/block/kieticgenerator/tileentity/TileEntityKineticWindGenerator.java488
9 files changed, 677 insertions, 577 deletions
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;
}
}