diff options
| author | Draknyte1 <Draknyte1@hotmail.com> | 2016-06-16 03:59:47 +1000 |
|---|---|---|
| committer | Draknyte1 <Draknyte1@hotmail.com> | 2016-06-16 03:59:47 +1000 |
| commit | 51d5db94cfafac652a05f6f121ec2521d62aaf5c (patch) | |
| tree | 8e622e427fa6416b5ca508ed4deb8e10e783f9d1 /src/Java/miscutil/core/block | |
| parent | d3f4786befad33f4ec77723bf4470d05f9f862ec (diff) | |
| download | GT5-Unofficial-51d5db94cfafac652a05f6f121ec2521d62aaf5c.tar.gz GT5-Unofficial-51d5db94cfafac652a05f6f121ec2521d62aaf5c.tar.bz2 GT5-Unofficial-51d5db94cfafac652a05f6f121ec2521d62aaf5c.zip | |
Done a lot of work on the NFHG.
Also did some more refactoring beforehand.
Diffstat (limited to 'src/Java/miscutil/core/block')
| -rw-r--r-- | src/Java/miscutil/core/block/ModBlocks.java | 7 | ||||
| -rw-r--r-- | src/Java/miscutil/core/block/base/AdvancedBlock.java (renamed from src/Java/miscutil/core/block/AdvancedBlock.java) | 2 | ||||
| -rw-r--r-- | src/Java/miscutil/core/block/base/BasicBlock.java (renamed from src/Java/miscutil/core/block/BasicBlock.java) | 4 | ||||
| -rw-r--r-- | src/Java/miscutil/core/block/heliumgen/block/HeliumGenerator.java | 6 | ||||
| -rw-r--r-- | src/Java/miscutil/core/block/heliumgen/container/ContainerHeliumGenerator.java | 3 | ||||
| -rw-r--r-- | src/Java/miscutil/core/block/heliumgen/gui/GUIHeliumGenerator.java | 2 | ||||
| -rw-r--r-- | src/Java/miscutil/core/block/heliumgen/tileentity/TileEntityHeliumGenerator.java | 36 | ||||
| -rw-r--r-- | src/Java/miscutil/core/block/machine/Machine_NHG.java | 82 |
8 files changed, 124 insertions, 18 deletions
diff --git a/src/Java/miscutil/core/block/ModBlocks.java b/src/Java/miscutil/core/block/ModBlocks.java index 589f8f42d4..9893430b69 100644 --- a/src/Java/miscutil/core/block/ModBlocks.java +++ b/src/Java/miscutil/core/block/ModBlocks.java @@ -1,8 +1,9 @@ package miscutil.core.block; +import miscutil.core.block.base.BasicBlock; import miscutil.core.block.fluids.BlocktestFluid; import miscutil.core.block.heliumgen.block.HeliumGenerator; -import miscutil.core.block.heliumgen.tileentity.TileEntityHeliumGenerator; +import miscutil.core.block.machine.Machine_NHG; import miscutil.core.lib.CORE; import miscutil.core.util.Utils; import miscutil.gregtech.common.blocks.GregtechMetaCasingBlocks; @@ -21,6 +22,7 @@ public final class ModBlocks { public static Block blockGriefSaver; public static Block blockCasingsMisc; public static Block blockHeliumGenerator; + public static Block blockNHG; @@ -79,7 +81,8 @@ public final class ModBlocks { testFluid.setUnlocalizedName(testFluidBlock.getUnlocalizedName()); blockHeliumGenerator = GameRegistry.registerBlock(new HeliumGenerator(), "Helium_Collector"); - GameRegistry.registerTileEntity(TileEntityHeliumGenerator.class, "Helium"); + blockNHG = GameRegistry.registerBlock(new Machine_NHG("blockNuclearFueledHeliumGenerator"), "blockNuclearFueledHeliumGenerator"); + //WIP TODO //GameRegistry.registerBlock(blockGriefSaver, "blockGriefSaver"); diff --git a/src/Java/miscutil/core/block/AdvancedBlock.java b/src/Java/miscutil/core/block/base/AdvancedBlock.java index 3ad2454be4..78e8c3cbe0 100644 --- a/src/Java/miscutil/core/block/AdvancedBlock.java +++ b/src/Java/miscutil/core/block/base/AdvancedBlock.java @@ -1,4 +1,4 @@ -package miscutil.core.block; +package miscutil.core.block.base; import miscutil.core.lib.CORE; import net.minecraft.block.Block; diff --git a/src/Java/miscutil/core/block/BasicBlock.java b/src/Java/miscutil/core/block/base/BasicBlock.java index 061e66d9c5..4e5fd13df8 100644 --- a/src/Java/miscutil/core/block/BasicBlock.java +++ b/src/Java/miscutil/core/block/base/BasicBlock.java @@ -1,4 +1,4 @@ -package miscutil.core.block; +package miscutil.core.block.base; import miscutil.core.creative.AddToCreativeTab; import miscutil.core.lib.CORE; @@ -7,7 +7,7 @@ import net.minecraft.block.material.Material; public class BasicBlock extends Block { - protected BasicBlock(String unlocalizedName, Material material) { + public BasicBlock(String unlocalizedName, Material material) { super(material); this.setBlockName(unlocalizedName); this.setBlockTextureName(CORE.MODID + ":" + unlocalizedName); diff --git a/src/Java/miscutil/core/block/heliumgen/block/HeliumGenerator.java b/src/Java/miscutil/core/block/heliumgen/block/HeliumGenerator.java index 0a0253a384..f424097240 100644 --- a/src/Java/miscutil/core/block/heliumgen/block/HeliumGenerator.java +++ b/src/Java/miscutil/core/block/heliumgen/block/HeliumGenerator.java @@ -119,7 +119,10 @@ public class HeliumGenerator extends BlockContainer { if (collector != null) { - ItemStack itemstack = collector.getStackInSlot(0); + int i = 0; + for (i = 0; i < collector.getSizeInventory(); i++){ + + ItemStack itemstack = collector.getStackInSlot(i); if (itemstack != null) { @@ -154,6 +157,7 @@ public class HeliumGenerator extends BlockContainer { world.func_147453_f(x, y, z, block); } + } super.breakBlock(world, x, y, z, block, wut); } diff --git a/src/Java/miscutil/core/block/heliumgen/container/ContainerHeliumGenerator.java b/src/Java/miscutil/core/block/heliumgen/container/ContainerHeliumGenerator.java index d7e612b9f6..7de3efd4c6 100644 --- a/src/Java/miscutil/core/block/heliumgen/container/ContainerHeliumGenerator.java +++ b/src/Java/miscutil/core/block/heliumgen/container/ContainerHeliumGenerator.java @@ -6,7 +6,6 @@ import ic2.core.slot.SlotInvSlot; import java.util.List; import miscutil.core.block.heliumgen.tileentity.TileEntityHeliumGenerator; -import miscutil.core.util.Utils; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Slot; import net.minecraft.inventory.SlotFurnace; @@ -19,7 +18,7 @@ extends ContainerBase<TileEntityHeliumGenerator> public ContainerHeliumGenerator(InventoryPlayer player, TileEntityHeliumGenerator machine) { super(machine); - Utils.LOG_WARNING("containerHeliumGenerator"); + //Utils.LOG_WARNING("containerHeliumGenerator"); short sr = machine.getReactorSize(); this.addSlotToContainer(new SlotFurnace(player.player, machine, 2, 80, 35)); this.size = sr; diff --git a/src/Java/miscutil/core/block/heliumgen/gui/GUIHeliumGenerator.java b/src/Java/miscutil/core/block/heliumgen/gui/GUIHeliumGenerator.java index 6939d1d8f8..309a7b5fba 100644 --- a/src/Java/miscutil/core/block/heliumgen/gui/GUIHeliumGenerator.java +++ b/src/Java/miscutil/core/block/heliumgen/gui/GUIHeliumGenerator.java @@ -29,7 +29,7 @@ public class GUIHeliumGenerator extends GuiContainer @Override protected void drawGuiContainerForegroundLayer(int p_146979_1_, int p_146979_2_) { - String s = StatCollector.translateToLocal("container.helium_collector"); + String s = StatCollector.translateToLocal("Helium Collector"); this.fontRendererObj.drawString(s, this.xSize / 2 - this.fontRendererObj.getStringWidth(s) / 2, 6, 4210752); this.fontRendererObj.drawString(StatCollector.translateToLocal("container.inventory"), 8, this.ySize - 96 + 2, 4210752); diff --git a/src/Java/miscutil/core/block/heliumgen/tileentity/TileEntityHeliumGenerator.java b/src/Java/miscutil/core/block/heliumgen/tileentity/TileEntityHeliumGenerator.java index 88fc44339a..75b1de7f5c 100644 --- a/src/Java/miscutil/core/block/heliumgen/tileentity/TileEntityHeliumGenerator.java +++ b/src/Java/miscutil/core/block/heliumgen/tileentity/TileEntityHeliumGenerator.java @@ -31,6 +31,7 @@ import net.minecraft.inventory.IInventory; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; import net.minecraft.network.Packet; import net.minecraft.network.play.server.S35PacketUpdateTileEntity; import net.minecraft.tileentity.TileEntity; @@ -100,7 +101,13 @@ public class TileEntityHeliumGenerator extends TileEntityInventory implements II { super.readFromNBT(nbttagcompound); - this.heliumStack = ItemStack.loadItemStackFromNBT(nbttagcompound.getCompoundTag("Helium")); + //this.heliumStack = ItemStack.loadItemStackFromNBT(nbttagcompound.getCompoundTag("Helium")); + NBTTagList list = nbttagcompound.getTagList("Items", 10); + for (int i = 0; i < list.tagCount(); ++i) { + NBTTagCompound stackTag = list.getCompoundTagAt(i); + int slot = stackTag.getByte("Slot") & 255; + this.setInventorySlotContents(slot, ItemStack.loadItemStackFromNBT(stackTag)); + } this.progress = nbttagcompound.getInteger("Progress"); this.facing = nbttagcompound.getShort("Facing"); this.heat = nbttagcompound.getInteger("heat"); @@ -118,13 +125,23 @@ public class TileEntityHeliumGenerator extends TileEntityInventory implements II nbttagcompound.setInteger("heat", this.heat); nbttagcompound.setShort("output", (short)(int)getReactorEnergyOutput()); nbttagcompound.setBoolean("active", this.active); - if(heliumStack != null) { + /*if(heliumStack != null) { NBTTagCompound produce = new NBTTagCompound(); heliumStack.writeToNBT(produce); nbttagcompound.setTag("Helium", produce); } else - nbttagcompound.removeTag("Helium"); + nbttagcompound.removeTag("Helium");*/ + NBTTagList list = new NBTTagList(); + for (int i = 0; i < this.getSizeInventory(); ++i) { + if (this.getStackInSlot(i) != null) { + NBTTagCompound stackTag = new NBTTagCompound(); + stackTag.setByte("Slot", (byte) i); + this.getStackInSlot(i).writeToNBT(stackTag); + list.appendTag(stackTag); + } + } + nbttagcompound.setTag("Items", list); } @@ -227,7 +244,7 @@ public class TileEntityHeliumGenerator extends TileEntityInventory implements II public float output = 0.0F; public int updateTicker; public int heat = 5000; - public int maxHeat = 10000; + public int maxHeat = 100000; public float hem = 1.0F; private int EmitHeatbuffer = 0; public int EmitHeat = 0; @@ -340,7 +357,7 @@ public class TileEntityHeliumGenerator extends TileEntityInventory implements II public boolean isUsefulItem(ItemStack stack, boolean forInsertion) { - Utils.LOG_WARNING("isUsefulItem"); + //Utils.LOG_WARNING("isUsefulItem"); Item item = stack.getItem(); if ((forInsertion) && (this.fluidcoolreactor) && ((item instanceof ItemReactorHeatStorage)) && @@ -356,7 +373,7 @@ public class TileEntityHeliumGenerator extends TileEntityInventory implements II public boolean calculateHeatEffects() { Utils.LOG_WARNING("calculateHeatEffects"); - if ((this.heat < 4000) || (!IC2.platform.isSimulating()) || (ConfigUtil.getFloat(MainConfig.get(), "protection/reactorExplosionPowerLimit") <= 0.0F)) { + if ((this.heat < 8000) || (!IC2.platform.isSimulating()) || (ConfigUtil.getFloat(MainConfig.get(), "protection/reactorExplosionPowerLimit") <= 0.0F)) { return false; } float power = this.heat / this.maxHeat; @@ -441,8 +458,8 @@ public class TileEntityHeliumGenerator extends TileEntityInventory implements II { Utils.LOG_WARNING("processChambers"); int size = getReactorSize(); - for (int pass = 0; pass < 2; pass++) { - for (int y = 0; y < 6; y++) { + for (int pass = 0; pass < 6; pass++) { + for (int y = 0; y < 3; y++) { for (int x = 0; x < size; x++) { ItemStack stack = this.reactorSlot.get(x, y); @@ -560,7 +577,7 @@ public class TileEntityHeliumGenerator extends TileEntityInventory implements II public TileEntityHeliumGenerator() { this.updateTicker = IC2.random.nextInt(getTickRate()); - this.reactorSlot = new InvSlotRadiation(this, "collector", 0, 54); //TODO + this.reactorSlot = new InvSlotRadiation(this, "helium_collector", 0, 54); //TODO } @Override @@ -579,6 +596,7 @@ public class TileEntityHeliumGenerator extends TileEntityInventory implements II { Utils.LOG_WARNING("receiveRedstone"); if ((this.worldObj.isBlockIndirectlyGettingPowered(this.xCoord, this.yCoord, this.zCoord)) || (this.redstone)) { + decrStackSize(-1, 1); return true; } return false; diff --git a/src/Java/miscutil/core/block/machine/Machine_NHG.java b/src/Java/miscutil/core/block/machine/Machine_NHG.java new file mode 100644 index 0000000000..1738469fd7 --- /dev/null +++ b/src/Java/miscutil/core/block/machine/Machine_NHG.java @@ -0,0 +1,82 @@ +package miscutil.core.block.machine; + +import java.util.ArrayList; + +import miscutil.MiscUtils; +import miscutil.core.creative.AddToCreativeTab; +import miscutil.core.lib.CORE; +import miscutil.core.tileentities.TileEntityNHG; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import scala.util.Random; + +public class Machine_NHG extends BlockContainer +{ + private static final String name = "Nuclear Fueled Helium Generator"; + + private final Random rand = new Random(); + + public Machine_NHG(String unlocalizedName) + { + super(Material.iron); + //GameRegistry.registerBlock(this, unlocalizedName); + this.setBlockName(unlocalizedName); + this.setBlockTextureName(CORE.MODID + ":" + unlocalizedName); + this.setCreativeTab(AddToCreativeTab.tabMachines); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float lx, float ly, float lz) + { + if (world.isRemote) return true; + + TileEntity te = world.getTileEntity(x, y, z); + if (te != null && te instanceof TileEntityNHG) + { + player.openGui(MiscUtils.instance, 0, world, x, y, z); + return true; + } + return false; + } + + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int par6) + { + if (world.isRemote) return; + + ArrayList drops = new ArrayList(); + + TileEntity teRaw = world.getTileEntity(x, y, z); + + if (teRaw != null && teRaw instanceof TileEntityNHG) + { + TileEntityNHG te = (TileEntityNHG) teRaw; + + for (int i = 0; i < te.getSizeInventory(); i++) + { + ItemStack stack = te.getStackInSlot(i); + + if (stack != null) drops.add(stack.copy()); + } + } + + for (int i = 0;i < drops.size();i++) + { + EntityItem item = new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, (ItemStack) drops.get(i)); + item.setVelocity((rand.nextDouble() - 0.5) * 0.25, rand.nextDouble() * 0.5 * 0.25, (rand.nextDouble() - 0.5) * 0.25); + world.spawnEntityInWorld(item); + } + } + + @Override + public TileEntity createNewTileEntity(World world, int par2) + { + return new TileEntityNHG(); + } +}
\ No newline at end of file |
