aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/xmod/ic2/block/RTGGenerator
diff options
context:
space:
mode:
authorDraknyte1 <Draknyte1@hotmail.com>2016-09-07 16:36:25 +1000
committerDraknyte1 <Draknyte1@hotmail.com>2016-09-07 16:36:25 +1000
commit221c2f0fe81430e7dd4087e5f5845bd7c62ec56d (patch)
treed6e0faaef01b9d517828557e1be82500d476f95e /src/Java/gtPlusPlus/xmod/ic2/block/RTGGenerator
parent5872c0947ce7bc788b03fa2fb690b8815d3d0a04 (diff)
downloadGT5-Unofficial-221c2f0fe81430e7dd4087e5f5845bd7c62ec56d.tar.gz
GT5-Unofficial-221c2f0fe81430e7dd4087e5f5845bd7c62ec56d.tar.bz2
GT5-Unofficial-221c2f0fe81430e7dd4087e5f5845bd7c62ec56d.zip
% Refactored the entire project to stop using MiscUtils everywhere possible, now it's gtPlusPlus.
Diffstat (limited to 'src/Java/gtPlusPlus/xmod/ic2/block/RTGGenerator')
-rw-r--r--src/Java/gtPlusPlus/xmod/ic2/block/RTGGenerator/BlockRTG.java207
-rw-r--r--src/Java/gtPlusPlus/xmod/ic2/block/RTGGenerator/TileEntityRTG.java86
-rw-r--r--src/Java/gtPlusPlus/xmod/ic2/block/RTGGenerator/gui/CONTAINER_RTG.java37
-rw-r--r--src/Java/gtPlusPlus/xmod/ic2/block/RTGGenerator/gui/GUI_RTG.java52
4 files changed, 382 insertions, 0 deletions
diff --git a/src/Java/gtPlusPlus/xmod/ic2/block/RTGGenerator/BlockRTG.java b/src/Java/gtPlusPlus/xmod/ic2/block/RTGGenerator/BlockRTG.java
new file mode 100644
index 0000000000..9d238e4c97
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/ic2/block/RTGGenerator/BlockRTG.java
@@ -0,0 +1,207 @@
+package gtPlusPlus.xmod.ic2.block.RTGGenerator;
+
+import gtPlusPlus.core.creative.AddToCreativeTab;
+import gtPlusPlus.xmod.ic2.block.kieticgenerator.tileentity.TileEntityKineticWindGenerator;
+import gtPlusPlus.xmod.ic2.item.IC2_Items;
+import gtPlusPlus.xmod.ic2.item.ItemGenerators;
+import ic2.core.IC2;
+import ic2.core.Ic2Items;
+import ic2.core.block.BlockMultiID;
+import ic2.core.block.TileEntityBlock;
+import ic2.core.block.reactor.tileentity.TileEntityNuclearReactorElectric;
+import ic2.core.init.InternalName;
+
+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.EnumRarity;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.world.World;
+
+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);
+ setCreativeTab(AddToCreativeTab.tabMachines);
+ setHardness(3.0F);
+ setStepSound(soundTypeMetal);
+
+ IC2_Items.blockRTG = new ItemStack(this, 1, 0);
+ IC2_Items.blockKineticGenerator = new ItemStack(this, 1, 1);
+
+ GameRegistry.registerTileEntity(TileEntityRTG.class, "RTG Mach II");
+ GameRegistry.registerTileEntity(TileEntityKineticWindGenerator.class, "Wind Ripper Mach II");
+ }
+
+ @Override
+ 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++)
+ {
+ ItemStack is = new ItemStack(this, 1, i);
+ if (is.getItem().getUnlocalizedName(is) == null) {
+ break;
+ }
+ itemList.add(is);
+ }
+ }
+ }
+
+
+ @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(int meta, MutableObject<Class<?>[]> ctorArgTypes, MutableObject<Object[]> ctorArgs)
+ {
+ try
+ {
+ switch (meta)
+ {
+ case 0:
+ return TileEntityRTG.class;
+ case 1:
+ return TileEntityKineticWindGenerator.class;
+ }
+ }
+ 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)
+ */
+
+ @Override
+ public void randomDisplayTick(World world, int x, int y, int z, Random random)
+ {
+ if (!IC2.platform.isRendering()) {
+ return;
+ }
+ 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;
+ }
+ 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)
+ {
+ TileEntityNuclearReactorElectric te = (TileEntityNuclearReactorElectric)getOwnTe(world, x, y, z);
+ if (te == null) {
+ return;
+ }
+ int puffs = te.heat / 1000;
+ if (puffs <= 0) {
+ return;
+ }
+ 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);
+ }
+ 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);
+ }
+ }
+ }
+
+ @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
new file mode 100644
index 0000000000..cea09bdd5c
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/ic2/block/RTGGenerator/TileEntityRTG.java
@@ -0,0 +1,86 @@
+package gtPlusPlus.xmod.ic2.block.RTGGenerator;
+
+import gtPlusPlus.xmod.ic2.block.RTGGenerator.gui.CONTAINER_RTG;
+import gtPlusPlus.xmod.ic2.block.RTGGenerator.gui.GUI_RTG;
+import ic2.core.ContainerBase;
+import ic2.core.Ic2Items;
+import ic2.core.block.generator.tileentity.TileEntityRTGenerator;
+import ic2.core.block.invslot.InvSlotConsumable;
+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 final InvSlotConsumable fuelSlot;
+
+ public TileEntityRTG()
+ {
+ this.fuelSlot = new InvSlotConsumableId(this, "fuelSlot", 0, 12, new Item[] { Ic2Items.RTGPellets.getItem() });
+ }
+
+ @Override
+ 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;
+ }
+
+ @Override
+ public boolean gainFuel()
+ {
+ return false;
+ }
+
+ @Override
+ public boolean needsFuel()
+ {
+ return true;
+ }
+
+ @Override
+ public String getInventoryName()
+ {
+ return "RTG";
+ }
+
+ @Override
+ public ContainerBase<TileEntityRTGenerator> getGuiContainer(EntityPlayer entityPlayer)
+ {
+ return new CONTAINER_RTG(entityPlayer, this);
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public GuiScreen getGui(EntityPlayer entityPlayer, boolean isAdmin)
+ {
+ return new GUI_RTG(new CONTAINER_RTG(entityPlayer, this));
+ }
+
+ @Override
+ 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
new file mode 100644
index 0000000000..e9c7b5cc81
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/ic2/block/RTGGenerator/gui/CONTAINER_RTG.java
@@ -0,0 +1,37 @@
+package gtPlusPlus.xmod.ic2.block.RTGGenerator.gui;
+
+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(EntityPlayer entityPlayer, TileEntityRTG tileEntity1)
+ {
+ super(entityPlayer, tileEntity1);
+ for (int i = 0; i < 4; i++) {
+ addSlotToContainer(new SlotInvSlot(tileEntity1.fuelSlot, i, 36 + i * 18, 18));
+ }
+ for (int i = 4; i < 8; i++) {
+ addSlotToContainer(new SlotInvSlot(tileEntity1.fuelSlot, i, 36 + (i - 4) * 18, 36));
+ }
+ for (int i = 8; i < 12; i++) {
+ addSlotToContainer(new SlotInvSlot(tileEntity1.fuelSlot, i, 36 + (i - 8) * 18, 54));
+ }
+ }
+
+ @Override
+ public List<String> getNetworkedFields()
+ {
+ List<String> ret = super.getNetworkedFields();
+
+ ret.add("storage");
+
+ return ret;
+ }
+}
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
new file mode 100644
index 0000000000..0d5f701b7a
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/ic2/block/RTGGenerator/gui/GUI_RTG.java
@@ -0,0 +1,52 @@
+package gtPlusPlus.xmod.ic2.block.RTGGenerator.gui;
+
+import gtPlusPlus.xmod.ic2.block.RTGGenerator.TileEntityRTG;
+import ic2.core.IC2;
+import ic2.core.block.generator.gui.GuiRTGenerator;
+import ic2.core.util.GuiTooltipHelper;
+import net.minecraft.util.ResourceLocation;
+import net.minecraft.util.StatCollector;
+
+import org.lwjgl.opengl.GL11;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+
+@SideOnly(Side.CLIENT)
+public class 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");
+}