diff --git a/src/main/java/gregtech/api/capability/impl/RecipeLogicSteam.java b/src/main/java/gregtech/api/capability/impl/RecipeLogicSteam.java index fb2ba79e20..bd520b0326 100644 --- a/src/main/java/gregtech/api/capability/impl/RecipeLogicSteam.java +++ b/src/main/java/gregtech/api/capability/impl/RecipeLogicSteam.java @@ -1,6 +1,7 @@ package gregtech.api.capability.impl; import gregtech.api.GTValues; +import gregtech.api.capability.IMultipleTankHandler; import gregtech.api.damagesources.DamageSources; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.recipes.Recipe; @@ -9,6 +10,7 @@ import net.minecraft.block.state.IBlockState; import net.minecraft.entity.EntityLivingBase; import net.minecraft.init.SoundEvents; +import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.PacketBuffer; import net.minecraft.util.EntitySelectors; @@ -18,7 +20,13 @@ import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; import net.minecraft.world.WorldServer; +import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.IFluidTank; +import net.minecraftforge.items.IItemHandler; + +import java.util.Arrays; + +import static gregtech.api.situation.Situations.*; public class RecipeLogicSteam extends AbstractRecipeLogic { @@ -143,10 +151,56 @@ public void update() { return; if (this.needsVenting && metaTileEntity.getTimer() % 10 == 0) { tryDoVenting(); + if (isVentingStuck()){ + metaTileEntity.setSituation(BLOCKED_VENT); + } } super.update(); } + protected boolean checkRecipeInputsDirty(IItemHandler inputs, IMultipleTankHandler fluidInputs) { + boolean shouldRecheckRecipe = false; + this.isInputsEmpty = true; + if (lastItemInputs == null || lastItemInputs.length != inputs.getSlots()) { + this.lastItemInputs = new ItemStack[inputs.getSlots()]; + Arrays.fill(lastItemInputs, ItemStack.EMPTY); + } + if (lastFluidInputs == null || lastFluidInputs.length != fluidInputs.getTanks()) { + this.lastFluidInputs = new FluidStack[fluidInputs.getTanks()]; + } + for (int i = 0; i < lastItemInputs.length; i++) { + ItemStack currentStack = inputs.getStackInSlot(i); + ItemStack lastStack = lastItemInputs[i]; + if (!areItemStacksEqual(currentStack, lastStack)) { + this.lastItemInputs[i] = currentStack.isEmpty() ? ItemStack.EMPTY : currentStack.copy(); + shouldRecheckRecipe = true; + } else if (currentStack.getCount() != lastStack.getCount()) { + lastStack.setCount(currentStack.getCount()); + shouldRecheckRecipe = true; + } else if (!currentStack.isEmpty()) { + this.isInputsEmpty = false; + } + } + for (int i = 0; i < lastFluidInputs.length; i++) { + if (fluidInputs.getTankAt(i) == steamFluidTank) + continue; + FluidStack currentStack = fluidInputs.getTankAt(i).getFluid(); + FluidStack lastStack = lastFluidInputs[i]; + if ((currentStack == null && lastStack != null) || + (currentStack != null && !currentStack.isFluidEqual(lastStack))) { + this.lastFluidInputs[i] = currentStack == null ? null : currentStack.copy(); + shouldRecheckRecipe = true; + } else if (currentStack != null && lastStack != null && + currentStack.amount != lastStack.amount) { + lastStack.amount = currentStack.amount; + shouldRecheckRecipe = true; + } else if (currentStack != null) { + this.isInputsEmpty = false; + } + } + return shouldRecheckRecipe; + } + @Override protected boolean setupAndConsumeRecipeInputs(Recipe recipe) { return !this.needsVenting && super.setupAndConsumeRecipeInputs(recipe); diff --git a/src/main/java/gregtech/api/gui/widgets/SituationWidget.java b/src/main/java/gregtech/api/gui/widgets/SituationWidget.java index 674a5d0761..d2af413756 100644 --- a/src/main/java/gregtech/api/gui/widgets/SituationWidget.java +++ b/src/main/java/gregtech/api/gui/widgets/SituationWidget.java @@ -17,6 +17,8 @@ public class SituationWidget extends Widget { private final Supplier currentSituationSupplier; + private boolean isHighPressure = false; + private boolean steam = false; private Situation currentSituation; protected String tooltipHoverString; protected int currentId; @@ -31,22 +33,93 @@ public SituationWidget(int xPosition, int yPosition, int w setImage(); } + public SituationWidget(int xPosition, int yPosition, int width, int height, Supplier getSituation, boolean isHighPressure) { + super(new Position(xPosition, yPosition), new Size(width, height)); + this.steam = true; + this.isHighPressure = isHighPressure; + this.currentSituationSupplier = getSituation; + this.currentSituation = getSituation.get(); + setTooltipHoverString(); + setImage(); + } + public void setTooltipHoverString() { if (this.currentSituation != null) { - this.tooltipHoverString = I18n.format(this.currentSituation.situationLocaleName); + String situationLocaleName = this.currentSituation.situationLocaleName; + if (steam && situationLocaleName.contains("_power_")) { + situationLocaleName = situationLocaleName.replace("_power_","_steam_"); + } + this.tooltipHoverString = I18n.format(situationLocaleName); } else { this.tooltipHoverString = null; } } public SituationWidget setImage() { + if (this.currentSituation == null) { + this.area = null; + return this; + } + if (isHighPressure) + setImageSteamHighPressure(); + else if (steam) + setImageSteam(); + else { + setImageElectric(); + } + return this; + } + + public SituationWidget setImageSteamHighPressure() { + SituationTypes iconTextures = this.currentSituation.situationTypes; + switch (iconTextures) { + case INFO: + this.area = GuiTextures.STATUS_IDLING; + break; + case WORKING: + this.area = GuiTextures.STATUS_WORKING; + break; + case WARNING: + this.area = GuiTextures.STATUS_WARNING; + break; + case ERROR: + this.area = GuiTextures.STATUS_ERROR; + break; + default: + this.area = null; + } + return this; + } + + public SituationWidget setImageSteam() { + SituationTypes iconTextures = this.currentSituation.situationTypes; + switch (iconTextures) { + case INFO: + this.area = GuiTextures.STATUS_IDLING; + break; + case WORKING: + this.area = GuiTextures.STATUS_WORKING; + break; + case WARNING: + this.area = GuiTextures.STATUS_WARNING; + break; + case ERROR: + this.area = GuiTextures.STATUS_ERROR; + break; + default: + this.area = null; + } + return this; + } + + public SituationWidget setImageElectric() { if (this.currentSituation == null) { this.area = null; return this; } SituationTypes iconTextures = this.currentSituation.situationTypes; switch (iconTextures) { - case IDLE: + case INFO: this.area = GuiTextures.STATUS_IDLING; break; case WORKING: diff --git a/src/main/java/gregtech/api/metatileentity/SteamMetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/SteamMetaTileEntity.java index 4edf3a6696..2832af0006 100644 --- a/src/main/java/gregtech/api/metatileentity/SteamMetaTileEntity.java +++ b/src/main/java/gregtech/api/metatileentity/SteamMetaTileEntity.java @@ -10,8 +10,8 @@ import gregtech.api.capability.impl.RecipeLogicSteam; import gregtech.api.gui.ModularUI; import gregtech.api.gui.resources.TextureArea; -import gregtech.api.gui.widgets.ImageWidget; import gregtech.api.gui.widgets.LabelWidget; +import gregtech.api.gui.widgets.SituationWidget; import gregtech.api.recipes.ModHandler; import gregtech.api.recipes.RecipeMap; import gregtech.api.render.OrientedOverlayRenderer; @@ -116,8 +116,7 @@ protected TextureArea getFullGuiTexture(String pathTemplate) { public ModularUI.Builder createUITemplate(EntityPlayer player) { return ModularUI.builder(BRONZE_BACKGROUND_TEXTURE, 176, 166) .widget(new LabelWidget(6, 6, getMetaFullName())) - .widget(new ImageWidget(79, 42, 18, 18, getFullGuiTexture("not_enough_steam_%s")) - .setPredicate(() -> workableHandler.isHasNotEnoughEnergy())) + .widget(new SituationWidget(79,42,18,18,this::getSituation, isHighPressure)) .bindPlayerInventory(player.inventory, BRONZE_SLOT_BACKGROUND_TEXTURE); } } diff --git a/src/main/java/gregtech/api/situation/SituationTypes.java b/src/main/java/gregtech/api/situation/SituationTypes.java index 8ac3160cf3..226acc1709 100644 --- a/src/main/java/gregtech/api/situation/SituationTypes.java +++ b/src/main/java/gregtech/api/situation/SituationTypes.java @@ -4,7 +4,7 @@ public enum SituationTypes implements IStringSerializable { WORKING("gregtech.situation.level.warning"), - IDLE("gregtech.situation.level.idle"), + INFO("gregtech.situation.level.idle"), ERROR("gregtech.situation.level.error"), WARNING("gregtech.situation.level.warning"); diff --git a/src/main/java/gregtech/api/situation/Situations.java b/src/main/java/gregtech/api/situation/Situations.java index 08ea4273ea..8eb9c0300b 100644 --- a/src/main/java/gregtech/api/situation/Situations.java +++ b/src/main/java/gregtech/api/situation/Situations.java @@ -5,8 +5,8 @@ public class Situations { public static Situation WORKING = new Situation(1, "working", SituationTypes.WORKING); - public static Situation IDLE = new Situation(2, "idle", SituationTypes.IDLE); - public static Situation DISABLED_BY_CONTROLLER = new Situation(3, "disabled_by_controller", SituationTypes.IDLE); + public static Situation IDLE = new Situation(2, "idle", SituationTypes.INFO); + public static Situation DISABLED_BY_CONTROLLER = new Situation(3, "disabled_by_controller", SituationTypes.INFO); public static Situation EMPTY_SOURCE = new Situation(100, "empty_source", SituationTypes.WARNING); public static Situation INSUFFICIENT_POWER = new Situation(101, "insufficient_power", SituationTypes.WARNING); @@ -17,14 +17,16 @@ public class Situations { public static Situation OUTPUT_INVENTORY_FULL = new Situation(106, "output_inventory_full", SituationTypes.WARNING); public static Situation TARGET_INVENTORY_FULL = new Situation(107, "target_inventory_full", SituationTypes.WARNING); - public static Situation NO_IMPORT_INVENTORY = new Situation(201, "no_import_inventory", SituationTypes.ERROR); - public static Situation NO_EXPORT_INVENTORY = new Situation(202, "no_export_inventory", SituationTypes.ERROR); - public static Situation NO_IMPORT_TANK = new Situation(203, "no_import_tank", SituationTypes.ERROR); - public static Situation NO_EXPORT_TANK = new Situation(204, "no_export_tank", SituationTypes.ERROR); - public static Situation EXPECTED_CAPABILITY_UNAVAILABLE = new Situation(205, "null_capability", SituationTypes.ERROR); - public static Situation WATER_CHECK_FAILED = new Situation(206, "water_check_failed", SituationTypes.ERROR); - public static Situation BLOCKED_INTAKES = new Situation(207, "blocked_intakes", SituationTypes.ERROR); - public static Situation DIMENSION_LACKS_ATMOSPHERE = new Situation(208, "dimension_lacks_atmosphere", SituationTypes.ERROR); + public static Situation NO_IMPORT_INVENTORY = new Situation(1001, "no_import_inventory", SituationTypes.ERROR); + public static Situation NO_EXPORT_INVENTORY = new Situation(1002, "no_export_inventory", SituationTypes.ERROR); + public static Situation NO_IMPORT_TANK = new Situation(1003, "no_import_tank", SituationTypes.ERROR); + public static Situation NO_EXPORT_TANK = new Situation(1004, "no_export_tank", SituationTypes.ERROR); + public static Situation EXPECTED_CAPABILITY_UNAVAILABLE = new Situation(1005, "null_capability", SituationTypes.ERROR); + public static Situation WATER_CHECK_FAILED = new Situation(1006, "water_check_failed", SituationTypes.ERROR); + public static Situation BLOCKED_INTAKES = new Situation(1007, "blocked_intakes", SituationTypes.ERROR); + public static Situation BLOCKED_VENT = new Situation(1008, "blocked_vent", SituationTypes.ERROR); + public static Situation DIMENSION_LACKS_ATMOSPHERE = new Situation(1009, "dimension_lacks_atmosphere", SituationTypes.ERROR); + public static void init() { GTLog.logger.info("Registering situations..."); diff --git a/src/main/resources/assets/gregtech/lang/en_us.lang b/src/main/resources/assets/gregtech/lang/en_us.lang index fa4220ac49..4f239488ef 100755 --- a/src/main/resources/assets/gregtech/lang/en_us.lang +++ b/src/main/resources/assets/gregtech/lang/en_us.lang @@ -13,16 +13,13 @@ enchantment.disjunction=Disjunction gregtech.top.energy_stored=Energy: gregtech.top.progress=Progress: gregtech.top.working_disabled=Working Disabled - -gregtech.top.transform_up=§cStep Up§r -gregtech.top.transform_down=§aStep Down§r -gregtech.top.transform_input=§6Input:§r -gregtech.top.transform_output=§9Output:§r - -gregtech.top.fuel_burn=for -gregtech.top.fuel_time=secs -gregtech.top.fuel_min_consume=needs -gregtech.top.fuel_name=Fuel: +gregtech.top.transform_up=§cStep Up§r %s (%dA) -> %s (%dA) +gregtech.top.transform_down=§aStep Down§r %s (%dA) -> %s (%dA) +gregtech.top.transform_input=§6Input:§r %s (%dA) +gregtech.top.transform_output=§9Output:§r %s (%dA) +gregtech.top.fuel_info=/%,d for %,d secs +gregtech.top.fuel_min_consume=/%,d needs %,d +gregtech.top.fuel_name=Fuel: %s gregtech.top.fuel_none=No fuel gregtech.multiblock.title=Multiblock Pattern @@ -42,15 +39,15 @@ gregtech.multiblock.large_turbine.description=Large Turbines are multiblocks tha item.invalid.name=Invalid item fluid.empty=Empty -metaitem.generic.fluid_container.tooltip=%,d/%,dL %s +metaitem.generic.fluid_container.tooltip=%d/%dL %s metaitem.generic.fluid_container.tooltip_empty=Empty -metaitem.generic.electric_item.tooltip=%,d/%,d EU - Tier §e%s +metaitem.generic.electric_item.tooltip=%d/%d EU - Tier §e%d metaitem.electric.discharge_mode.enabled=§eDischarge Mode Enabled metaitem.electric.discharge_mode.disabled=§eDischarge Mode Disabled metaitem.electric.discharge_mode.tooltip=Use while sneaking to toggle discharge mode metaitem.dust.tooltip.purify=Throw into Cauldron to get clean Dust -metaitem.int_circuit.configuration=Configuration: %,d +metaitem.int_circuit.configuration=Configuration: %d metaitem.credit.copper.name=Copper Credit metaitem.credit.copper.tooltip=0.125 Credits metaitem.credit.cupronickel.name=Cupronickel Credit @@ -683,10 +680,10 @@ metaitem.behavior.mode_switch.mode_switched=§eMode Set to: %s metaitem.behavior.mode_switch.current_mode=Mode: %s metaitem.tool.tooltip.primary_material=Material: %s (%s lvl) -metaitem.tool.tooltip.attack_damage=Attack damage: %,.1f -metaitem.tool.tooltip.mining_speed=Mining speed: %,.1f -metaitem.tool.tooltip.durability=Durability: %,d/%,d -metaitem.tool.tooltip.rotor.efficiency=Rotor Efficiency: %,d%% +metaitem.tool.tooltip.attack_damage=Attack damage: %d +metaitem.tool.tooltip.mining_speed=Mining speed: %d +metaitem.tool.tooltip.durability=Durability: %d/%d +metaitem.tool.tooltip.rotor.efficiency=Rotor Efficiency: %d%% metaitem.tool.tooltip.hammer.extra_drop=Has a chance to drop double crushed ores cover.filter.blacklist.disabled=Whitelist @@ -748,7 +745,7 @@ cover.machine_controller.name=Machine Controller Settings cover.machine_controller.normal=Normal cover.machine_controller.inverted=Inverted cover.machine_controller.inverted.description=§eNormal§r - in this mode, the cover will require a signal weaker than the set redstone level to run/n§eInverted§r - in this mode, the cover will require a signal stronger than the set redstone level to run -cover.machine_controller.redstone=Min Redstone Strength: %,d +cover.machine_controller.redstone=Min Redstone Strength: %d cover.machine_controller.mode.machine=Control Machine cover.machine_controller.mode.cover_up=Control Cover (Top) cover.machine_controller.mode.cover_down=Control Cover (Bottom) @@ -768,6 +765,8 @@ gregtech.situation.null_capability=Error accessing inventory from this side gregtech.situation.empty_source=This inventory is empty gregtech.situation.insufficient_power=Not enough power to run this recipe gregtech.situation.insufficient_power_to_start=Not enough power to start this recipe +gregtech.situation.insufficient_steam=Not enough steam to run this recipe +gregtech.situation.insufficient_steam_to_start=Not enough steam to start this recipe gregtech.situation.no_matching_recipe=No recipe found gregtech.situation.target_inventory_full=The target inventory is full gregtech.situation.output_slots_full=Output slots are full @@ -778,6 +777,7 @@ gregtech.situation.no_export_inventory=Cant access inventory to export to gregtech.situation.no_import_tank=Cant access tank to import from gregtech.situation.no_export_tank=Cant access tank to export to gregtech.situation.blocked_intakes=Blocked intakes +gregtech.situation.blocked_vent=Blocked vent gregtech.situation.dimension_lacks_atmosphere=Dimension lacks atmosphere # %s is a localized material name @@ -1649,7 +1649,7 @@ recipemap.plasma_generator.name=Plasma Generator behaviour.hoe=Can till dirt behaviour.soft_hammer=Use on machine to allow/disallow it to work behaviour.lighter.tooltip=Can light things on fire -behaviour.lighter.uses=Remaining uses: %,d +behaviour.lighter.uses=Remaining uses: %d behavior.plunger.description=Use to clear 1000 mb out of a machine's output tank./nUse while sneaking to clear 1000 mb out of a machine's input tank./nInput tank clearing works only on GTCE machines! behavior.toggle_energy_consumer.tooltip=Use to toggle mode @@ -1690,10 +1690,10 @@ fluid.distilled_water=Distilled Water # Wire coil blocks tile.wire_coil.tooltip_ebf=When used in §aElectric Blast Furnace§7: -tile.wire_coil.tooltip_heat= Base Heating Capacity: §e%,dK +tile.wire_coil.tooltip_heat= Base Heating Capacity: §e%dK tile.wire_coil.tooltip_smelter=When used in §aMulti Smelter§7: -tile.wire_coil.tooltip_level= Level: §e%,d -tile.wire_coil.tooltip_discount= Energy Discount: §a%,dx +tile.wire_coil.tooltip_level= Level: §e%d +tile.wire_coil.tooltip_discount= Energy Discount: §a%dx tile.wire_coil.cupronickel.name=Cupronickel Coil Block tile.wire_coil.kanthal.name=Kanthal Coil Block @@ -1801,7 +1801,7 @@ gregtech.machine.workbench.tab.workbench=Crafting gregtech.machine.workbench.tab.item_list=Storage gregtech.machine.workbench.storage_note_1=(Available items from connected gregtech.machine.workbench.storage_note_2=inventories usable for crafting) -gregtech.item_list.item_stored=§7Stored: %,d +gregtech.item_list.items_stored=§7Stored: %d gregtech.machine.workbench.tab.crafting=Crafting gregtech.machine.workbench.tab.container=Container @@ -1872,7 +1872,7 @@ tile.concrete.dark_bricks.mossy.name=Mossy Dark Concrete Bricks tile.concrete.dark_bricks.chiseled.name=Chiseled Dark Concrete Bricks # Steam machines -gregtech.machine.steam_boiler.tooltip_produces=Produces %,dmb of steam in %,d ticks +gregtech.machine.steam_boiler.tooltip_produces=Produces %dmb of steam in %d ticks gregtech.machine.steam_boiler_coal_bronze.name=Small Steam Coal Boiler gregtech.machine.steam_boiler_coal_bronze.tooltip=An early way to get Steam Power @@ -1934,8 +1934,8 @@ gregtech.machine.block_breaker.mv.name=Advanced Block Breaker gregtech.machine.block_breaker.hv.name=Advanced Block Breaker II gregtech.machine.block_breaker.ev.name=Advanced Block Breaker III gregtech.machine.block_breaker.tooltip=Mines block on front face and collects its drops -gregtech.machine.block_breaker.consumption=Consumes §e%,d EU§7 per operation -gregtech.machine.block_breaker.speed_bonus=Speed Bonus: §e%,d%% +gregtech.machine.block_breaker.consumption=Consumes §e%d EU§7 per operation +gregtech.machine.block_breaker.speed_bonus=Speed Bonus: §e%d%% gregtech.machine.electric_furnace.lv.name=Basic Electric Furnace gregtech.machine.electric_furnace.mv.name=Advanced Electric Furnace @@ -2240,9 +2240,9 @@ gregtech.machine.battery_buffer.max.16.name=MAX Voltage Battery Buffer # Transformers gregtech.machine.transformer.tooltip_tool_usage=Use Soft Hammer to invert (Starts as Transform Down) gregtech.machine.transformer.tooltip_transform_down=Transform Down: -gregtech.machine.transformer.message_transform_down=Transforming Down, In: %,dV %,d Amp, Out: %,dV %,d Amp +gregtech.machine.transformer.message_transform_down=Transforming Down, In: %dV %d Amp, Out: %dV %d Amp gregtech.machine.transformer.tooltip_transform_up=Transform Up: -gregtech.machine.transformer.message_transform_up=Transforming Up, In: %,dV %,d Amp, Out: %,dV %,d Amp +gregtech.machine.transformer.message_transform_up=Transforming Up, In: %dV %d Amp, Out: %dV %d Amp gregtech.machine.transformer.lv.name=Low Voltage Transformer gregtech.machine.transformer.mv.name=Medium Voltage Transformer @@ -2267,8 +2267,8 @@ gregtech.machine.charger.uv.name=Ultimate Voltage Battery Charger gregtech.machine.charger.max.name=MAX Voltage Battery Charger # Pumps -gregtech.machine.pump.tooltip_range=Pumping Area: %,dx%,d -gregtech.machine.pump.tooltip_speed=Pumps Fluid every %,d ticks +gregtech.machine.pump.tooltip_range=Pumping Area: %dx%d +gregtech.machine.pump.tooltip_speed=Pumps Fluid every %d ticks gregtech.machine.pump.lv.name=Basic Pump gregtech.machine.pump.mv.name=Advanced Pump @@ -2280,12 +2280,12 @@ gregtech.machine.item_collector.mv.name=Advanced Item Collector gregtech.machine.item_collector.hv.name=Advanced Item Collector II gregtech.machine.item_collector.ev.name=Advanced Item Collector III -gregtech.machine.item_collector.collect_range=Collection Area: %,dx%,d +gregtech.machine.item_collector.collect_range=Collection Area: %dx%d gregtech.machine.item_collector.gui.collect_range=Collect in %s blocks #Quantum chests gregtech.machine.quantum_chest.tooltip=Better than JABBA. -gregtech.machine.quantum_chest.capacity=Item Capacity: %,d items +gregtech.machine.quantum_chest.capacity=Item Capacity: %d items gregtech.machine.quantum_chest.items_stored=Item Amount: gregtech.machine.quantum_chest.mv.name=Basic Quantum Chest @@ -2295,7 +2295,7 @@ gregtech.machine.quantum_chest.iv.name=Black Hole-Quantum Chest III #Quantum tanks gregtech.machine.quantum_tank.tooltip=Compact place to store all your fluids. -gregtech.machine.quantum_tank.capacity=Fluid Capacity: %,d mb +gregtech.machine.quantum_tank.capacity=Fluid Capacity: %d mb gregtech.machine.quantum_tank.mv.name=Basic Quantum Tank gregtech.machine.quantum_tank.hv.name=Advanced Quantum Tank @@ -2308,7 +2308,7 @@ gregtech.machine.air_collector.mv.name=Advanced Air Collector gregtech.machine.air_collector.hv.name=Advanced Air Collector II gregtech.machine.air_collector.ev.name=Atmosphere Collector III gregtech.machine.air_collector.tooltip=Collects air from adjacent blocks at the expense of energy -gregtech.machine.air_collector.collection_speed=Produces %,d mb of Air every %,d ticks +gregtech.machine.air_collector.collection_speed=Produces %d mb of Air every %d ticks gregtech.machine.air_collector.jei_description=The Air Collector collects air from adjacent blocks for a little bit of EU #Tesla Coil @@ -2321,8 +2321,8 @@ gregtech.machine.fisher.mv.name=Advanced Fisher gregtech.machine.fisher.hv.name=Advanced Fisher II gregtech.machine.fisher.ev.name=Advanced Fisher III gregtech.machine.fisher.tooltip=Costs string to fish. Consumes one string each time. -gregtech.machine.fisher.speed=Catches something every %,d ticks -gregtech.machine.fisher.requirement=Requires a square of water with size of %,d blocks directly below. +gregtech.machine.fisher.speed=Catches something every %d ticks +gregtech.machine.fisher.requirement=Requires a square of water with size of %d blocks directly below. # General machinery gregtech.machine.basic.input_from_output_side.allow=Allow Input from Output Side @@ -2765,7 +2765,7 @@ behaviour.paintspray.brown.tooltip=Can paint things in Brown behaviour.paintspray.green.tooltip=Can paint things in Green behaviour.paintspray.red.tooltip=Can paint things in Red behaviour.paintspray.black.tooltip=Can paint things in Black -behaviour.paintspray.uses=Remaining Uses: %,d +behaviour.paintspray.uses=Remaining Uses: %d behaviour.prospecting=Usable for Prospecting # Multiblock machine controllers @@ -2884,33 +2884,33 @@ gregtech.machine.rotor_holder.zpm.name=Rotor Holder (ZPM) gregtech.machine.rotor_holder.uv.name=Rotor Holder (UV) gregtech.machine.rotor_holder.max.name=Rotor Holder (MAX) -gregtech.machine.fluid_tank.max_multiblock=Max Multiblock Size: %,dx%,dx%,d +gregtech.machine.fluid_tank.max_multiblock=Max Multiblock Size: %dx%dx%d gregtech.machine.fluid_tank.fluid=Contains %s mb of %s gregtech.machine.item_controller.tooltip.redstone=Requires Redstone Input To Work -gregtech.machine.item_controller.tooltip.consumption=While working, constantly consumes %,d EU/t +gregtech.machine.item_controller.tooltip.consumption=While working, constantly consumes %d EU/t # Universal tooltips -gregtech.universal.tooltip.voltage_in=Voltage IN: §a%,d §7(§a%s§7) -gregtech.universal.tooltip.voltage_out=Voltage OUT: §a%,d §7(§a%s§7) -gregtech.universal.tooltip.energy_storage_capacity=Internal Energy Capacity: §9%,d -gregtech.universal.tooltip.amperage_in=Amperage IN: §e%,d -gregtech.universal.tooltip.amperage_in_till=Amperage IN up to: §e%,d -gregtech.universal.tooltip.amperage_out=Amperage OUT: §e%,d -gregtech.universal.tooltip.amperage_out_till=Amperage OUT up to: §e%,d -gregtech.universal.tooltip.item_storage_capacity=Item Slots: %,d -gregtech.universal.tooltip.fluid_storage_capacity=Fluid Capacity: %,d mb -gregtech.universal.tooltip.max_voltage_in=Max Voltage IN: §a%,d §7(§a%s§7) - -gregtech.recipe.total=Total: %,d EU -gregtech.recipe.eu=Usage: %,d EU/t (%s) -gregtech.recipe.eu_inverted=Generation: %,d EU/t -gregtech.recipe.duration=Duration: %,.1f secs -gregtech.recipe.amperage=Amperage: %,d +gregtech.universal.tooltip.voltage_in=Voltage IN: §a%d §7(§a%s§7) +gregtech.universal.tooltip.voltage_out=Voltage OUT: §a%d §7(§a%s§7) +gregtech.universal.tooltip.energy_storage_capacity=Internal Energy Capacity: §9%d +gregtech.universal.tooltip.amperage_in=Amperage IN: §e%d +gregtech.universal.tooltip.amperage_in_till=Amperage IN up to: §e%d +gregtech.universal.tooltip.amperage_out=Amperage OUT: §e%d +gregtech.universal.tooltip.amperage_out_till=Amperage OUT up to: §e%d +gregtech.universal.tooltip.item_storage_capacity=Item Slots: %d +gregtech.universal.tooltip.fluid_storage_capacity=Fluid Capacity: %d mb +gregtech.universal.tooltip.max_voltage_in=Max Voltage IN: §a%d §7(§a%s§7) + +gregtech.recipe.total=Total: %d EU +gregtech.recipe.eu=Usage: %d EU/t (%s) +gregtech.recipe.eu_inverted=Generation: %d EU/t +gregtech.recipe.duration=Duration: %.1f secs +gregtech.recipe.amperage=Amperage: %d gregtech.recipe.not_consumed=Not consumed in process gregtech.recipe.chance=Chance: %s%% +%s%%/tier -gregtech.recipe.blast_furnace_temperature=Temperature: %,dK -gregtech.recipe.eu_to_start=Energy To Start: %,dEU +gregtech.recipe.blast_furnace_temperature=Temperature: %dK +gregtech.recipe.eu_to_start=Energy To Start: %dEU gregtech.fluid.click_to_fill=§7Click with a empty fluid container to fill it from tank. gregtech.fluid.click_to_fill.shift=§7(Shift-clicking will fill all containers in your hand) @@ -2921,7 +2921,7 @@ gregtech.fluid.click_to_empty.shift=§7(Shift-clicking will empty all containers gregtech.fluid.plasma=%s Plasma gregtech.fluid.empty=Empty gregtech.fluid.amount=§7%,d/%,d -gregtech.fluid.temperature=§7Temperature: %,dK +gregtech.fluid.temperature=§7Temperature: %dK gregtech.fluid.state_gas=§7State: Gaseous gregtech.fluid.state_liquid=§7State: Liquid gregtech.gui.fuel_amount=Fuel Amount: @@ -2949,12 +2949,12 @@ gregtech.jei.ore.biome_weighting_no_spawn=%s Weight: Cannot Spawn gregtech.item_filter.empty_item=Empty (No Item) gregtech.item_filter.footer=§eClick with item to override -gregtech.cable.voltage=Voltage: §a%,d §7(§a%s§7) -gregtech.cable.amperage=Amperage: §e%,d -gregtech.cable.loss_per_block=Loss per block: §c%,d +gregtech.cable.voltage=Voltage: §a%d §7(§a%s§7) +gregtech.cable.amperage=Amperage: §e%d +gregtech.cable.loss_per_block=Loss per block: §c%d -gregtech.fluid_pipe.throughput=Transfer: §e%,d mb/t -gregtech.fluid_pipe.max_temperature=Max Temperature: §c%,dK +gregtech.fluid_pipe.throughput=Transfer: §e%d mb/t +gregtech.fluid_pipe.max_temperature=Max Temperature: §c%dK gregtech.fluid_pipe.non_gas_proof=Can't transfer gases. gregtech.multiblock.work_paused=Work Paused.