From 44f6169436924ea17097bb1dee27da6ba2cc301e Mon Sep 17 00:00:00 2001 From: kross <135918757+krossgg@users.noreply.github.com> Date: Thu, 5 Sep 2024 01:45:45 -0400 Subject: [PATCH] Assorted fixes (#1886) --- .../resources/assets/gtceu/lang/en_ud.json | 1 + .../resources/assets/gtceu/lang/en_us.json | 1 + .../data/gtceu/tags/items/step_boots.json | 6 ++++++ .../feature/multiblock/IRotorHolderMachine.java | 2 +- .../gregtechceu/gtceu/common/data/GTItems.java | 2 ++ .../gtceu/common/item/armor/NanoMuscleSuite.java | 2 -- .../gtceu/common/item/armor/QuarkTechSuite.java | 1 - .../gregtechceu/gtceu/data/lang/LangHandler.java | 1 + .../gregtechceu/gtceu/data/recipe/CustomTags.java | 1 + .../gtceu/forge/ForgeCommonEventListener.java | 15 +++++++++++++++ 10 files changed, 28 insertions(+), 4 deletions(-) create mode 100644 src/generated/resources/data/gtceu/tags/items/step_boots.json diff --git a/src/generated/resources/assets/gtceu/lang/en_ud.json b/src/generated/resources/assets/gtceu/lang/en_ud.json index 3aae8660ce..473b5e7ab6 100644 --- a/src/generated/resources/assets/gtceu/lang/en_ud.json +++ b/src/generated/resources/assets/gtceu/lang/en_ud.json @@ -3799,6 +3799,7 @@ "gtceu.multiblock.universal.problem.soft_mallet": ")ㄥ§ʇǝןןɐW ʇɟoSɐ§( ˙ʞɔnʇs sı buıɥʇǝɯoSㄥ§%s", "gtceu.multiblock.universal.problem.wire_cutter": ")ㄥ§ɹǝʇʇnƆ ǝɹıMɐ§( ˙ʇno pǝuɹnq sǝɹıMㄥ§%s", "gtceu.multiblock.universal.problem.wrench": ")ㄥ§ɥɔuǝɹMɐ§( ˙ǝsooן sı ǝdıԀㄥ§%s", + "gtceu.multiblock.universal.rotor_obstructed": "¡pǝʇɔnɹʇsqO sı ɹoʇoᴚ", "gtceu.multiblock.uv_fusion_reactor.description": "˙W0ㄣ9 ɟo ɯnɯıxɐɯ ɐ sɐɥ puɐ '∩Ǝ W0ㄣ ʎq sǝsɐǝɹɔuı ɹǝɟɟnq sʇı 'sɐɥ ʇı ɥɔʇɐH ʎɹǝʌǝ ɹoℲ ˙sǝɥɔʇɐH ʎbɹǝuƎ Λ∩ ǝsn ʎןuo uɐɔ ʇI ˙sǝuo ɹǝıʌɐǝɥ oʇuı sʇuǝɯǝןǝ buısnɟ ɹoɟ pǝsn ǝɹnʇɔnɹʇs ʞɔoןqıʇןnɯ ǝbɹɐן ɐ sı Ɛ ʞW ɹoʇɔɐǝᴚ uoısnℲ ǝɥ⟘", "gtceu.multiblock.vacuum_freezer.description": "˙ɹǝʇɐM sɐ ɥɔns 'sǝɔuɐʇsqns ɹǝɥʇo ǝzǝǝɹɟ osןɐ uɐɔ ʇı 'ɹǝʌǝʍoH ˙sʇobuI ɹɐןnbǝɹ oʇuı sʇobuI ʇoH buızǝǝɹɟ ɹoɟ pǝsn ʎןuıɐɯ ǝɹnʇɔnɹʇs ʞɔoןqıʇןnɯ ɐ sı ɹǝzǝǝɹℲ ɯnnɔɐΛ ǝɥ⟘", "gtceu.multiblock.validation_failed": "˙sʇndʇno/sʇnduı ɟo ʇunoɯɐ pıןɐʌuI", diff --git a/src/generated/resources/assets/gtceu/lang/en_us.json b/src/generated/resources/assets/gtceu/lang/en_us.json index 92018f1bca..a76576de2e 100644 --- a/src/generated/resources/assets/gtceu/lang/en_us.json +++ b/src/generated/resources/assets/gtceu/lang/en_us.json @@ -3799,6 +3799,7 @@ "gtceu.multiblock.universal.problem.soft_mallet": "%s§7Something is stuck. (§aSoft Mallet§7)", "gtceu.multiblock.universal.problem.wire_cutter": "%s§7Wires burned out. (§aWire Cutter§7)", "gtceu.multiblock.universal.problem.wrench": "%s§7Pipe is loose. (§aWrench§7)", + "gtceu.multiblock.universal.rotor_obstructed": "Rotor is Obstructed!", "gtceu.multiblock.uv_fusion_reactor.description": "The Fusion Reactor MK 3 is a large multiblock structure used for fusing elements into heavier ones. It can only use UV Energy Hatches. For every Hatch it has, its buffer increases by 40M EU, and has a maximum of 640M.", "gtceu.multiblock.vacuum_freezer.description": "The Vacuum Freezer is a multiblock structure mainly used for freezing Hot Ingots into regular Ingots. However, it can also freeze other substances, such as Water.", "gtceu.multiblock.validation_failed": "Invalid amount of inputs/outputs.", diff --git a/src/generated/resources/data/gtceu/tags/items/step_boots.json b/src/generated/resources/data/gtceu/tags/items/step_boots.json new file mode 100644 index 0000000000..0e822f6152 --- /dev/null +++ b/src/generated/resources/data/gtceu/tags/items/step_boots.json @@ -0,0 +1,6 @@ +{ + "values": [ + "gtceu:nanomuscle_boots", + "gtceu:quarktech_boots" + ] +} \ No newline at end of file diff --git a/src/main/java/com/gregtechceu/gtceu/api/machine/feature/multiblock/IRotorHolderMachine.java b/src/main/java/com/gregtechceu/gtceu/api/machine/feature/multiblock/IRotorHolderMachine.java index f6e402f8c1..355a64c1a0 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/machine/feature/multiblock/IRotorHolderMachine.java +++ b/src/main/java/com/gregtechceu/gtceu/api/machine/feature/multiblock/IRotorHolderMachine.java @@ -206,7 +206,7 @@ default void attachFancyTooltipsToController(IMultiController controller, Toolti default void attachTooltips(TooltipsPanel tooltipsPanel) { tooltipsPanel.attachTooltips(new IFancyTooltip.Basic( () -> GuiTextures.INDICATOR_NO_STEAM.get(false), - () -> List.of(Component.translatable("gtceu.multiblock.universal.muffler_obstructed") + () -> List.of(Component.translatable("gtceu.multiblock.universal.rotor_obstructed") .setStyle(Style.EMPTY.withColor(ChatFormatting.RED))), () -> !isFrontFaceFree(), () -> null)); diff --git a/src/main/java/com/gregtechceu/gtceu/common/data/GTItems.java b/src/main/java/com/gregtechceu/gtceu/common/data/GTItems.java index 5f1f4d465a..38aa18f060 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/data/GTItems.java +++ b/src/main/java/com/gregtechceu/gtceu/common/data/GTItems.java @@ -2503,6 +2503,7 @@ public Component getItemName(ItemStack stack) { .lang("NanoMuscle™ Suite Boots") .properties(p -> p.rarity(Rarity.UNCOMMON)) .tag(Tags.Items.ARMORS_BOOTS) + .tag(CustomTags.STEP_BOOTS) .register(); public static ItemEntry NANO_HELMET = REGISTRATE .item("nanomuscle_helmet", (p) -> new ArmorComponentItem(GTArmorMaterials.ARMOR, ArmorItem.Type.HELMET, p) @@ -2614,6 +2615,7 @@ public Component getItemName(ItemStack stack) { .properties(p -> p.rarity(Rarity.RARE)) .tag(Tags.Items.ARMORS_BOOTS) .tag(CustomTags.PPE_ARMOR) + .tag(CustomTags.STEP_BOOTS) .register(); public static ItemEntry QUANTUM_HELMET = REGISTRATE .item("quarktech_helmet", (p) -> new ArmorComponentItem(GTArmorMaterials.ARMOR, ArmorItem.Type.HELMET, p) diff --git a/src/main/java/com/gregtechceu/gtceu/common/item/armor/NanoMuscleSuite.java b/src/main/java/com/gregtechceu/gtceu/common/item/armor/NanoMuscleSuite.java index 5d1bfb8d4a..de83d20583 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/item/armor/NanoMuscleSuite.java +++ b/src/main/java/com/gregtechceu/gtceu/common/item/armor/NanoMuscleSuite.java @@ -84,8 +84,6 @@ public void onArmorTick(Level world, Player player, ItemStack itemStack) { } data.putBoolean("nightVision", nightVision); - } else if (type == ArmorItem.Type.BOOTS) { - updateStepHeight(player); } if (nightVisionTimer > 0) nightVisionTimer--; diff --git a/src/main/java/com/gregtechceu/gtceu/common/item/armor/QuarkTechSuite.java b/src/main/java/com/gregtechceu/gtceu/common/item/armor/QuarkTechSuite.java index 8a51448a12..c2dcc0cb7b 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/item/armor/QuarkTechSuite.java +++ b/src/main/java/com/gregtechceu/gtceu/common/item/armor/QuarkTechSuite.java @@ -199,7 +199,6 @@ public void onArmorTick(Level world, Player player, ItemStack itemStack) { } } } - updateStepHeight(player); data.putBoolean("boostedJump", boostedJump); if (boostedJumpTimer > 0) boostedJumpTimer--; diff --git a/src/main/java/com/gregtechceu/gtceu/data/lang/LangHandler.java b/src/main/java/com/gregtechceu/gtceu/data/lang/LangHandler.java index 8565349992..77097d5b59 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/lang/LangHandler.java +++ b/src/main/java/com/gregtechceu/gtceu/data/lang/LangHandler.java @@ -1090,6 +1090,7 @@ public static void init(RegistrateLangProvider provider) { provider.add("gtceu.multiblock.universal.muffler_obstructed", "Muffler Hatch is Obstructed!"); provider.add("gtceu.multiblock.universal.muffler_obstructed.tooltip", "Muffler Hatch must have a block of airspace in front of it."); + provider.add("gtceu.multiblock.universal.rotor_obstructed", "Rotor is Obstructed!"); provider.add("gtceu.multiblock.universal.distinct", "Distinct Buses:"); provider.add("gtceu.multiblock.universal.distinct.no", "No"); provider.add("gtceu.multiblock.universal.distinct.yes", "Yes"); diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/CustomTags.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/CustomTags.java index 354198346f..04e1d1cdc4 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/CustomTags.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/CustomTags.java @@ -90,6 +90,7 @@ public class CustomTags { }; public static final TagKey PPE_ARMOR = TagUtil.createModItemTag("ppe_armor"); + public static final TagKey STEP_BOOTS = TagUtil.createModItemTag("step_boots"); // Platform-dependent tags public static final TagKey NEEDS_WOOD_TOOL = TagUtil.createBlockTag("needs_wood_tool"); diff --git a/src/main/java/com/gregtechceu/gtceu/forge/ForgeCommonEventListener.java b/src/main/java/com/gregtechceu/gtceu/forge/ForgeCommonEventListener.java index 2842e172e3..e899880d38 100644 --- a/src/main/java/com/gregtechceu/gtceu/forge/ForgeCommonEventListener.java +++ b/src/main/java/com/gregtechceu/gtceu/forge/ForgeCommonEventListener.java @@ -38,6 +38,7 @@ import com.gregtechceu.gtceu.data.loader.BedrockFluidLoader; import com.gregtechceu.gtceu.data.loader.BedrockOreLoader; import com.gregtechceu.gtceu.data.loader.GTOreLoader; +import com.gregtechceu.gtceu.data.recipe.CustomTags; import com.gregtechceu.gtceu.utils.TaskHandler; import net.minecraft.core.Direction; @@ -62,6 +63,7 @@ import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.event.*; import net.minecraftforge.event.entity.living.LivingDeathEvent; +import net.minecraftforge.event.entity.living.LivingEvent; import net.minecraftforge.event.entity.living.LivingFallEvent; import net.minecraftforge.event.entity.living.MobSpawnEvent; import net.minecraftforge.event.entity.player.PlayerEvent; @@ -288,6 +290,19 @@ public static void onEntityLivingFallEvent(LivingFallEvent event) { } } + @SubscribeEvent + public static void stepAssistHandler(LivingEvent.LivingTickEvent event) { + float MAGIC_STEP_HEIGHT = 1.0023f; + if (event.getEntity() == null || !(event.getEntity() instanceof Player player)) return; + if (!player.isCrouching() && player.getItemBySlot(EquipmentSlot.FEET).is(CustomTags.STEP_BOOTS)) { + if (player.getStepHeight() < MAGIC_STEP_HEIGHT) { + player.setMaxUpStep(MAGIC_STEP_HEIGHT); + } + } else if (player.getStepHeight() == MAGIC_STEP_HEIGHT) { + player.setMaxUpStep(0.6f); + } + } + @SubscribeEvent public static void onEntityDie(LivingDeathEvent event) { if (event.getEntity() instanceof Player player) {