mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
more sensible carbon distribution, finished steam engine
This commit is contained in:
parent
b04054dd9f
commit
b0d1c346b8
@ -175,11 +175,13 @@ public class MachineBattery extends BlockContainer implements ILookOverlay, IPer
|
|||||||
@Override
|
@Override
|
||||||
public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) {
|
public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) {
|
||||||
if(!keepInventory) {
|
if(!keepInventory) {
|
||||||
TileEntityMachineBattery tileentityfurnace = (TileEntityMachineBattery) p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_);
|
TileEntity tile = p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_);
|
||||||
|
|
||||||
if(tileentityfurnace != null) {
|
if(tile instanceof TileEntityMachineBattery) {
|
||||||
for(int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) {
|
TileEntityMachineBattery battery = (TileEntityMachineBattery) tile;
|
||||||
ItemStack itemstack = tileentityfurnace.getStackInSlot(i1);
|
|
||||||
|
for(int i1 = 0; i1 < battery.getSizeInventory(); ++i1) {
|
||||||
|
ItemStack itemstack = battery.getStackInSlot(i1);
|
||||||
|
|
||||||
if(itemstack != null) {
|
if(itemstack != null) {
|
||||||
float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F;
|
float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F;
|
||||||
|
|||||||
@ -1,13 +1,25 @@
|
|||||||
package com.hbm.blocks.machine;
|
package com.hbm.blocks.machine;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import com.hbm.blocks.BlockDummyable;
|
import com.hbm.blocks.BlockDummyable;
|
||||||
|
import com.hbm.blocks.ILookOverlay;
|
||||||
|
import com.hbm.blocks.ITooltipProvider;
|
||||||
|
import com.hbm.tileentity.TileEntityProxyCombo;
|
||||||
import com.hbm.tileentity.machine.TileEntitySteamEngine;
|
import com.hbm.tileentity.machine.TileEntitySteamEngine;
|
||||||
|
import com.hbm.util.I18nUtil;
|
||||||
|
|
||||||
import net.minecraft.block.material.Material;
|
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.tileentity.TileEntity;
|
||||||
|
import net.minecraft.util.EnumChatFormatting;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre;
|
||||||
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public class MachineSteamEngine extends BlockDummyable {
|
public class MachineSteamEngine extends BlockDummyable implements ILookOverlay, ITooltipProvider {
|
||||||
|
|
||||||
public MachineSteamEngine() {
|
public MachineSteamEngine() {
|
||||||
super(Material.iron);
|
super(Material.iron);
|
||||||
@ -16,6 +28,7 @@ public class MachineSteamEngine extends BlockDummyable {
|
|||||||
@Override
|
@Override
|
||||||
public TileEntity createNewTileEntity(World world, int meta) {
|
public TileEntity createNewTileEntity(World world, int meta) {
|
||||||
if(meta >= 12) return new TileEntitySteamEngine();
|
if(meta >= 12) return new TileEntitySteamEngine();
|
||||||
|
if(meta >= extra) return new TileEntityProxyCombo().power().fluid();
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -28,4 +41,45 @@ public class MachineSteamEngine extends BlockDummyable {
|
|||||||
public int getOffset() {
|
public int getOffset() {
|
||||||
return 1;
|
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;
|
||||||
|
|
||||||
|
ForgeDirection rot = dir.getRotation(ForgeDirection.UP);
|
||||||
|
|
||||||
|
this.makeExtra(world, x + rot.offsetX, y + 1, z + rot.offsetZ);
|
||||||
|
this.makeExtra(world, x + rot.offsetX + dir.offsetX, y + 1, z + rot.offsetZ + dir.offsetZ);
|
||||||
|
this.makeExtra(world, x + rot.offsetX - dir.offsetX, y + 1, z + rot.offsetZ - dir.offsetZ);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void printHook(Pre event, World world, int x, int y, int z) {
|
||||||
|
|
||||||
|
int[] pos = this.findCore(world, x, y, z);
|
||||||
|
|
||||||
|
if(pos == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]);
|
||||||
|
|
||||||
|
if(!(te instanceof TileEntitySteamEngine))
|
||||||
|
return;
|
||||||
|
|
||||||
|
TileEntitySteamEngine engine = (TileEntitySteamEngine) te;
|
||||||
|
|
||||||
|
List<String> text = new ArrayList();
|
||||||
|
text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + I18nUtil.resolveKey(engine.tanks[0].getTankType().getUnlocalizedName()) + ": " + String.format("%,d", engine.tanks[0].getFill()) + " / " + String.format("%,d", engine.tanks[0].getMaxFill()) + "mB");
|
||||||
|
text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + I18nUtil.resolveKey(engine.tanks[1].getTankType().getUnlocalizedName()) + ": " + String.format("%,d", engine.tanks[1].getFill()) + " / " + String.format("%,d", engine.tanks[1].getMaxFill()) + "mB");
|
||||||
|
|
||||||
|
ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
|
||||||
|
this.addStandardInfo(stack, player, list, ext);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -27,6 +27,7 @@ public class GeneralConfig {
|
|||||||
public static boolean enableCustomDashKeybind = false;
|
public static boolean enableCustomDashKeybind = false;
|
||||||
public static boolean enableReEval = true;
|
public static boolean enableReEval = true;
|
||||||
public static boolean enableSilentCompStackErrors = true;
|
public static boolean enableSilentCompStackErrors = true;
|
||||||
|
public static boolean enableChunkyNEIHandler = true;
|
||||||
public static int hintPos = 0;
|
public static int hintPos = 0;
|
||||||
|
|
||||||
public static boolean enable528 = false;
|
public static boolean enable528 = false;
|
||||||
@ -78,6 +79,7 @@ public class GeneralConfig {
|
|||||||
enableCustomDashKeybind = config.get(CATEGORY_GENERAL, "1.26_enableCustomDashKeybind", false, "Enable custom dash keybind instead of shift").getBoolean(false);
|
enableCustomDashKeybind = config.get(CATEGORY_GENERAL, "1.26_enableCustomDashKeybind", false, "Enable custom dash keybind instead of shift").getBoolean(false);
|
||||||
enableReEval = config.get(CATEGORY_GENERAL, "1.27_enableReEval", true, "Allows re-evaluating power networks on link remove instead of destroying and recreating").getBoolean(true);
|
enableReEval = config.get(CATEGORY_GENERAL, "1.27_enableReEval", true, "Allows re-evaluating power networks on link remove instead of destroying and recreating").getBoolean(true);
|
||||||
enableSilentCompStackErrors = config.get(CATEGORY_GENERAL, "1.28_enableSilentCompStackErrors", false, "Enabling this will disable log spam created by unregistered items in ComparableStack instances.").getBoolean(false);
|
enableSilentCompStackErrors = config.get(CATEGORY_GENERAL, "1.28_enableSilentCompStackErrors", false, "Enabling this will disable log spam created by unregistered items in ComparableStack instances.").getBoolean(false);
|
||||||
|
enableChunkyNEIHandler = config.get(CATEGORY_GENERAL, "1.29_enableChunkyNEIHandler", true, "If enabled, registers a NEI handler that will show the chosen item in a larger view.").getBoolean(true);
|
||||||
|
|
||||||
hintPos = CommonConfig.createConfigInt(config, CATEGORY_GENERAL, "1.29_hudOverlayPosition", "0: Top left\n1: Top right\n2: Center right\n3: Center Left", 0);
|
hintPos = CommonConfig.createConfigInt(config, CATEGORY_GENERAL, "1.29_hudOverlayPosition", "0: Top left\n1: Top right\n2: Center right\n3: Center Left", 0);
|
||||||
|
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import static codechicken.lib.gui.GuiDraw.drawTexturedModalRect;
|
|||||||
|
|
||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
|
import com.hbm.config.GeneralConfig;
|
||||||
import com.hbm.lib.RefStrings;
|
import com.hbm.lib.RefStrings;
|
||||||
|
|
||||||
import codechicken.nei.PositionedStack;
|
import codechicken.nei.PositionedStack;
|
||||||
@ -43,12 +44,14 @@ public class ChunkyHandler extends TemplateRecipeHandler {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void loadCraftingRecipes(ItemStack result) {
|
public void loadCraftingRecipes(ItemStack result) {
|
||||||
this.arecipes.add(new RecipeSet(result));
|
if(GeneralConfig.enableChunkyNEIHandler)
|
||||||
|
this.arecipes.add(new RecipeSet(result));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void loadUsageRecipes(ItemStack ingredient) {
|
public void loadUsageRecipes(ItemStack ingredient) {
|
||||||
this.arecipes.add(new RecipeSet(ingredient));
|
if(GeneralConfig.enableChunkyNEIHandler)
|
||||||
|
this.arecipes.add(new RecipeSet(ingredient));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -445,6 +445,16 @@ public class OreDictManager {
|
|||||||
OreDictionary.registerOre(KEY_CIRCUIT_BISMUTH, circuit_bismuth);
|
OreDictionary.registerOre(KEY_CIRCUIT_BISMUTH, circuit_bismuth);
|
||||||
OreDictionary.registerOre(KEY_CIRCUIT_BISMUTH, circuit_arsenic);
|
OreDictionary.registerOre(KEY_CIRCUIT_BISMUTH, circuit_arsenic);
|
||||||
|
|
||||||
|
OreDictionary.registerOre("itemRubber", ingot_rubber);
|
||||||
|
|
||||||
|
OreDictionary.registerOre("coalCoke", fromOne(coke, EnumCokeType.COAL));
|
||||||
|
|
||||||
|
for(String name : new String[] {"fuelCoke", "coke"}) {
|
||||||
|
OreDictionary.registerOre(name, fromOne(coke, EnumCokeType.COAL));
|
||||||
|
OreDictionary.registerOre(name, fromOne(coke, EnumCokeType.LIGNITE));
|
||||||
|
OreDictionary.registerOre(name, fromOne(coke, EnumCokeType.PETROLEUM));
|
||||||
|
}
|
||||||
|
|
||||||
OreDictionary.registerOre(getReflector(), neutron_reflector);
|
OreDictionary.registerOre(getReflector(), neutron_reflector);
|
||||||
OreDictionary.registerOre("oreRareEarth", ore_rare);
|
OreDictionary.registerOre("oreRareEarth", ore_rare);
|
||||||
OreDictionary.registerOre("oreRareEarth", ore_gneiss_rare);
|
OreDictionary.registerOre("oreRareEarth", ore_gneiss_rare);
|
||||||
|
|||||||
@ -49,11 +49,11 @@ public class Mats {
|
|||||||
//Vanilla and vanilla-like
|
//Vanilla and vanilla-like
|
||||||
public static final NTMMaterial MAT_STONE = makeSmeltable(_VS + 00, df("Stone"), 0x4D2F23).omitAutoGen();
|
public static final NTMMaterial MAT_STONE = makeSmeltable(_VS + 00, df("Stone"), 0x4D2F23).omitAutoGen();
|
||||||
public static final NTMMaterial MAT_CARBON = makeAdditive( 1499, df("Carbon"), 0x404040).omitAutoGen();
|
public static final NTMMaterial MAT_CARBON = makeAdditive( 1499, df("Carbon"), 0x404040).omitAutoGen();
|
||||||
public static final NTMMaterial MAT_COAL = make( 1400, COAL) .setConversion(MAT_CARBON, 3, 1).omitAutoGen();
|
public static final NTMMaterial MAT_COAL = make( 1400, COAL) .setConversion(MAT_CARBON, 2, 1).omitAutoGen();
|
||||||
public static final NTMMaterial MAT_LIGNITE = make( 1401, LIGNITE) .setConversion(MAT_CARBON, 4, 1);
|
public static final NTMMaterial MAT_LIGNITE = make( 1401, LIGNITE) .setConversion(MAT_CARBON, 3, 1);
|
||||||
public static final NTMMaterial MAT_COALCOKE = make( 1410, COALCOKE) .setConversion(MAT_CARBON, 2, 1);
|
public static final NTMMaterial MAT_COALCOKE = make( 1410, COALCOKE) .setConversion(MAT_CARBON, 4, 3);
|
||||||
public static final NTMMaterial MAT_PETCOKE = make( 1411, PETCOKE) .setConversion(MAT_CARBON, 2, 1);
|
public static final NTMMaterial MAT_PETCOKE = make( 1411, PETCOKE) .setConversion(MAT_CARBON, 4, 3);
|
||||||
public static final NTMMaterial MAT_LIGCOKE = make( 1412, LIGCOKE) .setConversion(MAT_CARBON, 2, 1);
|
public static final NTMMaterial MAT_LIGCOKE = make( 1412, LIGCOKE) .setConversion(MAT_CARBON, 4, 3);
|
||||||
public static final NTMMaterial MAT_GRAPHITE = make( 1420, GRAPHITE) .setConversion(MAT_CARBON, 1, 1);
|
public static final NTMMaterial MAT_GRAPHITE = make( 1420, GRAPHITE) .setConversion(MAT_CARBON, 1, 1);
|
||||||
public static final NTMMaterial MAT_IRON = makeSmeltable(2600, IRON, 0xFFA259).omitAutoGen();
|
public static final NTMMaterial MAT_IRON = makeSmeltable(2600, IRON, 0xFFA259).omitAutoGen();
|
||||||
public static final NTMMaterial MAT_GOLD = makeSmeltable(7900, GOLD, 0xE8D754).omitAutoGen();
|
public static final NTMMaterial MAT_GOLD = makeSmeltable(7900, GOLD, 0xE8D754).omitAutoGen();
|
||||||
|
|||||||
@ -463,8 +463,8 @@ public class AssemblerRecipes {
|
|||||||
new OreDictStack(KEY_CIRCUIT_BISMUTH, 1)
|
new OreDictStack(KEY_CIRCUIT_BISMUTH, 1)
|
||||||
}, 600);
|
}, 600);
|
||||||
makeRecipe(new ComparableStack(ModBlocks.machine_large_turbine, 1), new AStack[] {
|
makeRecipe(new ComparableStack(ModBlocks.machine_large_turbine, 1), new AStack[] {
|
||||||
new ComparableStack(ModItems.hull_big_steel, 1),
|
|
||||||
new OreDictStack(STEEL.plate(), 12),
|
new OreDictStack(STEEL.plate(), 12),
|
||||||
|
new OreDictStack(RUBBER.ingot(), 4),
|
||||||
new ComparableStack(ModItems.turbine_titanium, 3),
|
new ComparableStack(ModItems.turbine_titanium, 3),
|
||||||
new ComparableStack(ModItems.generator_steel, 1),
|
new ComparableStack(ModItems.generator_steel, 1),
|
||||||
new ComparableStack(ModItems.bolt_compound, 3),
|
new ComparableStack(ModItems.bolt_compound, 3),
|
||||||
|
|||||||
@ -284,6 +284,15 @@ public class AnvilRecipes {
|
|||||||
new ComparableStack(ModItems.gear_large, 1, 1)
|
new ComparableStack(ModItems.gear_large, 1, 1)
|
||||||
}, new AnvilOutput(new ItemStack(ModBlocks.machine_stirling_steel))).setTier(2));
|
}, new AnvilOutput(new ItemStack(ModBlocks.machine_stirling_steel))).setTier(2));
|
||||||
|
|
||||||
|
constructionRecipes.add(new AnvilConstructionRecipe(
|
||||||
|
new AStack[] {
|
||||||
|
new ComparableStack(ModBlocks.reinforced_stone, 16),
|
||||||
|
new OreDictStack(STEEL.plate(), 12),
|
||||||
|
new ComparableStack(ModItems.hull_small_steel, 2),
|
||||||
|
new ComparableStack(ModItems.coil_copper, 8),
|
||||||
|
new ComparableStack(ModItems.gear_large, 1)
|
||||||
|
}, new AnvilOutput(new ItemStack(ModBlocks.machine_steam_engine))).setTier(2));
|
||||||
|
|
||||||
constructionRecipes.add(new AnvilConstructionRecipe(
|
constructionRecipes.add(new AnvilConstructionRecipe(
|
||||||
new AStack[] {
|
new AStack[] {
|
||||||
new OreDictStack(KEY_PLANKS, 16),
|
new OreDictStack(KEY_PLANKS, 16),
|
||||||
|
|||||||
@ -37,9 +37,12 @@ public class ItemFluidIcon extends Item {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) {
|
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) {
|
||||||
if(stack.hasTagCompound())
|
if(stack.hasTagCompound()) {
|
||||||
if(stack.getTagCompound().getInteger("fill") > 0)
|
if(stack.getTagCompound().getInteger("fill") > 0)
|
||||||
list.add(stack.getTagCompound().getInteger("fill") + "mB");
|
list.add(stack.getTagCompound().getInteger("fill") + "mB");
|
||||||
|
}
|
||||||
|
|
||||||
|
Fluids.fromID(stack.getItemDamage()).addInfo(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ItemStack addQuantity(ItemStack stack, int i) {
|
public static ItemStack addQuantity(ItemStack stack, int i) {
|
||||||
|
|||||||
@ -3,7 +3,7 @@ package com.hbm.lib;
|
|||||||
public class RefStrings {
|
public class RefStrings {
|
||||||
public static final String MODID = "hbm";
|
public static final String MODID = "hbm";
|
||||||
public static final String NAME = "Hbm's Nuclear Tech Mod";
|
public static final String NAME = "Hbm's Nuclear Tech Mod";
|
||||||
public static final String VERSION = "1.0.27 BETA (4411)";
|
public static final String VERSION = "1.0.27 BETA (4417)";
|
||||||
//HBM's Beta Naming Convention:
|
//HBM's Beta Naming Convention:
|
||||||
//V T (X)
|
//V T (X)
|
||||||
//V -> next release version
|
//V -> next release version
|
||||||
|
|||||||
@ -285,7 +285,7 @@ public class CraftingManager {
|
|||||||
addRecipeAuto(new ItemStack(ModBlocks.machine_coal_off, 1), new Object[] { "STS", "SCS", "SFS", 'S', STEEL.ingot(), 'T', ModItems.tank_steel, 'C', MINGRADE.ingot(), 'F', Blocks.furnace });
|
addRecipeAuto(new ItemStack(ModBlocks.machine_coal_off, 1), new Object[] { "STS", "SCS", "SFS", 'S', STEEL.ingot(), 'T', ModItems.tank_steel, 'C', MINGRADE.ingot(), 'F', Blocks.furnace });
|
||||||
addRecipeAuto(new ItemStack(ModBlocks.machine_boiler_off, 1), new Object[] { "SPS", "TFT", "SPS", 'S', STEEL.ingot(), 'P', ModItems.board_copper, 'T', ModItems.tank_steel, 'F', Blocks.furnace });
|
addRecipeAuto(new ItemStack(ModBlocks.machine_boiler_off, 1), new Object[] { "SPS", "TFT", "SPS", 'S', STEEL.ingot(), 'P', ModItems.board_copper, 'T', ModItems.tank_steel, 'F', Blocks.furnace });
|
||||||
addRecipeAuto(new ItemStack(ModBlocks.machine_boiler_electric_off, 1), new Object[] { "SPS", "TFT", "SPS", 'S', DESH.ingot(), 'P', ModItems.board_copper, 'T', ModItems.tank_steel, 'F', ModBlocks.machine_electric_furnace_off });
|
addRecipeAuto(new ItemStack(ModBlocks.machine_boiler_electric_off, 1), new Object[] { "SPS", "TFT", "SPS", 'S', DESH.ingot(), 'P', ModItems.board_copper, 'T', ModItems.tank_steel, 'F', ModBlocks.machine_electric_furnace_off });
|
||||||
addRecipeAuto(new ItemStack(ModBlocks.machine_turbine, 1), new Object[] { "PMP", "PTP", "PMP", 'P', STEEL.ingot(), 'T', ModItems.turbine_titanium, 'M', ModItems.coil_copper });
|
addRecipeAuto(new ItemStack(ModBlocks.machine_turbine, 1), new Object[] { "SMS", "PTP", "SMS", 'S', STEEL.ingot(), 'T', ModItems.turbine_titanium, 'M', ModItems.coil_copper, 'P', ANY_PLASTIC.ingot() });
|
||||||
addRecipeAuto(new ItemStack(ModBlocks.machine_converter_he_rf, 1), new Object[] { "SSS", "CRB", "SSS", 'S', STEEL.ingot(), 'C', ModItems.coil_copper, 'R', ModItems.coil_copper_torus, 'B', REDSTONE.block() });
|
addRecipeAuto(new ItemStack(ModBlocks.machine_converter_he_rf, 1), new Object[] { "SSS", "CRB", "SSS", 'S', STEEL.ingot(), 'C', ModItems.coil_copper, 'R', ModItems.coil_copper_torus, 'B', REDSTONE.block() });
|
||||||
addRecipeAuto(new ItemStack(ModBlocks.machine_converter_rf_he, 1), new Object[] { "SSS", "BRC", "SSS", 'S', BE.ingot(), 'C', ModItems.coil_copper, 'R', ModItems.coil_copper_torus, 'B', REDSTONE.block() });
|
addRecipeAuto(new ItemStack(ModBlocks.machine_converter_rf_he, 1), new Object[] { "SSS", "BRC", "SSS", 'S', BE.ingot(), 'C', ModItems.coil_copper, 'R', ModItems.coil_copper_torus, 'B', REDSTONE.block() });
|
||||||
addRecipeAuto(new ItemStack(ModBlocks.crate_iron, 1), new Object[] { "PPP", "I I", "III", 'P', IRON.plate(), 'I', IRON.ingot() });
|
addRecipeAuto(new ItemStack(ModBlocks.crate_iron, 1), new Object[] { "PPP", "I I", "III", 'P', IRON.plate(), 'I', IRON.ingot() });
|
||||||
|
|||||||
@ -1,8 +1,11 @@
|
|||||||
package com.hbm.tileentity.machine;
|
package com.hbm.tileentity.machine;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.google.gson.JsonObject;
|
||||||
|
import com.google.gson.stream.JsonWriter;
|
||||||
import com.hbm.blocks.BlockDummyable;
|
import com.hbm.blocks.BlockDummyable;
|
||||||
import com.hbm.interfaces.IFluidAcceptor;
|
import com.hbm.interfaces.IFluidAcceptor;
|
||||||
import com.hbm.interfaces.IFluidSource;
|
import com.hbm.interfaces.IFluidSource;
|
||||||
@ -12,6 +15,7 @@ import com.hbm.inventory.fluid.tank.FluidTank;
|
|||||||
import com.hbm.inventory.fluid.trait.FT_Coolable;
|
import com.hbm.inventory.fluid.trait.FT_Coolable;
|
||||||
import com.hbm.inventory.fluid.trait.FT_Coolable.CoolingType;
|
import com.hbm.inventory.fluid.trait.FT_Coolable.CoolingType;
|
||||||
import com.hbm.lib.Library;
|
import com.hbm.lib.Library;
|
||||||
|
import com.hbm.tileentity.IConfigurableMachine;
|
||||||
import com.hbm.tileentity.INBTPacketReceiver;
|
import com.hbm.tileentity.INBTPacketReceiver;
|
||||||
import com.hbm.tileentity.TileEntityLoadedBase;
|
import com.hbm.tileentity.TileEntityLoadedBase;
|
||||||
import com.hbm.util.fauxpointtwelve.DirPos;
|
import com.hbm.util.fauxpointtwelve.DirPos;
|
||||||
@ -26,22 +30,48 @@ import net.minecraft.util.AxisAlignedBB;
|
|||||||
import net.minecraft.util.MathHelper;
|
import net.minecraft.util.MathHelper;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public class TileEntitySteamEngine extends TileEntityLoadedBase implements IFluidAcceptor, IFluidSource, IEnergyGenerator, IFluidStandardTransceiver, INBTPacketReceiver {
|
public class TileEntitySteamEngine extends TileEntityLoadedBase implements IFluidAcceptor, IFluidSource, IEnergyGenerator, IFluidStandardTransceiver, INBTPacketReceiver, IConfigurableMachine {
|
||||||
|
|
||||||
public long powerBuffer;
|
public long powerBuffer;
|
||||||
|
|
||||||
public float rotor;
|
public float rotor;
|
||||||
public float lastRotor;
|
public float lastRotor;
|
||||||
|
private float syncRotor;
|
||||||
public List<IFluidAcceptor> list2 = new ArrayList();
|
public List<IFluidAcceptor> list2 = new ArrayList();
|
||||||
public FluidTank[] tanks;
|
public FluidTank[] tanks;
|
||||||
|
|
||||||
|
private int turnProgress;
|
||||||
private float acceleration = 0F;
|
private float acceleration = 0F;
|
||||||
|
|
||||||
|
/* CONFIGURABLE */
|
||||||
|
private static int steamCap = 2_000;
|
||||||
|
private static int ldsCap = 20;
|
||||||
|
private static double efficiency = 0.85D;
|
||||||
|
|
||||||
public TileEntitySteamEngine() {
|
public TileEntitySteamEngine() {
|
||||||
|
|
||||||
tanks = new FluidTank[2];
|
tanks = new FluidTank[2];
|
||||||
tanks[0] = new FluidTank(Fluids.STEAM, 2_000, 0);
|
tanks[0] = new FluidTank(Fluids.STEAM, steamCap, 0);
|
||||||
tanks[1] = new FluidTank(Fluids.SPENTSTEAM, 20, 1);
|
tanks[1] = new FluidTank(Fluids.SPENTSTEAM, ldsCap, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getConfigName() {
|
||||||
|
return "steamengine";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void readIfPresent(JsonObject obj) {
|
||||||
|
steamCap = IConfigurableMachine.grab(obj, "I:steamCap", steamCap);
|
||||||
|
ldsCap = IConfigurableMachine.grab(obj, "I:ldsCap", ldsCap);
|
||||||
|
efficiency = IConfigurableMachine.grab(obj, "D:efficiency", efficiency);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void writeConfig(JsonWriter writer) throws IOException {
|
||||||
|
writer.name("I:steamCap").value(steamCap);
|
||||||
|
writer.name("I:ldsCap").value(ldsCap);
|
||||||
|
writer.name("D:efficiency").value(efficiency);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -54,8 +84,11 @@ public class TileEntitySteamEngine extends TileEntityLoadedBase implements IFlui
|
|||||||
tanks[0].setTankType(Fluids.STEAM);
|
tanks[0].setTankType(Fluids.STEAM);
|
||||||
tanks[1].setTankType(Fluids.SPENTSTEAM);
|
tanks[1].setTankType(Fluids.SPENTSTEAM);
|
||||||
|
|
||||||
|
NBTTagCompound data = new NBTTagCompound();
|
||||||
|
tanks[0].writeToNBT(data, "s");
|
||||||
|
|
||||||
FT_Coolable trait = tanks[0].getTankType().getTrait(FT_Coolable.class);
|
FT_Coolable trait = tanks[0].getTankType().getTrait(FT_Coolable.class);
|
||||||
double eff = trait.getEfficiency(CoolingType.TURBINE) * 0.75D;
|
double eff = trait.getEfficiency(CoolingType.TURBINE) * efficiency;
|
||||||
|
|
||||||
int inputOps = tanks[0].getFill() / trait.amountReq;
|
int inputOps = tanks[0].getFill() / trait.amountReq;
|
||||||
int outputOps = (tanks[1].getMaxFill() - tanks[1].getFill()) / trait.amountProduced;
|
int outputOps = (tanks[1].getMaxFill() - tanks[1].getFill()) / trait.amountProduced;
|
||||||
@ -71,20 +104,17 @@ public class TileEntitySteamEngine extends TileEntityLoadedBase implements IFlui
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.acceleration = MathHelper.clamp_float(this.acceleration, 0F, 40F);
|
this.acceleration = MathHelper.clamp_float(this.acceleration, 0F, 40F);
|
||||||
this.lastRotor = this.rotor;
|
|
||||||
this.rotor += this.acceleration;
|
this.rotor += this.acceleration;
|
||||||
|
|
||||||
if(this.rotor >= 360D) {
|
if(this.rotor >= 360D) {
|
||||||
this.lastRotor -= 360D;
|
|
||||||
this.rotor -= 360D;
|
this.rotor -= 360D;
|
||||||
|
|
||||||
this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:block.steamEngineOperate", 1.0F, 0.5F + (acceleration / 80F));
|
this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:block.steamEngineOperate", 1.0F, 0.5F + (acceleration / 80F));
|
||||||
}
|
}
|
||||||
|
|
||||||
NBTTagCompound data = new NBTTagCompound();
|
|
||||||
data.setLong("power", this.powerBuffer);
|
data.setLong("power", this.powerBuffer);
|
||||||
data.setFloat("rotor", this.rotor);
|
data.setFloat("rotor", this.rotor);
|
||||||
data.setFloat("lastRotor", this.lastRotor);
|
tanks[1].writeToNBT(data, "w");
|
||||||
|
|
||||||
for(DirPos pos : getConPos()) {
|
for(DirPos pos : getConPos()) {
|
||||||
if(this.powerBuffer > 0)
|
if(this.powerBuffer > 0)
|
||||||
@ -95,6 +125,16 @@ public class TileEntitySteamEngine extends TileEntityLoadedBase implements IFlui
|
|||||||
if(tanks[1].getFill() > 0) fillFluidInit(tanks[1].getTankType());
|
if(tanks[1].getFill() > 0) fillFluidInit(tanks[1].getTankType());
|
||||||
|
|
||||||
INBTPacketReceiver.networkPack(this, data, 150);
|
INBTPacketReceiver.networkPack(this, data, 150);
|
||||||
|
} else {
|
||||||
|
this.lastRotor = this.rotor;
|
||||||
|
|
||||||
|
if(this.turnProgress > 0) {
|
||||||
|
double d = MathHelper.wrapAngleTo180_double(this.syncRotor - (double) this.rotor);
|
||||||
|
this.rotor = (float) ((double) this.rotor + d / (double) this.turnProgress);
|
||||||
|
--this.turnProgress;
|
||||||
|
} else {
|
||||||
|
this.rotor = this.syncRotor;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -109,6 +149,26 @@ public class TileEntitySteamEngine extends TileEntityLoadedBase implements IFlui
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void readFromNBT(NBTTagCompound nbt) {
|
||||||
|
super.readFromNBT(nbt);
|
||||||
|
|
||||||
|
this.powerBuffer = nbt.getLong("powerBuffer");
|
||||||
|
this.acceleration = nbt.getFloat("acceleration");
|
||||||
|
this.tanks[0].readFromNBT(nbt, "s");
|
||||||
|
this.tanks[1].readFromNBT(nbt, "w");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void writeToNBT(NBTTagCompound nbt) {
|
||||||
|
super.writeToNBT(nbt);
|
||||||
|
|
||||||
|
nbt.setLong("powerBuffer", powerBuffer);
|
||||||
|
nbt.setFloat("acceleration", acceleration);
|
||||||
|
tanks[0].writeToNBT(nbt, "s");
|
||||||
|
tanks[1].writeToNBT(nbt, "w");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void fillFluidInit(FluidType type) {
|
public void fillFluidInit(FluidType type) {
|
||||||
for(DirPos pos : getConPos()) fillFluid(pos.getX(), pos.getY(), pos.getZ(), getTact(), type);
|
for(DirPos pos : getConPos()) fillFluid(pos.getX(), pos.getY(), pos.getZ(), getTact(), type);
|
||||||
@ -221,7 +281,9 @@ public class TileEntitySteamEngine extends TileEntityLoadedBase implements IFlui
|
|||||||
@Override
|
@Override
|
||||||
public void networkUnpack(NBTTagCompound nbt) {
|
public void networkUnpack(NBTTagCompound nbt) {
|
||||||
this.powerBuffer = nbt.getLong("power");
|
this.powerBuffer = nbt.getLong("power");
|
||||||
this.rotor = nbt.getFloat("rotor");
|
this.syncRotor = nbt.getFloat("rotor");
|
||||||
this.lastRotor = nbt.getFloat("lastRotor");
|
this.turnProgress = 3; //use 3-ply for extra smoothness
|
||||||
|
this.tanks[0].readFromNBT(nbt, "s");
|
||||||
|
this.tanks[1].readFromNBT(nbt, "w");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3057,6 +3057,7 @@ item.wire_tungsten.name=Wolframdraht
|
|||||||
item.wiring_red_copper.name=Kabeltrommel
|
item.wiring_red_copper.name=Kabeltrommel
|
||||||
item.wood_gavel.name=Hölzerner Richterhammer
|
item.wood_gavel.name=Hölzerner Richterhammer
|
||||||
item.wrench.name=Rohrzange
|
item.wrench.name=Rohrzange
|
||||||
|
item.wrench_archineer.name=Schraubenschlüssel des Archingeurs
|
||||||
item.wrench_flipped.name=Rohrzange mit Klinge
|
item.wrench_flipped.name=Rohrzange mit Klinge
|
||||||
item.xanax.name=NAXA Anti-Digamma-Medikament
|
item.xanax.name=NAXA Anti-Digamma-Medikament
|
||||||
item.zirconium_legs.name=Zirkoniumhose
|
item.zirconium_legs.name=Zirkoniumhose
|
||||||
@ -3577,6 +3578,7 @@ tile.heater_oilburner.desc=Erzäuft Wärme aus fluiden Brennstoffen.
|
|||||||
tile.heater_oven.name=Heizofen
|
tile.heater_oven.name=Heizofen
|
||||||
tile.heater_oven.desc=Erzeugt Wärme aus Festbrennstoff.$Nimmt von unten Wärme mit 50%% Effizienz auf.
|
tile.heater_oven.desc=Erzeugt Wärme aus Festbrennstoff.$Nimmt von unten Wärme mit 50%% Effizienz auf.
|
||||||
tile.hev_battery.name=Anzugs-Batterie
|
tile.hev_battery.name=Anzugs-Batterie
|
||||||
|
tile.impact_dirt.name=Versengte Erde
|
||||||
tile.iter.name=Kernfusionsreaktor
|
tile.iter.name=Kernfusionsreaktor
|
||||||
tile.ladder_aluminium.name=Aluminiumleiter
|
tile.ladder_aluminium.name=Aluminiumleiter
|
||||||
tile.ladder_cobalt.name=Kobaltleiter
|
tile.ladder_cobalt.name=Kobaltleiter
|
||||||
@ -3697,6 +3699,8 @@ tile.machine_solar_boiler.name=Solarturmboiler
|
|||||||
tile.machine_solidifier.name=Industrielle Verfestigungsmaschine
|
tile.machine_solidifier.name=Industrielle Verfestigungsmaschine
|
||||||
tile.machine_spp_bottom.name=NPE-Potentialgenerator (Unterteil)
|
tile.machine_spp_bottom.name=NPE-Potentialgenerator (Unterteil)
|
||||||
tile.machine_spp_top.name=NPE-Potentialgenerator (Oberteil)
|
tile.machine_spp_top.name=NPE-Potentialgenerator (Oberteil)
|
||||||
|
tile.machine_steam_engine.name=Dampfmaschine
|
||||||
|
tile.machine_steam_engine.desc=Effizienz: 85%%
|
||||||
tile.machine_stirling.name=Stirlingmotor
|
tile.machine_stirling.name=Stirlingmotor
|
||||||
tile.machine_stirling.desc=Erzeugt Energie aus Wärme. Benötigt externe Hitzequelle.$Wärmestransferrate: T*0.1 TU/t$Maximalaufnahme: 300 TU/t$Effizienz: 50%%
|
tile.machine_stirling.desc=Erzeugt Energie aus Wärme. Benötigt externe Hitzequelle.$Wärmestransferrate: T*0.1 TU/t$Maximalaufnahme: 300 TU/t$Effizienz: 50%%
|
||||||
tile.machine_stirling_steel.name=Schwerer Stirlingmotor
|
tile.machine_stirling_steel.name=Schwerer Stirlingmotor
|
||||||
@ -3947,6 +3951,7 @@ tile.stone_gneiss.name=Graphitschiefer
|
|||||||
tile.stone_porous.name=Poröser Stein
|
tile.stone_porous.name=Poröser Stein
|
||||||
tile.stone_resource.asbestos.name=Chrysotil
|
tile.stone_resource.asbestos.name=Chrysotil
|
||||||
tile.stone_resource.hematite.name=Hämatit
|
tile.stone_resource.hematite.name=Hämatit
|
||||||
|
tile.stone_resource.limestone.name=Kalkstein
|
||||||
tile.stone_resource.malachite.name=Malachit
|
tile.stone_resource.malachite.name=Malachit
|
||||||
tile.stone_resource.sulfur.name=Schwefelhaltiger Stein
|
tile.stone_resource.sulfur.name=Schwefelhaltiger Stein
|
||||||
tile.struct_iter_core.name=Fusionsreaktor-Kernkomponente
|
tile.struct_iter_core.name=Fusionsreaktor-Kernkomponente
|
||||||
|
|||||||
@ -3566,6 +3566,7 @@ item.wire_tungsten.name=Tungsten Wire
|
|||||||
item.wiring_red_copper.name=Cable Drum
|
item.wiring_red_copper.name=Cable Drum
|
||||||
item.wood_gavel.name=Wooden Gavel
|
item.wood_gavel.name=Wooden Gavel
|
||||||
item.wrench.name=Pipe Wrench
|
item.wrench.name=Pipe Wrench
|
||||||
|
item.wrench_archineer.name=Archineer's Wrench
|
||||||
item.wrench_flipped.name=Blade on a Wrench
|
item.wrench_flipped.name=Blade on a Wrench
|
||||||
item.xanax.name=NAXA Anti-Digamma Medication
|
item.xanax.name=NAXA Anti-Digamma Medication
|
||||||
item.zirconium_legs.name=Zirconium Pants
|
item.zirconium_legs.name=Zirconium Pants
|
||||||
@ -4105,6 +4106,7 @@ tile.heater_oilburner.desc=Burns fluids to produce heat.
|
|||||||
tile.heater_oven.name=Heating Oven
|
tile.heater_oven.name=Heating Oven
|
||||||
tile.heater_oven.desc=Burns solid fuel to produce heat.$Accepts heat from the bottom with 50%% efficiency.
|
tile.heater_oven.desc=Burns solid fuel to produce heat.$Accepts heat from the bottom with 50%% efficiency.
|
||||||
tile.hev_battery.name=Suit Battery
|
tile.hev_battery.name=Suit Battery
|
||||||
|
tile.impact_dirt.name=Scorched Dirt
|
||||||
tile.iter.name=Fusion Reactor
|
tile.iter.name=Fusion Reactor
|
||||||
tile.ladder_aluminium.name=Aluminium Ladder
|
tile.ladder_aluminium.name=Aluminium Ladder
|
||||||
tile.ladder_cobalt.name=Cobalt Ladder
|
tile.ladder_cobalt.name=Cobalt Ladder
|
||||||
@ -4228,6 +4230,8 @@ tile.machine_solidifier.name=Industrial Solidification Machine
|
|||||||
tile.machine_solidifier.desc=A universal machine fitted with cooling systems and other$versatile tools for turning fluids solid using various$processes such as freezing and petrochemical polymerization.
|
tile.machine_solidifier.desc=A universal machine fitted with cooling systems and other$versatile tools for turning fluids solid using various$processes such as freezing and petrochemical polymerization.
|
||||||
tile.machine_spp_bottom.name=ZPE Potential Generator (Bottom)
|
tile.machine_spp_bottom.name=ZPE Potential Generator (Bottom)
|
||||||
tile.machine_spp_top.name=ZPE Potential Generator (Top)
|
tile.machine_spp_top.name=ZPE Potential Generator (Top)
|
||||||
|
tile.machine_steam_engine.name=Steam Engine
|
||||||
|
tile.machine_steam_engine.desc=Efficiency: 85%%
|
||||||
tile.machine_stirling.name=Stirling Engine
|
tile.machine_stirling.name=Stirling Engine
|
||||||
tile.machine_stirling.desc=Turns heat into energy. Requires external heat source.$Heat transfer rate: T*0.1 TU/t$Max intake: 300 TU/t$Efficiency: 50%%
|
tile.machine_stirling.desc=Turns heat into energy. Requires external heat source.$Heat transfer rate: T*0.1 TU/t$Max intake: 300 TU/t$Efficiency: 50%%
|
||||||
tile.machine_stirling_steel.name=Heavy Stirling Engine
|
tile.machine_stirling_steel.name=Heavy Stirling Engine
|
||||||
@ -4478,6 +4482,7 @@ tile.stone_gneiss.name=Graphitic Schist
|
|||||||
tile.stone_porous.name=Porous Stone
|
tile.stone_porous.name=Porous Stone
|
||||||
tile.stone_resource.asbestos.name=Chrysotile
|
tile.stone_resource.asbestos.name=Chrysotile
|
||||||
tile.stone_resource.hematite.name=Hematite
|
tile.stone_resource.hematite.name=Hematite
|
||||||
|
tile.stone_resource.limestone.name=Limestone
|
||||||
tile.stone_resource.malachite.name=Malachite
|
tile.stone_resource.malachite.name=Malachite
|
||||||
tile.stone_resource.sulfur.name=Sulfurous Stone
|
tile.stone_resource.sulfur.name=Sulfurous Stone
|
||||||
tile.struct_iter_core.name=Fusion Reactor Core Component
|
tile.struct_iter_core.name=Fusion Reactor Core Component
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 8.2 KiB |
@ -3,7 +3,7 @@
|
|||||||
"modid": "hbm",
|
"modid": "hbm",
|
||||||
"name": "Hbm's Nuclear Tech",
|
"name": "Hbm's Nuclear Tech",
|
||||||
"description": "A mod that adds weapons, nuclear themed stuff and machines",
|
"description": "A mod that adds weapons, nuclear themed stuff and machines",
|
||||||
"version":"1.0.27_X4411",
|
"version":"1.0.27_X4417",
|
||||||
"mcversion": "1.7.10",
|
"mcversion": "1.7.10",
|
||||||
"url": "",
|
"url": "",
|
||||||
"updateUrl": "",
|
"updateUrl": "",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user