mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
Merge branch 'HbmMods:master' into master
This commit is contained in:
commit
a2ee16b02a
@ -1,6 +1,5 @@
|
||||
package api.hbm.energy;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.packet.AuxParticlePacketNT;
|
||||
import com.hbm.packet.PacketDispatcher;
|
||||
|
||||
|
||||
@ -8,8 +8,6 @@ public interface IBlockMultiPass {
|
||||
|
||||
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 getRenderType() {
|
||||
return renderID;
|
||||
|
||||
@ -904,6 +904,9 @@ public class ModBlocks {
|
||||
public static Block machine_deuterium_extractor;
|
||||
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_condenser;
|
||||
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_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);
|
||||
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_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");
|
||||
@ -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_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_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");
|
||||
@ -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_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_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_deuterium_extractor, machine_deuterium_extractor.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_waste_drum, machine_waste_drum.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_storage_drum, machine_storage_drum.getUnlocalizedName());
|
||||
|
||||
@ -1,8 +1,5 @@
|
||||
package com.hbm.blocks.bomb;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.interfaces.IBomb.BombReturnCode;
|
||||
|
||||
import cpw.mods.fml.client.registry.RenderingRegistry;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
@ -12,7 +9,7 @@ import net.minecraft.world.World;
|
||||
|
||||
public class DetCord extends Block implements IDetConnectible {
|
||||
|
||||
protected DetCord(Material p_i45394_1_) {
|
||||
public DetCord(Material p_i45394_1_) {
|
||||
super(p_i45394_1_);
|
||||
}
|
||||
|
||||
|
||||
@ -4,9 +4,7 @@ import com.hbm.tileentity.machine.TileEntityConverterHeRf;
|
||||
|
||||
import net.minecraft.block.BlockContainer;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.ChatComponentText;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
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_) {
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -25,7 +25,21 @@ public class MachineDeaerator extends BlockDummyable {
|
||||
|
||||
@Override
|
||||
public int getOffset() {
|
||||
return 4;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRenderType() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOpaqueCube() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean renderAsNormalBlock() {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
98
src/main/java/com/hbm/blocks/machine/MachineLiquefactor.java
Normal file
98
src/main/java/com/hbm/blocks/machine/MachineLiquefactor.java
Normal 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 + "");
|
||||
}
|
||||
}
|
||||
@ -1,7 +1,6 @@
|
||||
package com.hbm.blocks.network;
|
||||
|
||||
import com.hbm.blocks.IBlockMultiPass;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.render.block.RenderBlockMultipass;
|
||||
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.material.Material;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
@ -52,14 +50,12 @@ public class BlockFluidDuctSolid extends BlockContainer implements IBlockMultiPa
|
||||
}
|
||||
|
||||
@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)
|
||||
return 0xffffff;
|
||||
|
||||
if(inv)
|
||||
return Fluids.NONE.getColor();
|
||||
|
||||
TileEntityFluidDuctSimple te = (TileEntityFluidDuctSimple) world.getTileEntity(x, y, z);
|
||||
|
||||
if(te != null) {
|
||||
|
||||
@ -27,6 +27,11 @@ public class GUIHandler implements IGuiHandler {
|
||||
@Override
|
||||
public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
|
||||
TileEntity entity = world.getTileEntity(x, y, z);
|
||||
|
||||
if(entity instanceof TileEntityMachineLiquefactor) {
|
||||
return new ContainerLiquefactor(player.inventory, (TileEntityMachineLiquefactor) entity);
|
||||
}
|
||||
|
||||
switch(ID) {
|
||||
case ModBlocks.guiID_test_difurnace: {
|
||||
if(entity instanceof TileEntityDiFurnace) {
|
||||
@ -210,13 +215,6 @@ public class GUIHandler implements IGuiHandler {
|
||||
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: {
|
||||
if(entity instanceof TileEntityMachineSchrabidiumTransmutator) {
|
||||
return new ContainerMachineSchrabidiumTransmutator(player.inventory, (TileEntityMachineSchrabidiumTransmutator) entity);
|
||||
@ -869,6 +867,11 @@ public class GUIHandler implements IGuiHandler {
|
||||
@Override
|
||||
public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
|
||||
TileEntity entity = world.getTileEntity(x, y, z);
|
||||
|
||||
if(entity instanceof TileEntityMachineLiquefactor) {
|
||||
return new GUILiquefactor(player.inventory, (TileEntityMachineLiquefactor) entity);
|
||||
}
|
||||
|
||||
switch(ID) {
|
||||
case ModBlocks.guiID_test_difurnace: {
|
||||
if(entity instanceof TileEntityDiFurnace) {
|
||||
@ -1052,13 +1055,6 @@ public class GUIHandler implements IGuiHandler {
|
||||
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: {
|
||||
if(entity instanceof TileEntityMachineSchrabidiumTransmutator) {
|
||||
return new GUIMachineSchrabidiumTransmutator(player.inventory, (TileEntityMachineSchrabidiumTransmutator) entity);
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
package com.hbm.handler;
|
||||
|
||||
import com.hbm.inventory.gui.GUICalculator;
|
||||
import cpw.mods.fml.common.FMLCommonHandler;
|
||||
import org.lwjgl.input.Keyboard;
|
||||
|
||||
import com.hbm.extprop.HbmPlayerProps;
|
||||
@ -16,6 +18,7 @@ public class HbmKeybinds {
|
||||
|
||||
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 hudKey = new KeyBinding(category + ".toggleHUD", Keyboard.KEY_V, category);
|
||||
public static KeyBinding reloadKey = new KeyBinding(category + ".reload", Keyboard.KEY_R, category);
|
||||
@ -25,12 +28,13 @@ public class HbmKeybinds {
|
||||
public static KeyBinding craneLeftKey = new KeyBinding(category + ".craneMoveLeft", Keyboard.KEY_LEFT, category);
|
||||
public static KeyBinding craneRightKey = new KeyBinding(category + ".craneMoveRight", Keyboard.KEY_RIGHT, category);
|
||||
public static KeyBinding craneLoadKey = new KeyBinding(category + ".craneLoad", Keyboard.KEY_RETURN, category);
|
||||
|
||||
|
||||
public static void register() {
|
||||
ClientRegistry.registerKeyBinding(calculatorKey);
|
||||
ClientRegistry.registerKeyBinding(jetpackKey);
|
||||
ClientRegistry.registerKeyBinding(hudKey);
|
||||
ClientRegistry.registerKeyBinding(reloadKey);
|
||||
|
||||
|
||||
ClientRegistry.registerKeyBinding(craneUpKey);
|
||||
ClientRegistry.registerKeyBinding(craneDownKey);
|
||||
ClientRegistry.registerKeyBinding(craneLeftKey);
|
||||
@ -40,6 +44,9 @@ public class HbmKeybinds {
|
||||
|
||||
@SubscribeEvent
|
||||
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());
|
||||
|
||||
|
||||
11
src/main/java/com/hbm/handler/nei/LiquefactionHandler.java
Normal file
11
src/main/java/com/hbm/handler/nei/LiquefactionHandler.java
Normal 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());
|
||||
}
|
||||
}
|
||||
@ -6,6 +6,7 @@ import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import com.hbm.lib.RefStrings;
|
||||
|
||||
@ -2,6 +2,7 @@ package com.hbm.hazard;
|
||||
|
||||
import static com.hbm.blocks.ModBlocks.*;
|
||||
import static com.hbm.items.ModItems.*;
|
||||
import static com.hbm.inventory.OreDictManager.*;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.hazard.modifier.*;
|
||||
@ -10,6 +11,7 @@ import com.hbm.hazard.type.*;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.machine.ItemBreedingRod.BreedingRodType;
|
||||
import com.hbm.items.machine.ItemRTGPelletDepleted.DepletedRTGMaterial;
|
||||
import com.hbm.items.special.ItemHolotapeImage.EnumHoloImage;
|
||||
import com.hbm.util.Compat;
|
||||
import com.hbm.util.Compat.ReikaIsotope;
|
||||
|
||||
@ -169,7 +171,7 @@ public class HazardRegistry {
|
||||
HazardSystem.register(demon_core_closed, makeData(RADIATION, 100_000F));
|
||||
|
||||
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(powder_balefire, makeData(RADIATION, 500F));
|
||||
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_tiny, makeData(RADIATION, 0.5F));
|
||||
HazardSystem.register(nuclear_waste_short, new HazardData().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, makeData().addEntry(RADIATION, 30F).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_tiny, makeData(RADIATION, 0.05F));
|
||||
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_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_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));
|
||||
|
||||
registerOtherWaste(waste_natural_uranium, u * billet * 100);
|
||||
@ -261,9 +263,9 @@ public class HazardRegistry {
|
||||
registerOtherWaste(waste_plate_sa326, sa326 * ingot * 100);
|
||||
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_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_exchanger, makeData(RADIATION, 25F));
|
||||
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(ingot_americium_fuel, makeData(RADIATION, amf * ingot));
|
||||
|
||||
HazardSystem.register(nugget_schrabidium_fuel, new HazardData().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(ingot_schrabidium_fuel, new HazardData().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(nugget_schrabidium_fuel, makeData().addEntry(RADIATION, saf * nugget).addEntry(BLINDING, 5F * nugget));
|
||||
HazardSystem.register(billet_schrabidium_fuel, makeData().addEntry(RADIATION, saf * billet).addEntry(BLINDING, 5F * billet));
|
||||
HazardSystem.register(ingot_schrabidium_fuel, makeData().addEntry(RADIATION, saf * ingot).addEntry(BLINDING, 5F * ingot));
|
||||
HazardSystem.register(block_schrabidium_fuel, makeData().addEntry(RADIATION, saf * block).addEntry(BLINDING, 5F * block));
|
||||
|
||||
HazardSystem.register(nugget_hes, makeData(RADIATION, saf * nugget));
|
||||
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(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_ra226be, makeData(RADIATION, rabe * 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(ModBlocks.fallout, makeData(RADIATION, fo * powder * 2));
|
||||
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));
|
||||
|
||||
@ -433,22 +435,20 @@ public class HazardRegistry {
|
||||
HazardSystem.register(mike_core, makeData(RADIATION, u238 * nugget * 10));
|
||||
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(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(new ItemStack(ModItems.holotape_image, 1, EnumHoloImage.HOLO_RESTORED.ordinal()), makeData(DIGAMMA, 1F));
|
||||
|
||||
/*
|
||||
* Blacklist
|
||||
*/
|
||||
HazardSystem.blacklist(new ItemStack(ore_uranium));
|
||||
HazardSystem.blacklist(new ItemStack(ore_gneiss_uranium));
|
||||
HazardSystem.blacklist(new ItemStack(ore_nether_uranium));
|
||||
HazardSystem.blacklist(new ItemStack(ore_meteor_uranium));
|
||||
HazardSystem.blacklist(new ItemStack(ore_thorium));
|
||||
HazardSystem.blacklist(TH232.ore());
|
||||
HazardSystem.blacklist(U.ore());
|
||||
|
||||
|
||||
/*
|
||||
|
||||
@ -38,7 +38,8 @@ public class HazardSystem {
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
@ -67,12 +68,29 @@ public class HazardSystem {
|
||||
* Prevents the stack from returning any HazardData
|
||||
* @param stack
|
||||
*/
|
||||
public static void blacklist(ItemStack stack) {
|
||||
blacklist.add(new ComparableStack(stack).makeSingular());
|
||||
public static void blacklist(Object o) {
|
||||
|
||||
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) {
|
||||
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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -11,5 +11,4 @@ public class FluidStack {
|
||||
this.fill = fill;
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -21,6 +21,7 @@ import net.minecraft.client.resources.I18n;
|
||||
import net.minecraft.item.ItemArmor;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
||||
@ -78,6 +79,10 @@ public class FluidTank {
|
||||
}
|
||||
|
||||
//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) {
|
||||
PacketDispatcher.wrapper.sendToAllAround(new TEFluidPacket(x, y, z, fluid, index, type), new TargetPoint(dim, x, y, z, 100));
|
||||
}
|
||||
|
||||
@ -8,7 +8,6 @@ import static com.hbm.items.ModItems.*;
|
||||
import static com.hbm.blocks.ModBlocks.*;
|
||||
import static com.hbm.inventory.OreDictManager.DictFrame.*;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.config.GeneralConfig;
|
||||
import com.hbm.hazard.HazardData;
|
||||
import com.hbm.hazard.HazardEntry;
|
||||
@ -16,7 +15,6 @@ import com.hbm.hazard.HazardRegistry;
|
||||
import com.hbm.hazard.HazardSystem;
|
||||
import com.hbm.items.ItemEnums.EnumCokeType;
|
||||
import com.hbm.items.ItemEnums.EnumTarType;
|
||||
import com.hbm.items.ModItems;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.init.Items;
|
||||
|
||||
@ -11,15 +11,14 @@ public class SlotUpgrade extends Slot {
|
||||
public SlotUpgrade(IInventory inventory, int i, int j, int k) {
|
||||
super(inventory, i, j, k);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean isItemValid(ItemStack stack) {
|
||||
return stack != null && stack.getItem() instanceof ItemMachineUpgrade;
|
||||
}
|
||||
|
||||
return stack != null && stack.getItem() instanceof ItemMachineUpgrade;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSlotChange(ItemStack sta1, ItemStack sta2) {
|
||||
|
||||
public void onSlotChange(ItemStack sta1, ItemStack sta2) {
|
||||
super.onSlotChange(sta1, sta2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -10,22 +10,25 @@ import net.minecraft.item.ItemStack;
|
||||
|
||||
public class ContainerFEL extends Container {
|
||||
|
||||
private TileEntityFEL microwave;
|
||||
private TileEntityFEL fel;
|
||||
|
||||
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 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++) {
|
||||
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();
|
||||
|
||||
if(par2 == 0) {
|
||||
if(!this.mergeItemStack(var5, 1, this.inventorySlots.size(), true)) {
|
||||
if(!this.mergeItemStack(var5, 1, this.inventorySlots.size(), false)) {
|
||||
return null;
|
||||
}
|
||||
} else {
|
||||
if(!this.mergeItemStack(var5, 0, 1, true))
|
||||
if(!this.mergeItemStack(var5, 0, 1, false))
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -59,6 +62,6 @@ public class ContainerFEL extends Container {
|
||||
|
||||
@Override
|
||||
public boolean canInteractWith(EntityPlayer player) {
|
||||
return microwave.isUseableByPlayer(player);
|
||||
return fel.isUseableByPlayer(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
@ -1,6 +1,5 @@
|
||||
package com.hbm.inventory.container;
|
||||
|
||||
import com.hbm.inventory.SlotMachineOutput;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.tileentity.machine.TileEntitySILEX;
|
||||
|
||||
@ -16,23 +15,23 @@ public class ContainerSILEX extends Container {
|
||||
|
||||
public ContainerSILEX(InventoryPlayer invPlayer, TileEntitySILEX te) {
|
||||
silex = te;
|
||||
|
||||
|
||||
//Input
|
||||
this.addSlotToContainer(new Slot(te, 0, 116, 36));
|
||||
this.addSlotToContainer(new Slot(te, 0, 80, 12));
|
||||
//Fluid ID
|
||||
this.addSlotToContainer(new Slot(te, 1, 44, 36));
|
||||
this.addSlotToContainer(new Slot(te, 1, 8, 24));
|
||||
//Fluid Container
|
||||
this.addSlotToContainer(new Slot(te, 2, 62, 36));
|
||||
this.addSlotToContainer(new Slot(te, 3, 80, 36));
|
||||
this.addSlotToContainer(new Slot(te, 2, 8 + 18, 24));
|
||||
this.addSlotToContainer(new Slot(te, 3, 8 + 18*2, 24));
|
||||
//Output
|
||||
this.addSlotToContainer(new Slot(te, 4, 116, 90));
|
||||
//Output Queue
|
||||
this.addSlotToContainer(new SlotMachineOutput(te, 5, 134, 72));
|
||||
this.addSlotToContainer(new SlotMachineOutput(te, 6, 152, 72));
|
||||
this.addSlotToContainer(new SlotMachineOutput(te, 7, 134, 90));
|
||||
this.addSlotToContainer(new SlotMachineOutput(te, 8, 152, 90));
|
||||
this.addSlotToContainer(new SlotMachineOutput(te, 9, 134, 108));
|
||||
this.addSlotToContainer(new SlotMachineOutput(te, 10, 152, 108));
|
||||
this.addSlotToContainer(new Slot(te, 5, 134, 72));
|
||||
this.addSlotToContainer(new Slot(te, 6, 152, 72));
|
||||
this.addSlotToContainer(new Slot(te, 7, 134, 90));
|
||||
this.addSlotToContainer(new Slot(te, 8, 152, 90));
|
||||
this.addSlotToContainer(new Slot(te, 9, 134, 108));
|
||||
this.addSlotToContainer(new Slot(te, 10, 152, 108));
|
||||
|
||||
for(int i = 0; i < 3; i++)
|
||||
{
|
||||
@ -56,7 +55,6 @@ public class ContainerSILEX extends Container {
|
||||
if(var4 != null && var4.getHasStack()) {
|
||||
ItemStack var5 = var4.getStack();
|
||||
var3 = var5.copy();
|
||||
SlotMachineOutput.checkAchievements(p_82846_1_, var5);
|
||||
|
||||
if(par2 <= silex.getSizeInventory() - 1) {
|
||||
if(!this.mergeItemStack(var5, silex.getSizeInventory(), this.inventorySlots.size(), true)) {
|
||||
@ -87,4 +85,4 @@ public class ContainerSILEX extends Container {
|
||||
public boolean canInteractWith(EntityPlayer player) {
|
||||
return silex.isUseableByPlayer(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
237
src/main/java/com/hbm/inventory/gui/GUICalculator.java
Normal file
237
src/main/java/com/hbm/inventory/gui/GUICalculator.java
Normal 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;
|
||||
}
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
63
src/main/java/com/hbm/inventory/gui/GUILiquefactor.java
Normal file
63
src/main/java/com/hbm/inventory/gui/GUILiquefactor.java
Normal 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);
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
@ -8,7 +8,6 @@ import com.hbm.interfaces.IFluidDuct;
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.tileentity.conductor.TileEntityFluidDuct;
|
||||
import com.hbm.tileentity.conductor.TileEntityFluidDuctSimple;
|
||||
import com.hbm.util.I18nUtil;
|
||||
|
||||
@ -85,9 +84,10 @@ public class ItemFluidIdentifier extends Item {
|
||||
public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int i, float f1, float f2, float f3) {
|
||||
TileEntity te = world.getTileEntity(x, y, z);
|
||||
if(te instanceof TileEntityFluidDuctSimple) {
|
||||
|
||||
TileEntityFluidDuctSimple duct = (TileEntityFluidDuctSimple) te;
|
||||
|
||||
if(!world.isRemote) {
|
||||
TileEntityFluidDuctSimple duct = (TileEntityFluidDuctSimple) te;
|
||||
FluidType type = Fluids.fromID(stack.getItemDamage());
|
||||
|
||||
if (player.isSneaking()) {
|
||||
@ -97,7 +97,7 @@ public class ItemFluidIdentifier extends Item {
|
||||
}
|
||||
}
|
||||
|
||||
world.markBlockForUpdate(x, y, z);
|
||||
//world.markBlockForUpdate(x, y, z);
|
||||
|
||||
player.swingItem();
|
||||
}
|
||||
@ -132,7 +132,7 @@ public class ItemFluidIdentifier extends Item {
|
||||
TileEntity te = world.getTileEntity(nextX, nextY, nextZ);
|
||||
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();
|
||||
|
||||
if (connectionsCount > 1) {
|
||||
|
||||
@ -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_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_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;
|
||||
|
||||
@ -19,6 +19,7 @@ import com.hbm.items.ModItems;
|
||||
import com.hbm.tileentity.TileEntityProxyBase;
|
||||
import com.hbm.tileentity.TileEntityProxyInventory;
|
||||
import com.hbm.tileentity.conductor.TileEntityFluidDuct;
|
||||
import com.hbm.tileentity.conductor.TileEntityFluidDuctSimple;
|
||||
import com.hbm.tileentity.conductor.TileEntityGasDuct;
|
||||
import com.hbm.tileentity.conductor.TileEntityGasDuctSolid;
|
||||
import com.hbm.tileentity.conductor.TileEntityOilDuct;
|
||||
@ -495,17 +496,17 @@ public class Library {
|
||||
|
||||
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 - 1, y, z, that.getTact(), that, worldObj, type);
|
||||
@ -516,7 +517,7 @@ public class Library {
|
||||
}
|
||||
}
|
||||
} 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()))
|
||||
|
||||
@ -14,6 +14,7 @@ import static com.hbm.inventory.OreDictManager.*;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.machine.ItemBattery;
|
||||
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.tool.ItemGuideBook.BookType;
|
||||
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_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_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 });
|
||||
@ -554,8 +555,9 @@ public class CraftingManager {
|
||||
addShapelessAuto(new ItemStack(ModItems.crystal_charred, 1), new Object[] { ST.dust(), CO.dust(), BR.dust(), NB.dust(), TS.dust(), CE.dust(), ModBlocks.block_meteor, AL.block(), Items.water_bucket });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.crystal_virus, 1), new Object[] { "STS", "THT", "STS", 'S', ModItems.particle_strange, 'T', W.dust(), 'H', ModItems.crystal_horn });
|
||||
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_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(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() });
|
||||
@ -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.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) {
|
||||
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() });
|
||||
|
||||
@ -949,6 +949,7 @@ public class MainRegistry {
|
||||
PressRecipes.register();
|
||||
RefineryRecipes.registerFractions();
|
||||
RefineryRecipes.registerCracking();
|
||||
LiquefactionRecipes.register();
|
||||
FuelPoolRecipes.register();
|
||||
|
||||
TileEntityNukeCustom.registerBombItems();
|
||||
|
||||
@ -65,6 +65,8 @@ public class NEIConfig implements IConfigureNEI {
|
||||
API.registerRecipeHandler(new RTGRecipeHandler());
|
||||
API.registerUsageHandler(new RTGRecipeHandler());
|
||||
}
|
||||
API.registerRecipeHandler(new LiquefactionHandler());
|
||||
API.registerUsageHandler(new LiquefactionHandler());
|
||||
|
||||
//Some things are even beyond my control...or are they?
|
||||
API.hideItem(ItemBattery.getEmptyBattery(ModItems.memory));
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
package com.hbm.render.block;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.blocks.IBlockMultiPass;
|
||||
|
||||
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
|
||||
@ -24,7 +26,41 @@ public class RenderBlockMultipass implements ISimpleBlockRenderingHandler {
|
||||
public static int currentPass = 0;
|
||||
|
||||
@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
|
||||
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++) {
|
||||
currentPass = i;
|
||||
System.out.println(multi.getColorFromPass(world, x, y, z, false));
|
||||
tessellator.setColorOpaque_I(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));
|
||||
renderer.renderStandardBlock(block, x, y, z);
|
||||
}
|
||||
|
||||
@ -58,7 +94,7 @@ public class RenderBlockMultipass implements ISimpleBlockRenderingHandler {
|
||||
|
||||
@Override
|
||||
public boolean shouldRender3DInInventory(int modelId) {
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -2,8 +2,8 @@ package com.hbm.render.block;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.blocks.bomb.DetCord;
|
||||
import com.hbm.blocks.bomb.IDetConnectible;
|
||||
import com.hbm.blocks.test.TestConductor;
|
||||
import com.hbm.lib.Library;
|
||||
import com.hbm.main.ResourceManager;
|
||||
import com.hbm.render.util.ObjUtil;
|
||||
@ -33,7 +33,7 @@ public class RenderDetCord implements ISimpleBlockRenderingHandler {
|
||||
GL11.glRotated(180, 0, 1, 0);
|
||||
GL11.glScaled(1.25D, 1.25D, 1.25D);
|
||||
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();
|
||||
|
||||
GL11.glPopMatrix();
|
||||
@ -60,13 +60,15 @@ public class RenderDetCord implements ISimpleBlockRenderingHandler {
|
||||
boolean pZ = IDetConnectible.isConnectible(world, x, y, z + 1, Library.NEG_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);
|
||||
|
||||
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);
|
||||
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);
|
||||
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);
|
||||
|
||||
else {
|
||||
@ -91,6 +93,6 @@ public class RenderDetCord implements ISimpleBlockRenderingHandler {
|
||||
|
||||
@Override
|
||||
public int getRenderId() {
|
||||
return TestConductor.renderID;
|
||||
return DetCord.renderID;
|
||||
}
|
||||
}
|
||||
|
||||
@ -143,7 +143,7 @@ public abstract class TileEntityMachineBase extends TileEntity implements ISided
|
||||
//was it update? onUpdate? updateTile? did it have any args?
|
||||
//shit i don't know man
|
||||
@Override
|
||||
public abstract void updateEntity();
|
||||
public abstract void updateEntity();
|
||||
|
||||
@Deprecated
|
||||
public void updateGauge(int val, int id, int range) {
|
||||
|
||||
@ -238,6 +238,7 @@ public class TileMappings {
|
||||
put(TileEntityTowerLarge.class, "tileentity_cooling_tower_large");
|
||||
put(TileEntityDeuteriumExtractor.class, "tileentity_deuterium_extractor");
|
||||
put(TileEntityDeuteriumTower.class, "tileentity_deuterium_tower");
|
||||
put(TileEntityMachineLiquefactor.class, "tileentity_liquefactor");
|
||||
|
||||
put(TileEntityMachineOilWell.class, "tileentity_derrick");
|
||||
put(TileEntityMachinePumpjack.class, "tileentity_machine_pumpjack");
|
||||
|
||||
@ -23,35 +23,8 @@ import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class TileEntityFluidDuct extends TileEntityFluidDuctSimple {
|
||||
|
||||
public ForgeDirection[] connections = new ForgeDirection[6];
|
||||
|
||||
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
|
||||
@SideOnly(Side.CLIENT)
|
||||
public double getMaxRenderDistanceSquared() {
|
||||
|
||||
@ -7,6 +7,7 @@ import com.hbm.calc.UnionOfTileEntitiesAndBooleansForFluids;
|
||||
import com.hbm.interfaces.IFluidDuct;
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.lib.Library;
|
||||
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.network.NetworkManager;
|
||||
@ -14,11 +15,16 @@ import net.minecraft.network.Packet;
|
||||
import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.WorldServer;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class TileEntityFluidDuctSimple extends TileEntity implements IFluidDuct {
|
||||
|
||||
private FluidType lastType = Fluids.NONE;
|
||||
protected FluidType type = Fluids.NONE;
|
||||
public List<UnionOfTileEntitiesAndBooleansForFluids> uoteab = new ArrayList<UnionOfTileEntitiesAndBooleansForFluids>();
|
||||
|
||||
|
||||
public ForgeDirection[] connections = new ForgeDirection[6];
|
||||
|
||||
@Override
|
||||
public Packet getDescriptionPacket() {
|
||||
@ -64,4 +70,29 @@ public class TileEntityFluidDuctSimple extends TileEntity implements IFluidDuct
|
||||
public FluidType getType() {
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,6 +3,7 @@ package com.hbm.tileentity.machine;
|
||||
import com.hbm.calc.Location;
|
||||
import com.hbm.tileentity.TileEntityMachineBase;
|
||||
|
||||
import api.hbm.energy.IEnergyConnector;
|
||||
import api.hbm.energy.IEnergyUser;
|
||||
import cofh.api.energy.EnergyStorage;
|
||||
import cofh.api.energy.IEnergyHandler;
|
||||
@ -11,72 +12,19 @@ import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class TileEntityConverterHeRf extends TileEntityMachineBase implements IEnergyUser, IEnergyHandler {
|
||||
public class TileEntityConverterHeRf extends TileEntity implements IEnergyConnector, IEnergyHandler {
|
||||
|
||||
public TileEntityConverterHeRf() {
|
||||
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.
|
||||
//Thanks to the great people of Fusion Warfare for helping me with the original implementation of the RF energy API
|
||||
|
||||
@Override
|
||||
public void updateEntity() {
|
||||
|
||||
if (!worldObj.isRemote) {
|
||||
|
||||
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS)
|
||||
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
|
||||
public boolean canConnectEnergy(ForgeDirection from) {
|
||||
return true;
|
||||
@ -84,64 +32,56 @@ public class TileEntityConverterHeRf extends TileEntityMachineBase implements IE
|
||||
|
||||
@Override
|
||||
public int extractEnergy(ForgeDirection from, int maxExtract, boolean simulate) {
|
||||
return storage.extractEnergy(maxExtract, simulate);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getEnergyStored(ForgeDirection from) {
|
||||
return storage.getEnergyStored();
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxEnergyStored(ForgeDirection from) {
|
||||
return storage.getMaxEnergyStored();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setPower(long i) {
|
||||
power = i;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getPower() {
|
||||
return power;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getMaxPower() {
|
||||
|
||||
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);
|
||||
return Integer.MAX_VALUE / 4;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate) {
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,16 +1,9 @@
|
||||
package com.hbm.tileentity.machine;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.interfaces.Untested;
|
||||
import com.hbm.lib.Library;
|
||||
import com.hbm.tileentity.TileEntityMachineBase;
|
||||
|
||||
import api.hbm.energy.IEnergyGenerator;
|
||||
import cofh.api.energy.EnergyStorage;
|
||||
import cofh.api.energy.IEnergyHandler;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
|
||||
@ -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();
|
||||
}
|
||||
}
|
||||
@ -234,8 +234,10 @@ container.machineCMB=CMB-Stahl Hochofen
|
||||
container.machineCoal=Verbrennungsgenerator
|
||||
container.machineDiesel=Dieselgenerator
|
||||
container.machineElectricBoiler=Elektrischer Boiler
|
||||
container.machineFEL=FEL
|
||||
container.machineITER=Kernfusionsreaktor
|
||||
container.machineLargeTurbine=Industrielle Dampfturbine
|
||||
container.machineLiquefactor=Verflüssiger
|
||||
container.machineRefinery=Ölraffinerie
|
||||
container.machineSelenium=Hochleistungs-Sternmotor
|
||||
container.machineShredder=Brecher
|
||||
@ -438,6 +440,7 @@ hazard.particleFine=Feinstaub
|
||||
hazard.sand=Augenreizstoffe
|
||||
|
||||
hbm.key=NTM Hotkeys
|
||||
hbm.key.calculator=Taschenrechner
|
||||
hbm.key.craneLoad=Kran laden/entladen
|
||||
hbm.key.craneMoveDown=Kran rückwärts
|
||||
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_helmet.name=HEV Mark IV Helm
|
||||
item.hev_legs.name=HEV Mark IV Beinschutz
|
||||
item.holotape_image.name=Holoband
|
||||
item.horseshoe_magnet.name=Hufeisenmagnet
|
||||
item.hull_big_aluminium.name=Große Aluminiumhü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_kit.name=Schlüssel-Imitationskit
|
||||
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.lemon.name="Zitrone"
|
||||
item.letter.name=Eilbrief
|
||||
@ -3058,6 +3071,7 @@ tile.fireworks.color=Farbe: %s
|
||||
tile.flame_war.name=Flamewar aus der Box
|
||||
tile.float_bomb.name=Schwebebombe
|
||||
tile.fluid_duct.name=Universelles Flüssigkeitsrohr
|
||||
tile.fluid_duct_solid.name=Geschirmtes universelles Flüssigkeitsrohr
|
||||
tile.foam_layer.name=Schaumdecke
|
||||
tile.fraction_spacer.name=Fraktionierungsturm-Teiler
|
||||
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_on.name=Elektrischer Ofen
|
||||
tile.machine_epress.name=Hydraulische Presse
|
||||
tile.machine_fel.name=FEL
|
||||
tile.machine_fensu.name=FEnSU
|
||||
tile.machine_flare.name=Abfackelturm
|
||||
tile.machine_fluidtank.name=Tank
|
||||
@ -3587,6 +3602,17 @@ tool.ability.shredder=Auto-Brecher
|
||||
tool.ability.silktouch=Behutsamkeit
|
||||
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.bobble=Glück des Sammlers
|
||||
# Should rhyme with the translation for "chainsaw"
|
||||
|
||||
@ -367,8 +367,10 @@ container.machineCMB=CMB Steel Furnace
|
||||
container.machineCoal=Combustion Generator
|
||||
container.machineDiesel=Diesel Generator
|
||||
container.machineElectricBoiler=Electric Boiler
|
||||
container.machineFEL=FEL
|
||||
container.machineITER=Fusion Reactor
|
||||
container.machineLargeTurbine=Industrial Steam Turbine
|
||||
container.machineLiquefactor=Liquefactor
|
||||
container.machineRefinery=Oil Refinery
|
||||
container.machineSelenium=Radial Performance Engine
|
||||
container.machineShredder=Shredder
|
||||
@ -575,6 +577,7 @@ hazard.particleFine=Particulates
|
||||
hazard.sand=Eye Irritants
|
||||
|
||||
hbm.key=NTM Hotkeys
|
||||
hbm.key.calculator=Calculator
|
||||
hbm.key.craneLoad=Load/Unload Crane
|
||||
hbm.key.craneMoveDown=Move Crane Backward
|
||||
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_helmet.name=HEV Mark IV Helmet
|
||||
item.hev_legs.name=HEV Mark IV Leggings
|
||||
item.holotape_image.name=Holotape
|
||||
item.horseshoe_magnet.name=Horseshoe Magnet
|
||||
item.hull_big_aluminium.name=Big Aluminium 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.desc=Explore the other side.
|
||||
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.lemon.name="Lemon"
|
||||
item.letter.name=Express Mail
|
||||
@ -3375,6 +3388,7 @@ tile.fireworks.color=Color: %s
|
||||
tile.flame_war.name=Flame War in a Box
|
||||
tile.float_bomb.name=Levitation Bomb
|
||||
tile.fluid_duct.name=Universal Fluid Duct
|
||||
tile.fluid_duct_solid.name=Coated Universal Fluid Duct
|
||||
tile.foam_layer.name=Foam layer
|
||||
tile.fraction_spacer.name=Fractioning Tower Separator
|
||||
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_on.name=Electric Furnace
|
||||
tile.machine_epress.name=Electric Press
|
||||
tile.machine_fel.name=FEL
|
||||
tile.machine_fensu.name=FEnSU
|
||||
tile.machine_flare.name=Gas Flare
|
||||
tile.machine_fluidtank.name=Tank
|
||||
@ -3902,6 +3917,17 @@ tool.ability.shredder=Auto-Shredder
|
||||
tool.ability.silktouch=Silk Touch
|
||||
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.bobble=Luck of the Collector
|
||||
# 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 |
BIN
src/main/resources/assets/hbm/textures/gui/calculator.png
Normal file
BIN
src/main/resources/assets/hbm/textures/gui/calculator.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 566 B |
Binary file not shown.
|
After Width: | Height: | Size: 2.8 KiB |
Loading…
x
Reference in New Issue
Block a user