Merge branch 'HbmMods:master' into master

This commit is contained in:
Vaern 2022-01-29 22:07:37 -08:00 committed by GitHub
commit a2ee16b02a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
47 changed files with 1058 additions and 375 deletions

View File

@ -1,6 +1,5 @@
package api.hbm.energy; package api.hbm.energy;
import com.hbm.blocks.ModBlocks;
import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.AuxParticlePacketNT;
import com.hbm.packet.PacketDispatcher; import com.hbm.packet.PacketDispatcher;

View File

@ -8,8 +8,6 @@ public interface IBlockMultiPass {
public int getPasses(); public int getPasses();
public int getColorFromPass(IBlockAccess world, int x, int y, int z, boolean inv);
public static int renderID = RenderingRegistry.getNextAvailableRenderId(); public static int renderID = RenderingRegistry.getNextAvailableRenderId();
public static int getRenderType() { public static int getRenderType() {
return renderID; return renderID;

View File

@ -904,6 +904,9 @@ public class ModBlocks {
public static Block machine_deuterium_extractor; public static Block machine_deuterium_extractor;
public static Block machine_deuterium_tower; public static Block machine_deuterium_tower;
public static Block machine_liquefactor;
public static Block machine_solidifier;
public static Block machine_chungus; public static Block machine_chungus;
public static Block machine_condenser; public static Block machine_condenser;
public static Block machine_tower_small; public static Block machine_tower_small;
@ -1675,7 +1678,7 @@ public class ModBlocks {
therm_endo = new BombThermo(Material.iron).setBlockName("therm_endo").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F); therm_endo = new BombThermo(Material.iron).setBlockName("therm_endo").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F);
therm_exo = new BombThermo(Material.iron).setBlockName("therm_exo").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F); therm_exo = new BombThermo(Material.iron).setBlockName("therm_exo").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F);
emp_bomb = new BombFloat(Material.iron).setBlockName("emp_bomb").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F); emp_bomb = new BombFloat(Material.iron).setBlockName("emp_bomb").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F);
det_cord = new ExplosiveCharge(Material.iron).setBlockName("det_cord").setCreativeTab(MainRegistry.nukeTab).setHardness(0.1F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":det_cord"); det_cord = new DetCord(Material.iron).setBlockName("det_cord").setCreativeTab(MainRegistry.nukeTab).setHardness(0.1F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":det_cord");
det_charge = new ExplosiveCharge(Material.iron).setBlockName("det_charge").setCreativeTab(MainRegistry.nukeTab).setHardness(0.1F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":det_charge"); det_charge = new ExplosiveCharge(Material.iron).setBlockName("det_charge").setCreativeTab(MainRegistry.nukeTab).setHardness(0.1F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":det_charge");
det_nuke = new ExplosiveCharge(Material.iron).setBlockName("det_nuke").setCreativeTab(MainRegistry.nukeTab).setHardness(0.1F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":det_nuke"); det_nuke = new ExplosiveCharge(Material.iron).setBlockName("det_nuke").setCreativeTab(MainRegistry.nukeTab).setHardness(0.1F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":det_nuke");
det_miner = new DetMiner(Material.iron, RefStrings.MODID + ":det_miner_top").setBlockName("det_miner").setCreativeTab(MainRegistry.nukeTab).setHardness(0.1F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":det_miner_side"); det_miner = new DetMiner(Material.iron, RefStrings.MODID + ":det_miner_top").setBlockName("det_miner").setCreativeTab(MainRegistry.nukeTab).setHardness(0.1F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":det_miner_side");
@ -2062,6 +2065,8 @@ public class ModBlocks {
machine_deuterium_extractor = new MachineDeuteriumExtractor(Material.iron).setBlockName("machine_deuterium_extractor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_deuterium_extractor_side"); machine_deuterium_extractor = new MachineDeuteriumExtractor(Material.iron).setBlockName("machine_deuterium_extractor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_deuterium_extractor_side");
machine_deuterium_tower = new DeuteriumTower(Material.iron).setBlockName("machine_deuterium_tower").setHardness(10.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":concrete"); machine_deuterium_tower = new DeuteriumTower(Material.iron).setBlockName("machine_deuterium_tower").setHardness(10.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":concrete");
machine_liquefactor = new MachineLiquefactor().setBlockName("machine_liquefactor").setHardness(10.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel_machine");
anvil_iron = new NTMAnvil(Material.iron, 1).setBlockName("anvil_iron").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_iron"); anvil_iron = new NTMAnvil(Material.iron, 1).setBlockName("anvil_iron").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_iron");
anvil_lead = new NTMAnvil(Material.iron, 1).setBlockName("anvil_lead").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_lead"); anvil_lead = new NTMAnvil(Material.iron, 1).setBlockName("anvil_lead").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_lead");
anvil_steel = new NTMAnvil(Material.iron, 2).setBlockName("anvil_steel").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_steel"); anvil_steel = new NTMAnvil(Material.iron, 2).setBlockName("anvil_steel").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_steel");
@ -2074,7 +2079,7 @@ public class ModBlocks {
anvil_osmiridium = new NTMAnvil(Material.iron, 8).setBlockName("anvil_osmiridium").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_osmiridium"); anvil_osmiridium = new NTMAnvil(Material.iron, 8).setBlockName("anvil_osmiridium").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_osmiridium");
anvil_murky = new NTMAnvil(Material.iron, 1916169).setBlockName("anvil_murky").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_steel"); anvil_murky = new NTMAnvil(Material.iron, 1916169).setBlockName("anvil_murky").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_steel");
machine_deaerator = new MachineDeaerator(Material.iron).setBlockName("machine_deaerator").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_deaerator"); machine_deaerator = new MachineDeaerator(Material.iron).setBlockName("machine_deaerator").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel_machine");
machine_waste_drum = new WasteDrum(Material.iron).setBlockName("machine_waste_drum").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":waste_drum"); machine_waste_drum = new WasteDrum(Material.iron).setBlockName("machine_waste_drum").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":waste_drum");
machine_storage_drum = new StorageDrum(Material.iron, guiID_storage_drum).setBlockName("machine_storage_drum").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_storage_drum"); machine_storage_drum = new StorageDrum(Material.iron, guiID_storage_drum).setBlockName("machine_storage_drum").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_storage_drum");
@ -2941,6 +2946,7 @@ public class ModBlocks {
GameRegistry.registerBlock(machine_tower_large, machine_tower_large.getUnlocalizedName()); GameRegistry.registerBlock(machine_tower_large, machine_tower_large.getUnlocalizedName());
GameRegistry.registerBlock(machine_deuterium_extractor, machine_deuterium_extractor.getUnlocalizedName()); GameRegistry.registerBlock(machine_deuterium_extractor, machine_deuterium_extractor.getUnlocalizedName());
GameRegistry.registerBlock(machine_deuterium_tower, machine_deuterium_tower.getUnlocalizedName()); GameRegistry.registerBlock(machine_deuterium_tower, machine_deuterium_tower.getUnlocalizedName());
GameRegistry.registerBlock(machine_liquefactor, ItemBlockBase.class, machine_liquefactor.getUnlocalizedName());
GameRegistry.registerBlock(machine_deaerator, machine_deaerator.getUnlocalizedName()); GameRegistry.registerBlock(machine_deaerator, machine_deaerator.getUnlocalizedName());
GameRegistry.registerBlock(machine_waste_drum, machine_waste_drum.getUnlocalizedName()); GameRegistry.registerBlock(machine_waste_drum, machine_waste_drum.getUnlocalizedName());
GameRegistry.registerBlock(machine_storage_drum, machine_storage_drum.getUnlocalizedName()); GameRegistry.registerBlock(machine_storage_drum, machine_storage_drum.getUnlocalizedName());

View File

@ -1,8 +1,5 @@
package com.hbm.blocks.bomb; package com.hbm.blocks.bomb;
import com.hbm.blocks.ModBlocks;
import com.hbm.interfaces.IBomb.BombReturnCode;
import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.client.registry.RenderingRegistry;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
@ -12,7 +9,7 @@ import net.minecraft.world.World;
public class DetCord extends Block implements IDetConnectible { public class DetCord extends Block implements IDetConnectible {
protected DetCord(Material p_i45394_1_) { public DetCord(Material p_i45394_1_) {
super(p_i45394_1_); super(p_i45394_1_);
} }

View File

@ -4,9 +4,7 @@ import com.hbm.tileentity.machine.TileEntityConverterHeRf;
import net.minecraft.block.BlockContainer; import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ChatComponentText;
import net.minecraft.world.World; import net.minecraft.world.World;
public class BlockConverterHeRf extends BlockContainer { public class BlockConverterHeRf extends BlockContainer {
@ -19,26 +17,4 @@ public class BlockConverterHeRf extends BlockContainer {
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
return new TileEntityConverterHeRf(); return new TileEntityConverterHeRf();
} }
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
if(world.isRemote)
{
return true;
} else if(!player.isSneaking())
{
TileEntityConverterHeRf entity = (TileEntityConverterHeRf) world.getTileEntity(x, y, z);
if(entity != null)
{
player.addChatComponentMessage(new ChatComponentText("Note: Buffer may not accuratly represent current conversion rate, keep tact rates in mind."));
player.addChatComponentMessage(new ChatComponentText("HE: " + (entity.buf / 4)));
player.addChatComponentMessage(new ChatComponentText("RF: " + entity.buf));
//FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_converter_he_rf, world, x, y, z);
}
return true;
} else {
return false;
}
}
} }

View File

@ -25,7 +25,21 @@ public class MachineDeaerator extends BlockDummyable {
@Override @Override
public int getOffset() { public int getOffset() {
return 4;
}
@Override
public int getRenderType() {
return 0; return 0;
} }
@Override
public boolean isOpaqueCube() {
return true;
}
@Override
public boolean renderAsNormalBlock() {
return true;
}
} }

View File

@ -0,0 +1,98 @@
package com.hbm.blocks.machine;
import java.util.List;
import com.hbm.blocks.BlockDummyable;
import com.hbm.blocks.ITooltipProvider;
import com.hbm.main.MainRegistry;
import com.hbm.tileentity.TileEntityProxyCombo;
import com.hbm.tileentity.machine.TileEntityMachineLiquefactor;
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class MachineLiquefactor extends BlockDummyable implements ITooltipProvider {
public MachineLiquefactor() {
super(Material.iron);
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
if(meta >= 12)
return new TileEntityMachineLiquefactor();
if(meta >= extra)
return new TileEntityProxyCombo(true, true, true);
return null;
}
@Override
public int[] getDimensions() {
return new int[] {2, 0, 1, 1, 1, 1};
}
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
if(world.isRemote) {
return true;
} else if(!player.isSneaking()) {
int[] pos = this.findCore(world, x, y, z);
if(pos == null)
return false;
FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]);
return true;
} else {
return true;
}
}
@Override
public int getOffset() {
return 1;
}
@Override
public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) {
super.fillSpace(world, x, y, z, dir, o);
x = x + dir.offsetX * o;
z = z + dir.offsetZ * o;
this.makeExtra(world, x, y + 2, z);
this.makeExtra(world, x + 1, y + 1, z);
this.makeExtra(world, x - 1, y + 1, z);
this.makeExtra(world, x, y + 1, z + 1);
this.makeExtra(world, x, y + 1, z - 1);
}
@Override
public int getRenderType() {
return 0;
}
@Override
public boolean isOpaqueCube() {
return true;
}
@Override
public boolean renderAsNormalBlock() {
return true;
}
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
//list.add(EnumChatFormatting.YELLOW + "");
}
}

View File

@ -1,7 +1,6 @@
package com.hbm.blocks.network; package com.hbm.blocks.network;
import com.hbm.blocks.IBlockMultiPass; import com.hbm.blocks.IBlockMultiPass;
import com.hbm.inventory.fluid.Fluids;
import com.hbm.render.block.RenderBlockMultipass; import com.hbm.render.block.RenderBlockMultipass;
import com.hbm.tileentity.conductor.TileEntityFluidDuctSimple; import com.hbm.tileentity.conductor.TileEntityFluidDuctSimple;
@ -10,7 +9,6 @@ import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.BlockContainer; import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.init.Blocks;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon; import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess; import net.minecraft.world.IBlockAccess;
@ -52,14 +50,12 @@ public class BlockFluidDuctSolid extends BlockContainer implements IBlockMultiPa
} }
@Override @Override
public int getColorFromPass(IBlockAccess world, int x, int y, int z, boolean inv) { @SideOnly(Side.CLIENT)
public int colorMultiplier(IBlockAccess world, int x, int y, int z) {
if(RenderBlockMultipass.currentPass == 0) if(RenderBlockMultipass.currentPass == 0)
return 0xffffff; return 0xffffff;
if(inv)
return Fluids.NONE.getColor();
TileEntityFluidDuctSimple te = (TileEntityFluidDuctSimple) world.getTileEntity(x, y, z); TileEntityFluidDuctSimple te = (TileEntityFluidDuctSimple) world.getTileEntity(x, y, z);
if(te != null) { if(te != null) {

View File

@ -27,6 +27,11 @@ public class GUIHandler implements IGuiHandler {
@Override @Override
public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
TileEntity entity = world.getTileEntity(x, y, z); TileEntity entity = world.getTileEntity(x, y, z);
if(entity instanceof TileEntityMachineLiquefactor) {
return new ContainerLiquefactor(player.inventory, (TileEntityMachineLiquefactor) entity);
}
switch(ID) { switch(ID) {
case ModBlocks.guiID_test_difurnace: { case ModBlocks.guiID_test_difurnace: {
if(entity instanceof TileEntityDiFurnace) { if(entity instanceof TileEntityDiFurnace) {
@ -210,13 +215,6 @@ public class GUIHandler implements IGuiHandler {
return null; return null;
} }
case ModBlocks.guiID_converter_he_rf: {
if(entity instanceof TileEntityConverterHeRf) {
return new ContainerConverterHeRf(player.inventory, (TileEntityConverterHeRf) entity);
}
return null;
}
case ModBlocks.guiID_schrabidium_transmutator: { case ModBlocks.guiID_schrabidium_transmutator: {
if(entity instanceof TileEntityMachineSchrabidiumTransmutator) { if(entity instanceof TileEntityMachineSchrabidiumTransmutator) {
return new ContainerMachineSchrabidiumTransmutator(player.inventory, (TileEntityMachineSchrabidiumTransmutator) entity); return new ContainerMachineSchrabidiumTransmutator(player.inventory, (TileEntityMachineSchrabidiumTransmutator) entity);
@ -869,6 +867,11 @@ public class GUIHandler implements IGuiHandler {
@Override @Override
public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
TileEntity entity = world.getTileEntity(x, y, z); TileEntity entity = world.getTileEntity(x, y, z);
if(entity instanceof TileEntityMachineLiquefactor) {
return new GUILiquefactor(player.inventory, (TileEntityMachineLiquefactor) entity);
}
switch(ID) { switch(ID) {
case ModBlocks.guiID_test_difurnace: { case ModBlocks.guiID_test_difurnace: {
if(entity instanceof TileEntityDiFurnace) { if(entity instanceof TileEntityDiFurnace) {
@ -1052,13 +1055,6 @@ public class GUIHandler implements IGuiHandler {
return null; return null;
} }
case ModBlocks.guiID_converter_he_rf: {
if(entity instanceof TileEntityConverterHeRf) {
return new GUIConverterHeRf(player.inventory, (TileEntityConverterHeRf) entity);
}
return null;
}
case ModBlocks.guiID_schrabidium_transmutator: { case ModBlocks.guiID_schrabidium_transmutator: {
if(entity instanceof TileEntityMachineSchrabidiumTransmutator) { if(entity instanceof TileEntityMachineSchrabidiumTransmutator) {
return new GUIMachineSchrabidiumTransmutator(player.inventory, (TileEntityMachineSchrabidiumTransmutator) entity); return new GUIMachineSchrabidiumTransmutator(player.inventory, (TileEntityMachineSchrabidiumTransmutator) entity);

View File

@ -1,5 +1,7 @@
package com.hbm.handler; package com.hbm.handler;
import com.hbm.inventory.gui.GUICalculator;
import cpw.mods.fml.common.FMLCommonHandler;
import org.lwjgl.input.Keyboard; import org.lwjgl.input.Keyboard;
import com.hbm.extprop.HbmPlayerProps; import com.hbm.extprop.HbmPlayerProps;
@ -16,6 +18,7 @@ public class HbmKeybinds {
public static final String category = "hbm.key"; public static final String category = "hbm.key";
public static KeyBinding calculatorKey = new KeyBinding(category + ".calculator", Keyboard.KEY_N, category);
public static KeyBinding jetpackKey = new KeyBinding(category + ".toggleBack", Keyboard.KEY_C, category); public static KeyBinding jetpackKey = new KeyBinding(category + ".toggleBack", Keyboard.KEY_C, category);
public static KeyBinding hudKey = new KeyBinding(category + ".toggleHUD", Keyboard.KEY_V, category); public static KeyBinding hudKey = new KeyBinding(category + ".toggleHUD", Keyboard.KEY_V, category);
public static KeyBinding reloadKey = new KeyBinding(category + ".reload", Keyboard.KEY_R, category); public static KeyBinding reloadKey = new KeyBinding(category + ".reload", Keyboard.KEY_R, category);
@ -27,6 +30,7 @@ public class HbmKeybinds {
public static KeyBinding craneLoadKey = new KeyBinding(category + ".craneLoad", Keyboard.KEY_RETURN, category); public static KeyBinding craneLoadKey = new KeyBinding(category + ".craneLoad", Keyboard.KEY_RETURN, category);
public static void register() { public static void register() {
ClientRegistry.registerKeyBinding(calculatorKey);
ClientRegistry.registerKeyBinding(jetpackKey); ClientRegistry.registerKeyBinding(jetpackKey);
ClientRegistry.registerKeyBinding(hudKey); ClientRegistry.registerKeyBinding(hudKey);
ClientRegistry.registerKeyBinding(reloadKey); ClientRegistry.registerKeyBinding(reloadKey);
@ -40,6 +44,9 @@ public class HbmKeybinds {
@SubscribeEvent @SubscribeEvent
public void keyEvent(KeyInputEvent event) { public void keyEvent(KeyInputEvent event) {
if (calculatorKey.getIsKeyPressed()) { // handle the calculator client-side only
FMLCommonHandler.instance().showGuiScreen(new GUICalculator());
}
HbmPlayerProps props = HbmPlayerProps.getData(MainRegistry.proxy.me()); HbmPlayerProps props = HbmPlayerProps.getData(MainRegistry.proxy.me());

View File

@ -0,0 +1,11 @@
package com.hbm.handler.nei;
import com.hbm.blocks.ModBlocks;
import com.hbm.inventory.recipes.LiquefactionRecipes;
public class LiquefactionHandler extends NEIUniversalHandler {
public LiquefactionHandler() {
super("ntmLiquefaction", "Liquefaction", ModBlocks.machine_liquefactor, LiquefactionRecipes.getRecipes());
}
}

View File

@ -6,6 +6,7 @@ import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
import com.hbm.lib.RefStrings; import com.hbm.lib.RefStrings;

View File

@ -2,6 +2,7 @@ package com.hbm.hazard;
import static com.hbm.blocks.ModBlocks.*; import static com.hbm.blocks.ModBlocks.*;
import static com.hbm.items.ModItems.*; import static com.hbm.items.ModItems.*;
import static com.hbm.inventory.OreDictManager.*;
import com.hbm.blocks.ModBlocks; import com.hbm.blocks.ModBlocks;
import com.hbm.hazard.modifier.*; import com.hbm.hazard.modifier.*;
@ -10,6 +11,7 @@ import com.hbm.hazard.type.*;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemBreedingRod.BreedingRodType; import com.hbm.items.machine.ItemBreedingRod.BreedingRodType;
import com.hbm.items.machine.ItemRTGPelletDepleted.DepletedRTGMaterial; import com.hbm.items.machine.ItemRTGPelletDepleted.DepletedRTGMaterial;
import com.hbm.items.special.ItemHolotapeImage.EnumHoloImage;
import com.hbm.util.Compat; import com.hbm.util.Compat;
import com.hbm.util.Compat.ReikaIsotope; import com.hbm.util.Compat.ReikaIsotope;
@ -169,7 +171,7 @@ public class HazardRegistry {
HazardSystem.register(demon_core_closed, makeData(RADIATION, 100_000F)); HazardSystem.register(demon_core_closed, makeData(RADIATION, 100_000F));
HazardSystem.register(cell_tritium, makeData(RADIATION, 0.001F)); HazardSystem.register(cell_tritium, makeData(RADIATION, 0.001F));
HazardSystem.register(cell_sas3, new HazardData().addEntry(RADIATION, sas3).addEntry(BLINDING, 3F)); HazardSystem.register(cell_sas3, makeData().addEntry(RADIATION, sas3).addEntry(BLINDING, 3F));
HazardSystem.register(cell_balefire, makeData(RADIATION, 50F)); HazardSystem.register(cell_balefire, makeData(RADIATION, 50F));
HazardSystem.register(powder_balefire, makeData(RADIATION, 500F)); HazardSystem.register(powder_balefire, makeData(RADIATION, 500F));
HazardSystem.register(egg_balefire_shard, makeData(RADIATION, bf * nugget)); HazardSystem.register(egg_balefire_shard, makeData(RADIATION, bf * nugget));
@ -177,8 +179,8 @@ public class HazardRegistry {
HazardSystem.register(nuclear_waste_long, makeData(RADIATION, 5F)); HazardSystem.register(nuclear_waste_long, makeData(RADIATION, 5F));
HazardSystem.register(nuclear_waste_long_tiny, makeData(RADIATION, 0.5F)); HazardSystem.register(nuclear_waste_long_tiny, makeData(RADIATION, 0.5F));
HazardSystem.register(nuclear_waste_short, new HazardData().addEntry(RADIATION, 30F).addEntry(HOT, 5F)); HazardSystem.register(nuclear_waste_short, makeData().addEntry(RADIATION, 30F).addEntry(HOT, 5F));
HazardSystem.register(nuclear_waste_short_tiny, new HazardData().addEntry(RADIATION, 3F).addEntry(HOT, 5F)); HazardSystem.register(nuclear_waste_short_tiny, makeData().addEntry(RADIATION, 3F).addEntry(HOT, 5F));
HazardSystem.register(nuclear_waste_long_depleted, makeData(RADIATION, 0.5F)); HazardSystem.register(nuclear_waste_long_depleted, makeData(RADIATION, 0.5F));
HazardSystem.register(nuclear_waste_long_depleted_tiny, makeData(RADIATION, 0.05F)); HazardSystem.register(nuclear_waste_long_depleted_tiny, makeData(RADIATION, 0.05F));
HazardSystem.register(nuclear_waste_short_depleted, makeData(RADIATION, 3F)); HazardSystem.register(nuclear_waste_short_depleted, makeData(RADIATION, 3F));
@ -225,7 +227,7 @@ public class HazardRegistry {
HazardSystem.register(rod_zirnox_plutonium_fuel_depleted, makeData(RADIATION, 100F + 30F)); HazardSystem.register(rod_zirnox_plutonium_fuel_depleted, makeData(RADIATION, 100F + 30F));
HazardSystem.register(rod_zirnox_u233_fuel_depleted, makeData(RADIATION, u233 * rod_dual * 100)); HazardSystem.register(rod_zirnox_u233_fuel_depleted, makeData(RADIATION, u233 * rod_dual * 100));
HazardSystem.register(rod_zirnox_u235_fuel_depleted, makeData(RADIATION, u235 * rod_dual * 100)); HazardSystem.register(rod_zirnox_u235_fuel_depleted, makeData(RADIATION, u235 * rod_dual * 100));
HazardSystem.register(rod_zirnox_les_fuel_depleted, new HazardData().addEntry(RADIATION, saf * rod_dual * 100).addEntry(BLINDING, 5F)); HazardSystem.register(rod_zirnox_les_fuel_depleted, makeData().addEntry(RADIATION, saf * rod_dual * 100).addEntry(BLINDING, 5F));
HazardSystem.register(rod_zirnox_tritium, makeData(RADIATION, 0.001F * rod_dual)); HazardSystem.register(rod_zirnox_tritium, makeData(RADIATION, 0.001F * rod_dual));
registerOtherWaste(waste_natural_uranium, u * billet * 100); registerOtherWaste(waste_natural_uranium, u * billet * 100);
@ -261,9 +263,9 @@ public class HazardRegistry {
registerOtherWaste(waste_plate_sa326, sa326 * ingot * 100); registerOtherWaste(waste_plate_sa326, sa326 * ingot * 100);
registerOtherWaste(waste_plate_ra226be, po210 * nugget * 3); registerOtherWaste(waste_plate_ra226be, po210 * nugget * 3);
HazardSystem.register(debris_graphite, new HazardData().addEntry(RADIATION, 70F).addEntry(HOT, 5F)); HazardSystem.register(debris_graphite, makeData().addEntry(RADIATION, 70F).addEntry(HOT, 5F));
HazardSystem.register(debris_metal, makeData(RADIATION, 5F)); HazardSystem.register(debris_metal, makeData(RADIATION, 5F));
HazardSystem.register(debris_fuel, new HazardData().addEntry(RADIATION, 500F).addEntry(HOT, 5F)); HazardSystem.register(debris_fuel, makeData().addEntry(RADIATION, 500F).addEntry(HOT, 5F));
HazardSystem.register(debris_concrete, makeData(RADIATION, 30F)); HazardSystem.register(debris_concrete, makeData(RADIATION, 30F));
HazardSystem.register(debris_exchanger, makeData(RADIATION, 25F)); HazardSystem.register(debris_exchanger, makeData(RADIATION, 25F));
HazardSystem.register(debris_shrapnel, makeData(RADIATION, 2.5F)); HazardSystem.register(debris_shrapnel, makeData(RADIATION, 2.5F));
@ -297,10 +299,10 @@ public class HazardRegistry {
HazardSystem.register(billet_americium_fuel, makeData(RADIATION, amf * billet)); HazardSystem.register(billet_americium_fuel, makeData(RADIATION, amf * billet));
HazardSystem.register(ingot_americium_fuel, makeData(RADIATION, amf * ingot)); HazardSystem.register(ingot_americium_fuel, makeData(RADIATION, amf * ingot));
HazardSystem.register(nugget_schrabidium_fuel, new HazardData().addEntry(RADIATION, saf * nugget).addEntry(BLINDING, 5F * nugget)); HazardSystem.register(nugget_schrabidium_fuel, makeData().addEntry(RADIATION, saf * nugget).addEntry(BLINDING, 5F * nugget));
HazardSystem.register(billet_schrabidium_fuel, new HazardData().addEntry(RADIATION, saf * billet).addEntry(BLINDING, 5F * billet)); HazardSystem.register(billet_schrabidium_fuel, makeData().addEntry(RADIATION, saf * billet).addEntry(BLINDING, 5F * billet));
HazardSystem.register(ingot_schrabidium_fuel, new HazardData().addEntry(RADIATION, saf * ingot).addEntry(BLINDING, 5F * ingot)); HazardSystem.register(ingot_schrabidium_fuel, makeData().addEntry(RADIATION, saf * ingot).addEntry(BLINDING, 5F * ingot));
HazardSystem.register(block_schrabidium_fuel, new HazardData().addEntry(RADIATION, saf * block).addEntry(BLINDING, 5F * block)); HazardSystem.register(block_schrabidium_fuel, makeData().addEntry(RADIATION, saf * block).addEntry(BLINDING, 5F * block));
HazardSystem.register(nugget_hes, makeData(RADIATION, saf * nugget)); HazardSystem.register(nugget_hes, makeData(RADIATION, saf * nugget));
HazardSystem.register(billet_hes, makeData(RADIATION, saf * billet)); HazardSystem.register(billet_hes, makeData(RADIATION, saf * billet));
@ -311,7 +313,7 @@ public class HazardRegistry {
HazardSystem.register(ingot_les, makeData(RADIATION, saf * ingot)); HazardSystem.register(ingot_les, makeData(RADIATION, saf * ingot));
HazardSystem.register(billet_balefire_gold, makeData(RADIATION, au198 * billet)); HazardSystem.register(billet_balefire_gold, makeData(RADIATION, au198 * billet));
HazardSystem.register(billet_flashlead, new HazardData().addEntry(RADIATION, pb209 * 1.25F * billet).addEntry(HOT, 7F)); HazardSystem.register(billet_flashlead, makeData().addEntry(RADIATION, pb209 * 1.25F * billet).addEntry(HOT, 7F));
HazardSystem.register(billet_po210be, makeData(RADIATION, pobe * billet)); HazardSystem.register(billet_po210be, makeData(RADIATION, pobe * billet));
HazardSystem.register(billet_ra226be, makeData(RADIATION, rabe * billet)); HazardSystem.register(billet_ra226be, makeData(RADIATION, rabe * billet));
HazardSystem.register(billet_pu238be, makeData(RADIATION, pube * billet)); HazardSystem.register(billet_pu238be, makeData(RADIATION, pube * billet));
@ -400,7 +402,7 @@ public class HazardRegistry {
HazardSystem.register(ModItems.fallout, makeData(RADIATION, fo * powder)); HazardSystem.register(ModItems.fallout, makeData(RADIATION, fo * powder));
HazardSystem.register(ModBlocks.fallout, makeData(RADIATION, fo * powder * 2)); HazardSystem.register(ModBlocks.fallout, makeData(RADIATION, fo * powder * 2));
HazardSystem.register(ModBlocks.block_fallout, makeData(RADIATION, yc * block * powder_mult)); HazardSystem.register(ModBlocks.block_fallout, makeData(RADIATION, yc * block * powder_mult));
HazardSystem.register(powder_caesium, new HazardData().addEntry(HYDROACTIVE, 1F).addEntry(HOT, 3F)); HazardSystem.register(powder_caesium, makeData().addEntry(HYDROACTIVE, 1F).addEntry(HOT, 3F));
HazardSystem.register(wire_schrabidium, makeData(RADIATION, sa326 * nugget)); HazardSystem.register(wire_schrabidium, makeData(RADIATION, sa326 * nugget));
@ -433,22 +435,20 @@ public class HazardRegistry {
HazardSystem.register(mike_core, makeData(RADIATION, u238 * nugget * 10)); HazardSystem.register(mike_core, makeData(RADIATION, u238 * nugget * 10));
HazardSystem.register(tsar_core, makeData(RADIATION, pu239 * nugget * 15)); HazardSystem.register(tsar_core, makeData(RADIATION, pu239 * nugget * 15));
HazardSystem.register(fleija_propellant, new HazardData().addEntry(RADIATION, 15F).addEntry(EXPLOSIVE, 8F).addEntry(BLINDING, 5F)); HazardSystem.register(fleija_propellant, makeData().addEntry(RADIATION, 15F).addEntry(EXPLOSIVE, 8F).addEntry(BLINDING, 5F));
HazardSystem.register(fleija_core, makeData(RADIATION, 10F)); HazardSystem.register(fleija_core, makeData(RADIATION, 10F));
HazardSystem.register(solinium_propellant, makeData(EXPLOSIVE, 10F)); HazardSystem.register(solinium_propellant, makeData(EXPLOSIVE, 10F));
HazardSystem.register(solinium_core, new HazardData().addEntry(RADIATION, sa327 * nugget * 8).addEntry(BLINDING, 5F)); HazardSystem.register(solinium_core, makeData().addEntry(RADIATION, sa327 * nugget * 8).addEntry(BLINDING, 5F));
HazardSystem.register(nuke_fstbmb, makeData(DIGAMMA, 0.01F)); HazardSystem.register(nuke_fstbmb, makeData(DIGAMMA, 0.01F));
HazardSystem.register(new ItemStack(ModItems.holotape_image, 1, EnumHoloImage.HOLO_RESTORED.ordinal()), makeData(DIGAMMA, 1F));
/* /*
* Blacklist * Blacklist
*/ */
HazardSystem.blacklist(new ItemStack(ore_uranium)); HazardSystem.blacklist(TH232.ore());
HazardSystem.blacklist(new ItemStack(ore_gneiss_uranium)); HazardSystem.blacklist(U.ore());
HazardSystem.blacklist(new ItemStack(ore_nether_uranium));
HazardSystem.blacklist(new ItemStack(ore_meteor_uranium));
HazardSystem.blacklist(new ItemStack(ore_thorium));
/* /*

View File

@ -38,7 +38,8 @@ public class HazardSystem {
/* /*
* For items that should, for whichever reason, be completely exempt from the hazard system. * For items that should, for whichever reason, be completely exempt from the hazard system.
*/ */
public static final HashSet<ComparableStack> blacklist = new HashSet(); public static final HashSet<ComparableStack> stackBlacklist = new HashSet();
public static final HashSet<String> dictBlacklist = new HashSet();
/* /*
* List of hazard transformers, called in order before and after unrolling all the HazardEntries. * List of hazard transformers, called in order before and after unrolling all the HazardEntries.
*/ */
@ -67,12 +68,29 @@ public class HazardSystem {
* Prevents the stack from returning any HazardData * Prevents the stack from returning any HazardData
* @param stack * @param stack
*/ */
public static void blacklist(ItemStack stack) { public static void blacklist(Object o) {
blacklist.add(new ComparableStack(stack).makeSingular());
if(o instanceof ItemStack) {
stackBlacklist.add(new ComparableStack((ItemStack) o).makeSingular());
} else if(o instanceof String) {
dictBlacklist.add((String) o);
}
} }
public static boolean isItemBlacklisted(ItemStack stack) { public static boolean isItemBlacklisted(ItemStack stack) {
return blacklist.contains(new ComparableStack(stack).makeSingular());
if(stackBlacklist.contains(new ComparableStack(stack).makeSingular()))
return true;
int[] ids = OreDictionary.getOreIDs(stack);
for(int id : ids) {
String name = OreDictionary.getOreName(id);
if(dictBlacklist.contains(name))
return true;
}
return false;
} }
/** /**

View File

@ -11,5 +11,4 @@ public class FluidStack {
this.fill = fill; this.fill = fill;
this.type = type; this.type = type;
} }
} }

View File

@ -21,6 +21,7 @@ import net.minecraft.client.resources.I18n;
import net.minecraft.item.ItemArmor; import net.minecraft.item.ItemArmor;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
@ -78,6 +79,10 @@ public class FluidTank {
} }
//Called on TE update //Called on TE update
public void updateTank(TileEntity te) {
updateTank(te.xCoord, te.yCoord, te.zCoord, te.getWorldObj().provider.dimensionId);
}
public void updateTank(int x, int y, int z, int dim) { public void updateTank(int x, int y, int z, int dim) {
PacketDispatcher.wrapper.sendToAllAround(new TEFluidPacket(x, y, z, fluid, index, type), new TargetPoint(dim, x, y, z, 100)); PacketDispatcher.wrapper.sendToAllAround(new TEFluidPacket(x, y, z, fluid, index, type), new TargetPoint(dim, x, y, z, 100));
} }

View File

@ -8,7 +8,6 @@ import static com.hbm.items.ModItems.*;
import static com.hbm.blocks.ModBlocks.*; import static com.hbm.blocks.ModBlocks.*;
import static com.hbm.inventory.OreDictManager.DictFrame.*; import static com.hbm.inventory.OreDictManager.DictFrame.*;
import com.hbm.blocks.ModBlocks;
import com.hbm.config.GeneralConfig; import com.hbm.config.GeneralConfig;
import com.hbm.hazard.HazardData; import com.hbm.hazard.HazardData;
import com.hbm.hazard.HazardEntry; import com.hbm.hazard.HazardEntry;
@ -16,7 +15,6 @@ import com.hbm.hazard.HazardRegistry;
import com.hbm.hazard.HazardSystem; import com.hbm.hazard.HazardSystem;
import com.hbm.items.ItemEnums.EnumCokeType; import com.hbm.items.ItemEnums.EnumCokeType;
import com.hbm.items.ItemEnums.EnumTarType; import com.hbm.items.ItemEnums.EnumTarType;
import com.hbm.items.ModItems;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.init.Items; import net.minecraft.init.Items;

View File

@ -14,12 +14,11 @@ public class SlotUpgrade extends Slot {
@Override @Override
public boolean isItemValid(ItemStack stack) { public boolean isItemValid(ItemStack stack) {
return stack != null && stack.getItem() instanceof ItemMachineUpgrade; return stack != null && stack.getItem() instanceof ItemMachineUpgrade;
} }
@Override @Override
public void onSlotChange(ItemStack sta1, ItemStack sta2) { public void onSlotChange(ItemStack sta1, ItemStack sta2) {
super.onSlotChange(sta1, sta2); super.onSlotChange(sta1, sta2);
} }
} }

View File

@ -1,64 +0,0 @@
package com.hbm.inventory.container;
import com.hbm.tileentity.machine.TileEntityConverterHeRf;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.ICrafting;
import net.minecraft.item.ItemStack;
public class ContainerConverterHeRf extends Container {
private TileEntityConverterHeRf diFurnace;
private int water;
private int flux;
public ContainerConverterHeRf(InventoryPlayer invPlayer, TileEntityConverterHeRf tedf) {
diFurnace = tedf;
}
@Override
public void addCraftingToCrafters(ICrafting crafting) {
super.addCraftingToCrafters(crafting);
crafting.sendProgressBarUpdate(this, 1, this.diFurnace.storage.getEnergyStored());
}
@Override
public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int p_82846_2_)
{
return null;
}
@Override
public boolean canInteractWith(EntityPlayer player) {
return true;
}
@Override
public void detectAndSendChanges() {
super.detectAndSendChanges();
for(int i = 0; i < this.crafters.size(); i++)
{
ICrafting par1 = (ICrafting)this.crafters.get(i);
if(this.flux != this.diFurnace.storage.getEnergyStored())
{
par1.sendProgressBarUpdate(this, 1, this.diFurnace.storage.getEnergyStored());
}
}
this.flux = this.diFurnace.storage.getEnergyStored();
}
@Override
public void updateProgressBar(int i, int j) {
if(i == 1)
{
diFurnace.storage.setEnergyStored(j);
}
}
}

View File

@ -10,22 +10,25 @@ import net.minecraft.item.ItemStack;
public class ContainerFEL extends Container { public class ContainerFEL extends Container {
private TileEntityFEL microwave; private TileEntityFEL fel;
public ContainerFEL(InventoryPlayer invPlayer, TileEntityFEL tedf) { public ContainerFEL(InventoryPlayer invPlayer, TileEntityFEL tedf) {
microwave = tedf; fel = tedf;
this.addSlotToContainer(new Slot(tedf, 0, 26, 53)); //battery
this.addSlotToContainer(new Slot(tedf, 0, 182, 144));
//laser crystal
this.addSlotToContainer(new Slot(tedf, 1, 141, 23));
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)); this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 83 + i * 18));
} }
} }
for(int i = 0; i < 9; i++) { for(int i = 0; i < 9; i++) {
this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 141));
} }
} }
@ -39,11 +42,11 @@ public class ContainerFEL extends Container {
var3 = var5.copy(); var3 = var5.copy();
if(par2 == 0) { if(par2 == 0) {
if(!this.mergeItemStack(var5, 1, this.inventorySlots.size(), true)) { if(!this.mergeItemStack(var5, 1, this.inventorySlots.size(), false)) {
return null; return null;
} }
} else { } else {
if(!this.mergeItemStack(var5, 0, 1, true)) if(!this.mergeItemStack(var5, 0, 1, false))
return null; return null;
} }
@ -59,6 +62,6 @@ public class ContainerFEL extends Container {
@Override @Override
public boolean canInteractWith(EntityPlayer player) { public boolean canInteractWith(EntityPlayer player) {
return microwave.isUseableByPlayer(player); return fel.isUseableByPlayer(player);
} }
} }

View File

@ -0,0 +1,69 @@
package com.hbm.inventory.container;
import com.hbm.inventory.SlotUpgrade;
import com.hbm.tileentity.machine.TileEntityMachineLiquefactor;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
public class ContainerLiquefactor extends Container {
private TileEntityMachineLiquefactor liquefactor;
public ContainerLiquefactor(InventoryPlayer playerInv, TileEntityMachineLiquefactor tile) {
liquefactor = tile;
//Input
this.addSlotToContainer(new Slot(tile, 0, 35, 54));
//Battery
this.addSlotToContainer(new Slot(tile, 1, 134, 72));
//Upgrades
this.addSlotToContainer(new SlotUpgrade(tile, 2, 98, 36));
this.addSlotToContainer(new SlotUpgrade(tile, 3, 98, 54));
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 9; j++) {
this.addSlotToContainer(new Slot(playerInv, j + i * 9 + 9, 8 + j * 18, 122 + i * 18));
}
}
for(int i = 0; i < 9; i++) {
this.addSlotToContainer(new Slot(playerInv, i, 8 + i * 18, 180));
}
}
@Override
public boolean canInteractWith(EntityPlayer player) {
return liquefactor.isUseableByPlayer(player);
}
@Override
public ItemStack transferStackInSlot(EntityPlayer player, int index) {
ItemStack var3 = null;
Slot var4 = (Slot) this.inventorySlots.get(index);
if(var4 != null && var4.getHasStack()) {
ItemStack var5 = var4.getStack();
var3 = var5.copy();
if(index <= 2) {
if(!this.mergeItemStack(var5, 4, this.inventorySlots.size(), true)) {
return null;
}
} else if(!this.mergeItemStack(var5, 0, 3, false)) {
return null;
}
if(var5.stackSize == 0) {
var4.putStack((ItemStack) null);
} else {
var4.onSlotChanged();
}
}
return var3;
}
}

View File

@ -1,6 +1,5 @@
package com.hbm.inventory.container; package com.hbm.inventory.container;
import com.hbm.inventory.SlotMachineOutput;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.tileentity.machine.TileEntitySILEX; import com.hbm.tileentity.machine.TileEntitySILEX;
@ -18,21 +17,21 @@ public class ContainerSILEX extends Container {
silex = te; silex = te;
//Input //Input
this.addSlotToContainer(new Slot(te, 0, 116, 36)); this.addSlotToContainer(new Slot(te, 0, 80, 12));
//Fluid ID //Fluid ID
this.addSlotToContainer(new Slot(te, 1, 44, 36)); this.addSlotToContainer(new Slot(te, 1, 8, 24));
//Fluid Container //Fluid Container
this.addSlotToContainer(new Slot(te, 2, 62, 36)); this.addSlotToContainer(new Slot(te, 2, 8 + 18, 24));
this.addSlotToContainer(new Slot(te, 3, 80, 36)); this.addSlotToContainer(new Slot(te, 3, 8 + 18*2, 24));
//Output //Output
this.addSlotToContainer(new Slot(te, 4, 116, 90)); this.addSlotToContainer(new Slot(te, 4, 116, 90));
//Output Queue //Output Queue
this.addSlotToContainer(new SlotMachineOutput(te, 5, 134, 72)); this.addSlotToContainer(new Slot(te, 5, 134, 72));
this.addSlotToContainer(new SlotMachineOutput(te, 6, 152, 72)); this.addSlotToContainer(new Slot(te, 6, 152, 72));
this.addSlotToContainer(new SlotMachineOutput(te, 7, 134, 90)); this.addSlotToContainer(new Slot(te, 7, 134, 90));
this.addSlotToContainer(new SlotMachineOutput(te, 8, 152, 90)); this.addSlotToContainer(new Slot(te, 8, 152, 90));
this.addSlotToContainer(new SlotMachineOutput(te, 9, 134, 108)); this.addSlotToContainer(new Slot(te, 9, 134, 108));
this.addSlotToContainer(new SlotMachineOutput(te, 10, 152, 108)); this.addSlotToContainer(new Slot(te, 10, 152, 108));
for(int i = 0; i < 3; i++) for(int i = 0; i < 3; i++)
{ {
@ -56,7 +55,6 @@ public class ContainerSILEX extends Container {
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);
if(par2 <= silex.getSizeInventory() - 1) { if(par2 <= silex.getSizeInventory() - 1) {
if(!this.mergeItemStack(var5, silex.getSizeInventory(), this.inventorySlots.size(), true)) { if(!this.mergeItemStack(var5, silex.getSizeInventory(), this.inventorySlots.size(), true)) {

View File

@ -0,0 +1,237 @@
package com.hbm.inventory.gui;
import com.hbm.lib.RefStrings;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.gui.GuiTextField;
import net.minecraft.util.ResourceLocation;
import org.lwjgl.input.Keyboard;
import org.lwjgl.opengl.GL11;
import java.math.BigDecimal;
import java.util.Locale;
import java.util.Stack;
public class GUICalculator extends GuiScreen {
private static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID, "textures/gui/calculator.png");
private int xSize = 220;
private int ySize = 50;
private GuiTextField inputField;
private String latestResult = "?";
@Override
public void initGui() {
Keyboard.enableRepeatEvents(true);
int x = (width - xSize) / 2;
int y = (height - ySize) / 2;
inputField = new GuiTextField(fontRendererObj, x + 5, y + 5, 210, 13);
inputField.setTextColor(-1);
inputField.setCanLoseFocus(false);
inputField.setFocused(true);
inputField.setMaxStringLength(1000);
}
@Override
public void onGuiClosed() {
Keyboard.enableRepeatEvents(false);
}
@Override
protected void keyTyped(char p_73869_1_, int p_73869_2_) {
if (!inputField.textboxKeyTyped(p_73869_1_, p_73869_2_))
super.keyTyped(p_73869_1_, p_73869_2_);
if (p_73869_1_ == 13 || p_73869_1_ == 10) { // when pressing enter (CR or LF)
try {
double result = Double.parseDouble(latestResult);
String plainStringRepresentation = (new BigDecimal(result)).toPlainString();
GuiScreen.setClipboardString(plainStringRepresentation);
inputField.setText(plainStringRepresentation);
inputField.setCursorPositionEnd();
inputField.setSelectionPos(0);
} catch (Exception ignored) {}
return;
}
String input = inputField.getText().replaceAll("[^\\d+\\-*/^.()\\sA-Za-z]+", "");
if (input.isEmpty()) {
latestResult = "?";
return;
}
try {
latestResult = Double.toString(evaluateExpression(input));
} catch (Exception e) { latestResult = e.toString(); }
}
@Override
public void drawScreen(int mouseX, int mouseY, float partialTicks) {
super.drawScreen(mouseX, mouseY, partialTicks);
GL11.glColor4f(1F, 1F, 1F, 1F);
mc.getTextureManager().bindTexture(texture);
int x = (width - xSize) / 2;
int y = (height - ySize) / 2;
drawTexturedModalRect(x, y, 0, 0, xSize, ySize);
inputField.drawTextBox();
fontRendererObj.drawString("=" + latestResult, x + 5, y + 30, -1);
}
/**
* Mathematically evaluates user-inputted strings<br>
* It is recommended to catch all exceptions when using this
*/
public static double evaluateExpression(String input) {
if (input.contains("^")) input = preEvaluatePower(input);
char[] tokens = input.toCharArray();
Stack<Double> values = new Stack<>();
Stack<String> operators = new Stack<>();
for (int i = 0; i < tokens.length; i++) {
if (tokens[i] == ' ') continue;
if (tokens[i] >= '0' && tokens[i] <= '9' || tokens[i] == '.' || (tokens[i] == '-' && (i == 0 || "+-*/^(".contains(String.valueOf(tokens[i - 1]))))) {
StringBuilder buffer = new StringBuilder();
if (tokens[i] == '-') {
buffer.append('-'); // for negative numbers
i++;
}
while (i < tokens.length && (tokens[i] >= '0' && tokens[i] <= '9' || tokens[i] == '.')) buffer.append(tokens[i++]);
values.push(Double.parseDouble(buffer.toString()));
i--;
} else if (tokens[i] == '(') operators.push(Character.toString(tokens[i]));
else if (tokens[i] == ')') {
while (!operators.isEmpty() && operators.peek().charAt(0) != '(')
values.push(evaluateOperator(operators.pop().charAt(0), values.pop(), values.pop()));
operators.pop();
if (!operators.isEmpty() && operators.peek().length() > 1)
values.push(evaluateFunction(operators.pop(), values.pop()));
} else if (tokens[i] == '+' || tokens[i] == '-' || tokens[i] == '*' || tokens[i] == '/' || tokens[i] == '^') {
while (!operators.isEmpty() && hasPrecedence(String.valueOf(tokens[i]), operators.peek()))
values.push(evaluateOperator(operators.pop().charAt(0), values.pop(), values.pop()));
operators.push(Character.toString(tokens[i]));
} else if (tokens[i] >= 'A' && tokens[i] <= 'Z' || tokens[i] >= 'a' && tokens[i] <= 'z') {
StringBuilder charBuffer = new StringBuilder();
while (i < tokens.length && (tokens[i] >= 'A' && tokens[i] <= 'Z' || tokens[i] >= 'a' && tokens[i] <= 'z'))
charBuffer.append(tokens[i++]);
String string = charBuffer.toString();
if (string.equalsIgnoreCase("pi")) values.push(Math.PI);
else if (string.equalsIgnoreCase("e")) values.push(Math.E);
else operators.push(string.toLowerCase(Locale.ROOT));
i--;
}
}
// if the expression is correctly formatted, no function is remaining
while (!operators.empty()) values.push(evaluateOperator(operators.pop().charAt(0), values.pop(), values.pop()));
return values.pop();
}
private static double evaluateOperator(char operator, double x, double y) {
switch (operator) {
case '+': return y + x;
case '-': return y - x;
case '*': return y * x;
case '/': return y / x;
case '^': return Math.pow(y, x); // should not happen here, but oh well
}
return 0;
}
private static double evaluateFunction(String function, double x) {
switch (function) {
case "sqrt": return Math.sqrt(x);
case "sin": return Math.sin(x);
case "cos": return Math.cos(x);
case "tan": return Math.tan(x);
case "asin": return Math.asin(x);
case "acos": return Math.acos(x);
case "atan": return Math.atan(x);
case "log": return Math.log10(x);
case "ln": return Math.log(x);
case "ceil": return Math.ceil(x);
case "floor": return Math.floor(x);
case "round": return Math.round(x);
}
return 0;
}
/** Returns whether {@code second} has precedence over {@code first} */
private static boolean hasPrecedence(String first, String second) {
if (second.length() > 1) return false;
char firstChar = first.charAt(0);
char secondChar = second.charAt(0);
if (secondChar == '(' || secondChar == ')') return false;
else return (firstChar != '*' && firstChar != '/' && firstChar != '^') || (secondChar != '+' && secondChar != '-');
}
/** Returns the input with all powers evaluated */
private static String preEvaluatePower(String input) {
do {
int powerOperatorIndex = input.lastIndexOf('^');
// find base
boolean previousTokenIsParentheses = input.charAt(powerOperatorIndex - 1) == ')';
int parenthesesDepth = previousTokenIsParentheses ? 1 : 0;
int baseExpressionStart = previousTokenIsParentheses ? powerOperatorIndex - 2 : powerOperatorIndex - 1;
baseLoop:
for (; baseExpressionStart >= 0; baseExpressionStart--) { // search backwards
switch (input.charAt(baseExpressionStart)) {
case ')':
if (previousTokenIsParentheses) parenthesesDepth++;
else break baseLoop;
break;
case '(':
if (previousTokenIsParentheses && parenthesesDepth > 0) parenthesesDepth--;
else break baseLoop;
break;
case '+': case '-': case '*': case '/': case '^':
if (parenthesesDepth == 0) break baseLoop;
}
}
baseExpressionStart++; // go one token forward again
if (parenthesesDepth > 0) throw new IllegalArgumentException("Incomplete parentheses");
// find exponent
boolean nextTokenIsParentheses = input.charAt(powerOperatorIndex + 1) == '(';
parenthesesDepth = nextTokenIsParentheses ? 1 : 0;
int exponentExpressionEnd = nextTokenIsParentheses ? powerOperatorIndex + 2 : powerOperatorIndex + 1;
exponentLoop:
for (; exponentExpressionEnd < input.length(); exponentExpressionEnd++) {
switch (input.charAt(exponentExpressionEnd)) {
case '(':
if (nextTokenIsParentheses) parenthesesDepth++;
else break exponentLoop;
break;
case ')':
if (nextTokenIsParentheses && parenthesesDepth > 0) parenthesesDepth--;
else break exponentLoop;
break;
case '+': case '-': case '*': case '/': case '^':
if (parenthesesDepth == 0) break exponentLoop;
}
}
if (parenthesesDepth > 0) throw new IllegalArgumentException("Incomplete parentheses");
double base = evaluateExpression(input.substring(baseExpressionStart, powerOperatorIndex));
double exponent = evaluateExpression(input.substring(powerOperatorIndex + 1, exponentExpressionEnd));
double result = Math.pow(base, exponent);
// use big decimal to avoid scientific notation messing with the calculation
input = input.substring(0, baseExpressionStart) + (new BigDecimal(result)).toPlainString() + input.substring(exponentExpressionEnd);
} while (input.contains("^"));
return input;
}
}

View File

@ -1,47 +0,0 @@
package com.hbm.inventory.gui;
import org.lwjgl.opengl.GL11;
import com.hbm.inventory.container.ContainerConverterHeRf;
import com.hbm.lib.RefStrings;
import com.hbm.tileentity.machine.TileEntityConverterHeRf;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.util.ResourceLocation;
public class GUIConverterHeRf extends GuiContainer {
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_he_rf_converter.png");
private TileEntityConverterHeRf diFurnace;
public GUIConverterHeRf(InventoryPlayer invPlayer, TileEntityConverterHeRf tedf) {
super(new ContainerConverterHeRf(invPlayer, tedf));
diFurnace = tedf;
this.xSize = 176;
this.ySize = 86;
}
@Override
protected void drawGuiContainerForegroundLayer(int i, int j) {
}
@Override
protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) {
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
if(diFurnace.power > 0) {
int i = (int)diFurnace.getPowerScaled(52);
drawTexturedModalRect(guiLeft + 28, guiTop + 69 - i, 176, 52 - i, 12, i);
}
if(diFurnace.storage.getEnergyStored() > 0) {
int i = (int)diFurnace.getFluxScaled(52);
drawTexturedModalRect(guiLeft + 136, guiTop + 69 - i, 188, 52 - i, 12, i);
}
}
}

View File

@ -0,0 +1,63 @@
package com.hbm.inventory.gui;
import org.lwjgl.opengl.GL11;
import com.hbm.inventory.FluidTank;
import com.hbm.inventory.container.ContainerLiquefactor;
import com.hbm.lib.RefStrings;
import com.hbm.tileentity.machine.TileEntityMachineLiquefactor;
import net.minecraft.client.Minecraft;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.util.ResourceLocation;
public class GUILiquefactor extends GuiInfoContainer {
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_liquefactor.png");
private TileEntityMachineLiquefactor liquefactor;
public GUILiquefactor(InventoryPlayer invPlayer, TileEntityMachineLiquefactor tedf) {
super(new ContainerLiquefactor(invPlayer, tedf));
liquefactor = tedf;
this.xSize = 176;
this.ySize = 204;
}
@Override
public void drawScreen(int mouseX, int mouseY, float f) {
super.drawScreen(mouseX, mouseY, f);
liquefactor.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 71, guiTop + 36, 16, 52);
this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 134, guiTop + 18, 16, 52, liquefactor.power, liquefactor.maxPower);
}
@Override
protected void drawGuiContainerForegroundLayer(int i, int j) {
String name = this.liquefactor.hasCustomInventoryName() ? this.liquefactor.getInventoryName() : I18n.format(this.liquefactor.getInventoryName());
this.fontRendererObj.drawString(name, 70 - this.fontRendererObj.getStringWidth(name) / 2, 6, 0xC7C1A3);
this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752);
}
@Override
protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) {
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
int i = (int)(liquefactor.getPower() * 52 / liquefactor.getMaxPower());
drawTexturedModalRect(guiLeft + 134, guiTop + 70 - i, 176, 52 - i, 16, i);
int j = liquefactor.progress * 42 / liquefactor.processTime;
drawTexturedModalRect(guiLeft + 42, guiTop + 17, 192, 0, j, 35);
if(i > 0)
drawTexturedModalRect(guiLeft + 138, guiTop + 4, 176, 52, 9, 12);
Minecraft.getMinecraft().getTextureManager().bindTexture(liquefactor.tank.getSheet());
liquefactor.tank.renderTank(this, guiLeft + 71, guiTop + 88, liquefactor.tank.getTankType().textureX() * FluidTank.x, liquefactor.tank.getTankType().textureY() * FluidTank.y, 16, 52);
}
}

View File

@ -0,0 +1,75 @@
package com.hbm.inventory.recipes;
import static com.hbm.inventory.OreDictManager.*;
import java.util.HashMap;
import java.util.Map.Entry;
import com.hbm.inventory.FluidStack;
import com.hbm.inventory.RecipesCommon.ComparableStack;
import com.hbm.inventory.RecipesCommon.OreDictStack;
import com.hbm.inventory.fluid.Fluids;
import com.hbm.items.machine.ItemFluidIcon;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
public class LiquefactionRecipes {
private static HashMap<Object, FluidStack> recipes = new HashMap();
public static void register() {
recipes.put(COAL.gem(), new FluidStack(100, Fluids.OIL));
recipes.put(COAL.dust(), new FluidStack(100, Fluids.OIL));
recipes.put(ANY_TAR.any(), new FluidStack(100, Fluids.BITUMEN));
recipes.put(new ComparableStack(Blocks.netherrack), new FluidStack(250, Fluids.LAVA));
recipes.put(new ComparableStack(Blocks.cobblestone), new FluidStack(250, Fluids.LAVA));
recipes.put(new ComparableStack(Blocks.stone), new FluidStack(250, Fluids.LAVA));
recipes.put(new ComparableStack(Blocks.obsidian), new FluidStack(500, Fluids.LAVA));
recipes.put(new ComparableStack(Items.snowball), new FluidStack(125, Fluids.WATER));
recipes.put(new ComparableStack(Blocks.snow), new FluidStack(500, Fluids.WATER));
recipes.put(new ComparableStack(Blocks.ice), new FluidStack(1000, Fluids.WATER));
recipes.put(new ComparableStack(Blocks.packed_ice), new FluidStack(1000, Fluids.WATER));
}
public static FluidStack getOutput(ItemStack stack) {
if(stack == null || stack.getItem() == null)
return null;
ComparableStack comp = new ComparableStack(stack.getItem(), 1, stack.getItemDamage());
if(recipes.containsKey(comp))
return recipes.get(comp);
String[] dictKeys = comp.getDictKeys();
for(String key : dictKeys) {
if(recipes.containsKey(key))
return recipes.get(key);
}
return null;
}
public static HashMap<Object, ItemStack> getRecipes() {
HashMap<Object, ItemStack> recipes = new HashMap<Object, ItemStack>();
for(Entry<Object, FluidStack> entry : LiquefactionRecipes.recipes.entrySet()) {
FluidStack out = entry.getValue();
if(entry.getKey() instanceof String) {
recipes.put(new OreDictStack((String)entry.getKey()), ItemFluidIcon.make(out.type, out.fill));
} else {
recipes.put(((ComparableStack)entry.getKey()).toStack(), ItemFluidIcon.make(out.type, out.fill));
}
}
return recipes;
}
}

View File

@ -8,7 +8,6 @@ import com.hbm.interfaces.IFluidDuct;
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.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.tileentity.conductor.TileEntityFluidDuct;
import com.hbm.tileentity.conductor.TileEntityFluidDuctSimple; import com.hbm.tileentity.conductor.TileEntityFluidDuctSimple;
import com.hbm.util.I18nUtil; import com.hbm.util.I18nUtil;
@ -86,8 +85,9 @@ public class ItemFluidIdentifier extends Item {
TileEntity te = world.getTileEntity(x, y, z); TileEntity te = world.getTileEntity(x, y, z);
if(te instanceof TileEntityFluidDuctSimple) { if(te instanceof TileEntityFluidDuctSimple) {
TileEntityFluidDuctSimple duct = (TileEntityFluidDuctSimple) te;
if(!world.isRemote) { if(!world.isRemote) {
TileEntityFluidDuctSimple duct = (TileEntityFluidDuctSimple) te;
FluidType type = Fluids.fromID(stack.getItemDamage()); FluidType type = Fluids.fromID(stack.getItemDamage());
if (player.isSneaking()) { if (player.isSneaking()) {
@ -97,7 +97,7 @@ public class ItemFluidIdentifier extends Item {
} }
} }
world.markBlockForUpdate(x, y, z); //world.markBlockForUpdate(x, y, z);
player.swingItem(); player.swingItem();
} }
@ -132,7 +132,7 @@ public class ItemFluidIdentifier extends Item {
TileEntity te = world.getTileEntity(nextX, nextY, nextZ); TileEntity te = world.getTileEntity(nextX, nextY, nextZ);
if (te instanceof TileEntityFluidDuctSimple && ((TileEntityFluidDuctSimple) te).getType() == oldType) { if (te instanceof TileEntityFluidDuctSimple && ((TileEntityFluidDuctSimple) te).getType() == oldType) {
TileEntityFluidDuct nextDuct = (TileEntityFluidDuct) te; TileEntityFluidDuctSimple nextDuct = (TileEntityFluidDuctSimple) te;
long connectionsCount = Arrays.stream(nextDuct.connections).filter(Objects::nonNull).count(); long connectionsCount = Arrays.stream(nextDuct.connections).filter(Objects::nonNull).count();
if (connectionsCount > 1) { if (connectionsCount > 1) {

View File

@ -46,6 +46,9 @@ public class ItemHolotapeImage extends ItemHoloTape {
HOLO_NV_CRATER( EnumChatFormatting.GOLD, "Brown", "031-MOUNTAIN", "The tape contains an audio track that is mostly gabled sound and garbage noise. There is an image file on it, depicting a large dome in blue light surrounded by many smaller buildings. In the distance, there is a smaller dome with red lights."), HOLO_NV_CRATER( EnumChatFormatting.GOLD, "Brown", "031-MOUNTAIN", "The tape contains an audio track that is mostly gabled sound and garbage noise. There is an image file on it, depicting a large dome in blue light surrounded by many smaller buildings. In the distance, there is a smaller dome with red lights."),
HOLO_NV_DIVIDE( EnumChatFormatting.GOLD, "Brown", "032-ROAD", "The tape contains an audio track that is mostly gabled sound and garbage noise. There is an image file on it, depicting a large chasm with broken highways and destroyed buildings littering the landscape."), HOLO_NV_DIVIDE( EnumChatFormatting.GOLD, "Brown", "032-ROAD", "The tape contains an audio track that is mostly gabled sound and garbage noise. There is an image file on it, depicting a large chasm with broken highways and destroyed buildings littering the landscape."),
HOLO_NV_BM( EnumChatFormatting.GOLD, "Brown", "033-BROADCAST", "The tape contains an audio track that is mostly gabled sound and garbage noise. There is an image file on it, depicting a satellite broadcasting station on top of a hill. In the distance, there is a very large person walking hand in hand with a robot into the sunset."), HOLO_NV_BM( EnumChatFormatting.GOLD, "Brown", "033-BROADCAST", "The tape contains an audio track that is mostly gabled sound and garbage noise. There is an image file on it, depicting a satellite broadcasting station on top of a hill. In the distance, there is a very large person walking hand in hand with a robot into the sunset."),
HOLO_O_1( EnumChatFormatting.WHITE, "Chroma", "X00-TRANSCRIPT", "[Start of Automated Audio Transcript] <unintelligible> in a boardroom, right, and they're trying to come up with some new ideas. So one guy just says they should reuse this other character from somewhere else, who has like this night-theme you know, and just change the entire schtick to day. So when they had to come up with a name, one guy said, why not take the original name, replace the N with a D, because of night to day, right, and run with it? Now the name sounds like 'Dicks'! Funniest thing I've ever heard! [End of Transcript]"),
HOLO_O_2( EnumChatFormatting.WHITE, "Chroma", "X01-NEWS", "The tape contains a news article, reporting an unusually pale person throwing flashbangs at people in public. The image at the bottom shows one of the incidents, unsurprisingly the light from one of the flashbangs made it unrecognizable."),
HOLO_O_3( EnumChatFormatting.WHITE, "Chroma", "X02-FICTION", "The tape contains an article from a science fiction magazine, engaging with various reader comments about what to do with a time machine. One of those comments suggests engaging in various unsanitary acts with the future self, being signed off with just the initial '~D'."),
; ;
private String name; private String name;

View File

@ -19,6 +19,7 @@ import com.hbm.items.ModItems;
import com.hbm.tileentity.TileEntityProxyBase; import com.hbm.tileentity.TileEntityProxyBase;
import com.hbm.tileentity.TileEntityProxyInventory; import com.hbm.tileentity.TileEntityProxyInventory;
import com.hbm.tileentity.conductor.TileEntityFluidDuct; import com.hbm.tileentity.conductor.TileEntityFluidDuct;
import com.hbm.tileentity.conductor.TileEntityFluidDuctSimple;
import com.hbm.tileentity.conductor.TileEntityGasDuct; import com.hbm.tileentity.conductor.TileEntityGasDuct;
import com.hbm.tileentity.conductor.TileEntityGasDuctSolid; import com.hbm.tileentity.conductor.TileEntityGasDuctSolid;
import com.hbm.tileentity.conductor.TileEntityOilDuct; import com.hbm.tileentity.conductor.TileEntityOilDuct;
@ -495,17 +496,17 @@ public class Library {
if(tileentity instanceof IFluidDuct) if(tileentity instanceof IFluidDuct)
{ {
if(tileentity instanceof TileEntityFluidDuct && ((TileEntityFluidDuct)tileentity).getType() == type) if(tileentity instanceof TileEntityFluidDuctSimple && ((TileEntityFluidDuctSimple)tileentity).getType() == type)
{ {
if(Library.checkUnionListForFluids(((TileEntityFluidDuct)tileentity).uoteab, that)) if(Library.checkUnionListForFluids(((TileEntityFluidDuctSimple)tileentity).uoteab, that))
{ {
for(int i = 0; i < ((TileEntityFluidDuct)tileentity).uoteab.size(); i++) for(int i = 0; i < ((TileEntityFluidDuctSimple)tileentity).uoteab.size(); i++)
{ {
if(((TileEntityFluidDuct)tileentity).uoteab.get(i).source == that) if(((TileEntityFluidDuctSimple)tileentity).uoteab.get(i).source == that)
{ {
if(((TileEntityFluidDuct)tileentity).uoteab.get(i).ticked != newTact) if(((TileEntityFluidDuctSimple)tileentity).uoteab.get(i).ticked != newTact)
{ {
((TileEntityFluidDuct)tileentity).uoteab.get(i).ticked = newTact; ((TileEntityFluidDuctSimple)tileentity).uoteab.get(i).ticked = newTact;
transmitFluid(x, y + 1, z, that.getTact(), that, worldObj, type); transmitFluid(x, y + 1, z, that.getTact(), that, worldObj, type);
transmitFluid(x, y - 1, z, that.getTact(), that, worldObj, type); transmitFluid(x, y - 1, z, that.getTact(), that, worldObj, type);
transmitFluid(x - 1, y, z, that.getTact(), that, worldObj, type); transmitFluid(x - 1, y, z, that.getTact(), that, worldObj, type);
@ -516,7 +517,7 @@ public class Library {
} }
} }
} else { } else {
((TileEntityFluidDuct)tileentity).uoteab.add(new UnionOfTileEntitiesAndBooleansForFluids(that, newTact)); ((TileEntityFluidDuctSimple)tileentity).uoteab.add(new UnionOfTileEntitiesAndBooleansForFluids(that, newTact));
} }
} }
if(tileentity instanceof TileEntityGasDuct && ((TileEntityGasDuct)tileentity).type.name().equals(type.name())) if(tileentity instanceof TileEntityGasDuct && ((TileEntityGasDuct)tileentity).type.name().equals(type.name()))

View File

@ -14,6 +14,7 @@ import static com.hbm.inventory.OreDictManager.*;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemBattery; import com.hbm.items.machine.ItemBattery;
import com.hbm.items.special.ItemCircuitStarComponent.CircuitComponentType; import com.hbm.items.special.ItemCircuitStarComponent.CircuitComponentType;
import com.hbm.items.special.ItemHolotapeImage.EnumHoloImage;
import com.hbm.items.special.ItemPlasticScrap.ScrapType; import com.hbm.items.special.ItemPlasticScrap.ScrapType;
import com.hbm.items.tool.ItemGuideBook.BookType; import com.hbm.items.tool.ItemGuideBook.BookType;
import com.hbm.util.EnchantmentUtil; import com.hbm.util.EnchantmentUtil;
@ -314,7 +315,7 @@ public class CraftingManager {
addRecipeAuto(new ItemStack(ModItems.blades_combine_steel, 1), new Object[] { "PIP", 'P', CMB.plate(), 'I', new ItemStack(ModItems.blades_combine_steel, 1, OreDictionary.WILDCARD_VALUE) }); addRecipeAuto(new ItemStack(ModItems.blades_combine_steel, 1), new Object[] { "PIP", 'P', CMB.plate(), 'I', new ItemStack(ModItems.blades_combine_steel, 1, OreDictionary.WILDCARD_VALUE) });
addRecipeAuto(new ItemStack(ModItems.blades_schrabidium, 1), new Object[] { "PIP", 'P', SA326.plate(), 'I', new ItemStack(ModItems.blades_schrabidium, 1, OreDictionary.WILDCARD_VALUE) }); addRecipeAuto(new ItemStack(ModItems.blades_schrabidium, 1), new Object[] { "PIP", 'P', SA326.plate(), 'I', new ItemStack(ModItems.blades_schrabidium, 1, OreDictionary.WILDCARD_VALUE) });
addRecipeAuto(new ItemStack(ModItems.laser_crystal_co2, 1), new Object[] { "QDQ", "NCN", "QDQ", 'Q', ModBlocks.glass_quartz, 'D', DESH.ingot(), 'N', ND.ingot(), 'C', new ItemStack(ModItems.fluid_tank_full, 1, Fluids.CARBONDIOXIDE.getID()) }); addRecipeAuto(new ItemStack(ModItems.laser_crystal_co2, 1), new Object[] { "QDQ", "NCN", "QDQ", 'Q', ModBlocks.glass_quartz, 'D', DESH.ingot(), 'N', NB.ingot(), 'C', new ItemStack(ModItems.fluid_tank_full, 1, Fluids.CARBONDIOXIDE.getID()) });
addRecipeAuto(new ItemStack(ModItems.laser_crystal_bismuth, 1), new Object[] {"QUQ", "BCB", "QTQ", 'Q', ModBlocks.glass_quartz, 'U', U.ingot(), 'T', TH232.ingot(), 'B', ModItems.nugget_bismuth, 'C', ModItems.crystal_rare }); addRecipeAuto(new ItemStack(ModItems.laser_crystal_bismuth, 1), new Object[] {"QUQ", "BCB", "QTQ", 'Q', ModBlocks.glass_quartz, 'U', U.ingot(), 'T', TH232.ingot(), 'B', ModItems.nugget_bismuth, 'C', ModItems.crystal_rare });
addRecipeAuto(new ItemStack(ModItems.laser_crystal_cmb, 1), new Object[] {"QBQ", "CSC", "QBQ", 'Q', ModBlocks.glass_quartz, 'B', CMB.ingot(), 'C', SBD.ingot(), 'S', ModItems.cell_anti_schrabidium }); addRecipeAuto(new ItemStack(ModItems.laser_crystal_cmb, 1), new Object[] {"QBQ", "CSC", "QBQ", 'Q', ModBlocks.glass_quartz, 'B', CMB.ingot(), 'C', SBD.ingot(), 'S', ModItems.cell_anti_schrabidium });
addRecipeAuto(new ItemStack(ModItems.laser_crystal_dnt, 1), new Object[] {"QDQ", "SBS", "QDQ", 'Q', ModBlocks.glass_quartz, 'D', DNT.ingot(), 'B', ModItems.egg_balefire, 'S', ModItems.powder_spark_mix }); addRecipeAuto(new ItemStack(ModItems.laser_crystal_dnt, 1), new Object[] {"QDQ", "SBS", "QDQ", 'Q', ModBlocks.glass_quartz, 'D', DNT.ingot(), 'B', ModItems.egg_balefire, 'S', ModItems.powder_spark_mix });
@ -556,6 +557,7 @@ public class CraftingManager {
addRecipeAuto(new ItemStack(ModBlocks.crystal_pulsar, 32), new Object[] { "STS", "THT", "STS", 'S', ModItems.cell_uf6, 'T', AL.dust(), 'H', ModItems.crystal_charred }); addRecipeAuto(new ItemStack(ModBlocks.crystal_pulsar, 32), new Object[] { "STS", "THT", "STS", 'S', ModItems.cell_uf6, 'T', AL.dust(), 'H', ModItems.crystal_charred });
addRecipeAuto(new ItemStack(ModBlocks.fluid_duct, 8), new Object[] { "SAS", " ", "SAS", 'S', STEEL.plate(), 'A', AL.plate() }); addRecipeAuto(new ItemStack(ModBlocks.fluid_duct, 8), new Object[] { "SAS", " ", "SAS", 'S', STEEL.plate(), 'A', AL.plate() });
addRecipeAuto(new ItemStack(ModBlocks.fluid_duct_solid, 8), new Object[] { "SAS", "A A", "SAS", 'S', STEEL.ingot(), 'A', AL.plate() });
//addRecipeAuto(new ItemStack(ModBlocks.machine_assembler, 1), new Object[] { "WWW", "MCM", "ISI", 'W', KEY_ANYPANE, 'M', ModItems.motor, 'C', ModItems.circuit_aluminium, 'I', "blockCopper", 'S', STEEL.block() }); //addRecipeAuto(new ItemStack(ModBlocks.machine_assembler, 1), new Object[] { "WWW", "MCM", "ISI", 'W', KEY_ANYPANE, 'M', ModItems.motor, 'C', ModItems.circuit_aluminium, 'I', "blockCopper", 'S', STEEL.block() });
addRecipeAuto(new ItemStack(ModItems.template_folder, 1), new Object[] { "LPL", "BPB", "LPL", 'P', Items.paper, 'L', KEY_BLUE, 'B', KEY_WHITE }); addRecipeAuto(new ItemStack(ModItems.template_folder, 1), new Object[] { "LPL", "BPB", "LPL", 'P', Items.paper, 'L', KEY_BLUE, 'B', KEY_WHITE });
//addRecipeAuto(new ItemStack(ModItems.turret_control, 1), new Object[] { "R12", "PPI", " I", 'R', REDSTONE.dust(), '1', ModItems.circuit_aluminium, '2', ModItems.circuit_red_copper, 'P', STEEL.plate(), 'I', STEEL.ingot() }); //addRecipeAuto(new ItemStack(ModItems.turret_control, 1), new Object[] { "R12", "PPI", " I", 'R', REDSTONE.dust(), '1', ModItems.circuit_aluminium, '2', ModItems.circuit_red_copper, 'P', STEEL.plate(), 'I', STEEL.ingot() });
@ -855,6 +857,8 @@ public class CraftingManager {
addShapelessAuto(new ItemStack(ModItems.book_guide, 1, BookType.RBMK.ordinal()), new Object[] { Items.book, Items.potato }); addShapelessAuto(new ItemStack(ModItems.book_guide, 1, BookType.RBMK.ordinal()), new Object[] { Items.book, Items.potato });
addShapelessAuto(new ItemStack(ModItems.book_guide, 1, BookType.HADRON.ordinal()), new Object[] { Items.book, ModItems.fuse }); addShapelessAuto(new ItemStack(ModItems.book_guide, 1, BookType.HADRON.ordinal()), new Object[] { Items.book, ModItems.fuse });
addShapelessAuto(new ItemStack(ModItems.holotape_image, 1, EnumHoloImage.HOLO_RESTORED.ordinal()), new Object[] { new ItemStack(ModItems.holotape_image, 1, EnumHoloImage.HOLO_DIGAMMA.ordinal()), ModItems.screwdriver, ModItems.ducttape, ModItems.armor_polish });
if(GeneralConfig.enableBabyMode) { if(GeneralConfig.enableBabyMode) {
addShapelessAuto(new ItemStack(ModItems.cordite, 3), new Object[] { ModItems.ballistite, Items.gunpowder, new ItemStack(Blocks.wool, 1, OreDictionary.WILDCARD_VALUE) }); addShapelessAuto(new ItemStack(ModItems.cordite, 3), new Object[] { ModItems.ballistite, Items.gunpowder, new ItemStack(Blocks.wool, 1, OreDictionary.WILDCARD_VALUE) });
addShapelessAuto(new ItemStack(ModItems.ingot_semtex, 3), new Object[] { Items.slime_ball, Blocks.tnt, KNO.dust() }); addShapelessAuto(new ItemStack(ModItems.ingot_semtex, 3), new Object[] { Items.slime_ball, Blocks.tnt, KNO.dust() });

View File

@ -949,6 +949,7 @@ public class MainRegistry {
PressRecipes.register(); PressRecipes.register();
RefineryRecipes.registerFractions(); RefineryRecipes.registerFractions();
RefineryRecipes.registerCracking(); RefineryRecipes.registerCracking();
LiquefactionRecipes.register();
FuelPoolRecipes.register(); FuelPoolRecipes.register();
TileEntityNukeCustom.registerBombItems(); TileEntityNukeCustom.registerBombItems();

View File

@ -65,6 +65,8 @@ public class NEIConfig implements IConfigureNEI {
API.registerRecipeHandler(new RTGRecipeHandler()); API.registerRecipeHandler(new RTGRecipeHandler());
API.registerUsageHandler(new RTGRecipeHandler()); API.registerUsageHandler(new RTGRecipeHandler());
} }
API.registerRecipeHandler(new LiquefactionHandler());
API.registerUsageHandler(new LiquefactionHandler());
//Some things are even beyond my control...or are they? //Some things are even beyond my control...or are they?
API.hideItem(ItemBattery.getEmptyBattery(ModItems.memory)); API.hideItem(ItemBattery.getEmptyBattery(ModItems.memory));

View File

@ -1,5 +1,7 @@
package com.hbm.render.block; package com.hbm.render.block;
import org.lwjgl.opengl.GL11;
import com.hbm.blocks.IBlockMultiPass; import com.hbm.blocks.IBlockMultiPass;
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
@ -24,7 +26,41 @@ public class RenderBlockMultipass implements ISimpleBlockRenderingHandler {
public static int currentPass = 0; public static int currentPass = 0;
@Override @Override
public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { } public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) {
Tessellator tessellator = Tessellator.instance;
block.setBlockBoundsForItemRender();
renderer.setRenderBoundsFromBlock(block);
GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F);
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, -1.0F, 0.0F);
renderer.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 0, metadata));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 1.0F, 0.0F);
renderer.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 1, metadata));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 0.0F, -1.0F);
renderer.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 2, metadata));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 0.0F, 1.0F);
renderer.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 3, metadata));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(-1.0F, 0.0F, 0.0F);
renderer.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 4, metadata));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(1.0F, 0.0F, 0.0F);
renderer.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 5, metadata));
tessellator.draw();
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
}
@Override @Override
public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) {
@ -46,8 +82,8 @@ public class RenderBlockMultipass implements ISimpleBlockRenderingHandler {
for(int i = 0; i < passes; i++) { for(int i = 0; i < passes; i++) {
currentPass = i; currentPass = i;
System.out.println(multi.getColorFromPass(world, x, y, z, false)); //System.out.println(multi.getColorFromPass(world, x, y, z, false));
tessellator.setColorOpaque_I(multi.getColorFromPass(world, x, y, z, false)); //tessellator.setColorOpaque_I(multi.getColorFromPass(world, x, y, z, false));
renderer.renderStandardBlock(block, x, y, z); renderer.renderStandardBlock(block, x, y, z);
} }
@ -58,7 +94,7 @@ public class RenderBlockMultipass implements ISimpleBlockRenderingHandler {
@Override @Override
public boolean shouldRender3DInInventory(int modelId) { public boolean shouldRender3DInInventory(int modelId) {
return false; return true;
} }
@Override @Override

View File

@ -2,8 +2,8 @@ package com.hbm.render.block;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
import com.hbm.blocks.bomb.DetCord;
import com.hbm.blocks.bomb.IDetConnectible; import com.hbm.blocks.bomb.IDetConnectible;
import com.hbm.blocks.test.TestConductor;
import com.hbm.lib.Library; import com.hbm.lib.Library;
import com.hbm.main.ResourceManager; import com.hbm.main.ResourceManager;
import com.hbm.render.util.ObjUtil; import com.hbm.render.util.ObjUtil;
@ -33,7 +33,7 @@ public class RenderDetCord implements ISimpleBlockRenderingHandler {
GL11.glRotated(180, 0, 1, 0); GL11.glRotated(180, 0, 1, 0);
GL11.glScaled(1.25D, 1.25D, 1.25D); GL11.glScaled(1.25D, 1.25D, 1.25D);
tessellator.startDrawingQuads(); tessellator.startDrawingQuads();
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "CX", iicon, tessellator, 0, false); ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "CZ", iicon, tessellator, 0, false);
tessellator.draw(); tessellator.draw();
GL11.glPopMatrix(); GL11.glPopMatrix();
@ -60,13 +60,15 @@ public class RenderDetCord implements ISimpleBlockRenderingHandler {
boolean pZ = IDetConnectible.isConnectible(world, x, y, z + 1, Library.NEG_Z); boolean pZ = IDetConnectible.isConnectible(world, x, y, z + 1, Library.NEG_Z);
boolean nZ = IDetConnectible.isConnectible(world, x, y, z - 1, Library.POS_Z); boolean nZ = IDetConnectible.isConnectible(world, x, y, z - 1, Library.POS_Z);
int mask = 0 + (pX ? 32 : 0) + (nX ? 16 : 0) + (pY ? 8 : 0) + (nY ? 4 : 0) + (pZ ? 2 : 0) + (nZ ? 1 : 0);
tessellator.addTranslation(x + 0.5F, y + 0.5F, z + 0.5F); tessellator.addTranslation(x + 0.5F, y + 0.5F, z + 0.5F);
if(pX && nX && !pY && !nY && !pZ && !nZ) if(mask == 0b110000 || mask == 0b100000 || mask == 0b010000)
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "CX", iicon, tessellator, 0, true); ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "CX", iicon, tessellator, 0, true);
else if(!pX && !nX && pY && nY && !pZ && !nZ) else if(mask == 0b001100 || mask == 0b001000 || mask == 0b000100)
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "CY", iicon, tessellator, 0, true); ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "CY", iicon, tessellator, 0, true);
else if(!pX && !nX && !pY && !nY && pZ && nZ) else if(mask == 0b000011 || mask == 0b000010 || mask == 0b000001)
ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "CZ", iicon, tessellator, 0, true); ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.cable_neo, "CZ", iicon, tessellator, 0, true);
else { else {
@ -91,6 +93,6 @@ public class RenderDetCord implements ISimpleBlockRenderingHandler {
@Override @Override
public int getRenderId() { public int getRenderId() {
return TestConductor.renderID; return DetCord.renderID;
} }
} }

View File

@ -143,7 +143,7 @@ public abstract class TileEntityMachineBase extends TileEntity implements ISided
//was it update? onUpdate? updateTile? did it have any args? //was it update? onUpdate? updateTile? did it have any args?
//shit i don't know man //shit i don't know man
@Override @Override
public abstract void updateEntity(); public abstract void updateEntity();
@Deprecated @Deprecated
public void updateGauge(int val, int id, int range) { public void updateGauge(int val, int id, int range) {

View File

@ -238,6 +238,7 @@ public class TileMappings {
put(TileEntityTowerLarge.class, "tileentity_cooling_tower_large"); put(TileEntityTowerLarge.class, "tileentity_cooling_tower_large");
put(TileEntityDeuteriumExtractor.class, "tileentity_deuterium_extractor"); put(TileEntityDeuteriumExtractor.class, "tileentity_deuterium_extractor");
put(TileEntityDeuteriumTower.class, "tileentity_deuterium_tower"); put(TileEntityDeuteriumTower.class, "tileentity_deuterium_tower");
put(TileEntityMachineLiquefactor.class, "tileentity_liquefactor");
put(TileEntityMachineOilWell.class, "tileentity_derrick"); put(TileEntityMachineOilWell.class, "tileentity_derrick");
put(TileEntityMachinePumpjack.class, "tileentity_machine_pumpjack"); put(TileEntityMachinePumpjack.class, "tileentity_machine_pumpjack");

View File

@ -23,35 +23,8 @@ import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityFluidDuct extends TileEntityFluidDuctSimple { public class TileEntityFluidDuct extends TileEntityFluidDuctSimple {
public ForgeDirection[] connections = new ForgeDirection[6];
public TileEntityFluidDuct() { } public TileEntityFluidDuct() { }
@Override
public void updateEntity() {
this.updateConnections();
}
public void updateConnections() {
if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord + 1, zCoord, type)) connections[0] = ForgeDirection.UP;
else connections[0] = null;
if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord - 1, zCoord, type)) connections[1] = ForgeDirection.DOWN;
else connections[1] = null;
if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord, zCoord - 1, type)) connections[2] = ForgeDirection.NORTH;
else connections[2] = null;
if(Library.checkFluidConnectables(this.worldObj, xCoord + 1, yCoord, zCoord, type)) connections[3] = ForgeDirection.EAST;
else connections[3] = null;
if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord, zCoord + 1, type)) connections[4] = ForgeDirection.SOUTH;
else connections[4] = null;
if(Library.checkFluidConnectables(this.worldObj, xCoord - 1, yCoord, zCoord, type)) connections[5] = ForgeDirection.WEST;
else connections[5] = null;
}
@Override @Override
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public double getMaxRenderDistanceSquared() { public double getMaxRenderDistanceSquared() {

View File

@ -7,6 +7,7 @@ import com.hbm.calc.UnionOfTileEntitiesAndBooleansForFluids;
import com.hbm.interfaces.IFluidDuct; import com.hbm.interfaces.IFluidDuct;
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.lib.Library;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.NetworkManager; import net.minecraft.network.NetworkManager;
@ -14,12 +15,17 @@ import net.minecraft.network.Packet;
import net.minecraft.network.play.server.S35PacketUpdateTileEntity; import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.WorldServer; import net.minecraft.world.WorldServer;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityFluidDuctSimple extends TileEntity implements IFluidDuct { public class TileEntityFluidDuctSimple extends TileEntity implements IFluidDuct {
private FluidType lastType = Fluids.NONE;
protected FluidType type = Fluids.NONE; protected FluidType type = Fluids.NONE;
public List<UnionOfTileEntitiesAndBooleansForFluids> uoteab = new ArrayList<UnionOfTileEntitiesAndBooleansForFluids>(); public List<UnionOfTileEntitiesAndBooleansForFluids> uoteab = new ArrayList<UnionOfTileEntitiesAndBooleansForFluids>();
public ForgeDirection[] connections = new ForgeDirection[6];
@Override @Override
public Packet getDescriptionPacket() { public Packet getDescriptionPacket() {
NBTTagCompound nbt = new NBTTagCompound(); NBTTagCompound nbt = new NBTTagCompound();
@ -64,4 +70,29 @@ public class TileEntityFluidDuctSimple extends TileEntity implements IFluidDuct
public FluidType getType() { public FluidType getType() {
return type; return type;
} }
@Override
public void updateEntity() {
this.updateConnections();
if(lastType != type) {
worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
lastType = type;
}
}
public void updateConnections() {
if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord + 1, zCoord, type)) connections[0] = ForgeDirection.UP;
else connections[0] = null;
if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord - 1, zCoord, type)) connections[1] = ForgeDirection.DOWN;
else connections[1] = null;
if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord, zCoord - 1, type)) connections[2] = ForgeDirection.NORTH;
else connections[2] = null;
if(Library.checkFluidConnectables(this.worldObj, xCoord + 1, yCoord, zCoord, type)) connections[3] = ForgeDirection.EAST;
else connections[3] = null;
if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord, zCoord + 1, type)) connections[4] = ForgeDirection.SOUTH;
else connections[4] = null;
if(Library.checkFluidConnectables(this.worldObj, xCoord - 1, yCoord, zCoord, type)) connections[5] = ForgeDirection.WEST;
else connections[5] = null;
}
} }

View File

@ -3,6 +3,7 @@ package com.hbm.tileentity.machine;
import com.hbm.calc.Location; import com.hbm.calc.Location;
import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.TileEntityMachineBase;
import api.hbm.energy.IEnergyConnector;
import api.hbm.energy.IEnergyUser; import api.hbm.energy.IEnergyUser;
import cofh.api.energy.EnergyStorage; import cofh.api.energy.EnergyStorage;
import cofh.api.energy.IEnergyHandler; import cofh.api.energy.IEnergyHandler;
@ -11,72 +12,19 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityConverterHeRf extends TileEntityMachineBase implements IEnergyUser, IEnergyHandler { public class TileEntityConverterHeRf extends TileEntity implements IEnergyConnector, IEnergyHandler {
public TileEntityConverterHeRf() { //Thanks to the great people of Fusion Warfare for helping me with the original implementation of the RF energy API
super(0);
}
@Override
public String getName() {
return "";
}
public long power;
public long maxPower = 500000000;
public EnergyStorage storage = new EnergyStorage(2000000000, 2000000000, 2000000000);
public int buf;
//Thanks to the great people of Fusion Warfare for helping me with this part.
@Override @Override
public void updateEntity() { public void updateEntity() {
if (!worldObj.isRemote) {
if (!worldObj.isRemote) {
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS)
this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir);
storage.setCapacity((int)power * 4);
storage.setEnergyStored((int)power * 4);
buf = storage.getEnergyStored();
for (ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
Location loc = new Location(worldObj, xCoord, yCoord, zCoord).add(dir);
TileEntity entity = loc.getTileEntity();
if (entity != null && entity instanceof IEnergyReceiver) {
IEnergyReceiver receiver = (IEnergyReceiver) entity;
int maxExtract = storage.getMaxExtract();
int maxAvailable = storage.extractEnergy(maxExtract, true);
int energyTransferred = receiver.receiveEnergy(dir.getOpposite(), maxAvailable, false);
storage.extractEnergy(energyTransferred, false);
}
}
power = storage.getEnergyStored() / 4;
NBTTagCompound data = new NBTTagCompound();
data.setInteger("rf", storage.getEnergyStored());
data.setInteger("maxrf", storage.getEnergyStored());
data.setLong("he", power);
data.setLong("maxhe", power);
this.networkPack(data, 25);
} }
} }
public void networkUnpack(NBTTagCompound nbt) {
storage.setEnergyStored(nbt.getInteger("rf"));
storage.setCapacity(nbt.getInteger("maxrf"));
power = nbt.getLong("he");
maxPower = nbt.getLong("maxhe");
}
@Override @Override
public boolean canConnectEnergy(ForgeDirection from) { public boolean canConnectEnergy(ForgeDirection from) {
return true; return true;
@ -84,64 +32,56 @@ public class TileEntityConverterHeRf extends TileEntityMachineBase implements IE
@Override @Override
public int extractEnergy(ForgeDirection from, int maxExtract, boolean simulate) { public int extractEnergy(ForgeDirection from, int maxExtract, boolean simulate) {
return storage.extractEnergy(maxExtract, simulate); return 0;
} }
@Override @Override
public int getEnergyStored(ForgeDirection from) { public int getEnergyStored(ForgeDirection from) {
return storage.getEnergyStored(); return 0;
} }
@Override @Override
public int getMaxEnergyStored(ForgeDirection from) { public int getMaxEnergyStored(ForgeDirection from) {
return storage.getMaxEnergyStored(); return 0;
}
@Override
public void setPower(long i) {
power = i;
} }
@Override @Override
public long getPower() { public long getPower() {
return power; return 0;
} }
@Override @Override
public long getMaxPower() { public long getMaxPower() {
return Integer.MAX_VALUE / 4;
if(power < 1000000)
return 500000000;//Long.MAX_VALUE / 100;
return maxPower;
}
public long getPowerScaled(long i) {
return (power * i) / maxPower;
}
public long getFluxScaled(long i) {
return (storage.getEnergyStored() * i) / storage.getMaxEnergyStored();
}
@Override
public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt);
this.power = nbt.getLong("power");
storage.readFromNBT(nbt);
}
@Override
public void writeToNBT(NBTTagCompound nbt) {
super.writeToNBT(nbt);
nbt.setLong("power", power);
storage.writeToNBT(nbt);
} }
@Override @Override
public int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate) { public int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate) {
return 0; return 0;
} }
@Override
public long transferPower(long power) {
// we have to limit the transfer amount because otherwise FEnSUs would overflow the RF output, twice
long out = Math.min(power, Long.MAX_VALUE / 4);
int toRF = (int) Math.min(Integer.MAX_VALUE, out * 4);
int energyTransferred = 0;
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
Location loc = new Location(worldObj, xCoord, yCoord, zCoord).add(dir);
TileEntity entity = loc.getTileEntity();
if(entity != null && entity instanceof IEnergyReceiver) {
IEnergyReceiver receiver = (IEnergyReceiver) entity;
energyTransferred = receiver.receiveEnergy(dir.getOpposite(), toRF, false);
toRF -= energyTransferred; //to prevent energy duping
}
}
return power - (energyTransferred / 4);
}
} }

View File

@ -1,16 +1,9 @@
package com.hbm.tileentity.machine; package com.hbm.tileentity.machine;
import java.util.ArrayList;
import java.util.List;
import com.hbm.interfaces.Untested; import com.hbm.interfaces.Untested;
import com.hbm.lib.Library;
import com.hbm.tileentity.TileEntityMachineBase;
import api.hbm.energy.IEnergyGenerator; import api.hbm.energy.IEnergyGenerator;
import cofh.api.energy.EnergyStorage;
import cofh.api.energy.IEnergyHandler; import cofh.api.energy.IEnergyHandler;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;

View File

@ -0,0 +1,192 @@
package com.hbm.tileentity.machine;
import java.util.ArrayList;
import java.util.List;
import com.hbm.interfaces.IFluidAcceptor;
import com.hbm.interfaces.IFluidSource;
import com.hbm.inventory.FluidStack;
import com.hbm.inventory.FluidTank;
import com.hbm.inventory.fluid.FluidType;
import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.recipes.LiquefactionRecipes;
import com.hbm.lib.Library;
import com.hbm.tileentity.TileEntityMachineBase;
import api.hbm.energy.IEnergyUser;
import net.minecraft.nbt.NBTTagCompound;
public class TileEntityMachineLiquefactor extends TileEntityMachineBase implements IEnergyUser, IFluidSource {
public long power;
public static final long maxPower = 100000;
public static final int usage = 500;
public int progress;
public static final int processTime = 200;
public FluidTank tank;
public TileEntityMachineLiquefactor() {
super(4);
tank = new FluidTank(Fluids.NONE, 24000, 0);
}
@Override
public String getName() {
return "container.machineLiquefactor";
}
@Override
public void updateEntity() {
if(!worldObj.isRemote) {
this.power = Library.chargeTEFromItems(slots, 1, power, maxPower);
tank.updateTank(this);
this.trySubscribe(worldObj, xCoord + 2, yCoord + 1, zCoord, Library.POS_X);
this.trySubscribe(worldObj, xCoord - 2, yCoord + 1, zCoord, Library.NEG_X);
this.trySubscribe(worldObj, xCoord, yCoord + 1, zCoord + 2, Library.POS_Z);
this.trySubscribe(worldObj, xCoord, yCoord + 1, zCoord - 2, Library.NEG_Z);
if(this.canProcess())
this.process();
else
this.progress = 0;
if(worldObj.getTotalWorldTime() % 10 == 0) {
this.fillFluidInit(tank.getTankType());
}
NBTTagCompound data = new NBTTagCompound();
data.setLong("power", this.power);
data.setInteger("progress", this.progress);
this.networkPack(data, 50);
}
}
public boolean canProcess() {
if(this.power < usage)
return false;
if(slots[0] == null)
return false;
FluidStack out = LiquefactionRecipes.getOutput(slots[0]);
if(out.type != tank.getTankType() && tank.getFill() > 0)
return false;
if(out.fill + tank.getFill() > tank.getMaxFill())
return false;
return true;
}
public void process() {
this.power -= usage;
progress++;
if(progress >= processTime) {
FluidStack out = LiquefactionRecipes.getOutput(slots[0]);
tank.setTankType(out.type);
tank.setFill(tank.getFill() + out.fill);
this.decrStackSize(0, 1);
progress = 0;
this.markDirty();
}
}
public void networkUnpack(NBTTagCompound nbt) {
this.power = nbt.getLong("power");
this.progress = nbt.getInteger("progress");
}
@Override
public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt);
tank.readFromNBT(nbt, "tank");
}
@Override
public void writeToNBT(NBTTagCompound nbt) {
super.writeToNBT(nbt);
tank.writeToNBT(nbt, "tank");
}
@Override
public void setPower(long power) {
this.power = power;
}
@Override
public long getPower() {
return power;
}
@Override
public long getMaxPower() {
return maxPower;
}
@Override
public void setFillstate(int fill, int index) {
tank.setFill(fill);
}
@Override
public void setFluidFill(int fill, FluidType type) {
if(type == tank.getTankType())
tank.setFill(fill);
}
@Override
public void setType(FluidType type, int index) {
tank.setTankType(type);
}
@Override
public List<FluidTank> getTanks() {
List<FluidTank> tanks = new ArrayList();
tanks.add(tank);
return tanks;
}
@Override
public int getFluidFill(FluidType type) {
return type == tank.getTankType() ? tank.getFill() : 0;
}
@Override
public void fillFluidInit(FluidType type) {
fillFluid(xCoord, yCoord - 1, zCoord, getTact(), type);
fillFluid(xCoord, yCoord + 3, zCoord, getTact(), type);
}
@Override
public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) {
Library.transmitFluid(x, y, z, newTact, this, worldObj, type);
}
@Override
public boolean getTact() {
return worldObj.getTotalWorldTime() % 20 < 10;
}
private List<IFluidAcceptor> consumers = new ArrayList();
@Override
public List<IFluidAcceptor> getFluidList(FluidType type) {
return consumers;
}
@Override
public void clearFluidList(FluidType type) {
consumers.clear();
}
}

View File

@ -234,8 +234,10 @@ container.machineCMB=CMB-Stahl Hochofen
container.machineCoal=Verbrennungsgenerator container.machineCoal=Verbrennungsgenerator
container.machineDiesel=Dieselgenerator container.machineDiesel=Dieselgenerator
container.machineElectricBoiler=Elektrischer Boiler container.machineElectricBoiler=Elektrischer Boiler
container.machineFEL=FEL
container.machineITER=Kernfusionsreaktor container.machineITER=Kernfusionsreaktor
container.machineLargeTurbine=Industrielle Dampfturbine container.machineLargeTurbine=Industrielle Dampfturbine
container.machineLiquefactor=Verflüssiger
container.machineRefinery=Ölraffinerie container.machineRefinery=Ölraffinerie
container.machineSelenium=Hochleistungs-Sternmotor container.machineSelenium=Hochleistungs-Sternmotor
container.machineShredder=Brecher container.machineShredder=Brecher
@ -438,6 +440,7 @@ hazard.particleFine=Feinstaub
hazard.sand=Augenreizstoffe hazard.sand=Augenreizstoffe
hbm.key=NTM Hotkeys hbm.key=NTM Hotkeys
hbm.key.calculator=Taschenrechner
hbm.key.craneLoad=Kran laden/entladen hbm.key.craneLoad=Kran laden/entladen
hbm.key.craneMoveDown=Kran rückwärts hbm.key.craneMoveDown=Kran rückwärts
hbm.key.craneMoveLeft=Kran nach links hbm.key.craneMoveLeft=Kran nach links
@ -1530,6 +1533,7 @@ item.hev_boots.name=HEV Mark IV Stiefel
item.hev_plate.name=HEV Mark IV Brustpanzer item.hev_plate.name=HEV Mark IV Brustpanzer
item.hev_helmet.name=HEV Mark IV Helm item.hev_helmet.name=HEV Mark IV Helm
item.hev_legs.name=HEV Mark IV Beinschutz item.hev_legs.name=HEV Mark IV Beinschutz
item.holotape_image.name=Holoband
item.horseshoe_magnet.name=Hufeisenmagnet item.horseshoe_magnet.name=Hufeisenmagnet
item.hull_big_aluminium.name=Große Aluminiumhülle item.hull_big_aluminium.name=Große Aluminiumhülle
item.hull_big_steel.name=Große Stahlhülle item.hull_big_steel.name=Große Stahlhülle
@ -1657,6 +1661,15 @@ item.key.name=Schlüssel
item.key_fake.name=Gefälschter Schlüssel item.key_fake.name=Gefälschter Schlüssel
item.key_kit.name=Schlüssel-Imitationskit item.key_kit.name=Schlüssel-Imitationskit
item.key_red.name=Roter Schlüssel item.key_red.name=Roter Schlüssel
item.laser_crystal_bismuth.desc=Bismuth-Samarium-Uran-Thorium-Kristallmatrix
item.laser_crystal_bismuth.name=BiSmUTh-Laserkristall
item.laser_crystal_cmb.desc=Antischrabidium in einem CMB-Schrabidat Legierungsgitter
item.laser_crystal_cmb.name=CMB-Schrabidat-Antimaterie-Laserkristall
item.laser_crystal_co2.desc=Kohlenstoffdioxid in kristallinem Desh
item.laser_crystal_co2.name=CO2-Desh-Laserkristall
item.laser_crystal_digamma.name=Digamma-Laserkristall
item.laser_crystal_dnt.desc=Dineutronium-Spark Fermion Superkristall
item.laser_crystal_dnt.name=Spark-Laserkristall
item.lead_gavel.name=Bleierner Richterhammer item.lead_gavel.name=Bleierner Richterhammer
item.lemon.name="Zitrone" item.lemon.name="Zitrone"
item.letter.name=Eilbrief item.letter.name=Eilbrief
@ -3058,6 +3071,7 @@ tile.fireworks.color=Farbe: %s
tile.flame_war.name=Flamewar aus der Box tile.flame_war.name=Flamewar aus der Box
tile.float_bomb.name=Schwebebombe tile.float_bomb.name=Schwebebombe
tile.fluid_duct.name=Universelles Flüssigkeitsrohr tile.fluid_duct.name=Universelles Flüssigkeitsrohr
tile.fluid_duct_solid.name=Geschirmtes universelles Flüssigkeitsrohr
tile.foam_layer.name=Schaumdecke tile.foam_layer.name=Schaumdecke
tile.fraction_spacer.name=Fraktionierungsturm-Teiler tile.fraction_spacer.name=Fraktionierungsturm-Teiler
tile.frozen_dirt.name=Gefrorene Erde tile.frozen_dirt.name=Gefrorene Erde
@ -3187,6 +3201,7 @@ tile.machine_drill.name=Automatischer Minenbohrer
tile.machine_electric_furnace_off.name=Elektrischer Ofen tile.machine_electric_furnace_off.name=Elektrischer Ofen
tile.machine_electric_furnace_on.name=Elektrischer Ofen tile.machine_electric_furnace_on.name=Elektrischer Ofen
tile.machine_epress.name=Hydraulische Presse tile.machine_epress.name=Hydraulische Presse
tile.machine_fel.name=FEL
tile.machine_fensu.name=FEnSU tile.machine_fensu.name=FEnSU
tile.machine_flare.name=Abfackelturm tile.machine_flare.name=Abfackelturm
tile.machine_fluidtank.name=Tank tile.machine_fluidtank.name=Tank
@ -3587,6 +3602,17 @@ tool.ability.shredder=Auto-Brecher
tool.ability.silktouch=Behutsamkeit tool.ability.silktouch=Behutsamkeit
tool.ability.smelter=Auto-Ofen tool.ability.smelter=Auto-Ofen
wavelengths.name.ir=Infrarot
wavelengths.name.visible=Sichtbares Licht
wavelengths.name.uv=Ultraviolett
wavelengths.name.gamma=Gamma
wavelengths.name.drx=Digamma
wavelengths.waveRange.ir=780nm-1mm
wavelengths.waveRange.visible=400nm-780nm
wavelengths.waveRange.uv=100nm-400nm
wavelengths.waveRange.gamma=<100pm
wavelengths.waveRange.drx=1916169 Plancklängen
weapon.ability.beheader=Köpfer weapon.ability.beheader=Köpfer
weapon.ability.bobble=Glück des Sammlers weapon.ability.bobble=Glück des Sammlers
# Should rhyme with the translation for "chainsaw" # Should rhyme with the translation for "chainsaw"

View File

@ -367,8 +367,10 @@ container.machineCMB=CMB Steel Furnace
container.machineCoal=Combustion Generator container.machineCoal=Combustion Generator
container.machineDiesel=Diesel Generator container.machineDiesel=Diesel Generator
container.machineElectricBoiler=Electric Boiler container.machineElectricBoiler=Electric Boiler
container.machineFEL=FEL
container.machineITER=Fusion Reactor container.machineITER=Fusion Reactor
container.machineLargeTurbine=Industrial Steam Turbine container.machineLargeTurbine=Industrial Steam Turbine
container.machineLiquefactor=Liquefactor
container.machineRefinery=Oil Refinery container.machineRefinery=Oil Refinery
container.machineSelenium=Radial Performance Engine container.machineSelenium=Radial Performance Engine
container.machineShredder=Shredder container.machineShredder=Shredder
@ -575,6 +577,7 @@ hazard.particleFine=Particulates
hazard.sand=Eye Irritants hazard.sand=Eye Irritants
hbm.key=NTM Hotkeys hbm.key=NTM Hotkeys
hbm.key.calculator=Calculator
hbm.key.craneLoad=Load/Unload Crane hbm.key.craneLoad=Load/Unload Crane
hbm.key.craneMoveDown=Move Crane Backward hbm.key.craneMoveDown=Move Crane Backward
hbm.key.craneMoveLeft=Move Crane Left hbm.key.craneMoveLeft=Move Crane Left
@ -1702,6 +1705,7 @@ item.hev_boots.name=HEV Mark IV Boots
item.hev_plate.name=HEV Mark IV Chestplate item.hev_plate.name=HEV Mark IV Chestplate
item.hev_helmet.name=HEV Mark IV Helmet item.hev_helmet.name=HEV Mark IV Helmet
item.hev_legs.name=HEV Mark IV Leggings item.hev_legs.name=HEV Mark IV Leggings
item.holotape_image.name=Holotape
item.horseshoe_magnet.name=Horseshoe Magnet item.horseshoe_magnet.name=Horseshoe Magnet
item.hull_big_aluminium.name=Big Aluminium Shell item.hull_big_aluminium.name=Big Aluminium Shell
item.hull_big_steel.name=Big Steel Shell item.hull_big_steel.name=Big Steel Shell
@ -1849,6 +1853,15 @@ item.key_kit.name=Key Imitation Kit
item.key_red.name=Red Key item.key_red.name=Red Key
item.key_red.desc=Explore the other side. item.key_red.desc=Explore the other side.
item.key_red.desc.P11=§4e§r item.key_red.desc.P11=§4e§r
item.laser_crystal_bismuth.desc=Bismuth-Samarium-Uranium-Thorium crystal matrix
item.laser_crystal_bismuth.name=BiSmUTh Laser Crystal
item.laser_crystal_cmb.desc=Antischrabidium Suspended in a CMB-Schrabidate Alloy Lattice
item.laser_crystal_cmb.name=CMB-Schrabidate Antimatter Laser Crystal
item.laser_crystal_co2.desc=Carbon Dioxide encased in Crystalline Desh
item.laser_crystal_co2.name=CO2-Desh Laser Crystal
item.laser_crystal_digamma.name=Digamma Laser Crystal
item.laser_crystal_dnt.desc=Dineutronium-Spark Fermion Supercrystal
item.laser_crystal_dnt.name=Spark Laser Crystal
item.lead_gavel.name=Leaden Gavel item.lead_gavel.name=Leaden Gavel
item.lemon.name="Lemon" item.lemon.name="Lemon"
item.letter.name=Express Mail item.letter.name=Express Mail
@ -3375,6 +3388,7 @@ tile.fireworks.color=Color: %s
tile.flame_war.name=Flame War in a Box tile.flame_war.name=Flame War in a Box
tile.float_bomb.name=Levitation Bomb tile.float_bomb.name=Levitation Bomb
tile.fluid_duct.name=Universal Fluid Duct tile.fluid_duct.name=Universal Fluid Duct
tile.fluid_duct_solid.name=Coated Universal Fluid Duct
tile.foam_layer.name=Foam layer tile.foam_layer.name=Foam layer
tile.fraction_spacer.name=Fractioning Tower Separator tile.fraction_spacer.name=Fractioning Tower Separator
tile.frozen_dirt.name=Frozen Dirt tile.frozen_dirt.name=Frozen Dirt
@ -3504,6 +3518,7 @@ tile.machine_drill.name=Automatic Mining Drill
tile.machine_electric_furnace_off.name=Electric Furnace tile.machine_electric_furnace_off.name=Electric Furnace
tile.machine_electric_furnace_on.name=Electric Furnace tile.machine_electric_furnace_on.name=Electric Furnace
tile.machine_epress.name=Electric Press tile.machine_epress.name=Electric Press
tile.machine_fel.name=FEL
tile.machine_fensu.name=FEnSU tile.machine_fensu.name=FEnSU
tile.machine_flare.name=Gas Flare tile.machine_flare.name=Gas Flare
tile.machine_fluidtank.name=Tank tile.machine_fluidtank.name=Tank
@ -3902,6 +3917,17 @@ tool.ability.shredder=Auto-Shredder
tool.ability.silktouch=Silk Touch tool.ability.silktouch=Silk Touch
tool.ability.smelter=Auto-Smelter tool.ability.smelter=Auto-Smelter
wavelengths.name.ir=Infrared
wavelengths.name.visible=Visible Light
wavelengths.name.uv=Ultraviolet
wavelengths.name.gamma=Gamma
wavelengths.name.drx=Digamma
wavelengths.waveRange.ir=780nm-1mm
wavelengths.waveRange.visible=400nm-780nm
wavelengths.waveRange.uv=100nm-400nm
wavelengths.waveRange.gamma=<100pm
wavelengths.waveRange.drx=1916169 planck lengths
weapon.ability.beheader=Decapitator weapon.ability.beheader=Decapitator
weapon.ability.bobble=Luck of the Collector weapon.ability.bobble=Luck of the Collector
# Should rhyme with the translation for "chainsaw" # Should rhyme with the translation for "chainsaw"

Binary file not shown.

After

Width:  |  Height:  |  Size: 530 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 348 B

After

Width:  |  Height:  |  Size: 339 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 566 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB