more chemplannt rework stuff, new templates, battery block fixes

This commit is contained in:
Bob 2022-02-20 22:02:08 +01:00
parent abb8c3aeba
commit 09e1b6b197
29 changed files with 269 additions and 1602 deletions

View File

@ -44,6 +44,10 @@ public interface IEnergyConnector {
*/ */
public long getMaxPower(); public long getMaxPower();
public default long getTransferWeight() {
return Math.max(getMaxPower() - getPower(), 0);
}
/** /**
* Basic implementation of subscribing to a nearby power grid * Basic implementation of subscribing to a nearby power grid
* @param world * @param world

View File

@ -109,7 +109,7 @@ public class PowerNet implements IPowerNet {
long totalReq = 0; long totalReq = 0;
for(IEnergyConnector con : this.subscribers) { for(IEnergyConnector con : this.subscribers) {
long req = Math.max(con.getMaxPower() - con.getPower(), 0); long req = con.getTransferWeight();
weight.add(req); weight.add(req);
totalReq += req; totalReq += req;
} }

View File

@ -154,7 +154,7 @@ public class MachineBattery extends BlockContainer {
@Override @Override
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
return new TileEntityMachineBattery(maxPower); return new TileEntityMachineBattery();
} }
@Override @Override

View File

@ -1,296 +1,53 @@
package com.hbm.blocks.machine; package com.hbm.blocks.machine;
import java.util.Random; import com.hbm.blocks.BlockDummyable;
import com.hbm.blocks.ModBlocks; import com.hbm.blocks.ModBlocks;
import com.hbm.handler.MultiblockHandler; import com.hbm.tileentity.TileEntityProxyCombo;
import com.hbm.interfaces.IMultiblock; import com.hbm.tileentity.machine.TileEntityMachineChemplantNew;
import com.hbm.tileentity.machine.TileEntityDummy;
import com.hbm.tileentity.machine.TileEntityMachineChemplant;
import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.inventory.ISidedInventory;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class MachineChemplant extends BlockContainer implements IMultiblock { public class MachineChemplant extends BlockDummyable {
public MachineChemplant(Material p_i45386_1_) { public MachineChemplant(Material p_i45386_1_) {
super(p_i45386_1_); super(p_i45386_1_);
} }
@Override @Override
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { public TileEntity createNewTileEntity(World world, int meta) {
return new TileEntityMachineChemplant(); if(meta >= 12) return new TileEntityMachineChemplantNew();
if(meta >= 6) return new TileEntityProxyCombo(false, true, true);
return null;
} }
@Override @Override
public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { public int[] getDimensions() {
return Item.getItemFromBlock(ModBlocks.machine_chemplant); return new int[] {2, 0, 2, 1, 2, 1};
} }
@Override @Override
public int getRenderType() { public int getOffset() {
return -1; return 1;
}
@Override
public boolean isOpaqueCube() {
return false;
}
@Override
public boolean renderAsNormalBlock() {
return false;
}
@Override
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) {
int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3;
if (i == 0) {
world.setBlockMetadataWithNotify(x, y, z, 5, 2);
if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.chemplantDimensionEast)) {
MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.chemplantDimensionEast, ModBlocks.dummy_block_chemplant);
//
DummyBlockChemplant.safeBreak = true;
world.setBlock(x - 1, y, z, ModBlocks.dummy_port_chemplant);
TileEntity te = world.getTileEntity(x - 1, y, z);
if(te instanceof TileEntityDummy) {
TileEntityDummy dummy = (TileEntityDummy)te;
dummy.targetX = x;
dummy.targetY = y;
dummy.targetZ = z;
}
world.setBlock(x - 1, y, z + 1, ModBlocks.dummy_port_chemplant);
TileEntity te2 = world.getTileEntity(x - 1, y, z + 1);
if(te2 instanceof TileEntityDummy) {
TileEntityDummy dummy = (TileEntityDummy)te2;
dummy.targetX = x;
dummy.targetY = y;
dummy.targetZ = z;
}
world.setBlock(x + 2, y, z, ModBlocks.dummy_port_chemplant);
TileEntity te3 = world.getTileEntity(x + 2, y, z);
if(te3 instanceof TileEntityDummy) {
TileEntityDummy dummy = (TileEntityDummy)te3;
dummy.targetX = x;
dummy.targetY = y;
dummy.targetZ = z;
}
world.setBlock(x + 2, y, z + 1, ModBlocks.dummy_port_chemplant);
TileEntity te4 = world.getTileEntity(x + 2, y, z + 1);
if(te4 instanceof TileEntityDummy) {
TileEntityDummy dummy = (TileEntityDummy)te4;
dummy.targetX = x;
dummy.targetY = y;
dummy.targetZ = z;
}
DummyBlockChemplant.safeBreak = false;
//
} else
world.func_147480_a(x, y, z, true);
}
if (i == 1) {
world.setBlockMetadataWithNotify(x, y, z, 3, 2);
if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.chemplantDimensionSouth)) {
MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.chemplantDimensionSouth, ModBlocks.dummy_block_chemplant);
//
DummyBlockChemplant.safeBreak = true;
world.setBlock(x, y, z - 1, ModBlocks.dummy_port_chemplant);
TileEntity te = world.getTileEntity(x, y, z - 1);
if(te instanceof TileEntityDummy) {
TileEntityDummy dummy = (TileEntityDummy)te;
dummy.targetX = x;
dummy.targetY = y;
dummy.targetZ = z;
}
world.setBlock(x - 1, y, z - 1, ModBlocks.dummy_port_chemplant);
TileEntity te2 = world.getTileEntity(x - 1, y, z - 1);
if(te2 instanceof TileEntityDummy) {
TileEntityDummy dummy = (TileEntityDummy)te2;
dummy.targetX = x;
dummy.targetY = y;
dummy.targetZ = z;
}
world.setBlock(x, y, z + 2, ModBlocks.dummy_port_chemplant);
TileEntity te3 = world.getTileEntity(x, y, z + 2);
if(te3 instanceof TileEntityDummy) {
TileEntityDummy dummy = (TileEntityDummy)te3;
dummy.targetX = x;
dummy.targetY = y;
dummy.targetZ = z;
}
world.setBlock(x - 1, y, z + 2, ModBlocks.dummy_port_chemplant);
TileEntity te4 = world.getTileEntity(x - 1, y, z + 2);
if(te4 instanceof TileEntityDummy) {
TileEntityDummy dummy = (TileEntityDummy)te4;
dummy.targetX = x;
dummy.targetY = y;
dummy.targetZ = z;
}
DummyBlockChemplant.safeBreak = false;
//
} else
world.func_147480_a(x, y, z, true);
}
if (i == 2) {
world.setBlockMetadataWithNotify(x, y, z, 4, 2);
if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.chemplantDimensionWest)) {
MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.chemplantDimensionWest, ModBlocks.dummy_block_chemplant);
//
DummyBlockChemplant.safeBreak = true;
world.setBlock(x + 1, y, z, ModBlocks.dummy_port_chemplant);
TileEntity te = world.getTileEntity(x + 1, y, z);
if(te instanceof TileEntityDummy) {
TileEntityDummy dummy = (TileEntityDummy)te;
dummy.targetX = x;
dummy.targetY = y;
dummy.targetZ = z;
}
world.setBlock(x + 1, y, z - 1, ModBlocks.dummy_port_chemplant);
TileEntity te2 = world.getTileEntity(x + 1, y, z - 1);
if(te2 instanceof TileEntityDummy) {
TileEntityDummy dummy = (TileEntityDummy)te2;
dummy.targetX = x;
dummy.targetY = y;
dummy.targetZ = z;
}
world.setBlock(x - 2, y, z, ModBlocks.dummy_port_chemplant);
TileEntity te3 = world.getTileEntity(x - 2, y, z);
if(te3 instanceof TileEntityDummy) {
TileEntityDummy dummy = (TileEntityDummy)te3;
dummy.targetX = x;
dummy.targetY = y;
dummy.targetZ = z;
}
world.setBlock(x - 2, y, z - 1, ModBlocks.dummy_port_chemplant);
TileEntity te4 = world.getTileEntity(x - 2, y, z - 1);
if(te4 instanceof TileEntityDummy) {
TileEntityDummy dummy = (TileEntityDummy)te4;
dummy.targetX = x;
dummy.targetY = y;
dummy.targetZ = z;
}
DummyBlockChemplant.safeBreak = false;
//
} else
world.func_147480_a(x, y, z, true);
}
if (i == 3) {
world.setBlockMetadataWithNotify(x, y, z, 2, 2);
if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.chemplantDimensionNorth)) {
MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.chemplantDimensionNorth, ModBlocks.dummy_block_chemplant);
//
DummyBlockChemplant.safeBreak = true;
world.setBlock(x, y, z + 1, ModBlocks.dummy_port_chemplant);
TileEntity te = world.getTileEntity(x, y, z + 1);
if(te instanceof TileEntityDummy) {
TileEntityDummy dummy = (TileEntityDummy)te;
dummy.targetX = x;
dummy.targetY = y;
dummy.targetZ = z;
}
world.setBlock(x + 1, y, z + 1, ModBlocks.dummy_port_chemplant);
TileEntity te2 = world.getTileEntity(x + 1, y, z + 1);
if(te2 instanceof TileEntityDummy) {
TileEntityDummy dummy = (TileEntityDummy)te2;
dummy.targetX = x;
dummy.targetY = y;
dummy.targetZ = z;
}
world.setBlock(x, y, z - 2, ModBlocks.dummy_port_chemplant);
TileEntity te3 = world.getTileEntity(x, y, z - 2);
if(te3 instanceof TileEntityDummy) {
TileEntityDummy dummy = (TileEntityDummy)te3;
dummy.targetX = x;
dummy.targetY = y;
dummy.targetZ = z;
}
world.setBlock(x + 1, y, z - 2, ModBlocks.dummy_port_chemplant);
TileEntity te4 = world.getTileEntity(x + 1, y, z - 2);
if(te4 instanceof TileEntityDummy) {
TileEntityDummy dummy = (TileEntityDummy)te4;
dummy.targetX = x;
dummy.targetY = y;
dummy.targetZ = z;
}
DummyBlockChemplant.safeBreak = false;
//
} else
world.func_147480_a(x, y, z, true);
}
} }
private final Random field_149933_a = new Random();
private static boolean keepInventory;
@Override @Override
public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
{ return this.standardOpenBehavior(world, x, y, z, player, ModBlocks.guiID_machine_chemplant);
if (!keepInventory) }
{
ISidedInventory tileentityfurnace = (ISidedInventory)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_);
if (tileentityfurnace != null) @Override
{ public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) {
for (int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) super.fillSpace(world, x, y, z, dir, o);
{
ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN);
if (itemstack != null) this.makeExtra(world, x + rot.offsetX * 2, y, z + rot.offsetZ * 2);
{ this.makeExtra(world, x - rot.offsetX * 1, y, z - rot.offsetZ * 1);
float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F; this.makeExtra(world, x + rot.offsetX * 2 + dir.offsetX, y, z + rot.offsetZ * 2 + dir.offsetZ);
float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; this.makeExtra(world, x - rot.offsetX * 1 + dir.offsetX, y, z - rot.offsetZ * 1 + dir.offsetZ);
float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; }
while (itemstack.stackSize > 0)
{
int j1 = this.field_149933_a.nextInt(21) + 10;
if (j1 > itemstack.stackSize)
{
j1 = itemstack.stackSize;
}
itemstack.stackSize -= j1;
EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage()));
if (itemstack.hasTagCompound())
{
entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy());
}
float f3 = 0.05F;
entityitem.motionX = (float)this.field_149933_a.nextGaussian() * f3;
entityitem.motionY = (float)this.field_149933_a.nextGaussian() * f3 + 0.2F;
entityitem.motionZ = (float)this.field_149933_a.nextGaussian() * f3;
p_149749_1_.spawnEntityInWorld(entityitem);
}
}
}
p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_);
}
}
super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_);
}
} }

View File

@ -3,7 +3,7 @@ package com.hbm.blocks.machine;
import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.BlockDummyable;
import com.hbm.blocks.ModBlocks; import com.hbm.blocks.ModBlocks;
import com.hbm.main.MainRegistry; import com.hbm.main.MainRegistry;
import com.hbm.tileentity.machine.TileEntityMachineFENSU; import com.hbm.tileentity.machine.storage.TileEntityMachineFENSU;
import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;

View File

@ -327,8 +327,8 @@ public class GUIHandler implements IGuiHandler {
} }
case ModBlocks.guiID_machine_chemplant: { case ModBlocks.guiID_machine_chemplant: {
if(entity instanceof TileEntityMachineChemplant) { if(entity instanceof TileEntityMachineChemplantNew) {
return new ContainerMachineChemplant(player.inventory, (TileEntityMachineChemplant) entity); return new ContainerMachineChemplant(player.inventory, (TileEntityMachineChemplantNew) entity);
} }
return null; return null;
} }
@ -1167,8 +1167,8 @@ public class GUIHandler implements IGuiHandler {
} }
case ModBlocks.guiID_machine_chemplant: { case ModBlocks.guiID_machine_chemplant: {
if(entity instanceof TileEntityMachineChemplant) { if(entity instanceof TileEntityMachineChemplantNew) {
return new GUIMachineChemplant(player.inventory, (TileEntityMachineChemplant) entity); return new GUIMachineChemplant(player.inventory, (TileEntityMachineChemplantNew) entity);
} }
return null; return null;
} }

View File

@ -17,6 +17,7 @@ import codechicken.nei.recipe.TemplateRecipeHandler;
import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
//TODO: destroy this abomination and replace it with something more sensible
public class ChemplantRecipeHandler extends TemplateRecipeHandler { public class ChemplantRecipeHandler extends TemplateRecipeHandler {
public LinkedList<RecipeTransferRect> transferRectsRec = new LinkedList<RecipeTransferRect>(); public LinkedList<RecipeTransferRect> transferRectsRec = new LinkedList<RecipeTransferRect>();
@ -94,7 +95,7 @@ public class ChemplantRecipeHandler extends TemplateRecipeHandler {
@Override @Override
public void loadCraftingRecipes(String outputId, Object... results) { public void loadCraftingRecipes(String outputId, Object... results) {
if ((outputId.equals("chemistry")) && getClass() == ChemplantRecipeHandler.class) { /*if ((outputId.equals("chemistry")) && getClass() == ChemplantRecipeHandler.class) {
Map<Object[], Object[]> recipes = MachineRecipes.instance().getChemistryRecipes(); Map<Object[], Object[]> recipes = MachineRecipes.instance().getChemistryRecipes();
for (Map.Entry<Object[], Object[]> recipe : recipes.entrySet()) { for (Map.Entry<Object[], Object[]> recipe : recipes.entrySet()) {
this.arecipes.add(new SmeltingSet( this.arecipes.add(new SmeltingSet(
@ -114,12 +115,12 @@ public class ChemplantRecipeHandler extends TemplateRecipeHandler {
} }
} else { } else {
super.loadCraftingRecipes(outputId, results); super.loadCraftingRecipes(outputId, results);
} }*/
} }
@Override @Override
public void loadCraftingRecipes(ItemStack result) { public void loadCraftingRecipes(ItemStack result) {
Map<Object[], Object[]> recipes = MachineRecipes.instance().getChemistryRecipes(); /*Map<Object[], Object[]> recipes = MachineRecipes.instance().getChemistryRecipes();
for (Map.Entry<Object[], Object[]> recipe : recipes.entrySet()) { for (Map.Entry<Object[], Object[]> recipe : recipes.entrySet()) {
if (compareFluidStacks(result, (ItemStack)recipe.getValue()[0]) || if (compareFluidStacks(result, (ItemStack)recipe.getValue()[0]) ||
compareFluidStacks(result, (ItemStack)recipe.getValue()[1]) || compareFluidStacks(result, (ItemStack)recipe.getValue()[1]) ||
@ -141,7 +142,7 @@ public class ChemplantRecipeHandler extends TemplateRecipeHandler {
(ItemStack)recipe.getValue()[4], (ItemStack)recipe.getValue()[4],
(ItemStack)recipe.getValue()[5], (ItemStack)recipe.getValue()[5],
(ItemStack)recipe.getKey()[6])); (ItemStack)recipe.getKey()[6]));
} }*/
} }
@Override @Override
@ -155,7 +156,7 @@ public class ChemplantRecipeHandler extends TemplateRecipeHandler {
@Override @Override
public void loadUsageRecipes(ItemStack ingredient) { public void loadUsageRecipes(ItemStack ingredient) {
Map<Object[], Object[]> recipes = MachineRecipes.instance().getChemistryRecipes(); /*Map<Object[], Object[]> recipes = MachineRecipes.instance().getChemistryRecipes();
for (Map.Entry<Object[], Object[]> recipe : recipes.entrySet()) { for (Map.Entry<Object[], Object[]> recipe : recipes.entrySet()) {
if (compareFluidStacks(ingredient, (ItemStack)recipe.getKey()[0]) || if (compareFluidStacks(ingredient, (ItemStack)recipe.getKey()[0]) ||
compareFluidStacks(ingredient, (ItemStack)recipe.getKey()[1]) || compareFluidStacks(ingredient, (ItemStack)recipe.getKey()[1]) ||
@ -178,7 +179,7 @@ public class ChemplantRecipeHandler extends TemplateRecipeHandler {
(ItemStack)recipe.getValue()[4], (ItemStack)recipe.getValue()[4],
(ItemStack)recipe.getValue()[5], (ItemStack)recipe.getValue()[5],
(ItemStack)recipe.getKey()[6])); (ItemStack)recipe.getKey()[6]));
} }*/
} }
private boolean compareFluidStacks(ItemStack sta1, ItemStack sta2) { private boolean compareFluidStacks(ItemStack sta1, ItemStack sta2) {

View File

@ -93,6 +93,14 @@ public class RecipesCommon {
* @return * @return
*/ */
public abstract List<ItemStack> extractForNEI(); public abstract List<ItemStack> extractForNEI();
public ItemStack extractForCyclingDisplay(int cycle) {
List<ItemStack> list = extractForNEI();
cycle *= 50;
return list.get((int)(System.currentTimeMillis() % (cycle * list.size()) / cycle));
}
} }
public static class ComparableStack extends AStack { public static class ComparableStack extends AStack {

View File

@ -1,143 +1,93 @@
package com.hbm.inventory.container; package com.hbm.inventory.container;
import com.hbm.inventory.SlotMachineOutput; import com.hbm.inventory.SlotMachineOutput;
import com.hbm.tileentity.machine.TileEntityMachineChemplant; import com.hbm.tileentity.machine.TileEntityMachineChemplantNew;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container; import net.minecraft.inventory.Container;
import net.minecraft.inventory.ICrafting;
import net.minecraft.inventory.Slot; import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
public class ContainerMachineChemplant extends Container { public class ContainerMachineChemplant extends Container {
private TileEntityMachineChemplant nukeBoy; private TileEntityMachineChemplantNew nukeBoy;
private int progress; public ContainerMachineChemplant(InventoryPlayer invPlayer, TileEntityMachineChemplantNew tedf) {
private int maxProgress;
public ContainerMachineChemplant(InventoryPlayer invPlayer, TileEntityMachineChemplant tedf) {
progress = 0;
nukeBoy = tedf; nukeBoy = tedf;
//Battery // Battery
this.addSlotToContainer(new Slot(tedf, 0, 80, 18)); this.addSlotToContainer(new Slot(tedf, 0, 80, 18));
//Upgrades // Upgrades
this.addSlotToContainer(new Slot(tedf, 1, 116, 18)); this.addSlotToContainer(new Slot(tedf, 1, 116, 18));
this.addSlotToContainer(new Slot(tedf, 2, 116, 36)); this.addSlotToContainer(new Slot(tedf, 2, 116, 36));
this.addSlotToContainer(new Slot(tedf, 3, 116, 54)); this.addSlotToContainer(new Slot(tedf, 3, 116, 54));
//Schematic // Schematic
this.addSlotToContainer(new Slot(tedf, 4, 80, 54)); this.addSlotToContainer(new Slot(tedf, 4, 80, 54));
//Outputs // Outputs
this.addSlotToContainer(new SlotMachineOutput(tedf, 5, 134, 90)); this.addSlotToContainer(new SlotMachineOutput(tedf, 5, 134, 90));
this.addSlotToContainer(new SlotMachineOutput(tedf, 6, 152, 90)); this.addSlotToContainer(new SlotMachineOutput(tedf, 6, 152, 90));
this.addSlotToContainer(new SlotMachineOutput(tedf, 7, 134, 108)); this.addSlotToContainer(new SlotMachineOutput(tedf, 7, 134, 108));
this.addSlotToContainer(new SlotMachineOutput(tedf, 8, 152, 108)); this.addSlotToContainer(new SlotMachineOutput(tedf, 8, 152, 108));
//Fluid Output In // Fluid Output In
this.addSlotToContainer(new Slot(tedf, 9, 134, 54)); this.addSlotToContainer(new Slot(tedf, 9, 134, 54));
this.addSlotToContainer(new Slot(tedf, 10, 152, 54)); this.addSlotToContainer(new Slot(tedf, 10, 152, 54));
//Fluid Outputs Out // Fluid Outputs Out
this.addSlotToContainer(new SlotMachineOutput(tedf, 11, 134, 72)); this.addSlotToContainer(new SlotMachineOutput(tedf, 11, 134, 72));
this.addSlotToContainer(new SlotMachineOutput(tedf, 12, 152, 72)); this.addSlotToContainer(new SlotMachineOutput(tedf, 12, 152, 72));
//Input // Input
this.addSlotToContainer(new Slot(tedf, 13, 8, 90)); this.addSlotToContainer(new Slot(tedf, 13, 8, 90));
this.addSlotToContainer(new Slot(tedf, 14, 26, 90)); this.addSlotToContainer(new Slot(tedf, 14, 26, 90));
this.addSlotToContainer(new Slot(tedf, 15, 8, 108)); this.addSlotToContainer(new Slot(tedf, 15, 8, 108));
this.addSlotToContainer(new Slot(tedf, 16, 26, 108)); this.addSlotToContainer(new Slot(tedf, 16, 26, 108));
//Fluid Input In // Fluid Input In
this.addSlotToContainer(new Slot(tedf, 17, 8, 54)); this.addSlotToContainer(new Slot(tedf, 17, 8, 54));
this.addSlotToContainer(new Slot(tedf, 18, 26, 54)); this.addSlotToContainer(new Slot(tedf, 18, 26, 54));
//Fluid Input Out // Fluid Input Out
this.addSlotToContainer(new SlotMachineOutput(tedf, 19, 8, 72)); this.addSlotToContainer(new SlotMachineOutput(tedf, 19, 8, 72));
this.addSlotToContainer(new SlotMachineOutput(tedf, 20, 26, 72)); this.addSlotToContainer(new SlotMachineOutput(tedf, 20, 26, 72));
for(int i = 0; i < 3; i++) for(int i = 0; i < 3; i++) {
{ for(int j = 0; j < 9; j++) {
for(int j = 0; j < 9; j++)
{
this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18 + 56)); this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18 + 56));
} }
} }
for(int i = 0; i < 9; i++) for(int i = 0; i < 9; i++) {
{
this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + 56)); this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + 56));
} }
} }
@Override @Override
public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) {
{
ItemStack var3 = null; ItemStack var3 = null;
Slot var4 = (Slot) this.inventorySlots.get(par2); Slot var4 = (Slot) this.inventorySlots.get(par2);
if (var4 != null && var4.getHasStack()) if(var4 != null && var4.getHasStack()) {
{
ItemStack var5 = var4.getStack(); ItemStack var5 = var4.getStack();
var3 = var5.copy(); var3 = var5.copy();
SlotMachineOutput.checkAchievements(p_82846_1_, var5); SlotMachineOutput.checkAchievements(p_82846_1_, var5);
if (par2 <= 20) { if(par2 <= 20) {
if (!this.mergeItemStack(var5, 21, this.inventorySlots.size(), true)) if(!this.mergeItemStack(var5, 21, this.inventorySlots.size(), true)) {
{
return null; return null;
} }
} } else if(!this.mergeItemStack(var5, 4, 5, false))
else if (!this.mergeItemStack(var5, 4, 5, false)) if(!this.mergeItemStack(var5, 13, 19, false))
if (!this.mergeItemStack(var5, 13, 19, false))
return null; return null;
if (var5.stackSize == 0) if(var5.stackSize == 0) {
{
var4.putStack((ItemStack) null); var4.putStack((ItemStack) null);
} } else {
else
{
var4.onSlotChanged(); var4.onSlotChanged();
} }
} }
return var3; return var3;
} }
@Override @Override
public boolean canInteractWith(EntityPlayer player) { public boolean canInteractWith(EntityPlayer player) {
return nukeBoy.isUseableByPlayer(player); return nukeBoy.isUseableByPlayer(player);
} }
@Override
public void detectAndSendChanges() {
super.detectAndSendChanges();
for(int i = 0; i < this.crafters.size(); i++)
{
ICrafting par1 = (ICrafting)this.crafters.get(i);
if(this.progress != this.nukeBoy.progress)
{
par1.sendProgressBarUpdate(this, 1, this.nukeBoy.progress);
}
if(this.maxProgress != this.nukeBoy.maxProgress)
{
par1.sendProgressBarUpdate(this, 2, this.nukeBoy.maxProgress);
}
}
this.progress= this.nukeBoy.progress;
this.maxProgress= this.nukeBoy.maxProgress;
}
@Override
public void updateProgressBar(int i, int j) {
if(i == 1)
{
nukeBoy.progress = j;
}
if(i == 2)
{
nukeBoy.maxProgress = j;
}
}
} }

View File

@ -33,7 +33,7 @@ public class GUIMachineBattery extends GuiInfoContainer {
public void drawScreen(int mouseX, int mouseY, float f) { public void drawScreen(int mouseX, int mouseY, float f) {
super.drawScreen(mouseX, mouseY, f); super.drawScreen(mouseX, mouseY, f);
this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 62, guiTop + 69 - 52, 52, 52, battery.power, battery.maxPower); this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 62, guiTop + 69 - 52, 52, 52, battery.power, battery.getMaxPower());
long delta = battery.log[19] - battery.log[0]; long delta = battery.log[19] - battery.log[0];
String deltaText = BobMathUtil.getShortNumber(Math.abs(delta)) + "HE/s"; String deltaText = BobMathUtil.getShortNumber(Math.abs(delta)) + "HE/s";
@ -46,7 +46,7 @@ public class GUIMachineBattery extends GuiInfoContainer {
deltaText = EnumChatFormatting.YELLOW + "+" + deltaText; deltaText = EnumChatFormatting.YELLOW + "+" + deltaText;
String[] info = { String[] info = {
BobMathUtil.getShortNumber(battery.power) + "/" + BobMathUtil.getShortNumber(battery.maxPower) + "HE", BobMathUtil.getShortNumber(battery.power) + "/" + BobMathUtil.getShortNumber(battery.getMaxPower()) + "HE",
deltaText deltaText
}; };

View File

@ -2,11 +2,10 @@ package com.hbm.inventory.gui;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
import com.hbm.inventory.FluidTank;
import com.hbm.inventory.container.ContainerMachineChemplant; import com.hbm.inventory.container.ContainerMachineChemplant;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.lib.RefStrings; import com.hbm.lib.RefStrings;
import com.hbm.tileentity.machine.TileEntityMachineChemplant; import com.hbm.tileentity.machine.TileEntityMachineChemplantNew;
import com.hbm.util.I18nUtil; import com.hbm.util.I18nUtil;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
@ -17,9 +16,9 @@ import net.minecraft.util.ResourceLocation;
public class GUIMachineChemplant extends GuiInfoContainer { public class GUIMachineChemplant extends GuiInfoContainer {
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_chemplant.png"); private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_chemplant.png");
private TileEntityMachineChemplant chemplant; private TileEntityMachineChemplantNew chemplant;
public GUIMachineChemplant(InventoryPlayer invPlayer, TileEntityMachineChemplant tedf) { public GUIMachineChemplant(InventoryPlayer invPlayer, TileEntityMachineChemplantNew tedf) {
super(new ContainerMachineChemplant(invPlayer, tedf)); super(new ContainerMachineChemplant(invPlayer, tedf));
chemplant = tedf; chemplant = tedf;
@ -68,10 +67,10 @@ public class GUIMachineChemplant extends GuiInfoContainer {
Minecraft.getMinecraft().getTextureManager().bindTexture(texture); Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
int i = (int)chemplant.getPowerScaled(52); int i = (int) (chemplant.power * 52 / chemplant.maxPower);
drawTexturedModalRect(guiLeft + 44, guiTop + 70 - i, 176, 52 - i, 16, i); drawTexturedModalRect(guiLeft + 44, guiTop + 70 - i, 176, 52 - i, 16, i);
int j = chemplant.getProgressScaled(90); int j = chemplant.progress * 90 / chemplant.maxProgress;
drawTexturedModalRect(guiLeft + 43, guiTop + 89, 0, 222, j, 18); drawTexturedModalRect(guiLeft + 43, guiTop + 89, 0, 222, j, 18);
this.drawInfoPanel(guiLeft + 105, guiTop + 40, 8, 8, 8); this.drawInfoPanel(guiLeft + 105, guiTop + 40, 8, 8, 8);

View File

@ -10,11 +10,12 @@ import org.lwjgl.opengl.GL11;
import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.FluidType;
import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.recipes.AssemblerRecipes; import com.hbm.inventory.recipes.AssemblerRecipes;
import com.hbm.inventory.recipes.ChemplantRecipes;
import com.hbm.inventory.recipes.ChemplantRecipes.ChemRecipe;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemCassette; import com.hbm.items.machine.ItemCassette;
import com.hbm.items.machine.ItemChemistryTemplate; import com.hbm.items.machine.ItemChemistryTemplate;
import com.hbm.items.machine.ItemStamp; import com.hbm.items.machine.ItemStamp;
import com.hbm.items.machine.ItemChemistryTemplate.EnumChemistryTemplate;
import com.hbm.items.machine.ItemStamp.StampType; import com.hbm.items.machine.ItemStamp.StampType;
import com.hbm.lib.RefStrings; import com.hbm.lib.RefStrings;
import com.hbm.packet.ItemFolderPacket; import com.hbm.packet.ItemFolderPacket;
@ -80,11 +81,9 @@ public class GUIScreenTemplateFolder extends GuiScreen {
} }
} }
// Chemistry Templates // Chemistry Templates
for(int i = 0; i < ItemChemistryTemplate.EnumChemistryTemplate.values().length; i++) { for(int i = 0; i < ChemplantRecipes.recipes.size(); i++) {
EnumChemistryTemplate chem = EnumChemistryTemplate.getEnum(i); ChemRecipe chem = ChemplantRecipes.recipes.get(i);
if(!chem.isDisabled()) { allStacks.add(new ItemStack(ModItems.chemistry_template, 1, chem.getId()));
allStacks.add(new ItemStack(ModItems.chemistry_template, 1, i));
}
} }
} else { } else {

View File

@ -1,18 +1,14 @@
package com.hbm.inventory.recipes; package com.hbm.inventory.recipes;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.Iterator; import java.util.Iterator;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
import com.hbm.inventory.FluidStack; import com.hbm.inventory.FluidStack;
import com.hbm.inventory.fluid.FluidType;
import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.Fluids;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemFluidIcon; import com.hbm.items.machine.ItemFluidIcon;
import com.hbm.util.Tuple.Pair;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;

View File

@ -1117,50 +1117,6 @@ public class MachineRecipes {
return false; return false;
} }
public Map<Object[], Object[]> getChemistryRecipes() {
Map<Object[], Object[]> recipes = new HashMap<Object[], Object[]>();
for (int i = 0; i < ItemChemistryTemplate.EnumChemistryTemplate.values().length; ++i)
{
ItemStack[] inputs = new ItemStack[7];
ItemStack[] outputs = new ItemStack[6];
inputs[6] = new ItemStack(ModItems.chemistry_template, 1, i);
List<ItemStack> listIn = MachineRecipes.getChemInputFromTempate(inputs[6]);
if(listIn != null)
for(int j = 0; j < listIn.size(); j++)
if(listIn.get(j) != null)
inputs[j + 2] = listIn.get(j).copy();
FluidStack[] fluidIn = MachineRecipes.getFluidInputFromTempate(inputs[6]);
for(int j = 0; j < fluidIn.length; j++)
if(fluidIn[j] != null)
inputs[j] = ItemFluidIcon.addQuantity(new ItemStack(ModItems.fluid_icon, 1, fluidIn[j].type.getID()), fluidIn[j].fill);
ItemStack[] listOut = MachineRecipes.getChemOutputFromTempate(inputs[6]);
for(int j = 0; j < listOut.length; j++)
if(listOut[j] != null)
outputs[j + 2] = listOut[j].copy();
FluidStack[] fluidOut = MachineRecipes.getFluidOutputFromTempate(inputs[6]);
for(int j = 0; j < fluidOut.length; j++)
if(fluidOut[j] != null)
outputs[j] = ItemFluidIcon.addQuantity(new ItemStack(ModItems.fluid_icon, 1, fluidOut[j].type.getID()), fluidOut[j].fill);
for(int j = 0; j < inputs.length; j++)
if(inputs[j] == null)
inputs[j] = new ItemStack(ModItems.nothing);
for(int j = 0; j < outputs.length; j++)
if(outputs[j] == null)
outputs[j] = new ItemStack(ModItems.nothing);
recipes.put(inputs, outputs);
}
return recipes;
}
public Map<Object, Object> getBoilerRecipes() { public Map<Object, Object> getBoilerRecipes() {
@ -1186,805 +1142,6 @@ public class MachineRecipes {
return recipes; return recipes;
} }
public static List<ItemStack> getChemInputFromTempate(ItemStack stack) {
if(stack == null || !(stack.getItem() instanceof ItemChemistryTemplate))
return null;
List<ItemStack> list = new ArrayList<ItemStack>();
ItemChemistryTemplate.EnumChemistryTemplate chem = ItemChemistryTemplate.EnumChemistryTemplate.getEnum(stack.getItemDamage());
if(chem.isDisabled())
return list;
switch(chem) {
case CC_OIL:
list.add(new ItemStack(ModItems.powder_coal, 8));
list.add(new ItemStack(ModItems.oil_tar, 4));
break;
case CC_I:
list.add(new ItemStack(ModItems.powder_coal, 6));
list.add(new ItemStack(ModItems.oil_tar, 4));
break;
case CC_HEATING:
list.add(new ItemStack(ModItems.powder_coal, 6));
list.add(new ItemStack(ModItems.oil_tar, 4));
break;
case CC_HEAVY:
list.add(new ItemStack(ModItems.powder_coal, 8));
list.add(new ItemStack(ModItems.oil_tar, 4));
break;
case CC_NAPHTHA:
list.add(new ItemStack(ModItems.powder_coal, 8));
list.add(new ItemStack(ModItems.oil_tar, 4));
break;
case ASPHALT:
list.add(new ItemStack(Blocks.gravel, 2));
list.add(new ItemStack(Blocks.sand, 6));
break;
case CONCRETE:
list.add(new ItemStack(Blocks.gravel, 8));
list.add(new ItemStack(Blocks.sand, 8));
break;
case CONCRETE_ASBESTOS:
list.add(new ItemStack(Blocks.gravel, 2));
list.add(new ItemStack(Blocks.sand, 2));
list.add(new ItemStack(ModItems.ingot_asbestos, 4));
break;
case COOLANT:
list.add(new ItemStack(ModItems.niter, 1));
break;
case CRYOGEL:
list.add(new ItemStack(ModItems.powder_ice, 1));
break;
case DESH:
list.add(new ItemStack(ModItems.powder_desh_mix, 1));
break;
case CIRCUIT_4:
list.add(new ItemStack(ModItems.circuit_red_copper, 1));
list.add(new ItemStack(ModItems.wire_gold, 4));
list.add(new ItemStack(ModItems.powder_lapis, 1));
list.add(new ItemStack(ModItems.ingot_polymer, 1));
break;
case CIRCUIT_5:
list.add(new ItemStack(ModItems.circuit_gold, 1));
list.add(new ItemStack(ModItems.wire_schrabidium, 4));
list.add(new ItemStack(ModItems.powder_diamond, 1));
list.add(new ItemStack(ModItems.ingot_desh, 1));
break;
case POLYMER:
list.add(new ItemStack(ModItems.powder_coal, 2));
list.add(new ItemStack(ModItems.fluorite, 1));
break;
case DEUTERIUM:
list.add(new ItemStack(ModItems.sulfur, 1));
break;
case BP_BIOGAS:
list.add(new ItemStack(ModItems.biomass, 16));
break;
case YELLOWCAKE:
list.add(new ItemStack(ModItems.billet_uranium, 2));
list.add(new ItemStack(ModItems.sulfur, 2));
break;
case UF6:
list.add(new ItemStack(ModItems.powder_yellowcake, 1));
list.add(new ItemStack(ModItems.fluorite, 4));
break;
case PUF6:
list.add(new ItemStack(ModItems.powder_plutonium, 1));
list.add(new ItemStack(ModItems.fluorite, 3));
break;
case SAS3:
list.add(new ItemStack(ModItems.powder_schrabidium, 1));
list.add(new ItemStack(ModItems.sulfur, 2));
break;
case NITAN:
list.add(new ItemStack(ModItems.powder_nitan_mix, 2));
break;
case OIL_SAND:
list.add(new ItemStack(ModBlocks.ore_oil_sand, 16));
break;
case DYN_SCHRAB:
list.add(new ItemStack(ModItems.dynosphere_desh_charged, 3));
list.add(new ItemStack(ModItems.ingot_uranium, 1));
list.add(new ItemStack(ModItems.catalyst_clay, 8));
break;
case DYN_EUPH:
list.add(new ItemStack(ModItems.dynosphere_schrabidium_charged, 1));
list.add(new ItemStack(ModItems.ingot_plutonium, 1));
list.add(new ItemStack(ModItems.catalyst_clay, 16));
list.add(new ItemStack(ModItems.ingot_euphemium, 1));
break;
case DYN_DNT:
list.add(new ItemStack(ModItems.dynosphere_euphemium_charged, 2));
list.add(new ItemStack(ModItems.powder_spark_mix, 1));
list.add(new ItemStack(ModItems.ingot_starmetal, 1));
list.add(new ItemStack(ModItems.catalyst_clay, 32));
break;
case CORDITE:
list.add(new ItemStack(ModItems.niter, 2));
list.add(new ItemStack(Blocks.planks, 1));
list.add(new ItemStack(Items.sugar, 1));
break;
case KEVLAR:
list.add(new ItemStack(ModItems.niter, 2));
list.add(new ItemStack(Items.brick, 1));
list.add(new ItemStack(ModItems.powder_coal, 1));
break;
case SOLID_FUEL:
list.add(new ItemStack(ModItems.solid_fuel, 2));
list.add(new ItemStack(ModItems.niter, 1));
list.add(new ItemStack(Items.redstone, 1));
break;
case SATURN:
list.add(new ItemStack(ModItems.powder_dura_steel, 1));
list.add(new ItemStack(ModItems.powder_fire, 1));
break;
case BALEFIRE:
list.add(new ItemStack(ModItems.egg_balefire_shard, 1));
break;
case SCHRABIDIC:
list.add(new ItemStack(ModItems.pellet_charged, 1));
break;
case SCHRABIDATE:
list.add(new ItemStack(ModItems.powder_iron, 1));
break;
case COLTAN_CLEANING:
list.add(new ItemStack(ModItems.powder_coltan_ore, 2));
list.add(new ItemStack(ModItems.powder_coal, 1));
break;
case COLTAN_PAIN:
list.add(new ItemStack(ModItems.powder_coltan, 1));
list.add(new ItemStack(ModItems.fluorite, 1));
break;
case VIT_LIQUID:
case VIT_GAS:
list.add(new ItemStack(ModBlocks.sand_lead, 1));
break;
case TEL:
list.add(new ItemStack(ModItems.oil_tar, 1));
list.add(new ItemStack(ModItems.powder_lead, 1));
break;
case GASOLINE:
list.add(new ItemStack(ModItems.antiknock, 1));
break;
case FRACKSOL:
list.add(new ItemStack(ModItems.sulfur, 1));
break;
case HELIUM3:
list.add(new ItemStack(ModBlocks.moon_turf, 8));
break;
case OSMIRIDIUM_DEATH:
list.add(new ItemStack(ModItems.powder_paleogenite, 1));
list.add(new ItemStack(ModItems.fluorite, 8));
list.add(new ItemStack(ModItems.nugget_bismuth, 4));
break;
case ETHANOL:
list.add(new ItemStack(Items.sugar, 6));
break;
case METH:
list.add(new ItemStack(Items.wheat, 1));
list.add(new ItemStack(Items.dye, 2, 3));
break;
case DUCRETE:
list.add(new ItemStack(Blocks.sand, 8));
list.add(new ItemStack(ModItems.billet_u238, 2));
list.add(new ItemStack(Items.clay_ball, 4));
default:
break;
}
if(list.isEmpty())
return null;
else
return list;
}
public static FluidStack[] getFluidInputFromTempate(ItemStack stack) {
if(stack == null || !(stack.getItem() instanceof ItemChemistryTemplate))
return null;
FluidStack[] input = new FluidStack[2];
ItemChemistryTemplate.EnumChemistryTemplate chem = ItemChemistryTemplate.EnumChemistryTemplate.getEnum(stack.getItemDamage());
if(chem.isDisabled())
return input;
switch(chem) {
case FP_HEAVYOIL:
input[0] = new FluidStack(1000, Fluids.HEAVYOIL);
break;
case FP_SMEAR:
input[0] = new FluidStack(1000, Fluids.SMEAR);
break;
case FP_NAPHTHA:
input[0] = new FluidStack(1000, Fluids.NAPHTHA);
break;
case FP_LIGHTOIL:
input[0] = new FluidStack(1000, Fluids.LIGHTOIL);
break;
case FR_REOIL:
input[0] = new FluidStack(1000, Fluids.SMEAR);
break;
case FR_PETROIL:
input[0] = new FluidStack(800, Fluids.RECLAIMED);
input[1] = new FluidStack(200, Fluids.LUBRICANT);
break;
case FC_BITUMEN:
input[0] = new FluidStack(1200, Fluids.BITUMEN);
input[1] = new FluidStack(2400, Fluids.STEAM);
break;
case FC_I_NAPHTHA:
input[0] = new FluidStack(1400, Fluids.SMEAR);
input[1] = new FluidStack(800, Fluids.WATER);
break;
case FC_GAS_PETROLEUM:
input[0] = new FluidStack(1800, Fluids.GAS);
input[1] = new FluidStack(1200, Fluids.WATER);
break;
case FC_DIESEL_KEROSENE:
input[0] = new FluidStack(1200, Fluids.DIESEL);
input[1] = new FluidStack(2000, Fluids.STEAM);
break;
case FC_KEROSENE_PETROLEUM:
input[0] = new FluidStack(1400, Fluids.KEROSENE);
input[1] = new FluidStack(2000, Fluids.STEAM);
break;
case CC_I:
input[0] = new FluidStack(1800, Fluids.WATER);
break;
case CC_OIL:
input[0] = new FluidStack(1400, Fluids.STEAM);
break;
case CC_HEATING:
input[0] = new FluidStack(2000, Fluids.STEAM);
break;
case CC_HEAVY:
input[0] = new FluidStack(1400, Fluids.WATER);
break;
case CC_NAPHTHA:
input[0] = new FluidStack(2400, Fluids.STEAM);
break;
case ASPHALT:
input[0] = new FluidStack(1000, Fluids.BITUMEN);
break;
case CONCRETE:
input[0] = new FluidStack(2000, Fluids.WATER);
break;
case CONCRETE_ASBESTOS:
input[0] = new FluidStack(2000, Fluids.WATER);
break;
case COOLANT:
input[0] = new FluidStack(1800, Fluids.WATER);
break;
case CRYOGEL:
input[0] = new FluidStack(1800, Fluids.COOLANT);
break;
case DESH:
if(GeneralConfig.enableBabyMode) {
input[0] = new FluidStack(200, Fluids.LIGHTOIL);
} else {
input[0] = new FluidStack(200, Fluids.MERCURY);
input[1] = new FluidStack(200, Fluids.LIGHTOIL);
}
break;
case PEROXIDE:
input[0] = new FluidStack(1000, Fluids.WATER);
break;
case CIRCUIT_4:
input[0] = new FluidStack(400, Fluids.ACID);
input[1] = new FluidStack(200, Fluids.PETROLEUM);
break;
case CIRCUIT_5:
input[0] = new FluidStack(800, Fluids.ACID);
input[1] = new FluidStack(200, Fluids.MERCURY);
break;
case SF_OIL:
input[0] = new FluidStack(SolidificationRecipes.SF_OIL * 2, Fluids.OIL);
break;
case SF_HEAVYOIL:
input[0] = new FluidStack(SolidificationRecipes.SF_HEAVY * 2, Fluids.HEAVYOIL);
break;
case SF_SMEAR:
input[0] = new FluidStack(SolidificationRecipes.SF_SMEAR * 2, Fluids.SMEAR);
break;
case SF_HEATINGOIL:
input[0] = new FluidStack(SolidificationRecipes.SF_HEATING * 2, Fluids.HEATINGOIL);
break;
case SF_RECLAIMED:
input[0] = new FluidStack(SolidificationRecipes.SF_RECLAIMED * 2, Fluids.RECLAIMED);
break;
case SF_PETROIL:
input[0] = new FluidStack(SolidificationRecipes.SF_PETROIL * 2, Fluids.PETROIL);
break;
case SF_LUBRICANT:
input[0] = new FluidStack(SolidificationRecipes.SF_LUBE * 2, Fluids.LUBRICANT);
break;
case SF_NAPHTHA:
input[0] = new FluidStack(SolidificationRecipes.SF_NAPH * 2, Fluids.NAPHTHA);
break;
case SF_DIESEL:
input[0] = new FluidStack(SolidificationRecipes.SF_DIESEL * 2, Fluids.DIESEL);
break;
case SF_LIGHTOIL:
input[0] = new FluidStack(SolidificationRecipes.SF_LIGHT * 2, Fluids.LIGHTOIL);
break;
case SF_KEROSENE:
input[0] = new FluidStack(SolidificationRecipes.SF_KEROSENE * 2, Fluids.KEROSENE);
break;
case SF_GAS:
input[0] = new FluidStack(SolidificationRecipes.SF_GAS * 2, Fluids.GAS);
break;
case SF_PETROLEUM:
input[0] = new FluidStack(SolidificationRecipes.SF_PETROLEUM * 2, Fluids.PETROLEUM);
break;
case SF_BIOGAS:
input[0] = new FluidStack(SolidificationRecipes.SF_BIOGAS * 2, Fluids.BIOGAS);
break;
case SF_BIOFUEL:
input[0] = new FluidStack(SolidificationRecipes.SF_BIOFUEL * 2, Fluids.BIOFUEL);
break;
case POLYMER:
input[0] = new FluidStack(600, Fluids.PETROLEUM);
break;
case DEUTERIUM:
input[0] = new FluidStack(4000, Fluids.WATER);
break;
case STEAM:
input[0] = new FluidStack(1000, Fluids.WATER);
break;
case LPG:
input[0] = new FluidStack(2000, Fluids.PETROLEUM);
break;
case BP_BIOFUEL:
input[0] = new FluidStack(2000, Fluids.BIOGAS);
break;
case YELLOWCAKE:
input[0] = new FluidStack(500, Fluids.ACID);
break;
case UF6:
input[0] = new FluidStack(1000, Fluids.WATER);
break;
case PUF6:
input[0] = new FluidStack(1000, Fluids.WATER);
break;
case SAS3:
input[0] = new FluidStack(2000, Fluids.ACID);
break;
case NITAN:
input[0] = new FluidStack(600, Fluids.KEROSENE);
input[1] = new FluidStack(200, Fluids.MERCURY);
break;
case OIL_SAND:
input[0] = new FluidStack(400, Fluids.BITUMEN);
break;
case CORDITE:
input[0] = new FluidStack(200, Fluids.HEATINGOIL);
break;
case KEVLAR:
input[0] = new FluidStack(100, Fluids.PETROLEUM);
break;
case SOLID_FUEL:
input[0] = new FluidStack(200, Fluids.PETROLEUM);
break;
case ELECTROLYSIS:
input[0] = new FluidStack(8000, Fluids.WATER);
break;
case XENON:
input[0] = new FluidStack(0, Fluids.NONE);
break;
case XENON_OXY:
input[0] = new FluidStack(250, Fluids.OXYGEN);
break;
case SATURN:
input[0] = new FluidStack(100, Fluids.ACID);
input[1] = new FluidStack(50, Fluids.MERCURY);
break;
case BALEFIRE:
input[0] = new FluidStack(6000, Fluids.KEROSENE);
break;
case SCHRABIDIC:
input[0] = new FluidStack(8000, Fluids.SAS3);
input[1] = new FluidStack(6000, Fluids.ACID);
break;
case SCHRABIDATE:
input[0] = new FluidStack(250, Fluids.SCHRABIDIC);
break;
case COLTAN_CLEANING:
input[0] = new FluidStack(250, Fluids.ACID);
input[1] = new FluidStack(500, Fluids.HYDROGEN);
break;
case COLTAN_PAIN:
input[0] = new FluidStack(1000, Fluids.GAS);
input[1] = new FluidStack(500, Fluids.OXYGEN);
break;
case COLTAN_CRYSTAL:
input[0] = new FluidStack(1000, Fluids.PAIN);
input[1] = new FluidStack(500, Fluids.ACID);
break;
case VIT_LIQUID:
input[0] = new FluidStack(1000, Fluids.WASTEFLUID);
break;
case VIT_GAS:
input[0] = new FluidStack(1000, Fluids.WASTEGAS);
break;
case TEL:
input[0] = new FluidStack(100, Fluids.PETROLEUM);
input[1] = new FluidStack(1000, Fluids.STEAM);
break;
case GASOLINE:
input[0] = new FluidStack(10000, Fluids.PETROIL);
break;
case FRACKSOL:
input[0] = new FluidStack(100, Fluids.PETROLEUM);
input[1] = new FluidStack(1000, Fluids.WATER);
break;
case OSMIRIDIUM_DEATH:
input[0] = new FluidStack(1000, Fluids.ACID);
break;
case METH:
input[0] = new FluidStack(400, Fluids.LUBRICANT);
input[1] = new FluidStack(400, Fluids.ACID);
break;
case CO2:
input[0] = new FluidStack(1000, Fluids.GAS);
break;
case HEAVY_ELECTROLYSIS:
input[0] = new FluidStack(8000, Fluids.HEAVYWATER);
break;
case DUCRETE:
input[0] = new FluidStack(2000, Fluids.WATER);
default:
break;
}
return input;
}
public static ItemStack[] getChemOutputFromTempate(ItemStack stack) {
if(stack == null || !(stack.getItem() instanceof ItemChemistryTemplate))
return null;
ItemStack[] output = new ItemStack[4];
ItemChemistryTemplate.EnumChemistryTemplate chem = ItemChemistryTemplate.EnumChemistryTemplate.getEnum(stack.getItemDamage());
if(chem.isDisabled())
return output;
switch(chem) {
case ASPHALT:
output[0] = new ItemStack(ModBlocks.asphalt, 4);
output[1] = new ItemStack(ModBlocks.asphalt, 4);
output[2] = new ItemStack(ModBlocks.asphalt, 4);
output[3] = new ItemStack(ModBlocks.asphalt, 4);
break;
case CONCRETE:
output[0] = new ItemStack(ModBlocks.concrete_smooth, 4);
output[1] = new ItemStack(ModBlocks.concrete_smooth, 4);
output[2] = new ItemStack(ModBlocks.concrete_smooth, 4);
output[3] = new ItemStack(ModBlocks.concrete_smooth, 4);
break;
case CONCRETE_ASBESTOS:
output[0] = new ItemStack(ModBlocks.concrete_asbestos, 4);
output[1] = new ItemStack(ModBlocks.concrete_asbestos, 4);
output[2] = new ItemStack(ModBlocks.concrete_asbestos, 4);
output[3] = new ItemStack(ModBlocks.concrete_asbestos, 4);
break;
case DESH:
output[0] = new ItemStack(ModItems.ingot_desh, 1);
break;
case CIRCUIT_4:
output[0] = new ItemStack(ModItems.circuit_gold, 1);
break;
case CIRCUIT_5:
output[0] = new ItemStack(ModItems.circuit_schrabidium, 1);
break;
case SF_OIL:
output[0] = DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE);
output[1] = DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE);
break;
case SF_HEAVYOIL:
output[0] = DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE);
output[1] = DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE);
break;
case SF_SMEAR:
output[0] = new ItemStack(ModItems.solid_fuel, 1);
output[1] = new ItemStack(ModItems.solid_fuel, 1);
break;
case SF_HEATINGOIL:
output[0] = new ItemStack(ModItems.solid_fuel, 1);
output[1] = new ItemStack(ModItems.solid_fuel, 1);
break;
case SF_RECLAIMED:
output[0] = new ItemStack(ModItems.solid_fuel, 1);
output[1] = new ItemStack(ModItems.solid_fuel, 1);
break;
case SF_PETROIL:
output[0] = new ItemStack(ModItems.solid_fuel, 1);
output[1] = new ItemStack(ModItems.solid_fuel, 1);
break;
case SF_LUBRICANT:
output[0] = new ItemStack(ModItems.solid_fuel, 1);
output[1] = new ItemStack(ModItems.solid_fuel, 1);
break;
case SF_NAPHTHA:
output[0] = new ItemStack(ModItems.solid_fuel, 1);
output[1] = new ItemStack(ModItems.solid_fuel, 1);
break;
case SF_DIESEL:
output[0] = new ItemStack(ModItems.solid_fuel, 1);
output[1] = new ItemStack(ModItems.solid_fuel, 1);
break;
case SF_LIGHTOIL:
output[0] = new ItemStack(ModItems.solid_fuel, 1);
output[1] = new ItemStack(ModItems.solid_fuel, 1);
break;
case SF_KEROSENE:
output[0] = new ItemStack(ModItems.solid_fuel, 1);
output[1] = new ItemStack(ModItems.solid_fuel, 1);
break;
case SF_GAS:
output[0] = new ItemStack(ModItems.solid_fuel, 1);
output[1] = new ItemStack(ModItems.solid_fuel, 1);
break;
case SF_PETROLEUM:
output[0] = new ItemStack(ModItems.solid_fuel, 1);
output[1] = new ItemStack(ModItems.solid_fuel, 1);
break;
case SF_BIOGAS:
output[0] = new ItemStack(ModItems.solid_fuel, 1);
output[1] = new ItemStack(ModItems.solid_fuel, 1);
break;
case SF_BIOFUEL:
output[0] = new ItemStack(ModItems.solid_fuel, 1);
output[1] = new ItemStack(ModItems.solid_fuel, 1);
break;
case POLYMER:
output[0] = new ItemStack(ModItems.ingot_polymer, 1);
break;
case YELLOWCAKE:
output[0] = new ItemStack(ModItems.powder_yellowcake, 1);
break;
case UF6:
output[0] = new ItemStack(ModItems.sulfur, 2);
break;
case DYN_SCHRAB:
output[0] = new ItemStack(ModItems.ingot_schrabidium, 1);
output[1] = new ItemStack(ModItems.powder_desh, 12);
output[2] = new ItemStack(ModItems.powder_desh_mix, 12);
break;
case DYN_EUPH:
output[0] = new ItemStack(ModItems.nugget_euphemium, 12);
output[1] = new ItemStack(ModItems.powder_schrabidium, 4);
output[2] = new ItemStack(ModItems.powder_power, 4);
break;
case DYN_DNT:
output[0] = new ItemStack(ModItems.ingot_dineutronium, 1);
output[1] = new ItemStack(ModItems.powder_euphemium, 8);
output[2] = new ItemStack(ModItems.powder_nitan_mix, 8);
break;
case CORDITE:
output[0] = new ItemStack(ModItems.cordite, 4);
break;
case KEVLAR:
output[0] = new ItemStack(ModItems.plate_kevlar, 4);
break;
case SOLID_FUEL:
output[0] = new ItemStack(ModItems.rocket_fuel, 4);
break;
case SATURN:
output[0] = new ItemStack(ModItems.ingot_saturnite, 2);
break;
case BALEFIRE:
output[0] = new ItemStack(ModItems.powder_balefire, 1);
break;
case SCHRABIDATE:
output[0] = new ItemStack(ModItems.powder_schrabidate, 1);
break;
case COLTAN_CLEANING:
output[0] = new ItemStack(ModItems.powder_coltan, 1);
output[1] = new ItemStack(ModItems.powder_niobium, 1);
output[2] = new ItemStack(ModItems.dust, 1);
break;
case COLTAN_CRYSTAL:
output[0] = new ItemStack(ModItems.gem_tantalium, 1);
output[1] = new ItemStack(ModItems.dust, 3);
break;
case VIT_LIQUID:
case VIT_GAS:
output[0] = new ItemStack(ModItems.nuclear_waste_vitrified, 1);
break;
case TEL:
output[0] = new ItemStack(ModItems.antiknock, 1);
break;
case METH:
output[0] = new ItemStack(ModItems.chocolate, 2);
output[1] = new ItemStack(ModItems.chocolate, 2);
break;
case DUCRETE:
output[0] = new ItemStack(ModBlocks.ducrete_smooth, 2);
output[1] = new ItemStack(ModBlocks.ducrete_smooth, 2);
output[2] = new ItemStack(ModBlocks.ducrete_smooth, 2);
output[3] = new ItemStack(ModBlocks.ducrete_smooth, 2);
default:
break;
}
return output;
}
public static FluidStack[] getFluidOutputFromTempate(ItemStack stack) {
if(stack == null || !(stack.getItem() instanceof ItemChemistryTemplate))
return null;
FluidStack[] output = new FluidStack[2];
ItemChemistryTemplate.EnumChemistryTemplate chem = ItemChemistryTemplate.EnumChemistryTemplate.getEnum(stack.getItemDamage());
if(chem.isDisabled())
return output;
switch(chem) {
case FP_HEAVYOIL:
output[0] = new FluidStack(RefineryRecipes.heavy_frac_bitu * 10, Fluids.BITUMEN);
output[1] = new FluidStack(RefineryRecipes.heavy_frac_smear * 10, Fluids.SMEAR);
break;
case FP_SMEAR:
output[0] = new FluidStack(RefineryRecipes.smear_frac_heat * 10, Fluids.HEATINGOIL);
output[1] = new FluidStack(RefineryRecipes.smear_frac_lube * 10, Fluids.LUBRICANT);
break;
case FP_NAPHTHA:
output[0] = new FluidStack(RefineryRecipes.napht_frac_heat * 10, Fluids.HEATINGOIL);
output[1] = new FluidStack(RefineryRecipes.napht_frac_diesel * 10, Fluids.DIESEL);
break;
case FP_LIGHTOIL:
output[0] = new FluidStack(RefineryRecipes.light_frac_diesel * 10, Fluids.DIESEL);
output[1] = new FluidStack(RefineryRecipes.light_frac_kero * 10, Fluids.KEROSENE);
break;
case FR_REOIL:
output[0] = new FluidStack(800, Fluids.RECLAIMED);
break;
case FR_PETROIL:
output[0] = new FluidStack(1000, Fluids.PETROIL);
break;
case FC_BITUMEN:
output[0] = new FluidStack(1000, Fluids.OIL);
output[1] = new FluidStack(200, Fluids.PETROLEUM);
break;
case FC_I_NAPHTHA:
output[0] = new FluidStack(800, Fluids.NAPHTHA);
break;
case FC_GAS_PETROLEUM:
output[0] = new FluidStack(800, Fluids.PETROLEUM);
break;
case FC_DIESEL_KEROSENE:
output[0] = new FluidStack(400, Fluids.KEROSENE);
break;
case FC_KEROSENE_PETROLEUM:
output[0] = new FluidStack(800, Fluids.PETROLEUM);
break;
case CC_OIL:
output[0] = new FluidStack(2000, Fluids.OIL);
break;
case CC_I:
output[0] = new FluidStack(1600, Fluids.SMEAR);
break;
case CC_HEATING:
output[0] = new FluidStack(1800, Fluids.HEATINGOIL);
break;
case CC_HEAVY:
output[0] = new FluidStack(1800, Fluids.HEAVYOIL);
break;
case CC_NAPHTHA:
output[0] = new FluidStack(2000, Fluids.NAPHTHA);
break;
case COOLANT:
output[0] = new FluidStack(2000, Fluids.COOLANT);
break;
case CRYOGEL:
output[0] = new FluidStack(2000, Fluids.CRYOGEL);
break;
case PEROXIDE:
output[0] = new FluidStack(800, Fluids.ACID);
break;
case DEUTERIUM:
output[0] = new FluidStack(500, Fluids.DEUTERIUM);
break;
case STEAM:
output[0] = new FluidStack(1000, Fluids.STEAM);
break;
case BP_BIOGAS:
output[0] = new FluidStack(4000, Fluids.BIOGAS);
break;
case BP_BIOFUEL:
output[0] = new FluidStack(1000, Fluids.BIOFUEL);
break;
case LPG:
output[0] = new FluidStack(1000, Fluids.LPG);
break;
case UF6:
output[0] = new FluidStack(1200, Fluids.UF6);
break;
case PUF6:
output[0] = new FluidStack(900, Fluids.PUF6);
break;
case SAS3:
output[0] = new FluidStack(1000, Fluids.SAS3);
break;
case NITAN:
output[0] = new FluidStack(1000, Fluids.NITAN);
break;
case OIL_SAND:
output[0] = new FluidStack(1000, Fluids.BITUMEN);
break;
case DYN_SCHRAB:
output[0] = new FluidStack(50, Fluids.WATZ);
break;
case DYN_EUPH:
output[0] = new FluidStack(100, Fluids.WATZ);
break;
case DYN_DNT:
output[0] = new FluidStack(150, Fluids.WATZ);
break;
case ELECTROLYSIS:
output[0] = new FluidStack(400, Fluids.HYDROGEN);
output[1] = new FluidStack(400, Fluids.OXYGEN);
break;
case XENON:
output[0] = new FluidStack(50, Fluids.XENON);
break;
case XENON_OXY:
output[0] = new FluidStack(50, Fluids.XENON);
break;
case BALEFIRE:
output[0] = new FluidStack(8000, Fluids.BALEFIRE);
break;
case SCHRABIDIC:
output[0] = new FluidStack(16000, Fluids.SCHRABIDIC);
break;
case COLTAN_CLEANING:
output[0] = new FluidStack(500, Fluids.WATER);
break;
case COLTAN_PAIN:
output[0] = new FluidStack(1000, Fluids.PAIN);
break;
case COLTAN_CRYSTAL:
output[0] = new FluidStack(250, Fluids.WATER);
break;
case GASOLINE:
output[0] = new FluidStack(12000, Fluids.GASOLINE);
break;
case FRACKSOL:
output[0] = new FluidStack(1000, Fluids.FRACKSOL);
break;
case HELIUM3:
output[0] = new FluidStack(1000, Fluids.HELIUM3);
break;
case OSMIRIDIUM_DEATH:
output[0] = new FluidStack(1000, Fluids.DEATH);
break;
case ETHANOL:
output[0] = new FluidStack(1000, Fluids.ETHANOL);
break;
case CO2:
output[0] = new FluidStack(1000, Fluids.CARBONDIOXIDE);
break;
case HEAVY_ELECTROLYSIS:
output[0] = new FluidStack(400, Fluids.DEUTERIUM);
output[1] = new FluidStack(400, Fluids.OXYGEN);
break;
default:
break;
}
return output;
}
public Map<Object, Object> getFluidContainers() { public Map<Object, Object> getFluidContainers() {
Map<Object, Object> map = new HashMap<Object, Object>(); Map<Object, Object> map = new HashMap<Object, Object>();

View File

@ -2,8 +2,9 @@ package com.hbm.items.machine;
import java.util.List; import java.util.List;
import com.hbm.inventory.recipes.ChemplantRecipes;
import com.hbm.inventory.recipes.ChemplantRecipes.ChemRecipe;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemChemistryTemplate.EnumChemistryTemplate;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
@ -16,55 +17,50 @@ import net.minecraft.util.MathHelper;
import net.minecraft.util.StatCollector; import net.minecraft.util.StatCollector;
public class ItemChemistryIcon extends Item { public class ItemChemistryIcon extends Item {
@SideOnly(Side.CLIENT)
private IIcon[] icons;
public ItemChemistryIcon()
{
this.setHasSubtypes(true);
this.setMaxDamage(0);
}
public String getItemStackDisplayName(ItemStack stack)
{
String s = ("" + StatCollector.translateToLocal(ModItems.chemistry_template.getUnlocalizedName() + ".name")).trim();
String s1 = ("" + StatCollector.translateToLocal("chem." + EnumChemistryTemplate.getEnum(stack.getItemDamage()).name())).trim();
if (s1 != null)
{
s = s + " " + s1;
}
return s;
}
@Override
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public void getSubItems(Item item, CreativeTabs tabs, List list) private IIcon[] icons;
{
for (int i = 0; i < EnumChemistryTemplate.values().length; ++i)
{
list.add(new ItemStack(item, 1, i));
}
}
@SideOnly(Side.CLIENT) public ItemChemistryIcon() {
public void registerIcons(IIconRegister reg) this.setHasSubtypes(true);
{ this.setMaxDamage(0);
this.icons = new IIcon[EnumChemistryTemplate.values().length]; }
for (int i = 0; i < icons.length; ++i) public String getItemStackDisplayName(ItemStack stack) {
{
this.icons[i] = reg.registerIcon("hbm:chem_icon_" + EnumChemistryTemplate.getEnum(i).name()); ChemRecipe chem = ChemplantRecipes.recipes.get(stack.getItemDamage() % ChemplantRecipes.recipes.size());
}
} String s = ("" + StatCollector.translateToLocal(ModItems.chemistry_template.getUnlocalizedName() + ".name")).trim();
String s1 = ("" + StatCollector.translateToLocal("chem." + chem.name)).trim();
@SideOnly(Side.CLIENT)
public IIcon getIconFromDamage(int i) if(s1 != null) {
{ s = s + " " + s1;
int j = MathHelper.clamp_int(i, 0, icons.length - 1); }
return this.icons[j];
} return s;
}
@Override
@SideOnly(Side.CLIENT)
public void getSubItems(Item item, CreativeTabs tabs, List list) {
for(int i = 0; i < ChemplantRecipes.recipes.size(); i++) {
list.add(new ItemStack(item, 1, ChemplantRecipes.recipes.get(i).getId()));
}
}
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister reg) {
this.icons = new IIcon[ChemplantRecipes.recipes.size()];
for(int i = 0; i < icons.length; ++i) {
this.icons[i] = reg.registerIcon("hbm:chem_icon_" + ChemplantRecipes.recipes.get(i).name);
}
}
@SideOnly(Side.CLIENT)
public IIcon getIconFromDamage(int i) {
int j = MathHelper.clamp_int(i, 0, icons.length - 1);
return this.icons[j];
}
} }

View File

@ -4,7 +4,10 @@ import java.util.List;
import com.hbm.interfaces.Spaghetti; import com.hbm.interfaces.Spaghetti;
import com.hbm.inventory.FluidStack; import com.hbm.inventory.FluidStack;
import com.hbm.inventory.RecipesCommon.AStack;
import com.hbm.inventory.recipes.ChemplantRecipes;
import com.hbm.inventory.recipes.MachineRecipes; import com.hbm.inventory.recipes.MachineRecipes;
import com.hbm.inventory.recipes.ChemplantRecipes.ChemRecipe;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.util.I18nUtil; import com.hbm.util.I18nUtil;
@ -19,122 +22,6 @@ import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.StatCollector; import net.minecraft.util.StatCollector;
public class ItemChemistryTemplate extends Item { public class ItemChemistryTemplate extends Item {
@Spaghetti("this system is so utterly and horribly fucking retarded i can not believe i haven't been shot for this yet")
public enum EnumChemistryTemplate {
//FP - Fuel Processing
//FR - Fuel Reprocessing
//FC - Fuel Cracking
//CC - Coal Cracking
//SF - Solid Fuel Production
//BP - Biofuel Production
FP_HEAVYOIL, //0
FP_SMEAR,
FP_NAPHTHA,
FP_LIGHTOIL,
FR_REOIL,
FR_PETROIL,
FC_BITUMEN(true),
FC_I_NAPHTHA(true),
FC_GAS_PETROLEUM(true),
FC_DIESEL_KEROSENE(true),
FC_KEROSENE_PETROLEUM(true), //10
CC_OIL(true),
CC_I(true),
CC_HEATING(true),
CC_HEAVY(true),
CC_NAPHTHA(true),
SF_OIL(true),
SF_HEAVYOIL(true),
SF_SMEAR(true),
SF_HEATINGOIL(true),
SF_RECLAIMED(true), //20
SF_PETROIL(true),
SF_LUBRICANT(true),
SF_NAPHTHA(true),
SF_DIESEL(true),
SF_LIGHTOIL(true),
SF_KEROSENE(true),
SF_GAS(true),
SF_PETROLEUM(true),
SF_BIOGAS(true),
SF_BIOFUEL(true), //30
BP_BIOGAS,
BP_BIOFUEL,
LPG,
OIL_SAND,
ASPHALT,
COOLANT,
CRYOGEL,
DESH,
NITAN,
PEROXIDE, //40
CIRCUIT_4,
CIRCUIT_5,
POLYMER,
DEUTERIUM,
STEAM,
YELLOWCAKE,
UF6,
PUF6,
SAS3,
DYN_SCHRAB, //50
DYN_EUPH,
DYN_DNT,
CORDITE,
KEVLAR,
CONCRETE,
CONCRETE_ASBESTOS,
SOLID_FUEL,
ELECTROLYSIS,
XENON,
XENON_OXY, //60
SATURN,
BALEFIRE,
SCHRABIDIC,
SCHRABIDATE,
COLTAN_CLEANING,
COLTAN_PAIN,
COLTAN_CRYSTAL,
VIT_LIQUID,
VIT_GAS,
TEL, //70
GASOLINE,
FRACKSOL,
HELIUM3,
OSMIRIDIUM_DEATH,
ETHANOL,
METH,
CO2,
HEAVY_ELECTROLYSIS,
DUCRETE;
private boolean disabled = false;
private EnumChemistryTemplate() { }
/** Alternate ctor for disabling recipes to prevent recipe shifting armageddon */
private EnumChemistryTemplate(boolean disabled) {
this.disabled = disabled;
}
public static EnumChemistryTemplate getEnum(int i) {
if(i < EnumChemistryTemplate.values().length)
return EnumChemistryTemplate.values()[i];
else
return FP_HEAVYOIL;
}
public String getName() {
return this.toString();
}
public boolean isDisabled() {
return this.disabled;
}
}
public ItemChemistryTemplate() { public ItemChemistryTemplate() {
this.setHasSubtypes(true); this.setHasSubtypes(true);
@ -142,13 +29,14 @@ public class ItemChemistryTemplate extends Item {
} }
public String getItemStackDisplayName(ItemStack stack) { public String getItemStackDisplayName(ItemStack stack) {
EnumChemistryTemplate enum1 = EnumChemistryTemplate.getEnum(stack.getItemDamage());
if(enum1.isDisabled()) { ChemRecipe recipe = ChemplantRecipes.indexMapping.get(stack.getItemDamage());
if(recipe == null) {
return EnumChatFormatting.RED + "Broken Template" + EnumChatFormatting.RESET; return EnumChatFormatting.RED + "Broken Template" + EnumChatFormatting.RESET;
} else { } else {
String s = ("" + StatCollector.translateToLocal(this.getUnlocalizedName() + ".name")).trim(); String s = ("" + StatCollector.translateToLocal(this.getUnlocalizedName() + ".name")).trim();
String s1 = ("" + StatCollector.translateToLocal("chem." + enum1.name())).trim(); String s1 = ("" + StatCollector.translateToLocal("chem." + recipe.name)).trim();
if(s1 != null) { if(s1 != null) {
s = s + " " + s1; s = s + " " + s1;
@ -161,105 +49,8 @@ public class ItemChemistryTemplate extends Item {
@Override @Override
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public void getSubItems(Item item, CreativeTabs tabs, List list) { public void getSubItems(Item item, CreativeTabs tabs, List list) {
for(int i = 0; i < EnumChemistryTemplate.values().length; ++i) { for(int i = 0; i < ChemplantRecipes.recipes.size(); i++) {
EnumChemistryTemplate enum1 = EnumChemistryTemplate.getEnum(i); list.add(new ItemStack(item, 1, ChemplantRecipes.recipes.get(i).getId()));
if(!enum1.isDisabled()) {
list.add(new ItemStack(item, 1, i));
}
}
}
public static int getProcessTime(ItemStack stack) {
if(!(stack.getItem() instanceof ItemChemistryTemplate))
return 100;
int i = stack.getItemDamage();
EnumChemistryTemplate enum1 = EnumChemistryTemplate.getEnum(i);
switch(enum1) {
case FP_HEAVYOIL: return 50;
case FP_SMEAR: return 50;
case FP_NAPHTHA: return 50;
case FP_LIGHTOIL: return 50;
case FR_REOIL: return 30;
case FR_PETROIL: return 30;
case OIL_SAND: return 200;
case FC_BITUMEN: return 100;
case FC_I_NAPHTHA: return 150;
case FC_GAS_PETROLEUM: return 100;
case FC_DIESEL_KEROSENE: return 150;
case FC_KEROSENE_PETROLEUM: return 150;
case CC_OIL: return 150;
case CC_I: return 200;
case CC_HEATING: return 250;
case CC_HEAVY: return 200;
case CC_NAPHTHA: return 300;
case ASPHALT: return 100;
case COOLANT: return 50;
case CRYOGEL: return 50;
case DESH: return 300;
case NITAN: return 50;
case PEROXIDE: return 50;
case CIRCUIT_4: return 200;
case CIRCUIT_5: return 250;
case SF_OIL: return 20;
case SF_HEAVYOIL: return 20;
case SF_SMEAR: return 20;
case SF_HEATINGOIL: return 20;
case SF_RECLAIMED: return 20;
case SF_PETROIL: return 20;
case SF_LUBRICANT: return 20;
case SF_NAPHTHA: return 20;
case SF_DIESEL: return 20;
case SF_LIGHTOIL: return 20;
case SF_KEROSENE: return 20;
case SF_GAS: return 20;
case SF_PETROLEUM: return 20;
case SF_BIOGAS: return 20;
case SF_BIOFUEL: return 20;
case POLYMER: return 100;
case DEUTERIUM: return 200;
case STEAM: return 20;
case BP_BIOGAS: return 200;
case BP_BIOFUEL: return 100;
case LPG: return 100;
case YELLOWCAKE: return 250;
case UF6: return 100;
case PUF6: return 150;
case SAS3: return 200;
case DYN_SCHRAB: return 1 * 60 * 20;
case DYN_EUPH: return 3 * 60 * 20;
case DYN_DNT: return 5 * 60 * 20;
case CORDITE: return 40;
case KEVLAR: return 40;
case CONCRETE: return 100;
case CONCRETE_ASBESTOS: return 100;
case SOLID_FUEL: return 200;
case ELECTROLYSIS: return 150;
case XENON: return 300;
case XENON_OXY: return 20;
case SATURN: return 60;
case BALEFIRE: return 100;
case SCHRABIDIC: return 100;
case SCHRABIDATE: return 150;
case COLTAN_CLEANING: return 60;
case COLTAN_PAIN: return 120;
case COLTAN_CRYSTAL: return 80;
case VIT_LIQUID: return 100;
case VIT_GAS: return 100;
case TEL: return 40;
case GASOLINE: return 40;
case FRACKSOL: return 20;
case HELIUM3: return 200;
case OSMIRIDIUM_DEATH: return 240;
case ETHANOL: return 50;
case METH: return 30;
case CO2: return 60;
case HEAVY_ELECTROLYSIS: return 150;
case DUCRETE: return 150;
default: return 100;
} }
} }
@ -268,41 +59,46 @@ public class ItemChemistryTemplate extends Item {
if(!(stack.getItem() instanceof ItemChemistryTemplate)) if(!(stack.getItem() instanceof ItemChemistryTemplate))
return; return;
ChemRecipe recipe = ChemplantRecipes.indexMapping.get(stack.getItemDamage());
if(EnumChemistryTemplate.getEnum(stack.getItemDamage()).isDisabled()) { if(recipe == null) {
return; return;
} }
List<ItemStack> stacks = MachineRecipes.getChemInputFromTempate(stack);
FluidStack[] inF = MachineRecipes.getFluidInputFromTempate(stack);
ItemStack[] out = MachineRecipes.getChemOutputFromTempate(stack);
FluidStack[] outF = MachineRecipes.getFluidOutputFromTempate(stack);
list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("info.templatefolder", I18nUtil.resolveKey(ModItems.template_folder.getUnlocalizedName() + ".name"))); list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("info.templatefolder", I18nUtil.resolveKey(ModItems.template_folder.getUnlocalizedName() + ".name")));
list.add(""); list.add("");
try { try {
list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("info.template_out_p")); list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("info.template_out_p"));
for(int i = 0; i < 4; i++) for(int i = 0; i < 4; i++) {
if(out[i] != null) if(recipe.outputs.length > i && recipe.outputs[i] != null) {
list.add(out[i].stackSize + "x " + out[i].getDisplayName()); list.add(recipe.outputs[i].stackSize + "x " + recipe.outputs[i].getDisplayName());
}
}
for(int i = 0; i < 2; i++) for(int i = 0; i < 2; i++) {
if(outF[i] != null) if(recipe.outputFluids.length > i && recipe.outputFluids[i] != null) {
list.add(outF[i].fill + "mB " + I18n.format(outF[i].type.getUnlocalizedName())); list.add(recipe.outputFluids[i].fill + "mB " + I18n.format(recipe.outputFluids[i].type.getUnlocalizedName()));
}
}
list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("info.template_in_p")); list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("info.template_in_p"));
if(stacks != null) for(int i = 0; i < recipe.inputs.length; i++) {
for(int i = 0; i < stacks.size(); i++) if(recipe.inputs.length > i && recipe.inputs[i] != null) {
list.add(stacks.get(i).stackSize + "x " + stacks.get(i).getDisplayName()); list.add(recipe.inputs[i].stacksize + "x " + recipe.inputs[i].extractForCyclingDisplay(20).getDisplayName());
}
}
for(int i = 0; i < 2; i++) for(int i = 0; i < 2; i++) {
if(inF[i] != null) if(recipe.inputFluids.length > i && recipe.inputFluids[i] != null) {
list.add(inF[i].fill + "mB " + I18n.format(inF[i].type.getUnlocalizedName())); list.add(recipe.inputFluids[i].fill + "mB " + I18n.format(recipe.inputFluids[i].type.getUnlocalizedName()));
}
}
list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("info.template_time")); list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("info.template_time"));
list.add(Math.floor((float) (getProcessTime(stack)) / 20 * 100) / 100 + " " + I18nUtil.resolveKey("info.template_seconds")); list.add(Math.floor((float) (recipe.getDuration()) / 20 * 100) / 100 + " " + I18nUtil.resolveKey("info.template_seconds"));
} catch(Exception e) { } catch(Exception e) {
list.add("###INVALID###"); list.add("###INVALID###");
list.add("0x334077-0x6A298F-0xDF3795-0x334077"); list.add("0x334077-0x6A298F-0xDF3795-0x334077");

View File

@ -168,7 +168,7 @@ public class ClientProxy extends ServerProxy {
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineMiningDrill.class, new RenderMiningDrill()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineMiningDrill.class, new RenderMiningDrill());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineMiningLaser.class, new RenderLaserMiner()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineMiningLaser.class, new RenderLaserMiner());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineAssembler.class, new RenderAssembler()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineAssembler.class, new RenderAssembler());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineChemplant.class, new RenderChemplant()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineChemplantNew.class, new RenderChemplant());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineFluidTank.class, new RenderFluidTank()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineFluidTank.class, new RenderFluidTank());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineBAT9000.class, new RenderBAT9000()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineBAT9000.class, new RenderBAT9000());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineOrbus.class, new RenderOrbus()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineOrbus.class, new RenderOrbus());

View File

@ -944,6 +944,7 @@ public class MainRegistry {
TileEntityNukeFurnace.registerFuels(); TileEntityNukeFurnace.registerFuels();
BreederRecipes.registerRecipes(); BreederRecipes.registerRecipes();
AssemblerRecipes.loadRecipes(); AssemblerRecipes.loadRecipes();
ChemplantRecipes.register();
CyclotronRecipes.register(); CyclotronRecipes.register();
HadronRecipes.register(); HadronRecipes.register();
MagicRecipes.register(); MagicRecipes.register();

View File

@ -2,10 +2,11 @@ package com.hbm.render.tileentity;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
import com.hbm.blocks.BlockDummyable;
import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.Fluids;
import com.hbm.main.ResourceManager; import com.hbm.main.ResourceManager;
import com.hbm.render.loader.HmfController; import com.hbm.render.loader.HmfController;
import com.hbm.tileentity.machine.TileEntityMachineChemplant; import com.hbm.tileentity.machine.TileEntityMachineChemplantNew;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
@ -22,24 +23,22 @@ public class RenderChemplant extends TileEntitySpecialRenderer {
GL11.glEnable(GL11.GL_LIGHTING); GL11.glEnable(GL11.GL_LIGHTING);
GL11.glDisable(GL11.GL_CULL_FACE); GL11.glDisable(GL11.GL_CULL_FACE);
GL11.glRotatef(180, 0F, 1F, 0F); GL11.glRotatef(180, 0F, 1F, 0F);
switch(tileEntity.getBlockMetadata()) { switch(tileEntity.getBlockMetadata() - BlockDummyable.offset) {
case 2: case 5:
GL11.glRotatef(180, 0F, 1F, 0F); GL11.glRotatef(180, 0F, 1F, 0F);
GL11.glTranslated(0.5D, 0.0D, -0.5D); break;
case 2:
GL11.glRotatef(270, 0F, 1F, 0F);
break; break;
case 4: case 4:
GL11.glRotatef(270, 0F, 1F, 0F); GL11.glRotatef(0, 0F, 1F, 0F);
GL11.glTranslated(0.5D, 0.0D, -0.5D);
break; break;
case 3: case 3:
GL11.glRotatef(0, 0F, 1F, 0F);
GL11.glTranslated(0.5D, 0.0D, -0.5D);
break;
case 5:
GL11.glRotatef(90, 0F, 1F, 0F); GL11.glRotatef(90, 0F, 1F, 0F);
GL11.glTranslated(0.5D, 0.0D, -0.5D);
break; break;
} }
GL11.glTranslated(-0.5D, 0.0D, 0.5D);
bindTexture(ResourceManager.chemplant_body_tex); bindTexture(ResourceManager.chemplant_body_tex);
@ -52,29 +51,28 @@ public class RenderChemplant extends TileEntitySpecialRenderer {
public void renderExtras(TileEntity tileEntity, double x, double y, double z, float f) { public void renderExtras(TileEntity tileEntity, double x, double y, double z, float f) {
GL11.glPushMatrix(); GL11.glPushMatrix();
GL11.glTranslated(x, y, z); GL11.glTranslated(x + 0.5D, y, z + 0.5D);
GL11.glEnable(GL11.GL_LIGHTING); GL11.glEnable(GL11.GL_LIGHTING);
GL11.glDisable(GL11.GL_CULL_FACE); GL11.glDisable(GL11.GL_CULL_FACE);
GL11.glRotatef(180, 0F, 1F, 0F); GL11.glRotatef(180, 0F, 1F, 0F);
TileEntityMachineChemplant chem = (TileEntityMachineChemplant) tileEntity; TileEntityMachineChemplantNew chem = (TileEntityMachineChemplantNew) tileEntity;
switch(chem.getBlockMetadata()) { switch(tileEntity.getBlockMetadata() - BlockDummyable.offset) {
case 2: case 5:
GL11.glTranslated(-1, 0, 0);
GL11.glRotatef(180, 0F, 1F, 0F); GL11.glRotatef(180, 0F, 1F, 0F);
break; break;
case 4: case 2:
GL11.glRotatef(270, 0F, 1F, 0F); GL11.glRotatef(270, 0F, 1F, 0F);
break; break;
case 3: case 4:
GL11.glTranslated(0, 0, -1);
GL11.glRotatef(0, 0F, 1F, 0F); GL11.glRotatef(0, 0F, 1F, 0F);
break; break;
case 5: case 3:
GL11.glTranslated(-1, 0, -1);
GL11.glRotatef(90, 0F, 1F, 0F); GL11.glRotatef(90, 0F, 1F, 0F);
break; break;
} }
GL11.glTranslated(-0.5D, 0.0D, 0.5D);
bindTexture(ResourceManager.chemplant_spinner_tex); bindTexture(ResourceManager.chemplant_spinner_tex);
int rotation = (int) (System.currentTimeMillis() % (360 * 5)) / 5; int rotation = (int) (System.currentTimeMillis() % (360 * 5)) / 5;

View File

@ -4,7 +4,7 @@ import org.lwjgl.opengl.GL11;
import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.BlockDummyable;
import com.hbm.main.ResourceManager; import com.hbm.main.ResourceManager;
import com.hbm.tileentity.machine.TileEntityMachineFENSU; import com.hbm.tileentity.machine.storage.TileEntityMachineFENSU;
import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.OpenGlHelper;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;

View File

@ -4,9 +4,9 @@ import org.lwjgl.opengl.GL11;
import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.BlockDummyable;
import com.hbm.main.ResourceManager; import com.hbm.main.ResourceManager;
import com.hbm.tileentity.machine.TileEntityMachineFENSU;
import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole;
import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.RBMKColumn; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.RBMKColumn;
import com.hbm.tileentity.machine.storage.TileEntityMachineFENSU;
import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.OpenGlHelper;
import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.Tessellator;

View File

@ -79,7 +79,6 @@ public class TileMappings {
put(TileEntityMachineAssembler.class, "tileentity_assembly_machine"); put(TileEntityMachineAssembler.class, "tileentity_assembly_machine");
put(TileEntityFluidDuctSimple.class, "tileentity_universal_duct_simple"); put(TileEntityFluidDuctSimple.class, "tileentity_universal_duct_simple");
put(TileEntityFluidDuct.class, "tileentity_universal_duct"); put(TileEntityFluidDuct.class, "tileentity_universal_duct");
put(TileEntityMachineChemplant.class, "tileentity_chemical_plant");
put(TileEntityMachineFluidTank.class, "tileentity_fluid_tank"); put(TileEntityMachineFluidTank.class, "tileentity_fluid_tank");
put(TileEntityTurretHeavy.class, "tileentity_turret_heavy"); put(TileEntityTurretHeavy.class, "tileentity_turret_heavy");
put(TileEntityTurretRocket.class, "tileentity_turret_rocket"); put(TileEntityTurretRocket.class, "tileentity_turret_rocket");
@ -244,7 +243,8 @@ public class TileMappings {
put(TileEntityDeuteriumTower.class, "tileentity_deuterium_tower"); put(TileEntityDeuteriumTower.class, "tileentity_deuterium_tower");
put(TileEntityMachineLiquefactor.class, "tileentity_liquefactor"); put(TileEntityMachineLiquefactor.class, "tileentity_liquefactor");
put(TileEntityMachineSolidifier.class, "tileentity_solidifier"); put(TileEntityMachineSolidifier.class, "tileentity_solidifier");
put(TileEntityMachineChemplantNew.class, "tileentity_chemical_plant");
put(TileEntityMachineOilWell.class, "tileentity_derrick"); put(TileEntityMachineOilWell.class, "tileentity_derrick");
put(TileEntityMachinePumpjack.class, "tileentity_machine_pumpjack"); put(TileEntityMachinePumpjack.class, "tileentity_machine_pumpjack");
put(TileEntityMachineFrackingTower.class, "tileentity_fracking_tower"); put(TileEntityMachineFrackingTower.class, "tileentity_fracking_tower");

View File

@ -5,11 +5,8 @@ import java.util.List;
import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.BlockDummyable;
import com.hbm.blocks.ModBlocks; import com.hbm.blocks.ModBlocks;
import com.hbm.blocks.generic.BlockHazard;
import com.hbm.blocks.generic.BlockHazardFalling;
import com.hbm.blocks.machine.MachineSILEX; import com.hbm.blocks.machine.MachineSILEX;
import com.hbm.extprop.HbmLivingProps; import com.hbm.extprop.HbmLivingProps;
import com.hbm.handler.radiation.ChunkRadiationManager;
import com.hbm.interfaces.Spaghetti; import com.hbm.interfaces.Spaghetti;
import com.hbm.items.machine.ItemFELCrystal; import com.hbm.items.machine.ItemFELCrystal;
import com.hbm.items.machine.ItemFELCrystal.EnumWavelengths; import com.hbm.items.machine.ItemFELCrystal.EnumWavelengths;
@ -20,16 +17,12 @@ import com.hbm.packet.PacketDispatcher;
import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.TileEntityMachineBase;
import api.hbm.energy.IEnergyUser; import api.hbm.energy.IEnergyUser;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.BlockTNT;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@ -61,6 +54,7 @@ public class TileEntityFEL extends TileEntityMachineBase implements IEnergyUser
return "container.machineFEL"; return "container.machineFEL";
} }
@SuppressWarnings("incomplete-switch")
@Override @Override
@Spaghetti ("What the fuck were you thinking") @Spaghetti ("What the fuck were you thinking")
public void updateEntity() { public void updateEntity() {
@ -83,7 +77,6 @@ public class TileEntityFEL extends TileEntityMachineBase implements IEnergyUser
} else { this.mode = EnumWavelengths.NULL; } } else { this.mode = EnumWavelengths.NULL; }
int range = 24; int range = 24;
int length = 3;
boolean silexSpacing = false; boolean silexSpacing = false;
if(this.isOn && power >= powerReq * Math.pow(3, mode.ordinal()) && this.mode != EnumWavelengths.NULL) { if(this.isOn && power >= powerReq * Math.pow(3, mode.ordinal()) && this.mode != EnumWavelengths.NULL) {
@ -101,7 +94,7 @@ public class TileEntityFEL extends TileEntityMachineBase implements IEnergyUser
switch(this.mode) { switch(this.mode) {
case VISIBLE: entity.addPotionEffect(new PotionEffect(Potion.blindness.id, 60 * 60 * 65536, 0)); case VISIBLE: entity.addPotionEffect(new PotionEffect(Potion.blindness.id, 60 * 60 * 65536, 0));
case IR: case IR:
case UV: entity.setFire(65535); break; case UV: entity.setFire(10); break;
case GAMMA: HbmLivingProps.incrementRadiation(entity, 25); break; case GAMMA: HbmLivingProps.incrementRadiation(entity, 25); break;
case DRX: HbmLivingProps.incrementDigamma(entity, 0.1F); break; case DRX: HbmLivingProps.incrementDigamma(entity, 0.1F); break;
} }
@ -110,8 +103,6 @@ public class TileEntityFEL extends TileEntityMachineBase implements IEnergyUser
power -= powerReq * ((mode.ordinal() == 0) ? 0 : Math.pow(3, mode.ordinal())); power -= powerReq * ((mode.ordinal() == 0) ? 0 : Math.pow(3, mode.ordinal()));
for(int i = 3; i < range; i++) { for(int i = 3; i < range; i++) {
length = i;
int x = xCoord + dir.offsetX * i; int x = xCoord + dir.offsetX * i;
int y = yCoord + 1; int y = yCoord + 1;
int z = zCoord + dir.offsetZ * i; int z = zCoord + dir.offsetZ * i;

View File

@ -44,6 +44,7 @@ import net.minecraft.tileentity.TileEntityHopper;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.OreDictionary;
@Deprecated //shut up and die please
public class TileEntityMachineChemplant extends TileEntity implements ISidedInventory, IEnergyUser, IFluidContainer, IFluidAcceptor, IFluidSource { public class TileEntityMachineChemplant extends TileEntity implements ISidedInventory, IEnergyUser, IFluidContainer, IFluidAcceptor, IFluidSource {
private ItemStack slots[]; private ItemStack slots[];
@ -300,7 +301,7 @@ public class TileEntityMachineChemplant extends TileEntity implements ISidedInve
tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId);
} }
FluidStack[] inputs = MachineRecipes.getFluidInputFromTempate(slots[4]); /*FluidStack[] inputs = MachineRecipes.getFluidInputFromTempate(slots[4]);
FluidStack[] outputs = MachineRecipes.getFluidOutputFromTempate(slots[4]); FluidStack[] outputs = MachineRecipes.getFluidOutputFromTempate(slots[4]);
if((MachineRecipes.getChemInputFromTempate(slots[4]) != null || !Library.isArrayEmpty(inputs)) && if((MachineRecipes.getChemInputFromTempate(slots[4]) != null || !Library.isArrayEmpty(inputs)) &&
@ -436,7 +437,7 @@ public class TileEntityMachineChemplant extends TileEntity implements ISidedInve
PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacket(xCoord + 1.625, yCoord + 3, zCoord + 0.375, 1), PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacket(xCoord + 1.625, yCoord + 3, zCoord + 0.375, 1),
new TargetPoint(worldObj.provider.dimensionId, xCoord + 1.625, yCoord + 3, zCoord + 0.375, 50)); new TargetPoint(worldObj.provider.dimensionId, xCoord + 1.625, yCoord + 3, zCoord + 0.375, 50));
} }
} }*/
PacketDispatcher.wrapper.sendToAllAround(new TEChemplantPacket(xCoord, yCoord, zCoord, isProgressing), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); PacketDispatcher.wrapper.sendToAllAround(new TEChemplantPacket(xCoord, yCoord, zCoord, isProgressing), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150));
PacketDispatcher.wrapper.sendToAllAround(new LoopedSoundPacket(xCoord, yCoord, zCoord), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); PacketDispatcher.wrapper.sendToAllAround(new LoopedSoundPacket(xCoord, yCoord, zCoord), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50));
@ -540,7 +541,7 @@ public class TileEntityMachineChemplant extends TileEntity implements ISidedInve
private void setContainers() { private void setContainers() {
if(slots[4] == null || (slots[4] != null && !(slots[4].getItem() instanceof ItemChemistryTemplate))) { /*if(slots[4] == null || (slots[4] != null && !(slots[4].getItem() instanceof ItemChemistryTemplate))) {
} else { } else {
FluidStack[] inputs = MachineRecipes.getFluidInputFromTempate(slots[4]); FluidStack[] inputs = MachineRecipes.getFluidInputFromTempate(slots[4]);
FluidStack[] outputs = MachineRecipes.getFluidOutputFromTempate(slots[4]); FluidStack[] outputs = MachineRecipes.getFluidOutputFromTempate(slots[4]);
@ -549,7 +550,7 @@ public class TileEntityMachineChemplant extends TileEntity implements ISidedInve
tanks[1].setTankType(inputs[1] == null ? Fluids.NONE : inputs[1].type); tanks[1].setTankType(inputs[1] == null ? Fluids.NONE : inputs[1].type);
tanks[2].setTankType(outputs[0] == null ? Fluids.NONE : outputs[0].type); tanks[2].setTankType(outputs[0] == null ? Fluids.NONE : outputs[0].type);
tanks[3].setTankType(outputs[1] == null ? Fluids.NONE : outputs[1].type); tanks[3].setTankType(outputs[1] == null ? Fluids.NONE : outputs[1].type);
} }*/
} }
public boolean hasFluidsStored(FluidStack[] fluids) { public boolean hasFluidsStored(FluidStack[] fluids) {
@ -724,7 +725,7 @@ public class TileEntityMachineChemplant extends TileEntity implements ISidedInve
//Loads assembler's input queue from chests //Loads assembler's input queue from chests
public boolean tryFillAssembler(IInventory inventory, int slot) { public boolean tryFillAssembler(IInventory inventory, int slot) {
FluidStack[] inputs = MachineRecipes.getFluidInputFromTempate(slots[4]); /*FluidStack[] inputs = MachineRecipes.getFluidInputFromTempate(slots[4]);
FluidStack[] outputs = MachineRecipes.getFluidOutputFromTempate(slots[4]); FluidStack[] outputs = MachineRecipes.getFluidOutputFromTempate(slots[4]);
if(!((MachineRecipes.getChemInputFromTempate(slots[4]) != null || !Library.isArrayEmpty(inputs)) && if(!((MachineRecipes.getChemInputFromTempate(slots[4]) != null || !Library.isArrayEmpty(inputs)) &&
@ -754,7 +755,7 @@ public class TileEntityMachineChemplant extends TileEntity implements ISidedInve
if(!flag) if(!flag)
return false; return false;
} }*/
for(int i = 13; i < 17; i++) { for(int i = 13; i < 17; i++) {

View File

@ -30,6 +30,7 @@ public class TileEntityMachineChemplantNew extends TileEntityMachineBase impleme
public static final long maxPower = 100000; public static final long maxPower = 100000;
public int progress; public int progress;
public int maxProgress = 100; public int maxProgress = 100;
public boolean isProgressing;
public FluidTank[] tanks; public FluidTank[] tanks;
@ -67,6 +68,7 @@ public class TileEntityMachineChemplantNew extends TileEntityMachineBase impleme
if(!worldObj.isRemote) { if(!worldObj.isRemote) {
this.isProgressing = false;
this.power = Library.chargeTEFromItems(slots, 0, power, maxPower); this.power = Library.chargeTEFromItems(slots, 0, power, maxPower);
if(!tanks[0].loadTank(17, 19, slots)) tanks[0].unloadTank(17, 19, slots); if(!tanks[0].loadTank(17, 19, slots)) tanks[0].unloadTank(17, 19, slots);
@ -99,6 +101,7 @@ public class TileEntityMachineChemplantNew extends TileEntityMachineBase impleme
if(!canProcess()) { if(!canProcess()) {
this.progress = 0; this.progress = 0;
} else { } else {
isProgressing = true;
process(); process();
} }
@ -106,10 +109,13 @@ public class TileEntityMachineChemplantNew extends TileEntityMachineBase impleme
data.setLong("power", this.power); data.setLong("power", this.power);
data.setInteger("progress", this.progress); data.setInteger("progress", this.progress);
data.setInteger("maxProgress", this.maxProgress); data.setInteger("maxProgress", this.maxProgress);
data.setBoolean("isProgressing", isProgressing);
for(int i = 0; i < tanks.length; i++) { for(int i = 0; i < tanks.length; i++) {
tanks[i].writeToNBT(data, "t" + i); tanks[i].writeToNBT(data, "t" + i);
} }
this.networkPack(data, 150);
} }
} }
@ -118,6 +124,7 @@ public class TileEntityMachineChemplantNew extends TileEntityMachineBase impleme
this.power = nbt.getLong("power"); this.power = nbt.getLong("power");
this.progress = nbt.getInteger("progress"); this.progress = nbt.getInteger("progress");
this.maxProgress = nbt.getInteger("maxProgress"); this.maxProgress = nbt.getInteger("maxProgress");
this.isProgressing = nbt.getBoolean("isProgressing");
for(int i = 0; i < tanks.length; i++) { for(int i = 0; i < tanks.length; i++) {
tanks[i].readFromNBT(nbt, "t" + i); tanks[i].readFromNBT(nbt, "t" + i);

View File

@ -1,9 +1,5 @@
package com.hbm.tileentity.machine; package com.hbm.tileentity.machine;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.BlockDummyable;
import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidAcceptor;
import com.hbm.interfaces.IFluidContainer; import com.hbm.interfaces.IFluidContainer;
@ -11,14 +7,10 @@ import com.hbm.interfaces.Spaghetti;
import com.hbm.inventory.FluidTank; import com.hbm.inventory.FluidTank;
import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.FluidType;
import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.recipes.GasCentrifugeRecipes;
import com.hbm.inventory.recipes.GasCentrifugeRecipes.PseudoFluidType; import com.hbm.inventory.recipes.GasCentrifugeRecipes.PseudoFluidType;
import com.hbm.inventory.recipes.MachineRecipes;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemFluidIdentifier; import com.hbm.items.machine.ItemFluidIdentifier;
import com.hbm.lib.Library; import com.hbm.lib.Library;
import com.hbm.packet.AuxElectricityPacket;
import com.hbm.packet.AuxGaugePacket;
import com.hbm.packet.LoopedSoundPacket; import com.hbm.packet.LoopedSoundPacket;
import com.hbm.packet.PacketDispatcher; import com.hbm.packet.PacketDispatcher;
import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.TileEntityMachineBase;
@ -27,12 +19,8 @@ import api.hbm.energy.IEnergyUser;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Items;
import net.minecraft.inventory.ISidedInventory;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
@ -330,23 +318,26 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I
FluidType newType = ItemFluidIdentifier.getType(slots[in]); FluidType newType = ItemFluidIdentifier.getType(slots[in]);
if(tank.getTankType() != newType) { if(tank.getTankType() != newType) {
tank.setTankType(newType);
tank.setFill(0); boolean success = false;
if(newType == Fluids.UF6) { if(newType == Fluids.UF6) {
inputTank.setTankType(PseudoFluidType.NUF6); inputTank.setTankType(PseudoFluidType.NUF6);
outputTank.setTankType(PseudoFluidType.NUF6.getOutputFluid()); outputTank.setTankType(PseudoFluidType.NUF6.getOutputFluid());
return; success = true;
} } else if(newType == Fluids.PUF6) {
if(newType == Fluids.PUF6) {
inputTank.setTankType(PseudoFluidType.PF6); inputTank.setTankType(PseudoFluidType.PF6);
outputTank.setTankType(PseudoFluidType.PF6.getOutputFluid()); outputTank.setTankType(PseudoFluidType.PF6.getOutputFluid());
return; success = true;
} } else if(newType == Fluids.WATZ) {
if(newType == Fluids.WATZ) {
inputTank.setTankType(PseudoFluidType.MUD); inputTank.setTankType(PseudoFluidType.MUD);
outputTank.setTankType(PseudoFluidType.MUD.getOutputFluid()); outputTank.setTankType(PseudoFluidType.MUD.getOutputFluid());
return; success = true;
}
if(success) {
tank.setTankType(newType);
tank.setFill(0);
} }
} }
return; return;

View File

@ -18,12 +18,15 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I
public long[] log = new long[20]; public long[] log = new long[20];
public long power = 0; public long power = 0;
public long maxPower = 1000000;
//0: input only //0: input only
//1: buffer //1: buffer
//2: output only //2: output only
//3: nothing //3: nothing
public static final int mode_input = 0;
public static final int mode_buffer = 1;
public static final int mode_output = 2;
public static final int mode_none = 3;
public short redLow = 0; public short redLow = 0;
public short redHigh = 2; public short redHigh = 2;
@ -39,12 +42,6 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I
super(2); super(2);
slots = new ItemStack[2]; slots = new ItemStack[2];
} }
public TileEntityMachineBattery(long maxPower) {
super(2);
slots = new ItemStack[2];
this.maxPower = maxPower;
}
@Override @Override
public String getName() { public String getName() {
@ -146,7 +143,7 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I
} }
public long getPowerRemainingScaled(long i) { public long getPowerRemainingScaled(long i) {
return (power * i) / maxPower; return (power * i) / this.getMaxPower();
} }
@Override @Override
@ -154,20 +151,17 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I
if(worldObj.getBlock(xCoord, yCoord, zCoord) instanceof MachineBattery && !worldObj.isRemote) { if(worldObj.getBlock(xCoord, yCoord, zCoord) instanceof MachineBattery && !worldObj.isRemote) {
this.maxPower = ((MachineBattery)worldObj.getBlock(xCoord, yCoord, zCoord)).maxPower;
power = Library.chargeTEFromItems(slots, 0, power, maxPower);
power = Library.chargeItemsFromTE(slots, 1, power, maxPower);
long prevPower = this.power; long prevPower = this.power;
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
this.transmitPower(); this.transmitPower();
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
power = Library.chargeTEFromItems(slots, 0, power, getMaxPower());
power = Library.chargeItemsFromTE(slots, 1, power, getMaxPower());
NBTTagCompound nbt = new NBTTagCompound(); NBTTagCompound nbt = new NBTTagCompound();
nbt.setLong("power", (power + prevPower) / 2); nbt.setLong("power", (power + prevPower) / 2);
nbt.setLong("maxPower", maxPower);
nbt.setShort("redLow", redLow); nbt.setShort("redLow", redLow);
nbt.setShort("redHigh", redHigh); nbt.setShort("redHigh", redHigh);
this.networkPack(nbt, 20); this.networkPack(nbt, 20);
@ -200,7 +194,7 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I
} }
//then we add energy //then we add energy
if(mode == 1 || mode == 2) { if(mode == mode_buffer || mode == mode_output) {
if(te instanceof IEnergyConnector) { if(te instanceof IEnergyConnector) {
IEnergyConnector con = (IEnergyConnector) te; IEnergyConnector con = (IEnergyConnector) te;
long oldPower = this.power; long oldPower = this.power;
@ -214,7 +208,7 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I
IEnergyConductor con = (IEnergyConductor) te; IEnergyConductor con = (IEnergyConductor) te;
if(con.getPowerNet() != null) { if(con.getPowerNet() != null) {
if(mode == 2 || mode == 3) { if(mode == mode_output || mode == mode_none) {
if(con.getPowerNet().isSubscribed(this)) { if(con.getPowerNet().isSubscribed(this)) {
con.getPowerNet().unsubscribe(this); con.getPowerNet().unsubscribe(this);
} }
@ -230,7 +224,6 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I
public void networkUnpack(NBTTagCompound nbt) { public void networkUnpack(NBTTagCompound nbt) {
this.power = nbt.getLong("power"); this.power = nbt.getLong("power");
this.maxPower = nbt.getLong("maxPower");
this.redLow = nbt.getShort("redLow"); this.redLow = nbt.getShort("redLow");
this.redHigh = nbt.getShort("redHigh"); this.redHigh = nbt.getShort("redHigh");
} }
@ -248,14 +241,17 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I
return this.redLow; return this.redLow;
} }
} }
private long bufferedMax;
@Override @Override
public long getMaxPower() { public long getMaxPower() {
if(!worldObj.isRemote && getRelevantMode() >= 2) if(bufferedMax == 0) {
return this.getPower(); bufferedMax = ((MachineBattery)worldObj.getBlock(xCoord, yCoord, zCoord)).maxPower;
}
return maxPower; return bufferedMax;
} }
/* /*
@ -263,6 +259,12 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I
*/ */
@Override @Override
public long transferPower(long power) { public long transferPower(long power) {
int mode =this.getRelevantMode();
if(mode == mode_output || mode == mode_none) {
return power;
}
this.power += power; this.power += power;
@ -275,6 +277,18 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I
return 0; return 0;
} }
@Override
public long getTransferWeight() {
int mode =this.getRelevantMode();
if(mode == mode_output || mode == mode_none) {
return 0;
}
return Math.max(getMaxPower() - getPower(), 0);
}
@Override @Override
public boolean canConnect(ForgeDirection dir) { public boolean canConnect(ForgeDirection dir) {

View File

@ -1,7 +1,6 @@
package com.hbm.tileentity.machine; package com.hbm.tileentity.machine.storage;
import com.hbm.lib.Library; import com.hbm.lib.Library;
import com.hbm.tileentity.machine.storage.TileEntityMachineBattery;
import api.hbm.energy.IEnergyConductor; import api.hbm.energy.IEnergyConductor;
import api.hbm.energy.IEnergyConnector; import api.hbm.energy.IEnergyConnector;
@ -20,18 +19,15 @@ public class TileEntityMachineFENSU extends TileEntityMachineBattery {
@Override @Override
public void updateEntity() { public void updateEntity() {
this.maxPower = Long.MAX_VALUE;
if(!worldObj.isRemote) { if(!worldObj.isRemote) {
this.transmitPower(); this.transmitPower();
power = Library.chargeTEFromItems(slots, 0, power, maxPower); power = Library.chargeTEFromItems(slots, 0, power, getMaxPower());
power = Library.chargeItemsFromTE(slots, 1, power, maxPower); power = Library.chargeItemsFromTE(slots, 1, power, getMaxPower());
NBTTagCompound nbt = new NBTTagCompound(); NBTTagCompound nbt = new NBTTagCompound();
nbt.setLong("power", power); nbt.setLong("power", power);
nbt.setLong("maxPower", maxPower);
nbt.setShort("redLow", redLow); nbt.setShort("redLow", redLow);
nbt.setShort("redHigh", redHigh); nbt.setShort("redHigh", redHigh);
this.networkPack(nbt, 250); this.networkPack(nbt, 250);
@ -94,10 +90,15 @@ public class TileEntityMachineFENSU extends TileEntityMachineBattery {
@Override @Override
public long getPowerRemainingScaled(long i) { public long getPowerRemainingScaled(long i) {
double powerScaled = (double)power / (double)maxPower; double powerScaled = (double)power / (double)getMaxPower();
return (long)(i * powerScaled); return (long)(i * powerScaled);
} }
@Override
public long getMaxPower() {
return Long.MAX_VALUE;
}
public float getSpeed() { public float getSpeed() {
return (float) Math.pow(Math.log(power * 0.75 + 1) * 0.05F, 5); return (float) Math.pow(Math.log(power * 0.75 + 1) * 0.05F, 5);

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB