diff --git a/changelog b/changelog index 13825b254..9f73424a7 100644 --- a/changelog +++ b/changelog @@ -9,6 +9,10 @@ * `/ntmreapnetworks` * Deletes all active nodespace instances * Mainly useful for server owners, in case nodespace builds up too much garbage data that isn't cleared correctly +* Fluid valve with counter + * Reads total fluid movement within a network + * Value can be read or reset with OC or RoR + * Allows for very precise portioning and fluid control ## Changed * Updated italian localization @@ -21,6 +25,7 @@ * OpenComputers integration for the PWR can now also read the heat capacity stats * Removed the restriction that demands that cluster ores need to be mined by hand * Laser beams from energy weapons are now a lot more narrow +* All steam turbines now have a passive drain on unused power in their buffers ## Fixed * Fixed meteors using a nonexistant keepalive timer, causing potential audio flickering in certain cases @@ -32,3 +37,5 @@ * Fixed power not saving for mining lasers * Fixed the annihilator producing blank 528 mode blueprints when 528 mode isn't even enabled * Fixed black fire not using the skeletonizer on death +* Fixed arc furnace electrodes not being able to be plugged into the arc furnace unless the lid is fully open +* Fixed broken keybind localization diff --git a/gradle.properties b/gradle.properties index 1d866b3e4..6488da4b9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=5546 +mod_build_number=5567 credits=HbMinecraft,\ \ rodolphito (explosion algorithms),\ diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 6b9f833e4..33ac3beb7 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1867,12 +1867,12 @@ public class ModBlocks { machine_battery_socket = new MachineBatterySocket().setBlockName("machine_battery_socket").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_battery_redd = new MachineBatteryREDD().setBlockName("machine_battery_redd").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - machine_battery_potato = new MachineBattery(Material.iron, 10_000).setBlockName("machine_battery_potato").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_battery = new MachineBattery(Material.iron, 1_000_000).setBlockName("machine_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_lithium_battery = new MachineBattery(Material.iron, 50_000_000).setBlockName("machine_lithium_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_schrabidium_battery = new MachineBattery(Material.iron, 25_000_000_000L).setBlockName("machine_schrabidium_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_dineutronium_battery = new MachineBattery(Material.iron, 1_000_000_000_000L).setBlockName("machine_dineutronium_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_fensu = new MachineFENSU(Material.iron).setBlockName("machine_fensu").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_fensu"); + machine_battery_potato = new MachineBattery(Material.iron, 10_000).setBlockName("machine_battery_potato").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null); + machine_battery = new MachineBattery(Material.iron, 1_000_000).setBlockName("machine_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null); + machine_lithium_battery = new MachineBattery(Material.iron, 50_000_000).setBlockName("machine_lithium_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null); + machine_schrabidium_battery = new MachineBattery(Material.iron, 25_000_000_000L).setBlockName("machine_schrabidium_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null); + machine_dineutronium_battery = new MachineBattery(Material.iron, 1_000_000_000_000L).setBlockName("machine_dineutronium_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null); + machine_fensu = new MachineFENSU(Material.iron).setBlockName("machine_fensu").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":machine_fensu"); capacitor_bus = new MachineCapacitorBus(Material.iron).setBlockName("capacitor_bus").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null); capacitor_copper = new MachineCapacitor(Material.iron, 1_000_000L, "copper").setBlockName("capacitor_copper").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_copper"); diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index e12427a86..86d4f49a3 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (5546)"; + public static final String VERSION = "1.0.27 BETA (5567)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java index 16121b0cb..c5c922c8f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java @@ -96,6 +96,8 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IEnergyPr public void updateEntity() { if(!worldObj.isRemote) { + + this.power *= 0.95; this.info = new double[3]; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnaceLarge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnaceLarge.java index a650d536b..03e79bcba 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnaceLarge.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnaceLarge.java @@ -394,7 +394,7 @@ public class TileEntityMachineArcFurnaceLarge extends TileEntityMachineBase impl @Override public boolean canInsertItem(int slot, ItemStack stack, int side) { - if(slot < 3) return lid >= 1 && stack.getItem() == ModItems.arc_electrode; + if(slot < 3) return stack.getItem() == ModItems.arc_electrode; if(slot >= 25) { ArcFurnaceRecipe recipe = ArcFurnaceRecipes.getOutput(stack, this.liquidMode); if(recipe == null) return false; @@ -405,7 +405,7 @@ public class TileEntityMachineArcFurnaceLarge extends TileEntityMachineBase impl @Override public boolean isItemValidForSlot(int slot, ItemStack stack) { - if(slot < 3) return lid >= 1 && stack.getItem() == ModItems.arc_electrode; + if(slot < 3) return stack.getItem() == ModItems.arc_electrode; if(slot > 4) { ArcFurnaceRecipe recipe = ArcFurnaceRecipes.getOutput(stack, this.liquidMode); if(recipe == null) return false; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java index 44605c73a..33f318fb1 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java @@ -120,6 +120,8 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme tanks[0].setType(0, 1, slots); tanks[0].loadTank(2, 3, slots); power = Library.chargeItemsFromTE(slots, 4, power, maxPower); + + this.power *= 0.95; FluidType in = tanks[0].getTankType(); boolean valid = false; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java index 079a563e4..01a7e1cbf 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java @@ -282,6 +282,8 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS tanks[0].setType(0, 1, slots); tanks[0].loadTank(2, 3, slots); power = Library.chargeItemsFromTE(slots, 4, power, maxPower); + + this.power *= 0.95; FluidType in = tanks[0].getTankType(); boolean valid = false; diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBatterySocket.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBatterySocket.java index 329391fc3..5fd082740 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBatterySocket.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBatterySocket.java @@ -3,19 +3,25 @@ package com.hbm.tileentity.machine.storage; import com.hbm.inventory.container.ContainerBatterySocket; import com.hbm.inventory.gui.GUIBatterySocket; import com.hbm.items.ModItems; +import com.hbm.util.CompatEnergyControl; +import com.hbm.util.EnumUtil; import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energymk2.IBatteryItem; +import api.hbm.redstoneoverradio.IRORInteractive; +import api.hbm.redstoneoverradio.IRORValueProvider; +import api.hbm.tile.IInfoProviderEC; import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityBatterySocket extends TileEntityBatteryBase { +public class TileEntityBatterySocket extends TileEntityBatteryBase implements IRORValueProvider, IRORInteractive, IInfoProviderEC { public long[] log = new long[20]; public long delta = 0; @@ -159,4 +165,76 @@ public class TileEntityBatterySocket extends TileEntityBatteryBase { return bb; } + + @Override + public String[] getFunctionInfo() { + return new String[] { + PREFIX_VALUE + "fill", + PREFIX_VALUE + "fillpercent", + PREFIX_VALUE + "delta", + PREFIX_FUNCTION + "setmode" + NAME_SEPARATOR + "mode", + PREFIX_FUNCTION + "setmode" + NAME_SEPARATOR + "mode" + PARAM_SEPARATOR + "fallback", + PREFIX_FUNCTION + "setredmode" + NAME_SEPARATOR + "mode", + PREFIX_FUNCTION + "setredmode" + NAME_SEPARATOR + "mode" + PARAM_SEPARATOR + "fallback", + PREFIX_FUNCTION + "setpriority" + NAME_SEPARATOR + "priority", + }; + } + + @Override + public String provideRORValue(String name) { + if((PREFIX_VALUE + "fill").equals(name)) return "" + this.getPower(); + if((PREFIX_VALUE + "fillpercent").equals(name)) return "" + this.getPower() * 100 / (Math.min(this.getMaxPower(), 1)); + if((PREFIX_VALUE + "delta").equals(name)) return "" + delta; + return null; + } + + @Override + public String runRORFunction(String name, String[] params) { + + if((PREFIX_FUNCTION + "setmode").equals(name) && params.length > 0) { + int mode = IRORInteractive.parseInt(params[0], 0, 3); + + if(mode != this.redLow) { + this.redLow = (short) mode; + this.markChanged(); + return null; + } else if(params.length > 1) { + int altmode = IRORInteractive.parseInt(params[1], 0, 3); + this.redLow = (short) altmode; + this.markChanged(); + return null; + } + return null; + } + + if((PREFIX_FUNCTION + "setredmode").equals(name) && params.length > 0) { + int mode = IRORInteractive.parseInt(params[0], 0, 3); + + if(mode != this.redHigh) { + this.redHigh = (short) mode; + this.markChanged(); + return null; + } else if(params.length > 1) { + int altmode = IRORInteractive.parseInt(params[1], 0, 3); + this.redHigh = (short) altmode; + this.markChanged(); + return null; + } + return null; + } + + if((PREFIX_FUNCTION + "setpriority").equals(name) && params.length > 0) { + int priority = IRORInteractive.parseInt(params[0], 0, 2) + 1; + ConnectionPriority p = EnumUtil.grabEnumSafely(ConnectionPriority.class, priority); + this.priority = p; + this.markChanged(); + return null; + } + return null; + } + + @Override + public void provideExtraInfo(NBTTagCompound data) { + data.setLong(CompatEnergyControl.L_DIFF_HE, (log[0] - log[19]) / 20L); + } } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index f1c8ed61e..000087ca4 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -757,6 +757,7 @@ hbm.key.dash=Schub hbm.key.gunPrimary=Primärfeuer hbm.key.gunSecondary=Sekundärfeuer hbm.key.gunTertitary=Zielvisier +hbm.key.qmaw=Schnellhandbuch öffnen hbm.key.toggleBack=Jetpack umschalten hbm.key.toggleHUD=HUD umschalten hbm.key.toggleMagnet=Magnet umschalten diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 80b1fc2f7..246266b8c 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1494,6 +1494,7 @@ hbm.key.dash=Dash hbm.key.gunPrimary=Primary Fire hbm.key.gunSecondary=Secondary Fire hbm.key.gunTertitary=Gun Sights +hbm.key.qmaw=Open Quick Manual hbm.key.toggleBack=Toggle Jetpack hbm.key.toggleHUD=Toggle HUD hbm.key.toggleMagnet=Toggle Magnet