aboutsummaryrefslogtreecommitdiff
path: root/src/Java/miscutil/core/block
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/miscutil/core/block')
-rw-r--r--src/Java/miscutil/core/block/ModBlocks.java7
-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.java6
-rw-r--r--src/Java/miscutil/core/block/heliumgen/container/ContainerHeliumGenerator.java3
-rw-r--r--src/Java/miscutil/core/block/heliumgen/gui/GUIHeliumGenerator.java2
-rw-r--r--src/Java/miscutil/core/block/heliumgen/tileentity/TileEntityHeliumGenerator.java36
-rw-r--r--src/Java/miscutil/core/block/machine/Machine_NHG.java82
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