From 0dfb3a9ed00302f9fba492c3d95e6330d292ca26 Mon Sep 17 00:00:00 2001 From: Gytube Date: Fri, 24 Apr 2026 02:11:32 +0200 Subject: [PATCH 1/8] first test --- .vscode/launch.json | 89 +++++++++++++++++++ .../registries/QOLDataComponents.java | 2 + 2 files changed, 91 insertions(+) create mode 100644 .vscode/launch.json diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..8185a81 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,89 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "type": "java", + "request": "launch", + "name": "Client", + "presentation": { + "group": "Mod Development - CreateQualityOfLife", + "order": 0 + }, + "projectName": "CreateQualityOfLife", + "mainClass": "net.neoforged.devlaunch.Main", + "args": [ + "@C:\\Users\\fdela\\Documents\\GitHub\\CreateQualityOfLife\\build\\moddev\\clientRunProgramArgs.txt" + ], + "vmArgs": [ + "@C:\\Users\\fdela\\Documents\\GitHub\\CreateQualityOfLife\\build\\moddev\\clientRunVmArgs.txt", + "-Dfml.modFolders\u003dcreateqol%%C:\\Users\\fdela\\Documents\\GitHub\\CreateQualityOfLife\\bin\\main" + ], + "cwd": "${workspaceFolder}\\run", + "console": "internalConsole", + "shortenCommandLine": "none" + }, + { + "type": "java", + "request": "launch", + "name": "Data", + "presentation": { + "group": "Mod Development - CreateQualityOfLife", + "order": 1 + }, + "projectName": "CreateQualityOfLife", + "mainClass": "net.neoforged.devlaunch.Main", + "args": [ + "@C:\\Users\\fdela\\Documents\\GitHub\\CreateQualityOfLife\\build\\moddev\\dataRunProgramArgs.txt" + ], + "vmArgs": [ + "@C:\\Users\\fdela\\Documents\\GitHub\\CreateQualityOfLife\\build\\moddev\\dataRunVmArgs.txt", + "-Dfml.modFolders\u003dcreateqol%%C:\\Users\\fdela\\Documents\\GitHub\\CreateQualityOfLife\\bin\\main" + ], + "cwd": "${workspaceFolder}\\run", + "console": "internalConsole", + "shortenCommandLine": "none" + }, + { + "type": "java", + "request": "launch", + "name": "GameTestServer", + "presentation": { + "group": "Mod Development - CreateQualityOfLife", + "order": 2 + }, + "projectName": "CreateQualityOfLife", + "mainClass": "net.neoforged.devlaunch.Main", + "args": [ + "@C:\\Users\\fdela\\Documents\\GitHub\\CreateQualityOfLife\\build\\moddev\\gameTestServerRunProgramArgs.txt" + ], + "vmArgs": [ + "@C:\\Users\\fdela\\Documents\\GitHub\\CreateQualityOfLife\\build\\moddev\\gameTestServerRunVmArgs.txt", + "-Dfml.modFolders\u003dcreateqol%%C:\\Users\\fdela\\Documents\\GitHub\\CreateQualityOfLife\\bin\\main" + ], + "cwd": "${workspaceFolder}\\run", + "console": "internalConsole", + "shortenCommandLine": "none" + }, + { + "type": "java", + "request": "launch", + "name": "Server", + "presentation": { + "group": "Mod Development - CreateQualityOfLife", + "order": 3 + }, + "projectName": "CreateQualityOfLife", + "mainClass": "net.neoforged.devlaunch.Main", + "args": [ + "@C:\\Users\\fdela\\Documents\\GitHub\\CreateQualityOfLife\\build\\moddev\\serverRunProgramArgs.txt" + ], + "vmArgs": [ + "@C:\\Users\\fdela\\Documents\\GitHub\\CreateQualityOfLife\\build\\moddev\\serverRunVmArgs.txt", + "-Dfml.modFolders\u003dcreateqol%%C:\\Users\\fdela\\Documents\\GitHub\\CreateQualityOfLife\\bin\\main" + ], + "cwd": "${workspaceFolder}\\run", + "console": "internalConsole", + "shortenCommandLine": "none" + } + ] +} \ No newline at end of file diff --git a/src/main/java/fr/iglee42/createqualityoflife/registries/QOLDataComponents.java b/src/main/java/fr/iglee42/createqualityoflife/registries/QOLDataComponents.java index 032f9fb..ce139ae 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/registries/QOLDataComponents.java +++ b/src/main/java/fr/iglee42/createqualityoflife/registries/QOLDataComponents.java @@ -52,6 +52,8 @@ public class QOLDataComponents { public static final DataComponentType COPIED_DATAS = register("copied_datas",b->b.persistent(CompoundTag.CODEC).networkSynchronized(ByteBufCodecs.COMPOUND_TAG)); public static final DataComponentType ITEM_TOOLTIPS = register("item_tooltips", b->b.persistent(ItemTooltips.CODEC).networkSynchronized(ItemTooltips.STREAM_CODEC)); + public static final DataComponentType USE_AIR = register("use_air",b->b.persistent(Codec.BOOL).networkSynchronized(ByteBufCodecs.BOOL)); + private static DataComponentType register(String name, UnaryOperator> builder) { DataComponentType type = builder.apply(DataComponentType.builder()).build(); DATA_COMPONENTS.register(name, () -> type); From fb6bb9f39757350eb3bfcc4a479f15b9efa3d4e3 Mon Sep 17 00:00:00 2001 From: Gytube Date: Sat, 2 May 2026 20:06:23 +0200 Subject: [PATCH 2/8] Add use_air backtank support for tools/armors Add a new use_air boolean config to CQOLArmors and CQOLTools with explanatory comments. Update ShadowRadianceAxe to expose a per-item "Use Air" toggle in the tooltip/config GUI and to honor QOLDataComponents.USE_AIR: when enabled the axe will let BacktankUtil absorb damage instead of consuming tool durability, and durability bar visibility/width/color are switched to reflect backtank usage. Also add required imports and minor formatting adjustments. --- .../config/CQOLArmors.java | 5 ++++ .../createqualityoflife/config/CQOLTools.java | 4 ++++ .../shadowradiance/ShadowRadianceAxe.java | 23 +++++++++++++++---- 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/src/main/java/fr/iglee42/createqualityoflife/config/CQOLArmors.java b/src/main/java/fr/iglee42/createqualityoflife/config/CQOLArmors.java index f7aef70..7eba0df 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/config/CQOLArmors.java +++ b/src/main/java/fr/iglee42/createqualityoflife/config/CQOLArmors.java @@ -1,6 +1,7 @@ package fr.iglee42.createqualityoflife.config; import net.createmod.catnip.config.ConfigBase; +import net.createmod.catnip.config.ConfigBase.ConfigBool; public class CQOLArmors extends ConfigBase { @@ -20,6 +21,8 @@ public class CQOLArmors extends ConfigBase { public ConfigBool stepHeight = b(true,"stepHeight", Comments.stepHeight); public ConfigBool voidWalking = b(true,"voidWalking", Comments.voidWalking); + public ConfigBool use_air = b(true,"use_air", Comments.use_air); + @Override public String getName() { return "armors"; @@ -41,5 +44,7 @@ private static class Comments { static String dashCooldown = "Define the cooldown for the dash"; static String stepHeight = "Define if shadow radiance/refined radiance leggings should provide step height to the player"; static String voidWalking = "Define if shadow radiance/shadow steel leggings should provide the ability to walk on void to the player"; + + static String use_air = "Define if air should be used (if available) from the backtank instead of the armor's durability."; } } diff --git a/src/main/java/fr/iglee42/createqualityoflife/config/CQOLTools.java b/src/main/java/fr/iglee42/createqualityoflife/config/CQOLTools.java index fe643a6..868f855 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/config/CQOLTools.java +++ b/src/main/java/fr/iglee42/createqualityoflife/config/CQOLTools.java @@ -21,6 +21,8 @@ public class CQOLTools extends ConfigBase { public final ConfigInt swordsChargeTime = i(50,0,Integer.MAX_VALUE,"swordsChargeTime",Comments.swordsChargeTime); public final ConfigInt swordsCooldowns = i(100,0,Integer.MAX_VALUE,"swordsCooldowns",Comments.swordsCooldowns); + public final ConfigBool use_air = b(true,"use_air",Comments.use_air); + @Override public String getName() { return "tools"; @@ -43,5 +45,7 @@ private static class Comments { static String swordsStrength = "Define the max strength for the swords repulsion/attraction effect. The strength formula is maxStrength * (chargeTime / maxChargeTime)"; static String swordsChargeTime = "Define the max charge time (in ticks) for the swords repulsion/attraction effect"; static String swordsCooldowns = "Define the cooldown (in ticks) between two uses of swords repulsion/attraction effect"; + + static String use_air = "Define if air should be used (if available) from the backtank instead of the tool's durability."; } } diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadianceAxe.java b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadianceAxe.java index ace2a4a..dce2dd5 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadianceAxe.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadianceAxe.java @@ -6,6 +6,8 @@ import com.simibubi.create.content.kinetics.deployer.ManualApplicationRecipe; import com.simibubi.create.foundation.advancement.AllAdvancements; import com.simibubi.create.foundation.advancement.CreateAdvancement; + +import fr.iglee42.createqualityoflife.CreateQOL; import fr.iglee42.createqualityoflife.CreateQOLLang; import fr.iglee42.createqualityoflife.config.CreateQOLConfigs; import fr.iglee42.createqualityoflife.items.tools.refinedradiance.RefinedRadianceAxe; @@ -41,6 +43,8 @@ import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; +import net.neoforged.bus.api.SubscribeEvent; +import net.neoforged.neoforge.event.tick.PlayerTickEvent; import net.neoforged.neoforge.items.wrapper.RecipeWrapper; import org.jetbrains.annotations.Nullable; @@ -48,6 +52,7 @@ import java.util.function.BiConsumer; import java.util.function.Consumer; + public class ShadowRadianceAxe extends AxeItem implements QOLConfigurableItem { public ShadowRadianceAxe(Properties p_42964_) { super(QOLTiers.SHADOW_RADIANCE, p_42964_); @@ -76,6 +81,11 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.tree_decapitation").getString()) .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.treeDecapitation.get(), true, stack.getOrDefault(QOLDataComponents.TREE_DECAPITATION,false), false, true))); + + components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.use_air").getString()) + .withStyle(ChatFormatting.GOLD) + .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.use_air.get(), true, stack.getOrDefault(QOLDataComponents.USE_AIR,false), false, true))); + super.appendHoverText(stack, p_41422_, components, p_41424_); } @@ -86,6 +96,9 @@ public void addConfigurations(List> list, ItemStack stack) { List.of("When stripping a log transform it into casing if a valid casing ingredient is available in the off hand","It also transform adjacent blocks"),(e,oe)->CreateQOLConfigs.server().equipments.tools.casingifier.get())); list.add(Configuration.ofBool("Tree Decapitation",stack.getOrDefault(QOLDataComponents.TREE_DECAPITATION,false),QOLDataComponents.TREE_DECAPITATION, List.of("Should destroy a tree when a log is broken like a mechanical saw"),(e,oe)->CreateQOLConfigs.server().equipments.tools.treeDecapitation.get())); + + list.add(Configuration.ofBool("Use Air",stack.getOrDefault(QOLDataComponents.USE_AIR,false),QOLDataComponents.USE_AIR, + List.of("Define if air should be used (if available) from the backtank instead of the tool's durability."),(e,oe)->CreateQOLConfigs.server().equipments.tools.use_air.get())); } @Override @@ -111,23 +124,23 @@ public InteractionResultHolder use(Level level, Player player, Intera @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - if (BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack))) return 0; - return super.damageItem(stack, amount, entity, onBroken); + return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } + @Override public boolean isBarVisible(ItemStack stack) { - return BacktankUtil.isBarVisible(stack, getMaxDamage(stack)); + return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && stack.getOrDefault(QOLDataComponents.USE_AIR,false)) || super.isBarVisible(stack); } @Override public int getBarWidth(ItemStack stack) { - return BacktankUtil.getBarWidth(stack, getMaxDamage(stack)); + return (stack.getOrDefault(QOLDataComponents.USE_AIR,false)) ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); } @Override public int getBarColor(ItemStack stack) { - return BacktankUtil.getBarColor(stack, getMaxDamage(stack)); + return (stack.getOrDefault(QOLDataComponents.USE_AIR,false)) ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); } @Override From 5fd909f90659f4d4bea63382c33f5947efad94b8 Mon Sep 17 00:00:00 2001 From: Gytube Date: Sat, 2 May 2026 23:21:24 +0200 Subject: [PATCH 3/8] Add per-item 'Use Air' backtank option Introduce a USE_AIR toggle for multiple armors and tools so items can consume air from the backtank instead of their own durability. Updates include: added hover tooltip lines for the "use air" ability, added Configuration.ofBool entries to item configuration lists, changed damage handling to defer to BacktankUtil when USE_AIR is enabled, and made the air/durability bar visibility/width/color conditional on the USE_AIR flag. Also cleaned up a couple of unused imports (removed ConfigBool and some unused event/import lines). This enables per-item control to prefer backtank air usage where configured. --- .../config/CQOLArmors.java | 1 - .../armors/RefinedRadianceArmorItem.java | 10 +++++++-- .../armors/RefinedRadianceChestplate.java | 10 +++++++-- .../items/armors/RefinedRadianceHelmet.java | 16 +++++++++----- .../items/armors/ShadowRadianceArmorItem.java | 15 ++++++++----- .../armors/ShadowRadianceChestplate.java | 9 ++++++-- .../items/armors/ShadowRadianceHelmet.java | 15 ++++++++----- .../items/armors/ShadowSteelArmorItem.java | 10 +++++++-- .../items/armors/ShadowSteelChestplate.java | 9 ++++++-- .../items/armors/ShadowSteelHelmet.java | 16 +++++++++----- .../refinedradiance/RefinedRadianceAxe.java | 15 ++++++++----- .../refinedradiance/RefinedRadianceHoe.java | 9 ++++++-- .../RefinedRadiancePickaxe.java | 9 ++++++-- .../RefinedRadianceShovel.java | 9 ++++++-- .../refinedradiance/RefinedRadianceSword.java | 18 +++++++++++----- .../shadowradiance/ShadowRadianceAxe.java | 3 --- .../shadowradiance/ShadowRadianceHoe.java | 16 +++++++++----- .../shadowradiance/ShadowRadiancePickaxe.java | 15 ++++++++----- .../shadowradiance/ShadowRadianceShovel.java | 15 ++++++++----- .../shadowradiance/ShadowRadianceSword.java | 21 ++++++++++++++----- .../tools/shadowsteel/ShadowSteelAxe.java | 16 ++++++++------ .../tools/shadowsteel/ShadowSteelHoe.java | 15 ++++++++----- .../tools/shadowsteel/ShadowSteelPickaxe.java | 15 ++++++++----- .../tools/shadowsteel/ShadowSteelShovel.java | 15 ++++++++----- .../tools/shadowsteel/ShadowSteelSword.java | 19 ++++++++++++----- 25 files changed, 225 insertions(+), 96 deletions(-) diff --git a/src/main/java/fr/iglee42/createqualityoflife/config/CQOLArmors.java b/src/main/java/fr/iglee42/createqualityoflife/config/CQOLArmors.java index 7eba0df..b2cd176 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/config/CQOLArmors.java +++ b/src/main/java/fr/iglee42/createqualityoflife/config/CQOLArmors.java @@ -1,7 +1,6 @@ package fr.iglee42.createqualityoflife.config; import net.createmod.catnip.config.ConfigBase; -import net.createmod.catnip.config.ConfigBase.ConfigBool; public class CQOLArmors extends ConfigBase { diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/armors/RefinedRadianceArmorItem.java b/src/main/java/fr/iglee42/createqualityoflife/items/armors/RefinedRadianceArmorItem.java index 00e6f1f..b89536a 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/armors/RefinedRadianceArmorItem.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/armors/RefinedRadianceArmorItem.java @@ -65,6 +65,10 @@ public void appendHoverText(@NotNull ItemStack stack, @NotNull TooltipContext p_ .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.armors.stepHeight.get(), true, stack.getOrDefault(QOLDataComponents.STEP_HEIGHT, true), false, true))); } + components.add(Component.translatable("createqol.ability.armor.toggle_message", Component.translatable("createqol.ability.armor.use_air").getString()) + .withStyle(ChatFormatting.GOLD) + .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.armors.use_air.get(), + true, stack.getOrDefault(QOLDataComponents.USE_AIR, false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } @Override @@ -107,12 +111,14 @@ public void addConfigurations(List> list, ItemStack stack) { (e,oE)->CreateQOLConfigs.server().equipments.armors.stepHeight.get() )); } + list.add(Configuration.ofBool("Use Air",stack.getOrDefault(QOLDataComponents.USE_AIR,false),QOLDataComponents.USE_AIR, + List.of("Define if air should be used (if available) from the backtank instead of the armor's durability."),(e,oe)->CreateQOLConfigs.server().equipments.armors.use_air.get())); + } @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - if (BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack))) return 0; - return super.damageItem(stack, amount, entity, onBroken); + return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } @Override diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/armors/RefinedRadianceChestplate.java b/src/main/java/fr/iglee42/createqualityoflife/items/armors/RefinedRadianceChestplate.java index 7e7378d..1dfc22c 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/armors/RefinedRadianceChestplate.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/armors/RefinedRadianceChestplate.java @@ -96,6 +96,9 @@ public void addConfigurations(List> list, ItemStack stack) { })); } + list.add(Configuration.ofBool("Use Air", stack.getOrDefault(QOLDataComponents.USE_AIR, false), QOLDataComponents.USE_AIR, + Arrays.asList("Define if air should be used (if available) from the backtank instead of the armor's durability."), (e, oe) -> CreateQOLConfigs.server().equipments.armors.use_air.get())); + } @Override @@ -115,6 +118,10 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.chooseState(true, true, stack.getOrDefault(QOLDataComponents.BACKTANK_ARMS, true), false, true))); + components.add(Component.translatable("createqol.ability.armor.toggle_message", Component.translatable("createqol.ability.armor.use_air").getString()) + .withStyle(ChatFormatting.GOLD) + .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.armors.use_air.get(), + true, stack.getOrDefault(QOLDataComponents.USE_AIR, false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } @@ -135,8 +142,7 @@ public boolean elytraFlightTick(ItemStack stack, LivingEntity entity, int flight @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - if (BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack))) return 0; - return super.damageItem(stack, amount, entity, onBroken); + return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } } diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/armors/RefinedRadianceHelmet.java b/src/main/java/fr/iglee42/createqualityoflife/items/armors/RefinedRadianceHelmet.java index 2d37e32..ece7fc8 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/armors/RefinedRadianceHelmet.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/armors/RefinedRadianceHelmet.java @@ -52,6 +52,10 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.armors.helmetHaveGoggles.get(), true, stack.getOrDefault(QOLDataComponents.HELMET_GOGGLES, true), false, true))); + components.add(Component.translatable("createqol.ability.armor.toggle_message", Component.translatable("createqol.ability.armor.use_air").getString()) + .withStyle(ChatFormatting.GOLD) + .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.armors.use_air.get(), + true, stack.getOrDefault(QOLDataComponents.USE_AIR, false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } @@ -59,6 +63,9 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, @Override public void addConfigurations(List> list, ItemStack stack) { list.add(Configuration.ofBool("Enable Googles",stack.getOrDefault(QOLDataComponents.HELMET_GOGGLES,true),QOLDataComponents.HELMET_GOGGLES,Arrays.asList("Should engineer's goggle's information be displayed"),(e,oe)->CreateQOLConfigs.server().equipments.armors.helmetHaveGoggles.get())); + list.add(Configuration.ofBool("Use Air",stack.getOrDefault(QOLDataComponents.USE_AIR,false),QOLDataComponents.USE_AIR, + Arrays.asList("Define if air should be used (if available) from the backtank instead of the armor's durability."),(e,oe)->CreateQOLConfigs.server().equipments.armors.use_air.get())); + } @Override @@ -83,22 +90,21 @@ public List renderTypes(ItemStack stack) { @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - if (BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack))) return 0; - return super.damageItem(stack, amount, entity, onBroken); + return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } @Override public boolean isBarVisible(ItemStack stack) { - return BacktankUtil.isBarVisible(stack, getMaxDamage(stack)); + return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && stack.getOrDefault(QOLDataComponents.USE_AIR, false)) || super.isBarVisible(stack); } @Override public int getBarWidth(ItemStack stack) { - return BacktankUtil.getBarWidth(stack, getMaxDamage(stack)); + return stack.getOrDefault(QOLDataComponents.USE_AIR, false) ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); } @Override public int getBarColor(ItemStack stack) { - return BacktankUtil.getBarColor(stack, getMaxDamage(stack)); + return stack.getOrDefault(QOLDataComponents.USE_AIR, false) ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); } } diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowRadianceArmorItem.java b/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowRadianceArmorItem.java index 7cf6e3c..fb968b0 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowRadianceArmorItem.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowRadianceArmorItem.java @@ -75,6 +75,9 @@ public void appendHoverText(ItemStack stack, TooltipContext p_339594_, List> list, ItemStack stack) { (e,oE)->CreateQOLConfigs.server().equipments.armors.stepHeight.get() )); } + list.add(Configuration.ofBool("Use Air",stack.getOrDefault(QOLDataComponents.USE_AIR,false),QOLDataComponents.USE_AIR, + List.of("Define if air should be used (if available) from the backtank instead of the armor's durability."),(e,oe)->CreateQOLConfigs.server().equipments.armors.use_air.get())); + } @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - if (BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack))) return 0; - return super.damageItem(stack, amount, entity, onBroken); + return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } @Override public boolean isBarVisible(ItemStack stack) { - return BacktankUtil.isBarVisible(stack, getMaxDamage(stack)); + return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && stack.getOrDefault(QOLDataComponents.USE_AIR,false)) || super.isBarVisible(stack); } @Override public int getBarWidth(ItemStack stack) { - return BacktankUtil.getBarWidth(stack, getMaxDamage(stack)); + return (stack.getOrDefault(QOLDataComponents.USE_AIR,false)) ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); } @Override public int getBarColor(ItemStack stack) { - return BacktankUtil.getBarColor(stack, getMaxDamage(stack)); + return (stack.getOrDefault(QOLDataComponents.USE_AIR,false)) ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); } @Override diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowRadianceChestplate.java b/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowRadianceChestplate.java index dbc1c0b..3a5079a 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowRadianceChestplate.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowRadianceChestplate.java @@ -224,6 +224,9 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.armors.hoverAllowed.get() ,true,isHoverEnable(stack),false,true))); } + components.add(Component.translatable("createqol.ability.armor.toggle_message", Component.translatable("createqol.ability.armor.use_air").getString()) + .withStyle(ChatFormatting.GOLD) + .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.armors.use_air.get(), true, stack.getOrDefault(QOLDataComponents.USE_AIR,false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } @@ -401,6 +404,9 @@ public void addConfigurations(List> list, ItemStack stack) { return e; },(e,oe)->true)); + list.add(Configuration.ofBool("Use Air",stack.getOrDefault(QOLDataComponents.USE_AIR,false),QOLDataComponents.USE_AIR, + List.of("Define if air should be used (if available) from the backtank instead of the armor's durability."),(e,oe)->CreateQOLConfigs.server().equipments.armors.use_air.get())); + } @Override @@ -410,7 +416,6 @@ public boolean isBarVisible(ItemStack stack) { @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - if (BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack))) return 0; - return super.damageItem(stack, amount, entity, onBroken); + return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } } diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowRadianceHelmet.java b/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowRadianceHelmet.java index bfdd41e..ad7794e 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowRadianceHelmet.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowRadianceHelmet.java @@ -61,6 +61,9 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.armors.helmetHaveGoggles.get(), true, stack.getOrDefault(QOLDataComponents.HELMET_GOGGLES, true), false, true))); + components.add(Component.translatable("createqol.ability.armor.toggle_message", Component.translatable("createqol.ability.armor.use_air").getString()) + .withStyle(ChatFormatting.GOLD) + .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.armors.use_air.get(), true, stack.getOrDefault(QOLDataComponents.USE_AIR,false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } @@ -92,6 +95,9 @@ public void addConfigurations(List> list, ItemStack stack) { e = options[Math.floorMod(e.ordinal() + direction, options.length)]; return e; },(e,oe)->true)); + list.add(Configuration.ofBool("Use Air",stack.getOrDefault(QOLDataComponents.USE_AIR,false),QOLDataComponents.USE_AIR, + List.of("Define if air should be used (if available) from the backtank instead of the armor's durability."),(e,oe)->CreateQOLConfigs.server().equipments.armors.use_air.get())); + } @Override @@ -101,23 +107,22 @@ public int effectTime(ItemStack stack) { @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - if (BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack))) return 0; - return super.damageItem(stack, amount, entity, onBroken); + return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } @Override public boolean isBarVisible(ItemStack stack) { - return BacktankUtil.isBarVisible(stack, getMaxDamage(stack)); + return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && stack.getOrDefault(QOLDataComponents.USE_AIR,false)) || super.isBarVisible(stack); } @Override public int getBarWidth(ItemStack stack) { - return BacktankUtil.getBarWidth(stack, getMaxDamage(stack)); + return (stack.getOrDefault(QOLDataComponents.USE_AIR,false)) ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); } @Override public int getBarColor(ItemStack stack) { - return BacktankUtil.getBarColor(stack, getMaxDamage(stack)); + return (stack.getOrDefault(QOLDataComponents.USE_AIR,false)) ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); } @Override diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowSteelArmorItem.java b/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowSteelArmorItem.java index 8c37b6f..a2f3fff 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowSteelArmorItem.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowSteelArmorItem.java @@ -63,6 +63,10 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.armors.voidWalking.get(), true, stack.getOrDefault(QOLDataComponents.VOID_WALK, true), false, true))); } + components.add(Component.translatable("createqol.ability.armor.toggle_message", Component.translatable("createqol.ability.armor.use_air").getString()) + .withStyle(ChatFormatting.GOLD) + .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.armors.use_air.get(), + true, stack.getOrDefault(QOLDataComponents.USE_AIR, false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } @@ -107,11 +111,13 @@ public void addConfigurations(List> list, ItemStack stack) { (e,oE)-> CreateQOLConfigs.server().equipments.armors.voidWalking.get() )); } + list.add(Configuration.ofBool("Use Air",stack.getOrDefault(QOLDataComponents.USE_AIR,false),QOLDataComponents.USE_AIR, + List.of("Define if air should be used (if available) from the backtank instead of the armor's durability."),(e,oe)->CreateQOLConfigs.server().equipments.armors.use_air.get())); + } @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - if (BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack))) return 0; - return super.damageItem(stack, amount, entity, onBroken); + return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } @Override diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowSteelChestplate.java b/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowSteelChestplate.java index 207977b..d9e37c7 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowSteelChestplate.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowSteelChestplate.java @@ -75,6 +75,10 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.chooseState(true, true, stack.getOrDefault(QOLDataComponents.BACKTANK_ARMS, true), false, true))); + components.add(Component.translatable("createqol.ability.armor.toggle_message", Component.translatable("createqol.ability.armor.use_air").getString()) + .withStyle(ChatFormatting.GOLD) + .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.armors.use_air.get(), + true, stack.getOrDefault(QOLDataComponents.USE_AIR, false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } @@ -112,6 +116,8 @@ public void addConfigurations(List> list, ItemStack stack) { (o,oe)->CreateQOLConfigs.server().equipments.armors.dashAllowed.get())); + list.add(Configuration.ofBool("Use Air",stack.getOrDefault(QOLDataComponents.USE_AIR,false),QOLDataComponents.USE_AIR, + List.of("Define if air should be used (if available) from the backtank instead of the armor's durability."),(e,oe)->CreateQOLConfigs.server().equipments.armors.use_air.get())); } @Override @@ -121,7 +127,6 @@ public boolean isBarVisible(ItemStack stack) { @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - if (BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack))) return 0; - return super.damageItem(stack, amount, entity, onBroken); + return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } } diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowSteelHelmet.java b/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowSteelHelmet.java index cad1e8b..74939aa 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowSteelHelmet.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowSteelHelmet.java @@ -46,6 +46,10 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.armors.helmetHaveGoggles.get(), true, stack.getOrDefault(QOLDataComponents.HELMET_GOGGLES, true), false, true))); + components.add(Component.translatable("createqol.ability.armor.toggle_message", Component.translatable("createqol.ability.armor.use_air").getString()) + .withStyle(ChatFormatting.GOLD) + .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.armors.use_air.get(), + true, stack.getOrDefault(QOLDataComponents.USE_AIR, false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } @@ -59,6 +63,9 @@ public void inventoryTick(ItemStack p_41404_, Level p_41405_, Entity p_41406_, i @Override public void addConfigurations(List> list, ItemStack stack) { list.add(Configuration.ofBool("Enable Googles",stack.getOrDefault(QOLDataComponents.HELMET_GOGGLES,true),QOLDataComponents.HELMET_GOGGLES,Arrays.asList("Should engineer's goggle's information be displayed"),(e,oe)->CreateQOLConfigs.server().equipments.armors.helmetHaveGoggles.get())); + list.add(Configuration.ofBool("Use Air",stack.getOrDefault(QOLDataComponents.USE_AIR,false),QOLDataComponents.USE_AIR, + Arrays.asList("Define if air should be used (if available) from the backtank instead of the armor's durability."),(e,oe)->CreateQOLConfigs.server().equipments.armors.use_air.get())); + } @Override @@ -78,23 +85,22 @@ public List renderTypes(ItemStack stack) { @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - if (BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack))) return 0; - return super.damageItem(stack, amount, entity, onBroken); + return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } @Override public boolean isBarVisible(ItemStack stack) { - return BacktankUtil.isBarVisible(stack, getMaxDamage(stack)); + return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && stack.getOrDefault(QOLDataComponents.USE_AIR, false)) || super.isBarVisible(stack); } @Override public int getBarWidth(ItemStack stack) { - return BacktankUtil.getBarWidth(stack, getMaxDamage(stack)); + return stack.getOrDefault(QOLDataComponents.USE_AIR, false) ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); } @Override public int getBarColor(ItemStack stack) { - return BacktankUtil.getBarColor(stack, getMaxDamage(stack)); + return stack.getOrDefault(QOLDataComponents.USE_AIR, false) ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); } @Override diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/tools/refinedradiance/RefinedRadianceAxe.java b/src/main/java/fr/iglee42/createqualityoflife/items/tools/refinedradiance/RefinedRadianceAxe.java index 01be1ef..9450d8e 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/tools/refinedradiance/RefinedRadianceAxe.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/tools/refinedradiance/RefinedRadianceAxe.java @@ -85,6 +85,9 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.casingifier").getString()) .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.casingifier.get(), true, stack.getOrDefault(QOLDataComponents.CASINGIFIER,false), false, true))); + components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.use_air").getString()) + .withStyle(ChatFormatting.GOLD) + .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.use_air.get(), true, stack.getOrDefault(QOLDataComponents.USE_AIR,false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } @@ -93,6 +96,9 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, public void addConfigurations(List> list, ItemStack stack) { list.add(Configuration.ofBool("Casingifier",stack.getOrDefault(QOLDataComponents.CASINGIFIER,false),QOLDataComponents.CASINGIFIER, List.of("When stripping a log transform it into casing if a valid casing ingredient is available in the off hand","It also transform adjacent blocks"),(e,oe)->CreateQOLConfigs.server().equipments.tools.casingifier.get())); + list.add(Configuration.ofBool("Use Air",stack.getOrDefault(QOLDataComponents.USE_AIR,false),QOLDataComponents.USE_AIR, + List.of("Define if air should be used (if available) from the backtank instead of the tool's durability."),(e,oe)->CreateQOLConfigs.server().equipments.tools.use_air.get())); + } @@ -116,23 +122,22 @@ public static void toggleAbility(ItemStack stack, Player p) { @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - if (BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack))) return 0; - return super.damageItem(stack, amount, entity, onBroken); + return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } @Override public boolean isBarVisible(ItemStack stack) { - return BacktankUtil.isBarVisible(stack, getMaxDamage(stack)); + return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && stack.getOrDefault(QOLDataComponents.USE_AIR,false)) || super.isBarVisible(stack); } @Override public int getBarWidth(ItemStack stack) { - return BacktankUtil.getBarWidth(stack, getMaxDamage(stack)); + return stack.getOrDefault(QOLDataComponents.USE_AIR,false) ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); } @Override public int getBarColor(ItemStack stack) { - return BacktankUtil.getBarColor(stack, getMaxDamage(stack)); + return stack.getOrDefault(QOLDataComponents.USE_AIR,false) ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); } @Override diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/tools/refinedradiance/RefinedRadianceHoe.java b/src/main/java/fr/iglee42/createqualityoflife/items/tools/refinedradiance/RefinedRadianceHoe.java index 9d58c11..de1b33c 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/tools/refinedradiance/RefinedRadianceHoe.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/tools/refinedradiance/RefinedRadianceHoe.java @@ -79,6 +79,9 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.harvesting").getString()) .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.harvesting.get(), true, stack.getOrDefault(QOLDataComponents.HARVESTING,false), false, true))); + components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.use_air").getString()) + .withStyle(ChatFormatting.GOLD) + .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.use_air.get(), true, stack.getOrDefault(QOLDataComponents.USE_AIR,false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } @@ -86,6 +89,9 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, public void addConfigurations(List> list, ItemStack stack) { list.add(Configuration.ofBool("Harvesting",stack.getOrDefault(QOLDataComponents.HARVESTING,false),QOLDataComponents.HARVESTING, List.of("Should replant destroyed crops"),(e,oe)->CreateQOLConfigs.server().equipments.tools.harvesting.get())); + list.add(Configuration.ofBool("Use Air",stack.getOrDefault(QOLDataComponents.USE_AIR,false),QOLDataComponents.USE_AIR, + List.of("Define if air should be used (if available) from the backtank instead of the tool's durability."),(e,oe)->CreateQOLConfigs.server().equipments.tools.use_air.get())); + } @Override @@ -108,8 +114,7 @@ public static void toggleAbility(ItemStack stack, Player p) { @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - if (BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack))) return 0; - return super.damageItem(stack, amount, entity, onBroken); + return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } @Override diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/tools/refinedradiance/RefinedRadiancePickaxe.java b/src/main/java/fr/iglee42/createqualityoflife/items/tools/refinedradiance/RefinedRadiancePickaxe.java index a458496..ba0ddc6 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/tools/refinedradiance/RefinedRadiancePickaxe.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/tools/refinedradiance/RefinedRadiancePickaxe.java @@ -71,6 +71,9 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.vein_mine").getString()) .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.veinMine.get(), true, stack.getOrDefault(QOLDataComponents.VEIN_MINE,false), false, true))); + components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.use_air").getString()) + .withStyle(ChatFormatting.GOLD) + .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.use_air.get(), true, stack.getOrDefault(QOLDataComponents.USE_AIR,false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } @@ -79,6 +82,9 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, public void addConfigurations(List> list, ItemStack stack) { list.add(Configuration.ofBool("Vein Mine",stack.getOrDefault(QOLDataComponents.VEIN_MINE,false),QOLDataComponents.VEIN_MINE, List.of("Should all the blocks of the same types be destroy when mining"),(e,oe)->CreateQOLConfigs.server().equipments.tools.veinMine.get())); + list.add(Configuration.ofBool("Use Air",stack.getOrDefault(QOLDataComponents.USE_AIR,false),QOLDataComponents.USE_AIR, + List.of("Define if air should be used (if available) from the backtank instead of the tool's durability."),(e,oe)->CreateQOLConfigs.server().equipments.tools.use_air.get())); + } @Override @@ -102,8 +108,7 @@ public static void toggleAbility(ItemStack stack, Player p) { @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - if (BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack))) return 0; - return super.damageItem(stack, amount, entity, onBroken); + return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } @Override diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/tools/refinedradiance/RefinedRadianceShovel.java b/src/main/java/fr/iglee42/createqualityoflife/items/tools/refinedradiance/RefinedRadianceShovel.java index a459528..a685f78 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/tools/refinedradiance/RefinedRadianceShovel.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/tools/refinedradiance/RefinedRadianceShovel.java @@ -67,6 +67,9 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.smelting").getString()) .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.smelting.get(), true, stack.getOrDefault(QOLDataComponents.SMELTING,false), false, true))); + components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.use_air").getString()) + .withStyle(ChatFormatting.GOLD) + .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.use_air.get(), true, stack.getOrDefault(QOLDataComponents.USE_AIR,false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } @@ -75,6 +78,9 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, public void addConfigurations(List> list, ItemStack stack) { list.add(Configuration.ofBool("Smelting",stack.getOrDefault(QOLDataComponents.SMELTING,false),QOLDataComponents.SMELTING, List.of("Should smelt the mined blocks"),(e,oe)->CreateQOLConfigs.server().equipments.tools.smelting.get())); + list.add(Configuration.ofBool("Use Air",stack.getOrDefault(QOLDataComponents.USE_AIR,false),QOLDataComponents.USE_AIR, + List.of("Define if air should be used (if available) from the backtank instead of the tool's durability."),(e,oe)->CreateQOLConfigs.server().equipments.tools.use_air.get())); + } @@ -99,8 +105,7 @@ public static void toggleAbility(ItemStack stack, Player p) { @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - if (BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack))) return 0; - return super.damageItem(stack, amount, entity, onBroken); + return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } @Override diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/tools/refinedradiance/RefinedRadianceSword.java b/src/main/java/fr/iglee42/createqualityoflife/items/tools/refinedradiance/RefinedRadianceSword.java index 162f949..30ed562 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/tools/refinedradiance/RefinedRadianceSword.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/tools/refinedradiance/RefinedRadianceSword.java @@ -130,29 +130,37 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.cooldownState(CreateQOLConfigs.server().equipments.tools.swordsAbilities.get(), true, (int) Math.ceil(Minecraft.getInstance().player.getCooldowns().getCooldownPercent(this,0) * CreateQOLConfigs.server().equipments.tools.swordsCooldowns.get())))); + components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.use_air").getString()) + .withStyle(ChatFormatting.GOLD) + .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.use_air.get(), true, stack.getOrDefault(QOLDataComponents.USE_AIR, false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } + @Override + public void addConfigurations(List> list, ItemStack stack) { + list.add(Configuration.ofBool("Use Air", stack.getOrDefault(QOLDataComponents.USE_AIR, false), QOLDataComponents.USE_AIR, + List.of("Define if air should be used (if available) from the backtank instead of the tool's durability."), (e, oe) -> CreateQOLConfigs.server().equipments.tools.use_air.get())); + + } @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - if (BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack))) return 0; - return super.damageItem(stack, amount, entity, onBroken); + return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } @Override public boolean isBarVisible(ItemStack stack) { - return BacktankUtil.isBarVisible(stack, getMaxDamage(stack)); + return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && stack.getOrDefault(QOLDataComponents.USE_AIR, false)) || super.isBarVisible(stack); } @Override public int getBarWidth(ItemStack stack) { - return BacktankUtil.getBarWidth(stack, getMaxDamage(stack)); + return stack.getOrDefault(QOLDataComponents.USE_AIR, false) ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); } @Override public int getBarColor(ItemStack stack) { - return BacktankUtil.getBarColor(stack, getMaxDamage(stack)); + return stack.getOrDefault(QOLDataComponents.USE_AIR, false) ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); } @Override diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadianceAxe.java b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadianceAxe.java index dce2dd5..f77667c 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadianceAxe.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadianceAxe.java @@ -7,7 +7,6 @@ import com.simibubi.create.foundation.advancement.AllAdvancements; import com.simibubi.create.foundation.advancement.CreateAdvancement; -import fr.iglee42.createqualityoflife.CreateQOL; import fr.iglee42.createqualityoflife.CreateQOLLang; import fr.iglee42.createqualityoflife.config.CreateQOLConfigs; import fr.iglee42.createqualityoflife.items.tools.refinedradiance.RefinedRadianceAxe; @@ -43,8 +42,6 @@ import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; -import net.neoforged.bus.api.SubscribeEvent; -import net.neoforged.neoforge.event.tick.PlayerTickEvent; import net.neoforged.neoforge.items.wrapper.RecipeWrapper; import org.jetbrains.annotations.Nullable; diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadianceHoe.java b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadianceHoe.java index 76371e6..35d127e 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadianceHoe.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadianceHoe.java @@ -67,6 +67,9 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.ploughing").getString()) .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.ploughing.get(), true, stack.getOrDefault(QOLDataComponents.PLOUGHING,false), false, true))); + components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.use_air").getString()) + .withStyle(ChatFormatting.GOLD) + .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.use_air.get(), true, stack.getOrDefault(QOLDataComponents.USE_AIR,false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } @@ -85,6 +88,10 @@ public void addConfigurations(List> list, ItemStack stack) { .noneMatch(e->e instanceof BooleanEntry oEntry && oEntry.getComponent().equals(QOLDataComponents.HARVESTING) && oEntry.getValue()); return CreateQOLConfigs.server().equipments.tools.ploughing.get() && flag; })); + + list.add(Configuration.ofBool("Use Air",stack.getOrDefault(QOLDataComponents.USE_AIR,false),QOLDataComponents.USE_AIR, + List.of("Define if air should be used (if available) from the backtank instead of the tool's durability."),(e,oe)->CreateQOLConfigs.server().equipments.tools.use_air.get())); + } @Override @@ -109,23 +116,22 @@ public InteractionResultHolder use(Level level, Player player, Intera @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - if (BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack))) return 0; - return super.damageItem(stack, amount, entity, onBroken); + return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } @Override public boolean isBarVisible(ItemStack stack) { - return BacktankUtil.isBarVisible(stack, getMaxDamage(stack)); + return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && stack.getOrDefault(QOLDataComponents.USE_AIR,false)) || super.isBarVisible(stack); } @Override public int getBarWidth(ItemStack stack) { - return BacktankUtil.getBarWidth(stack, getMaxDamage(stack)); + return (stack.getOrDefault(QOLDataComponents.USE_AIR,false)) ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); } @Override public int getBarColor(ItemStack stack) { - return BacktankUtil.getBarColor(stack, getMaxDamage(stack)); + return (stack.getOrDefault(QOLDataComponents.USE_AIR,false)) ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); } @Override diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadiancePickaxe.java b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadiancePickaxe.java index 49e7b1d..0f243fc 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadiancePickaxe.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadiancePickaxe.java @@ -75,6 +75,9 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.vein_mine").getString()) .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.veinMine.get(), true, stack.getOrDefault(QOLDataComponents.VEIN_MINE,false), false, true))); + components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.use_air").getString()) + .withStyle(ChatFormatting.GOLD) + .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.use_air.get(), true, stack.getOrDefault(QOLDataComponents.USE_AIR,false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } @@ -92,27 +95,29 @@ public void addConfigurations(List> list, ItemStack stack) { .noneMatch(e->e instanceof BooleanEntry oEntry && oEntry.getComponent().equals(QOLDataComponents.DIGGING) && oEntry.getValue()); return CreateQOLConfigs.server().equipments.tools.veinMine.get() && flag; })); + list.add(Configuration.ofBool("Use Air",stack.getOrDefault(QOLDataComponents.USE_AIR,false),QOLDataComponents.USE_AIR, + List.of("Define if air should be used (if available) from the backtank instead of the tool's durability."),(e,oe)->CreateQOLConfigs.server().equipments.tools.use_air.get())); + } @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - if (BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack))) return 0; - return super.damageItem(stack, amount, entity, onBroken); + return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } @Override public boolean isBarVisible(ItemStack stack) { - return BacktankUtil.isBarVisible(stack, getMaxDamage(stack)); + return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && stack.getOrDefault(QOLDataComponents.USE_AIR,false)) || super.isBarVisible(stack); } @Override public int getBarWidth(ItemStack stack) { - return BacktankUtil.getBarWidth(stack, getMaxDamage(stack)); + return (stack.getOrDefault(QOLDataComponents.USE_AIR,false)) ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); } @Override public int getBarColor(ItemStack stack) { - return BacktankUtil.getBarColor(stack, getMaxDamage(stack)); + return (stack.getOrDefault(QOLDataComponents.USE_AIR,false)) ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); } @Override diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadianceShovel.java b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadianceShovel.java index 76f2343..472def4 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadianceShovel.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadianceShovel.java @@ -55,6 +55,9 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.digging").getString()) .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.digging.get(), true, stack.getOrDefault(QOLDataComponents.DIGGING,false), false, true))); + components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.use_air").getString()) + .withStyle(ChatFormatting.GOLD) + .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.use_air.get(), true, stack.getOrDefault(QOLDataComponents.USE_AIR,false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } @@ -73,6 +76,9 @@ public void addConfigurations(List> list, ItemStack stack) { .noneMatch(e->e instanceof BooleanEntry oEntry && oEntry.getComponent().equals(QOLDataComponents.VEIN_MINE) && oEntry.getValue()); return CreateQOLConfigs.server().equipments.tools.digging.get() && flag; })); + list.add(Configuration.ofBool("Use Air",stack.getOrDefault(QOLDataComponents.USE_AIR,false),QOLDataComponents.USE_AIR, + List.of("Define if air should be used (if available) from the backtank instead of the tool's durability."),(e,oe)->CreateQOLConfigs.server().equipments.tools.use_air.get())); + } @Override @@ -98,23 +104,22 @@ public InteractionResultHolder use(Level level, Player player, Intera @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - if (BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack))) return 0; - return super.damageItem(stack, amount, entity, onBroken); + return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } @Override public boolean isBarVisible(ItemStack stack) { - return BacktankUtil.isBarVisible(stack, getMaxDamage(stack)); + return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && stack.getOrDefault(QOLDataComponents.USE_AIR,false)) || super.isBarVisible(stack); } @Override public int getBarWidth(ItemStack stack) { - return BacktankUtil.getBarWidth(stack, getMaxDamage(stack)); + return (stack.getOrDefault(QOLDataComponents.USE_AIR,false)) ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); } @Override public int getBarColor(ItemStack stack) { - return BacktankUtil.getBarColor(stack, getMaxDamage(stack)); + return (stack.getOrDefault(QOLDataComponents.USE_AIR,false)) ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); } @Override diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadianceSword.java b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadianceSword.java index 61fae26..0f24d6e 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadianceSword.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadianceSword.java @@ -141,28 +141,39 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.cooldownState(CreateQOLConfigs.server().equipments.tools.swordsAbilities.get(), true, (int) Math.ceil(Minecraft.getInstance().player.getCooldowns().getCooldownPercent(this,0) * CreateQOLConfigs.server().equipments.tools.swordsCooldowns.get())))); + components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.use_air").getString()) + .withStyle(ChatFormatting.GOLD) + .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.use_air.get(), true, stack.getOrDefault(QOLDataComponents.USE_AIR,false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } + @Override + public void addConfigurations(List> list, ItemStack stack) { + list.add(Configuration.ofBool("Reach",stack.getOrDefault(QOLDataComponents.REACH,true),QOLDataComponents.REACH, + List.of("Should extend the reach of the sword"),(e,oe)->CreateQOLConfigs.server().equipments.tools.reach.get())); + list.add(Configuration.ofBool("Use Air",stack.getOrDefault(QOLDataComponents.USE_AIR,false),QOLDataComponents.USE_AIR, + List.of("Define if air should be used (if available) from the backtank instead of the tool's durability."),(e,oe)->CreateQOLConfigs.server().equipments.tools.use_air.get())); + + } + @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - if (BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack))) return 0; - return super.damageItem(stack, amount, entity, onBroken); + return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } @Override public boolean isBarVisible(ItemStack stack) { - return BacktankUtil.isBarVisible(stack, getMaxDamage(stack)); + return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && stack.getOrDefault(QOLDataComponents.USE_AIR,false)) || super.isBarVisible(stack); } @Override public int getBarWidth(ItemStack stack) { - return BacktankUtil.getBarWidth(stack, getMaxDamage(stack)); + return (stack.getOrDefault(QOLDataComponents.USE_AIR,false)) ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); } @Override public int getBarColor(ItemStack stack) { - return BacktankUtil.getBarColor(stack, getMaxDamage(stack)); + return (stack.getOrDefault(QOLDataComponents.USE_AIR,false)) ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); } @Override diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowsteel/ShadowSteelAxe.java b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowsteel/ShadowSteelAxe.java index 2dbeff2..82d7f42 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowsteel/ShadowSteelAxe.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowsteel/ShadowSteelAxe.java @@ -58,7 +58,6 @@ import org.jetbrains.annotations.Nullable; import java.util.*; -import java.util.List; import java.util.function.BiConsumer; import java.util.function.Consumer; @@ -87,6 +86,9 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.tree_decapitation").getString()) .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.treeDecapitation.get(), true, stack.getOrDefault(QOLDataComponents.TREE_DECAPITATION,false), false, true))); + components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.use_air").getString()) + .withStyle(ChatFormatting.GOLD) + .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.use_air.get(), true, stack.getOrDefault(QOLDataComponents.USE_AIR,false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } @@ -95,6 +97,9 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, public void addConfigurations(List> list, ItemStack stack) { list.add(Configuration.ofBool("Tree Decapitation",stack.getOrDefault(QOLDataComponents.TREE_DECAPITATION,false),QOLDataComponents.TREE_DECAPITATION, List.of("Should destroy a tree when a log is broken like a mechanical saw"),(e,oe)->CreateQOLConfigs.server().equipments.tools.treeDecapitation.get())); + list.add(Configuration.ofBool("Use Air",stack.getOrDefault(QOLDataComponents.USE_AIR,false),QOLDataComponents.USE_AIR, + List.of("Define if air should be used (if available) from the backtank instead of the tool's durability."),(e,oe)->CreateQOLConfigs.server().equipments.tools.use_air.get())); + } @Override @@ -117,23 +122,22 @@ public static void toggleAbility(ItemStack stack, Player p) { @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - if (BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack))) return 0; - return super.damageItem(stack, amount, entity, onBroken); + return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } @Override public boolean isBarVisible(ItemStack stack) { - return BacktankUtil.isBarVisible(stack, getMaxDamage(stack)); + return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && stack.getOrDefault(QOLDataComponents.USE_AIR,false)) || super.isBarVisible(stack); } @Override public int getBarWidth(ItemStack stack) { - return BacktankUtil.getBarWidth(stack, getMaxDamage(stack)); + return stack.getOrDefault(QOLDataComponents.USE_AIR,false) ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); } @Override public int getBarColor(ItemStack stack) { - return BacktankUtil.getBarColor(stack, getMaxDamage(stack)); + return stack.getOrDefault(QOLDataComponents.USE_AIR,false) ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); } public static void mineBlock(BlockEvent.@NotNull BreakEvent event){ diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowsteel/ShadowSteelHoe.java b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowsteel/ShadowSteelHoe.java index b0d25fb..6cd3066 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowsteel/ShadowSteelHoe.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowsteel/ShadowSteelHoe.java @@ -70,6 +70,9 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.ploughing").getString()) .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.ploughing.get(), true, stack.getOrDefault(QOLDataComponents.PLOUGHING,false), false, true))); + components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.use_air").getString()) + .withStyle(ChatFormatting.GOLD) + .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.use_air.get(), true, stack.getOrDefault(QOLDataComponents.USE_AIR,false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } @@ -78,6 +81,9 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, public void addConfigurations(List> list, ItemStack stack) { list.add(Configuration.ofBool("Ploughing",stack.getOrDefault(QOLDataComponents.PLOUGHING,false),QOLDataComponents.PLOUGHING, List.of("Should plough dirt in a 3x3 square"),(e,oe)->CreateQOLConfigs.server().equipments.tools.ploughing.get())); + list.add(Configuration.ofBool("Use Air",stack.getOrDefault(QOLDataComponents.USE_AIR,false),QOLDataComponents.USE_AIR, + List.of("Define if air should be used (if available) from the backtank instead of the tool's durability."),(e,oe)->CreateQOLConfigs.server().equipments.tools.use_air.get())); + } @Override @@ -134,23 +140,22 @@ public InteractionResult useOn(UseOnContext ctx) { @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - if (BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack))) return 0; - return super.damageItem(stack, amount, entity, onBroken); + return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } @Override public boolean isBarVisible(ItemStack stack) { - return BacktankUtil.isBarVisible(stack, getMaxDamage(stack)); + return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && stack.getOrDefault(QOLDataComponents.USE_AIR,false)) || super.isBarVisible(stack); } @Override public int getBarWidth(ItemStack stack) { - return BacktankUtil.getBarWidth(stack, getMaxDamage(stack)); + return stack.getOrDefault(QOLDataComponents.USE_AIR,false) ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); } @Override public int getBarColor(ItemStack stack) { - return BacktankUtil.getBarColor(stack, getMaxDamage(stack)); + return stack.getOrDefault(QOLDataComponents.USE_AIR,false) ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); } @Override diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowsteel/ShadowSteelPickaxe.java b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowsteel/ShadowSteelPickaxe.java index 7bfc926..7a3cf0c 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowsteel/ShadowSteelPickaxe.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowsteel/ShadowSteelPickaxe.java @@ -139,6 +139,9 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.digging").getString()) .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.digging.get(), true, stack.getOrDefault(QOLDataComponents.DIGGING, false), false, true))); + components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.use_air").getString()) + .withStyle(ChatFormatting.GOLD) + .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.use_air.get(), true, stack.getOrDefault(QOLDataComponents.USE_AIR, false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } @@ -146,27 +149,29 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, public void addConfigurations(List> list, ItemStack stack) { list.add(Configuration.ofBool("Digging", stack.getOrDefault(QOLDataComponents.DIGGING, false), QOLDataComponents.DIGGING, List.of("Activate the 3x3x3 digging when mining a block"), (e, oe) -> CreateQOLConfigs.server().equipments.tools.digging.get())); + list.add(Configuration.ofBool("Use Air", stack.getOrDefault(QOLDataComponents.USE_AIR, false), QOLDataComponents.USE_AIR, + List.of("Define if air should be used (if available) from the backtank instead of the tool's durability."), (e, oe) -> CreateQOLConfigs.server().equipments.tools.use_air.get())); + } @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - if (BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack))) return 0; - return super.damageItem(stack, amount, entity, onBroken); + return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } @Override public boolean isBarVisible(ItemStack stack) { - return BacktankUtil.isBarVisible(stack, getMaxDamage(stack)); + return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && stack.getOrDefault(QOLDataComponents.USE_AIR, false)) || super.isBarVisible(stack); } @Override public int getBarWidth(ItemStack stack) { - return BacktankUtil.getBarWidth(stack, getMaxDamage(stack)); + return stack.getOrDefault(QOLDataComponents.USE_AIR, false) ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); } @Override public int getBarColor(ItemStack stack) { - return BacktankUtil.getBarColor(stack, getMaxDamage(stack)); + return stack.getOrDefault(QOLDataComponents.USE_AIR, false) ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); } @Override diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowsteel/ShadowSteelShovel.java b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowsteel/ShadowSteelShovel.java index c9f3d5f..6298d58 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowsteel/ShadowSteelShovel.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowsteel/ShadowSteelShovel.java @@ -74,6 +74,9 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.digging").getString()) .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.digging.get(), true, stack.getOrDefault(QOLDataComponents.DIGGING,false), false, true))); + components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.use_air").getString()) + .withStyle(ChatFormatting.GOLD) + .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.use_air.get(), true, stack.getOrDefault(QOLDataComponents.USE_AIR,false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } @@ -82,6 +85,9 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, public void addConfigurations(List> list, ItemStack stack) { list.add(Configuration.ofBool("Digging", stack.getOrDefault(QOLDataComponents.DIGGING, false), QOLDataComponents.DIGGING, List.of("Activate the 3x3x3 digging when mining a block"), (e, oe) -> CreateQOLConfigs.server().equipments.tools.digging.get())); + list.add(Configuration.ofBool("Use Air", stack.getOrDefault(QOLDataComponents.USE_AIR, false), QOLDataComponents.USE_AIR, + List.of("Define if air should be used (if available) from the backtank instead of the tool's durability."), (e, oe) -> CreateQOLConfigs.server().equipments.tools.use_air.get())); + } @Override @@ -105,23 +111,22 @@ public static void toggleAbility(ItemStack stack, Player p) { @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - if (BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack))) return 0; - return super.damageItem(stack, amount, entity, onBroken); + return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } @Override public boolean isBarVisible(ItemStack stack) { - return BacktankUtil.isBarVisible(stack, getMaxDamage(stack)); + return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && stack.getOrDefault(QOLDataComponents.USE_AIR,false)) || super.isBarVisible(stack); } @Override public int getBarWidth(ItemStack stack) { - return BacktankUtil.getBarWidth(stack, getMaxDamage(stack)); + return stack.getOrDefault(QOLDataComponents.USE_AIR,false) ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); } @Override public int getBarColor(ItemStack stack) { - return BacktankUtil.getBarColor(stack, getMaxDamage(stack)); + return stack.getOrDefault(QOLDataComponents.USE_AIR,false) ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); } public static void mineBlock(BlockEvent.BreakEvent event) { diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowsteel/ShadowSteelSword.java b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowsteel/ShadowSteelSword.java index bbda013..032a1b0 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowsteel/ShadowSteelSword.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowsteel/ShadowSteelSword.java @@ -136,28 +136,37 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.cooldownState(CreateQOLConfigs.server().equipments.tools.swordsAbilities.get(), true, (int) Math.ceil(Minecraft.getInstance().player.getCooldowns().getCooldownPercent(this,0) * CreateQOLConfigs.server().equipments.tools.swordsCooldowns.get())))); + components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.use_air").getString()) + .withStyle(ChatFormatting.GOLD) + .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.use_air.get(), true, stack.getOrDefault(QOLDataComponents.USE_AIR, false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } + @Override + public void addConfigurations(List> list, ItemStack stack) { + list.add(Configuration.ofBool("Use Air", stack.getOrDefault(QOLDataComponents.USE_AIR, false), QOLDataComponents.USE_AIR, + List.of("Define if air should be used (if available) from the backtank instead of the tool's durability."), (e, oe) -> CreateQOLConfigs.server().equipments.tools.use_air.get())); + + } + @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - if (BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack))) return 0; - return super.damageItem(stack, amount, entity, onBroken); + return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } @Override public boolean isBarVisible(ItemStack stack) { - return BacktankUtil.isBarVisible(stack, getMaxDamage(stack)); + return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && stack.getOrDefault(QOLDataComponents.USE_AIR, false)) || super.isBarVisible(stack); } @Override public int getBarWidth(ItemStack stack) { - return BacktankUtil.getBarWidth(stack, getMaxDamage(stack)); + return stack.getOrDefault(QOLDataComponents.USE_AIR, false) ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); } @Override public int getBarColor(ItemStack stack) { - return BacktankUtil.getBarColor(stack, getMaxDamage(stack)); + return stack.getOrDefault(QOLDataComponents.USE_AIR, false) ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); } @Override From 399a0e7e2cf0044d2e6edb44bffd31c99fe9ec45 Mon Sep 17 00:00:00 2001 From: Gytube Date: Sat, 2 May 2026 23:40:55 +0200 Subject: [PATCH 4/8] Add 'Use Air' localization keys Add English localization entries for the "Use Air" ability to en_us.json. This introduces createqol.ability.tool.use_air and createqol.ability.armor.use_air so the tool and armor abilities have proper labels in the UI. --- src/main/resources/assets/createqol/lang/en_us.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/resources/assets/createqol/lang/en_us.json b/src/main/resources/assets/createqol/lang/en_us.json index e6354b0..ecd7bbe 100644 --- a/src/main/resources/assets/createqol/lang/en_us.json +++ b/src/main/resources/assets/createqol/lang/en_us.json @@ -265,6 +265,7 @@ "createqol.ability.tool.smelting": "Smelting", "createqol.ability.tool.tree_decapitation": "Tree Decapitation", "createqol.ability.tool.vein_mine": "Vein Mine", + "createqol.ability.tool.use_air": "Use Air", "createqol.ability.armor.air": "Air", "createqol.ability.armor.arms": "Arms", @@ -280,6 +281,7 @@ "createqol.ability.armor.propeller": "Propeller", "createqol.ability.armor.step_height": "Step Height", "createqol.ability.armor.void_walk": "Void Walk", + "createqol.ability.armor.use_air": "Use Air", "createqol.ability.state.disabled_by_config": "Disabled By Config", "createqol.ability.state.disabled": "Disabled", From fbf09f8ecf4188e4aeedffd666b97f8dba7e7ddc Mon Sep 17 00:00:00 2001 From: Gytube Date: Sun, 17 May 2026 13:42:13 +0200 Subject: [PATCH 5/8] small fixes --- .gitignore | 3 + .vscode/launch.json | 89 ------------------- .../registries/QOLDataComponents.java | 1 - 3 files changed, 3 insertions(+), 90 deletions(-) delete mode 100644 .vscode/launch.json diff --git a/.gitignore b/.gitignore index 624c313..4e69623 100644 --- a/.gitignore +++ b/.gitignore @@ -117,3 +117,6 @@ run/ # Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored) !gradle-wrapper.jar /src/generated/resources/.cache/ + +# ignore .vscode folder +.vscode/ \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json deleted file mode 100644 index 8185a81..0000000 --- a/.vscode/launch.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "version": "0.2.0", - "configurations": [ - { - "type": "java", - "request": "launch", - "name": "Client", - "presentation": { - "group": "Mod Development - CreateQualityOfLife", - "order": 0 - }, - "projectName": "CreateQualityOfLife", - "mainClass": "net.neoforged.devlaunch.Main", - "args": [ - "@C:\\Users\\fdela\\Documents\\GitHub\\CreateQualityOfLife\\build\\moddev\\clientRunProgramArgs.txt" - ], - "vmArgs": [ - "@C:\\Users\\fdela\\Documents\\GitHub\\CreateQualityOfLife\\build\\moddev\\clientRunVmArgs.txt", - "-Dfml.modFolders\u003dcreateqol%%C:\\Users\\fdela\\Documents\\GitHub\\CreateQualityOfLife\\bin\\main" - ], - "cwd": "${workspaceFolder}\\run", - "console": "internalConsole", - "shortenCommandLine": "none" - }, - { - "type": "java", - "request": "launch", - "name": "Data", - "presentation": { - "group": "Mod Development - CreateQualityOfLife", - "order": 1 - }, - "projectName": "CreateQualityOfLife", - "mainClass": "net.neoforged.devlaunch.Main", - "args": [ - "@C:\\Users\\fdela\\Documents\\GitHub\\CreateQualityOfLife\\build\\moddev\\dataRunProgramArgs.txt" - ], - "vmArgs": [ - "@C:\\Users\\fdela\\Documents\\GitHub\\CreateQualityOfLife\\build\\moddev\\dataRunVmArgs.txt", - "-Dfml.modFolders\u003dcreateqol%%C:\\Users\\fdela\\Documents\\GitHub\\CreateQualityOfLife\\bin\\main" - ], - "cwd": "${workspaceFolder}\\run", - "console": "internalConsole", - "shortenCommandLine": "none" - }, - { - "type": "java", - "request": "launch", - "name": "GameTestServer", - "presentation": { - "group": "Mod Development - CreateQualityOfLife", - "order": 2 - }, - "projectName": "CreateQualityOfLife", - "mainClass": "net.neoforged.devlaunch.Main", - "args": [ - "@C:\\Users\\fdela\\Documents\\GitHub\\CreateQualityOfLife\\build\\moddev\\gameTestServerRunProgramArgs.txt" - ], - "vmArgs": [ - "@C:\\Users\\fdela\\Documents\\GitHub\\CreateQualityOfLife\\build\\moddev\\gameTestServerRunVmArgs.txt", - "-Dfml.modFolders\u003dcreateqol%%C:\\Users\\fdela\\Documents\\GitHub\\CreateQualityOfLife\\bin\\main" - ], - "cwd": "${workspaceFolder}\\run", - "console": "internalConsole", - "shortenCommandLine": "none" - }, - { - "type": "java", - "request": "launch", - "name": "Server", - "presentation": { - "group": "Mod Development - CreateQualityOfLife", - "order": 3 - }, - "projectName": "CreateQualityOfLife", - "mainClass": "net.neoforged.devlaunch.Main", - "args": [ - "@C:\\Users\\fdela\\Documents\\GitHub\\CreateQualityOfLife\\build\\moddev\\serverRunProgramArgs.txt" - ], - "vmArgs": [ - "@C:\\Users\\fdela\\Documents\\GitHub\\CreateQualityOfLife\\build\\moddev\\serverRunVmArgs.txt", - "-Dfml.modFolders\u003dcreateqol%%C:\\Users\\fdela\\Documents\\GitHub\\CreateQualityOfLife\\bin\\main" - ], - "cwd": "${workspaceFolder}\\run", - "console": "internalConsole", - "shortenCommandLine": "none" - } - ] -} \ No newline at end of file diff --git a/src/main/java/fr/iglee42/createqualityoflife/registries/QOLDataComponents.java b/src/main/java/fr/iglee42/createqualityoflife/registries/QOLDataComponents.java index ce139ae..675db52 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/registries/QOLDataComponents.java +++ b/src/main/java/fr/iglee42/createqualityoflife/registries/QOLDataComponents.java @@ -51,7 +51,6 @@ public class QOLDataComponents { public static final DataComponentType EFFECT = register("preferred_effect", b->b.persistent(ShadowRadianceEffects.CODEC).networkSynchronized(ShadowRadianceEffects.STREAM_CODEC)); public static final DataComponentType COPIED_DATAS = register("copied_datas",b->b.persistent(CompoundTag.CODEC).networkSynchronized(ByteBufCodecs.COMPOUND_TAG)); public static final DataComponentType ITEM_TOOLTIPS = register("item_tooltips", b->b.persistent(ItemTooltips.CODEC).networkSynchronized(ItemTooltips.STREAM_CODEC)); - public static final DataComponentType USE_AIR = register("use_air",b->b.persistent(Codec.BOOL).networkSynchronized(ByteBufCodecs.BOOL)); private static DataComponentType register(String name, UnaryOperator> builder) { From 2851e4338a5c393ee75be073050ee7e10004c630 Mon Sep 17 00:00:00 2001 From: Gytube Date: Sun, 17 May 2026 16:35:59 +0200 Subject: [PATCH 6/8] globalized the setting + backtank tooltip --- .../createqualityoflife/config/CQOLArmors.java | 4 ---- .../config/CQOLEquipments.java | 2 ++ .../createqualityoflife/config/CQOLTools.java | 4 ---- .../items/armors/RefinedRadianceArmorItem.java | 9 +-------- .../armors/RefinedRadianceChestplate.java | 13 ++++--------- .../items/armors/RefinedRadianceHelmet.java | 15 ++++----------- .../items/armors/ShadowRadianceArmorItem.java | 14 ++++---------- .../items/armors/ShadowRadianceChestplate.java | 15 +++++---------- .../items/armors/ShadowRadianceHelmet.java | 14 ++++---------- .../items/armors/ShadowSteelArmorItem.java | 9 +-------- .../items/armors/ShadowSteelChestplate.java | 15 +++++---------- .../items/armors/ShadowSteelHelmet.java | 15 ++++----------- .../refinedradiance/RefinedRadianceAxe.java | 14 ++++---------- .../refinedradiance/RefinedRadianceHoe.java | 8 +------- .../RefinedRadiancePickaxe.java | 8 +------- .../refinedradiance/RefinedRadianceShovel.java | 8 +------- .../refinedradiance/RefinedRadianceSword.java | 18 ++++-------------- .../shadowradiance/ShadowRadianceAxe.java | 16 ++++------------ .../shadowradiance/ShadowRadianceHoe.java | 15 ++++----------- .../shadowradiance/ShadowRadiancePickaxe.java | 14 ++++---------- .../shadowradiance/ShadowRadianceShovel.java | 14 ++++---------- .../shadowradiance/ShadowRadianceSword.java | 14 ++++---------- .../tools/shadowsteel/ShadowSteelAxe.java | 14 ++++---------- .../tools/shadowsteel/ShadowSteelHoe.java | 14 ++++---------- .../tools/shadowsteel/ShadowSteelPickaxe.java | 14 ++++---------- .../tools/shadowsteel/ShadowSteelShovel.java | 14 ++++---------- .../tools/shadowsteel/ShadowSteelSword.java | 18 ++++-------------- .../resources/assets/createqol/lang/en_us.json | 4 ++-- 28 files changed, 87 insertions(+), 249 deletions(-) diff --git a/src/main/java/fr/iglee42/createqualityoflife/config/CQOLArmors.java b/src/main/java/fr/iglee42/createqualityoflife/config/CQOLArmors.java index b2cd176..f7aef70 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/config/CQOLArmors.java +++ b/src/main/java/fr/iglee42/createqualityoflife/config/CQOLArmors.java @@ -20,8 +20,6 @@ public class CQOLArmors extends ConfigBase { public ConfigBool stepHeight = b(true,"stepHeight", Comments.stepHeight); public ConfigBool voidWalking = b(true,"voidWalking", Comments.voidWalking); - public ConfigBool use_air = b(true,"use_air", Comments.use_air); - @Override public String getName() { return "armors"; @@ -43,7 +41,5 @@ private static class Comments { static String dashCooldown = "Define the cooldown for the dash"; static String stepHeight = "Define if shadow radiance/refined radiance leggings should provide step height to the player"; static String voidWalking = "Define if shadow radiance/shadow steel leggings should provide the ability to walk on void to the player"; - - static String use_air = "Define if air should be used (if available) from the backtank instead of the armor's durability."; } } diff --git a/src/main/java/fr/iglee42/createqualityoflife/config/CQOLEquipments.java b/src/main/java/fr/iglee42/createqualityoflife/config/CQOLEquipments.java index 0918d86..dd159f1 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/config/CQOLEquipments.java +++ b/src/main/java/fr/iglee42/createqualityoflife/config/CQOLEquipments.java @@ -4,6 +4,8 @@ public class CQOLEquipments extends ConfigBase { + public final ConfigBool useAir = b(true, "useAir", "Use backtank air before item durability for Refined Radiance, Shadow Steel, and Shadow Radiance equipment."); + public final CQOLArmors armors = nested(1,CQOLArmors::new,Comments.armors); public final CQOLTools tools = nested(1,CQOLTools::new,Comments.tools); diff --git a/src/main/java/fr/iglee42/createqualityoflife/config/CQOLTools.java b/src/main/java/fr/iglee42/createqualityoflife/config/CQOLTools.java index 868f855..fe643a6 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/config/CQOLTools.java +++ b/src/main/java/fr/iglee42/createqualityoflife/config/CQOLTools.java @@ -21,8 +21,6 @@ public class CQOLTools extends ConfigBase { public final ConfigInt swordsChargeTime = i(50,0,Integer.MAX_VALUE,"swordsChargeTime",Comments.swordsChargeTime); public final ConfigInt swordsCooldowns = i(100,0,Integer.MAX_VALUE,"swordsCooldowns",Comments.swordsCooldowns); - public final ConfigBool use_air = b(true,"use_air",Comments.use_air); - @Override public String getName() { return "tools"; @@ -45,7 +43,5 @@ private static class Comments { static String swordsStrength = "Define the max strength for the swords repulsion/attraction effect. The strength formula is maxStrength * (chargeTime / maxChargeTime)"; static String swordsChargeTime = "Define the max charge time (in ticks) for the swords repulsion/attraction effect"; static String swordsCooldowns = "Define the cooldown (in ticks) between two uses of swords repulsion/attraction effect"; - - static String use_air = "Define if air should be used (if available) from the backtank instead of the tool's durability."; } } diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/armors/RefinedRadianceArmorItem.java b/src/main/java/fr/iglee42/createqualityoflife/items/armors/RefinedRadianceArmorItem.java index b89536a..7e2419b 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/armors/RefinedRadianceArmorItem.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/armors/RefinedRadianceArmorItem.java @@ -65,10 +65,6 @@ public void appendHoverText(@NotNull ItemStack stack, @NotNull TooltipContext p_ .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.armors.stepHeight.get(), true, stack.getOrDefault(QOLDataComponents.STEP_HEIGHT, true), false, true))); } - components.add(Component.translatable("createqol.ability.armor.toggle_message", Component.translatable("createqol.ability.armor.use_air").getString()) - .withStyle(ChatFormatting.GOLD) - .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.armors.use_air.get(), - true, stack.getOrDefault(QOLDataComponents.USE_AIR, false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } @Override @@ -111,14 +107,11 @@ public void addConfigurations(List> list, ItemStack stack) { (e,oE)->CreateQOLConfigs.server().equipments.armors.stepHeight.get() )); } - list.add(Configuration.ofBool("Use Air",stack.getOrDefault(QOLDataComponents.USE_AIR,false),QOLDataComponents.USE_AIR, - List.of("Define if air should be used (if available) from the backtank instead of the armor's durability."),(e,oe)->CreateQOLConfigs.server().equipments.armors.use_air.get())); - } @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); + return CreateQOLConfigs.server().equipments.useAir.get() && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } @Override diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/armors/RefinedRadianceChestplate.java b/src/main/java/fr/iglee42/createqualityoflife/items/armors/RefinedRadianceChestplate.java index 1dfc22c..ff3dd47 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/armors/RefinedRadianceChestplate.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/armors/RefinedRadianceChestplate.java @@ -94,21 +94,20 @@ public void addConfigurations(List> list, ItemStack stack) { .noneMatch(e -> e instanceof BooleanEntry oEntry && oEntry.getComponent().equals(QOLDataComponents.BACKTANK_FANS) && oEntry.getValue()); return CreateQOLConfigs.server().equipments.armors.elytraAllowed.get() && flag; })); - } - list.add(Configuration.ofBool("Use Air", stack.getOrDefault(QOLDataComponents.USE_AIR, false), QOLDataComponents.USE_AIR, - Arrays.asList("Define if air should be used (if available) from the backtank instead of the armor's durability."), (e, oe) -> CreateQOLConfigs.server().equipments.armors.use_air.get())); - } @Override public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, List components, TooltipFlag p_41424_) { + String airTooltip = CreateQOLConfigs.server().equipments.useAir.get() ? " (Powering equipment with air)" : " (Underwater breathing only)"; if (!stack.getOrDefault(QOLDataComponents.ITEM_TOOLTIPS, ItemTooltips.DEFAULT).isEnable(ItemTooltips.Tooltip.OPTIONS)) return; components.add(Component.translatable("createqol.ability.armor.toggle_message", Component.translatable("createqol.ability.armor.air").getString()) .withStyle(ChatFormatting.GOLD) .append(Component.literal(String.valueOf(BacktankUtil.getAir(stack))) .withStyle(ChatFormatting.YELLOW)) .append(Component.literal("/" + BacktankUtil.maxAir(stack)) + .withStyle(ChatFormatting.GOLD)) + .append(Component.literal(airTooltip) .withStyle(ChatFormatting.GOLD))); components.add(Component.translatable("createqol.ability.armor.toggle_message", Component.translatable("createqol.ability.armor.elytra").getString()) .withStyle(ChatFormatting.GOLD) @@ -118,10 +117,6 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.chooseState(true, true, stack.getOrDefault(QOLDataComponents.BACKTANK_ARMS, true), false, true))); - components.add(Component.translatable("createqol.ability.armor.toggle_message", Component.translatable("createqol.ability.armor.use_air").getString()) - .withStyle(ChatFormatting.GOLD) - .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.armors.use_air.get(), - true, stack.getOrDefault(QOLDataComponents.USE_AIR, false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } @@ -142,7 +137,7 @@ public boolean elytraFlightTick(ItemStack stack, LivingEntity entity, int flight @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); + return CreateQOLConfigs.server().equipments.useAir.get() && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } } diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/armors/RefinedRadianceHelmet.java b/src/main/java/fr/iglee42/createqualityoflife/items/armors/RefinedRadianceHelmet.java index ece7fc8..aced071 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/armors/RefinedRadianceHelmet.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/armors/RefinedRadianceHelmet.java @@ -52,10 +52,6 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.armors.helmetHaveGoggles.get(), true, stack.getOrDefault(QOLDataComponents.HELMET_GOGGLES, true), false, true))); - components.add(Component.translatable("createqol.ability.armor.toggle_message", Component.translatable("createqol.ability.armor.use_air").getString()) - .withStyle(ChatFormatting.GOLD) - .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.armors.use_air.get(), - true, stack.getOrDefault(QOLDataComponents.USE_AIR, false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } @@ -63,9 +59,6 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, @Override public void addConfigurations(List> list, ItemStack stack) { list.add(Configuration.ofBool("Enable Googles",stack.getOrDefault(QOLDataComponents.HELMET_GOGGLES,true),QOLDataComponents.HELMET_GOGGLES,Arrays.asList("Should engineer's goggle's information be displayed"),(e,oe)->CreateQOLConfigs.server().equipments.armors.helmetHaveGoggles.get())); - list.add(Configuration.ofBool("Use Air",stack.getOrDefault(QOLDataComponents.USE_AIR,false),QOLDataComponents.USE_AIR, - Arrays.asList("Define if air should be used (if available) from the backtank instead of the armor's durability."),(e,oe)->CreateQOLConfigs.server().equipments.armors.use_air.get())); - } @Override @@ -90,21 +83,21 @@ public List renderTypes(ItemStack stack) { @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); + return CreateQOLConfigs.server().equipments.useAir.get() && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } @Override public boolean isBarVisible(ItemStack stack) { - return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && stack.getOrDefault(QOLDataComponents.USE_AIR, false)) || super.isBarVisible(stack); + return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && CreateQOLConfigs.server().equipments.useAir.get()) || super.isBarVisible(stack); } @Override public int getBarWidth(ItemStack stack) { - return stack.getOrDefault(QOLDataComponents.USE_AIR, false) ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); + return CreateQOLConfigs.server().equipments.useAir.get() ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); } @Override public int getBarColor(ItemStack stack) { - return stack.getOrDefault(QOLDataComponents.USE_AIR, false) ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); + return CreateQOLConfigs.server().equipments.useAir.get() ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); } } diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowRadianceArmorItem.java b/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowRadianceArmorItem.java index fb968b0..41759ed 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowRadianceArmorItem.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowRadianceArmorItem.java @@ -75,9 +75,6 @@ public void appendHoverText(ItemStack stack, TooltipContext p_339594_, List> list, ItemStack stack) { (e,oE)->CreateQOLConfigs.server().equipments.armors.stepHeight.get() )); } - list.add(Configuration.ofBool("Use Air",stack.getOrDefault(QOLDataComponents.USE_AIR,false),QOLDataComponents.USE_AIR, - List.of("Define if air should be used (if available) from the backtank instead of the armor's durability."),(e,oe)->CreateQOLConfigs.server().equipments.armors.use_air.get())); - } @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); + return CreateQOLConfigs.server().equipments.useAir.get() && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } @Override public boolean isBarVisible(ItemStack stack) { - return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && stack.getOrDefault(QOLDataComponents.USE_AIR,false)) || super.isBarVisible(stack); + return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && CreateQOLConfigs.server().equipments.useAir.get()) || super.isBarVisible(stack); } @Override public int getBarWidth(ItemStack stack) { - return (stack.getOrDefault(QOLDataComponents.USE_AIR,false)) ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); + return (CreateQOLConfigs.server().equipments.useAir.get()) ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); } @Override public int getBarColor(ItemStack stack) { - return (stack.getOrDefault(QOLDataComponents.USE_AIR,false)) ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); + return (CreateQOLConfigs.server().equipments.useAir.get()) ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); } @Override diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowRadianceChestplate.java b/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowRadianceChestplate.java index 3a5079a..4c61cc7 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowRadianceChestplate.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowRadianceChestplate.java @@ -190,13 +190,16 @@ private void pushVertically(Player p,double y){ @Override public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, List components, TooltipFlag p_41424_) { + String airTooltip = CreateQOLConfigs.server().equipments.useAir.get() ? " (Powering equipment with air)" : " (Underwater breathing only)"; if (!stack.getOrDefault(QOLDataComponents.ITEM_TOOLTIPS, ItemTooltips.DEFAULT).isEnable(ItemTooltips.Tooltip.OPTIONS)) return; components.add(Component.translatable("createqol.ability.armor.toggle_message", Component.translatable("createqol.ability.armor.air").getString()) .withStyle(ChatFormatting.GOLD) .append(Component.literal(String.valueOf(BacktankUtil.getAir(stack))) .withStyle(ChatFormatting.YELLOW)) .append(Component.literal("/"+BacktankUtil.maxAir(stack)) - .withStyle(ChatFormatting.GOLD))); + .withStyle(ChatFormatting.GOLD) + .append(Component.literal(airTooltip) + .withStyle(ChatFormatting.GOLD)))); components.add(Component.translatable("createqol.ability.armor.toggle_message", Component.translatable("createqol.ability.armor.effect").getString()) .withStyle(ChatFormatting.GOLD) .append(Component.translatable(providedEffect(stack).value().getDescriptionId()).withStyle(ChatFormatting.YELLOW))); @@ -224,10 +227,6 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.armors.hoverAllowed.get() ,true,isHoverEnable(stack),false,true))); } - components.add(Component.translatable("createqol.ability.armor.toggle_message", Component.translatable("createqol.ability.armor.use_air").getString()) - .withStyle(ChatFormatting.GOLD) - .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.armors.use_air.get(), true, stack.getOrDefault(QOLDataComponents.USE_AIR,false), false, true))); - super.appendHoverText(stack, p_41422_, components, p_41424_); } @@ -403,10 +402,6 @@ public void addConfigurations(List> list, ItemStack stack) { e = options[Math.floorMod(e.ordinal() + direction, options.length)]; return e; },(e,oe)->true)); - - list.add(Configuration.ofBool("Use Air",stack.getOrDefault(QOLDataComponents.USE_AIR,false),QOLDataComponents.USE_AIR, - List.of("Define if air should be used (if available) from the backtank instead of the armor's durability."),(e,oe)->CreateQOLConfigs.server().equipments.armors.use_air.get())); - } @Override @@ -416,6 +411,6 @@ public boolean isBarVisible(ItemStack stack) { @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); + return CreateQOLConfigs.server().equipments.useAir.get() && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } } diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowRadianceHelmet.java b/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowRadianceHelmet.java index ad7794e..7ee1048 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowRadianceHelmet.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowRadianceHelmet.java @@ -61,9 +61,6 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.armors.helmetHaveGoggles.get(), true, stack.getOrDefault(QOLDataComponents.HELMET_GOGGLES, true), false, true))); - components.add(Component.translatable("createqol.ability.armor.toggle_message", Component.translatable("createqol.ability.armor.use_air").getString()) - .withStyle(ChatFormatting.GOLD) - .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.armors.use_air.get(), true, stack.getOrDefault(QOLDataComponents.USE_AIR,false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } @@ -95,9 +92,6 @@ public void addConfigurations(List> list, ItemStack stack) { e = options[Math.floorMod(e.ordinal() + direction, options.length)]; return e; },(e,oe)->true)); - list.add(Configuration.ofBool("Use Air",stack.getOrDefault(QOLDataComponents.USE_AIR,false),QOLDataComponents.USE_AIR, - List.of("Define if air should be used (if available) from the backtank instead of the armor's durability."),(e,oe)->CreateQOLConfigs.server().equipments.armors.use_air.get())); - } @Override @@ -107,22 +101,22 @@ public int effectTime(ItemStack stack) { @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); + return CreateQOLConfigs.server().equipments.useAir.get() && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } @Override public boolean isBarVisible(ItemStack stack) { - return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && stack.getOrDefault(QOLDataComponents.USE_AIR,false)) || super.isBarVisible(stack); + return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && CreateQOLConfigs.server().equipments.useAir.get()) || super.isBarVisible(stack); } @Override public int getBarWidth(ItemStack stack) { - return (stack.getOrDefault(QOLDataComponents.USE_AIR,false)) ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); + return (CreateQOLConfigs.server().equipments.useAir.get()) ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); } @Override public int getBarColor(ItemStack stack) { - return (stack.getOrDefault(QOLDataComponents.USE_AIR,false)) ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); + return (CreateQOLConfigs.server().equipments.useAir.get()) ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); } @Override diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowSteelArmorItem.java b/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowSteelArmorItem.java index a2f3fff..eee33e1 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowSteelArmorItem.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowSteelArmorItem.java @@ -63,10 +63,6 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.armors.voidWalking.get(), true, stack.getOrDefault(QOLDataComponents.VOID_WALK, true), false, true))); } - components.add(Component.translatable("createqol.ability.armor.toggle_message", Component.translatable("createqol.ability.armor.use_air").getString()) - .withStyle(ChatFormatting.GOLD) - .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.armors.use_air.get(), - true, stack.getOrDefault(QOLDataComponents.USE_AIR, false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } @@ -111,13 +107,10 @@ public void addConfigurations(List> list, ItemStack stack) { (e,oE)-> CreateQOLConfigs.server().equipments.armors.voidWalking.get() )); } - list.add(Configuration.ofBool("Use Air",stack.getOrDefault(QOLDataComponents.USE_AIR,false),QOLDataComponents.USE_AIR, - List.of("Define if air should be used (if available) from the backtank instead of the armor's durability."),(e,oe)->CreateQOLConfigs.server().equipments.armors.use_air.get())); - } @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); + return CreateQOLConfigs.server().equipments.useAir.get() && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } @Override diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowSteelChestplate.java b/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowSteelChestplate.java index d9e37c7..5637aca 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowSteelChestplate.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowSteelChestplate.java @@ -60,13 +60,16 @@ public void inventoryTick(ItemStack p_41404_, Level p_41405_, Entity p_41406_, i @Override public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, List components, TooltipFlag p_41424_) { + String airTooltip = CreateQOLConfigs.server().equipments.useAir.get() ? " (Powering equipment with air)" : " (Underwater breathing only)"; if (!stack.getOrDefault(QOLDataComponents.ITEM_TOOLTIPS, ItemTooltips.DEFAULT).isEnable(ItemTooltips.Tooltip.OPTIONS)) return; components.add(Component.translatable("createqol.ability.armor.toggle_message", Component.translatable("createqol.ability.armor.air").getString()) .withStyle(ChatFormatting.GOLD) .append(Component.literal(String.valueOf(BacktankUtil.getAir(stack))) .withStyle(ChatFormatting.YELLOW)) .append(Component.literal("/" + BacktankUtil.maxAir(stack)) - .withStyle(ChatFormatting.GOLD))); + .withStyle(ChatFormatting.GOLD) + .append(Component.literal(airTooltip) + .withStyle(ChatFormatting.GOLD)))); components.add(Component.translatable("createqol.ability.armor.toggle_message", Component.translatable("createqol.ability.armor.dash").getString()) .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.cooldownState(CreateQOLConfigs.server().equipments.armors.dashAllowed.get(), @@ -75,10 +78,6 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.chooseState(true, true, stack.getOrDefault(QOLDataComponents.BACKTANK_ARMS, true), false, true))); - components.add(Component.translatable("createqol.ability.armor.toggle_message", Component.translatable("createqol.ability.armor.use_air").getString()) - .withStyle(ChatFormatting.GOLD) - .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.armors.use_air.get(), - true, stack.getOrDefault(QOLDataComponents.USE_AIR, false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } @@ -114,10 +113,6 @@ public void addConfigurations(List> list, ItemStack stack) { list.add(Configuration.ofBool("Enable Dash",stack.getOrDefault(QOLDataComponents.DASH,true),QOLDataComponents.DASH, List.of("Should the player dash when pressing "+ KeyBindManager.DASH_KEY.getTranslatedKeyMessage().getString()), (o,oe)->CreateQOLConfigs.server().equipments.armors.dashAllowed.get())); - - - list.add(Configuration.ofBool("Use Air",stack.getOrDefault(QOLDataComponents.USE_AIR,false),QOLDataComponents.USE_AIR, - List.of("Define if air should be used (if available) from the backtank instead of the armor's durability."),(e,oe)->CreateQOLConfigs.server().equipments.armors.use_air.get())); } @Override @@ -127,6 +122,6 @@ public boolean isBarVisible(ItemStack stack) { @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); + return CreateQOLConfigs.server().equipments.useAir.get() && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } } diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowSteelHelmet.java b/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowSteelHelmet.java index 74939aa..3dd32e9 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowSteelHelmet.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowSteelHelmet.java @@ -46,10 +46,6 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.armors.helmetHaveGoggles.get(), true, stack.getOrDefault(QOLDataComponents.HELMET_GOGGLES, true), false, true))); - components.add(Component.translatable("createqol.ability.armor.toggle_message", Component.translatable("createqol.ability.armor.use_air").getString()) - .withStyle(ChatFormatting.GOLD) - .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.armors.use_air.get(), - true, stack.getOrDefault(QOLDataComponents.USE_AIR, false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } @@ -63,9 +59,6 @@ public void inventoryTick(ItemStack p_41404_, Level p_41405_, Entity p_41406_, i @Override public void addConfigurations(List> list, ItemStack stack) { list.add(Configuration.ofBool("Enable Googles",stack.getOrDefault(QOLDataComponents.HELMET_GOGGLES,true),QOLDataComponents.HELMET_GOGGLES,Arrays.asList("Should engineer's goggle's information be displayed"),(e,oe)->CreateQOLConfigs.server().equipments.armors.helmetHaveGoggles.get())); - list.add(Configuration.ofBool("Use Air",stack.getOrDefault(QOLDataComponents.USE_AIR,false),QOLDataComponents.USE_AIR, - Arrays.asList("Define if air should be used (if available) from the backtank instead of the armor's durability."),(e,oe)->CreateQOLConfigs.server().equipments.armors.use_air.get())); - } @Override @@ -85,22 +78,22 @@ public List renderTypes(ItemStack stack) { @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); + return CreateQOLConfigs.server().equipments.useAir.get() && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } @Override public boolean isBarVisible(ItemStack stack) { - return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && stack.getOrDefault(QOLDataComponents.USE_AIR, false)) || super.isBarVisible(stack); + return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && CreateQOLConfigs.server().equipments.useAir.get()) || super.isBarVisible(stack); } @Override public int getBarWidth(ItemStack stack) { - return stack.getOrDefault(QOLDataComponents.USE_AIR, false) ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); + return CreateQOLConfigs.server().equipments.useAir.get() ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); } @Override public int getBarColor(ItemStack stack) { - return stack.getOrDefault(QOLDataComponents.USE_AIR, false) ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); + return CreateQOLConfigs.server().equipments.useAir.get() ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); } @Override diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/tools/refinedradiance/RefinedRadianceAxe.java b/src/main/java/fr/iglee42/createqualityoflife/items/tools/refinedradiance/RefinedRadianceAxe.java index 9450d8e..a8191ee 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/tools/refinedradiance/RefinedRadianceAxe.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/tools/refinedradiance/RefinedRadianceAxe.java @@ -85,9 +85,6 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.casingifier").getString()) .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.casingifier.get(), true, stack.getOrDefault(QOLDataComponents.CASINGIFIER,false), false, true))); - components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.use_air").getString()) - .withStyle(ChatFormatting.GOLD) - .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.use_air.get(), true, stack.getOrDefault(QOLDataComponents.USE_AIR,false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } @@ -96,9 +93,6 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, public void addConfigurations(List> list, ItemStack stack) { list.add(Configuration.ofBool("Casingifier",stack.getOrDefault(QOLDataComponents.CASINGIFIER,false),QOLDataComponents.CASINGIFIER, List.of("When stripping a log transform it into casing if a valid casing ingredient is available in the off hand","It also transform adjacent blocks"),(e,oe)->CreateQOLConfigs.server().equipments.tools.casingifier.get())); - list.add(Configuration.ofBool("Use Air",stack.getOrDefault(QOLDataComponents.USE_AIR,false),QOLDataComponents.USE_AIR, - List.of("Define if air should be used (if available) from the backtank instead of the tool's durability."),(e,oe)->CreateQOLConfigs.server().equipments.tools.use_air.get())); - } @@ -122,22 +116,22 @@ public static void toggleAbility(ItemStack stack, Player p) { @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); + return CreateQOLConfigs.server().equipments.useAir.get() && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } @Override public boolean isBarVisible(ItemStack stack) { - return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && stack.getOrDefault(QOLDataComponents.USE_AIR,false)) || super.isBarVisible(stack); + return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && CreateQOLConfigs.server().equipments.useAir.get()) || super.isBarVisible(stack); } @Override public int getBarWidth(ItemStack stack) { - return stack.getOrDefault(QOLDataComponents.USE_AIR,false) ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); + return CreateQOLConfigs.server().equipments.useAir.get() ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); } @Override public int getBarColor(ItemStack stack) { - return stack.getOrDefault(QOLDataComponents.USE_AIR,false) ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); + return CreateQOLConfigs.server().equipments.useAir.get() ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); } @Override diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/tools/refinedradiance/RefinedRadianceHoe.java b/src/main/java/fr/iglee42/createqualityoflife/items/tools/refinedradiance/RefinedRadianceHoe.java index de1b33c..b74578e 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/tools/refinedradiance/RefinedRadianceHoe.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/tools/refinedradiance/RefinedRadianceHoe.java @@ -79,9 +79,6 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.harvesting").getString()) .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.harvesting.get(), true, stack.getOrDefault(QOLDataComponents.HARVESTING,false), false, true))); - components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.use_air").getString()) - .withStyle(ChatFormatting.GOLD) - .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.use_air.get(), true, stack.getOrDefault(QOLDataComponents.USE_AIR,false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } @@ -89,9 +86,6 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, public void addConfigurations(List> list, ItemStack stack) { list.add(Configuration.ofBool("Harvesting",stack.getOrDefault(QOLDataComponents.HARVESTING,false),QOLDataComponents.HARVESTING, List.of("Should replant destroyed crops"),(e,oe)->CreateQOLConfigs.server().equipments.tools.harvesting.get())); - list.add(Configuration.ofBool("Use Air",stack.getOrDefault(QOLDataComponents.USE_AIR,false),QOLDataComponents.USE_AIR, - List.of("Define if air should be used (if available) from the backtank instead of the tool's durability."),(e,oe)->CreateQOLConfigs.server().equipments.tools.use_air.get())); - } @Override @@ -114,7 +108,7 @@ public static void toggleAbility(ItemStack stack, Player p) { @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); + return CreateQOLConfigs.server().equipments.useAir.get() && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } @Override diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/tools/refinedradiance/RefinedRadiancePickaxe.java b/src/main/java/fr/iglee42/createqualityoflife/items/tools/refinedradiance/RefinedRadiancePickaxe.java index ba0ddc6..49328a4 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/tools/refinedradiance/RefinedRadiancePickaxe.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/tools/refinedradiance/RefinedRadiancePickaxe.java @@ -71,9 +71,6 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.vein_mine").getString()) .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.veinMine.get(), true, stack.getOrDefault(QOLDataComponents.VEIN_MINE,false), false, true))); - components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.use_air").getString()) - .withStyle(ChatFormatting.GOLD) - .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.use_air.get(), true, stack.getOrDefault(QOLDataComponents.USE_AIR,false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } @@ -82,9 +79,6 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, public void addConfigurations(List> list, ItemStack stack) { list.add(Configuration.ofBool("Vein Mine",stack.getOrDefault(QOLDataComponents.VEIN_MINE,false),QOLDataComponents.VEIN_MINE, List.of("Should all the blocks of the same types be destroy when mining"),(e,oe)->CreateQOLConfigs.server().equipments.tools.veinMine.get())); - list.add(Configuration.ofBool("Use Air",stack.getOrDefault(QOLDataComponents.USE_AIR,false),QOLDataComponents.USE_AIR, - List.of("Define if air should be used (if available) from the backtank instead of the tool's durability."),(e,oe)->CreateQOLConfigs.server().equipments.tools.use_air.get())); - } @Override @@ -108,7 +102,7 @@ public static void toggleAbility(ItemStack stack, Player p) { @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); + return CreateQOLConfigs.server().equipments.useAir.get() && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } @Override diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/tools/refinedradiance/RefinedRadianceShovel.java b/src/main/java/fr/iglee42/createqualityoflife/items/tools/refinedradiance/RefinedRadianceShovel.java index a685f78..8b183a9 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/tools/refinedradiance/RefinedRadianceShovel.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/tools/refinedradiance/RefinedRadianceShovel.java @@ -67,9 +67,6 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.smelting").getString()) .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.smelting.get(), true, stack.getOrDefault(QOLDataComponents.SMELTING,false), false, true))); - components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.use_air").getString()) - .withStyle(ChatFormatting.GOLD) - .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.use_air.get(), true, stack.getOrDefault(QOLDataComponents.USE_AIR,false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } @@ -78,9 +75,6 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, public void addConfigurations(List> list, ItemStack stack) { list.add(Configuration.ofBool("Smelting",stack.getOrDefault(QOLDataComponents.SMELTING,false),QOLDataComponents.SMELTING, List.of("Should smelt the mined blocks"),(e,oe)->CreateQOLConfigs.server().equipments.tools.smelting.get())); - list.add(Configuration.ofBool("Use Air",stack.getOrDefault(QOLDataComponents.USE_AIR,false),QOLDataComponents.USE_AIR, - List.of("Define if air should be used (if available) from the backtank instead of the tool's durability."),(e,oe)->CreateQOLConfigs.server().equipments.tools.use_air.get())); - } @@ -105,7 +99,7 @@ public static void toggleAbility(ItemStack stack, Player p) { @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); + return CreateQOLConfigs.server().equipments.useAir.get() && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } @Override diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/tools/refinedradiance/RefinedRadianceSword.java b/src/main/java/fr/iglee42/createqualityoflife/items/tools/refinedradiance/RefinedRadianceSword.java index 30ed562..c3891bc 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/tools/refinedradiance/RefinedRadianceSword.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/tools/refinedradiance/RefinedRadianceSword.java @@ -130,37 +130,27 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.cooldownState(CreateQOLConfigs.server().equipments.tools.swordsAbilities.get(), true, (int) Math.ceil(Minecraft.getInstance().player.getCooldowns().getCooldownPercent(this,0) * CreateQOLConfigs.server().equipments.tools.swordsCooldowns.get())))); - components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.use_air").getString()) - .withStyle(ChatFormatting.GOLD) - .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.use_air.get(), true, stack.getOrDefault(QOLDataComponents.USE_AIR, false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } - @Override - public void addConfigurations(List> list, ItemStack stack) { - list.add(Configuration.ofBool("Use Air", stack.getOrDefault(QOLDataComponents.USE_AIR, false), QOLDataComponents.USE_AIR, - List.of("Define if air should be used (if available) from the backtank instead of the tool's durability."), (e, oe) -> CreateQOLConfigs.server().equipments.tools.use_air.get())); - - } - @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); + return CreateQOLConfigs.server().equipments.useAir.get() && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } @Override public boolean isBarVisible(ItemStack stack) { - return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && stack.getOrDefault(QOLDataComponents.USE_AIR, false)) || super.isBarVisible(stack); + return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && CreateQOLConfigs.server().equipments.useAir.get()) || super.isBarVisible(stack); } @Override public int getBarWidth(ItemStack stack) { - return stack.getOrDefault(QOLDataComponents.USE_AIR, false) ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); + return CreateQOLConfigs.server().equipments.useAir.get() ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); } @Override public int getBarColor(ItemStack stack) { - return stack.getOrDefault(QOLDataComponents.USE_AIR, false) ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); + return CreateQOLConfigs.server().equipments.useAir.get() ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); } @Override diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadianceAxe.java b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadianceAxe.java index f77667c..3172ef8 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadianceAxe.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadianceAxe.java @@ -78,11 +78,6 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.tree_decapitation").getString()) .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.treeDecapitation.get(), true, stack.getOrDefault(QOLDataComponents.TREE_DECAPITATION,false), false, true))); - - components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.use_air").getString()) - .withStyle(ChatFormatting.GOLD) - .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.use_air.get(), true, stack.getOrDefault(QOLDataComponents.USE_AIR,false), false, true))); - super.appendHoverText(stack, p_41422_, components, p_41424_); } @@ -93,9 +88,6 @@ public void addConfigurations(List> list, ItemStack stack) { List.of("When stripping a log transform it into casing if a valid casing ingredient is available in the off hand","It also transform adjacent blocks"),(e,oe)->CreateQOLConfigs.server().equipments.tools.casingifier.get())); list.add(Configuration.ofBool("Tree Decapitation",stack.getOrDefault(QOLDataComponents.TREE_DECAPITATION,false),QOLDataComponents.TREE_DECAPITATION, List.of("Should destroy a tree when a log is broken like a mechanical saw"),(e,oe)->CreateQOLConfigs.server().equipments.tools.treeDecapitation.get())); - - list.add(Configuration.ofBool("Use Air",stack.getOrDefault(QOLDataComponents.USE_AIR,false),QOLDataComponents.USE_AIR, - List.of("Define if air should be used (if available) from the backtank instead of the tool's durability."),(e,oe)->CreateQOLConfigs.server().equipments.tools.use_air.get())); } @Override @@ -121,23 +113,23 @@ public InteractionResultHolder use(Level level, Player player, Intera @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); + return CreateQOLConfigs.server().equipments.useAir.get() && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } @Override public boolean isBarVisible(ItemStack stack) { - return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && stack.getOrDefault(QOLDataComponents.USE_AIR,false)) || super.isBarVisible(stack); + return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && CreateQOLConfigs.server().equipments.useAir.get()) || super.isBarVisible(stack); } @Override public int getBarWidth(ItemStack stack) { - return (stack.getOrDefault(QOLDataComponents.USE_AIR,false)) ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); + return (CreateQOLConfigs.server().equipments.useAir.get()) ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); } @Override public int getBarColor(ItemStack stack) { - return (stack.getOrDefault(QOLDataComponents.USE_AIR,false)) ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); + return (CreateQOLConfigs.server().equipments.useAir.get()) ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); } @Override diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadianceHoe.java b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadianceHoe.java index 35d127e..b24b98a 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadianceHoe.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadianceHoe.java @@ -67,9 +67,6 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.ploughing").getString()) .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.ploughing.get(), true, stack.getOrDefault(QOLDataComponents.PLOUGHING,false), false, true))); - components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.use_air").getString()) - .withStyle(ChatFormatting.GOLD) - .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.use_air.get(), true, stack.getOrDefault(QOLDataComponents.USE_AIR,false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } @@ -88,10 +85,6 @@ public void addConfigurations(List> list, ItemStack stack) { .noneMatch(e->e instanceof BooleanEntry oEntry && oEntry.getComponent().equals(QOLDataComponents.HARVESTING) && oEntry.getValue()); return CreateQOLConfigs.server().equipments.tools.ploughing.get() && flag; })); - - list.add(Configuration.ofBool("Use Air",stack.getOrDefault(QOLDataComponents.USE_AIR,false),QOLDataComponents.USE_AIR, - List.of("Define if air should be used (if available) from the backtank instead of the tool's durability."),(e,oe)->CreateQOLConfigs.server().equipments.tools.use_air.get())); - } @Override @@ -116,22 +109,22 @@ public InteractionResultHolder use(Level level, Player player, Intera @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); + return CreateQOLConfigs.server().equipments.useAir.get() && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } @Override public boolean isBarVisible(ItemStack stack) { - return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && stack.getOrDefault(QOLDataComponents.USE_AIR,false)) || super.isBarVisible(stack); + return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && CreateQOLConfigs.server().equipments.useAir.get()) || super.isBarVisible(stack); } @Override public int getBarWidth(ItemStack stack) { - return (stack.getOrDefault(QOLDataComponents.USE_AIR,false)) ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); + return (CreateQOLConfigs.server().equipments.useAir.get()) ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); } @Override public int getBarColor(ItemStack stack) { - return (stack.getOrDefault(QOLDataComponents.USE_AIR,false)) ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); + return (CreateQOLConfigs.server().equipments.useAir.get()) ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); } @Override diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadiancePickaxe.java b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadiancePickaxe.java index 0f243fc..8ab1383 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadiancePickaxe.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadiancePickaxe.java @@ -75,9 +75,6 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.vein_mine").getString()) .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.veinMine.get(), true, stack.getOrDefault(QOLDataComponents.VEIN_MINE,false), false, true))); - components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.use_air").getString()) - .withStyle(ChatFormatting.GOLD) - .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.use_air.get(), true, stack.getOrDefault(QOLDataComponents.USE_AIR,false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } @@ -95,29 +92,26 @@ public void addConfigurations(List> list, ItemStack stack) { .noneMatch(e->e instanceof BooleanEntry oEntry && oEntry.getComponent().equals(QOLDataComponents.DIGGING) && oEntry.getValue()); return CreateQOLConfigs.server().equipments.tools.veinMine.get() && flag; })); - list.add(Configuration.ofBool("Use Air",stack.getOrDefault(QOLDataComponents.USE_AIR,false),QOLDataComponents.USE_AIR, - List.of("Define if air should be used (if available) from the backtank instead of the tool's durability."),(e,oe)->CreateQOLConfigs.server().equipments.tools.use_air.get())); - } @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); + return CreateQOLConfigs.server().equipments.useAir.get() && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } @Override public boolean isBarVisible(ItemStack stack) { - return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && stack.getOrDefault(QOLDataComponents.USE_AIR,false)) || super.isBarVisible(stack); + return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && CreateQOLConfigs.server().equipments.useAir.get()) || super.isBarVisible(stack); } @Override public int getBarWidth(ItemStack stack) { - return (stack.getOrDefault(QOLDataComponents.USE_AIR,false)) ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); + return (CreateQOLConfigs.server().equipments.useAir.get()) ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); } @Override public int getBarColor(ItemStack stack) { - return (stack.getOrDefault(QOLDataComponents.USE_AIR,false)) ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); + return (CreateQOLConfigs.server().equipments.useAir.get()) ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); } @Override diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadianceShovel.java b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadianceShovel.java index 472def4..a6b9689 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadianceShovel.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadianceShovel.java @@ -55,9 +55,6 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.digging").getString()) .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.digging.get(), true, stack.getOrDefault(QOLDataComponents.DIGGING,false), false, true))); - components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.use_air").getString()) - .withStyle(ChatFormatting.GOLD) - .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.use_air.get(), true, stack.getOrDefault(QOLDataComponents.USE_AIR,false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } @@ -76,9 +73,6 @@ public void addConfigurations(List> list, ItemStack stack) { .noneMatch(e->e instanceof BooleanEntry oEntry && oEntry.getComponent().equals(QOLDataComponents.VEIN_MINE) && oEntry.getValue()); return CreateQOLConfigs.server().equipments.tools.digging.get() && flag; })); - list.add(Configuration.ofBool("Use Air",stack.getOrDefault(QOLDataComponents.USE_AIR,false),QOLDataComponents.USE_AIR, - List.of("Define if air should be used (if available) from the backtank instead of the tool's durability."),(e,oe)->CreateQOLConfigs.server().equipments.tools.use_air.get())); - } @Override @@ -104,22 +98,22 @@ public InteractionResultHolder use(Level level, Player player, Intera @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); + return CreateQOLConfigs.server().equipments.useAir.get() && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } @Override public boolean isBarVisible(ItemStack stack) { - return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && stack.getOrDefault(QOLDataComponents.USE_AIR,false)) || super.isBarVisible(stack); + return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && CreateQOLConfigs.server().equipments.useAir.get()) || super.isBarVisible(stack); } @Override public int getBarWidth(ItemStack stack) { - return (stack.getOrDefault(QOLDataComponents.USE_AIR,false)) ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); + return (CreateQOLConfigs.server().equipments.useAir.get()) ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); } @Override public int getBarColor(ItemStack stack) { - return (stack.getOrDefault(QOLDataComponents.USE_AIR,false)) ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); + return (CreateQOLConfigs.server().equipments.useAir.get()) ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); } @Override diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadianceSword.java b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadianceSword.java index 0f24d6e..493b40c 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadianceSword.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowradiance/ShadowRadianceSword.java @@ -141,9 +141,6 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.cooldownState(CreateQOLConfigs.server().equipments.tools.swordsAbilities.get(), true, (int) Math.ceil(Minecraft.getInstance().player.getCooldowns().getCooldownPercent(this,0) * CreateQOLConfigs.server().equipments.tools.swordsCooldowns.get())))); - components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.use_air").getString()) - .withStyle(ChatFormatting.GOLD) - .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.use_air.get(), true, stack.getOrDefault(QOLDataComponents.USE_AIR,false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } @@ -151,29 +148,26 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, public void addConfigurations(List> list, ItemStack stack) { list.add(Configuration.ofBool("Reach",stack.getOrDefault(QOLDataComponents.REACH,true),QOLDataComponents.REACH, List.of("Should extend the reach of the sword"),(e,oe)->CreateQOLConfigs.server().equipments.tools.reach.get())); - list.add(Configuration.ofBool("Use Air",stack.getOrDefault(QOLDataComponents.USE_AIR,false),QOLDataComponents.USE_AIR, - List.of("Define if air should be used (if available) from the backtank instead of the tool's durability."),(e,oe)->CreateQOLConfigs.server().equipments.tools.use_air.get())); - } @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); + return CreateQOLConfigs.server().equipments.useAir.get() && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } @Override public boolean isBarVisible(ItemStack stack) { - return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && stack.getOrDefault(QOLDataComponents.USE_AIR,false)) || super.isBarVisible(stack); + return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && CreateQOLConfigs.server().equipments.useAir.get()) || super.isBarVisible(stack); } @Override public int getBarWidth(ItemStack stack) { - return (stack.getOrDefault(QOLDataComponents.USE_AIR,false)) ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); + return (CreateQOLConfigs.server().equipments.useAir.get()) ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); } @Override public int getBarColor(ItemStack stack) { - return (stack.getOrDefault(QOLDataComponents.USE_AIR,false)) ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); + return (CreateQOLConfigs.server().equipments.useAir.get()) ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); } @Override diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowsteel/ShadowSteelAxe.java b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowsteel/ShadowSteelAxe.java index 82d7f42..809b37c 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowsteel/ShadowSteelAxe.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowsteel/ShadowSteelAxe.java @@ -86,9 +86,6 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.tree_decapitation").getString()) .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.treeDecapitation.get(), true, stack.getOrDefault(QOLDataComponents.TREE_DECAPITATION,false), false, true))); - components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.use_air").getString()) - .withStyle(ChatFormatting.GOLD) - .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.use_air.get(), true, stack.getOrDefault(QOLDataComponents.USE_AIR,false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } @@ -97,9 +94,6 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, public void addConfigurations(List> list, ItemStack stack) { list.add(Configuration.ofBool("Tree Decapitation",stack.getOrDefault(QOLDataComponents.TREE_DECAPITATION,false),QOLDataComponents.TREE_DECAPITATION, List.of("Should destroy a tree when a log is broken like a mechanical saw"),(e,oe)->CreateQOLConfigs.server().equipments.tools.treeDecapitation.get())); - list.add(Configuration.ofBool("Use Air",stack.getOrDefault(QOLDataComponents.USE_AIR,false),QOLDataComponents.USE_AIR, - List.of("Define if air should be used (if available) from the backtank instead of the tool's durability."),(e,oe)->CreateQOLConfigs.server().equipments.tools.use_air.get())); - } @Override @@ -122,22 +116,22 @@ public static void toggleAbility(ItemStack stack, Player p) { @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); + return CreateQOLConfigs.server().equipments.useAir.get() && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } @Override public boolean isBarVisible(ItemStack stack) { - return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && stack.getOrDefault(QOLDataComponents.USE_AIR,false)) || super.isBarVisible(stack); + return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && CreateQOLConfigs.server().equipments.useAir.get()) || super.isBarVisible(stack); } @Override public int getBarWidth(ItemStack stack) { - return stack.getOrDefault(QOLDataComponents.USE_AIR,false) ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); + return CreateQOLConfigs.server().equipments.useAir.get() ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); } @Override public int getBarColor(ItemStack stack) { - return stack.getOrDefault(QOLDataComponents.USE_AIR,false) ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); + return CreateQOLConfigs.server().equipments.useAir.get() ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); } public static void mineBlock(BlockEvent.@NotNull BreakEvent event){ diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowsteel/ShadowSteelHoe.java b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowsteel/ShadowSteelHoe.java index 6cd3066..537b0d8 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowsteel/ShadowSteelHoe.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowsteel/ShadowSteelHoe.java @@ -70,9 +70,6 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.ploughing").getString()) .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.ploughing.get(), true, stack.getOrDefault(QOLDataComponents.PLOUGHING,false), false, true))); - components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.use_air").getString()) - .withStyle(ChatFormatting.GOLD) - .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.use_air.get(), true, stack.getOrDefault(QOLDataComponents.USE_AIR,false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } @@ -81,9 +78,6 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, public void addConfigurations(List> list, ItemStack stack) { list.add(Configuration.ofBool("Ploughing",stack.getOrDefault(QOLDataComponents.PLOUGHING,false),QOLDataComponents.PLOUGHING, List.of("Should plough dirt in a 3x3 square"),(e,oe)->CreateQOLConfigs.server().equipments.tools.ploughing.get())); - list.add(Configuration.ofBool("Use Air",stack.getOrDefault(QOLDataComponents.USE_AIR,false),QOLDataComponents.USE_AIR, - List.of("Define if air should be used (if available) from the backtank instead of the tool's durability."),(e,oe)->CreateQOLConfigs.server().equipments.tools.use_air.get())); - } @Override @@ -140,22 +134,22 @@ public InteractionResult useOn(UseOnContext ctx) { @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); + return CreateQOLConfigs.server().equipments.useAir.get() && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } @Override public boolean isBarVisible(ItemStack stack) { - return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && stack.getOrDefault(QOLDataComponents.USE_AIR,false)) || super.isBarVisible(stack); + return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && CreateQOLConfigs.server().equipments.useAir.get()) || super.isBarVisible(stack); } @Override public int getBarWidth(ItemStack stack) { - return stack.getOrDefault(QOLDataComponents.USE_AIR,false) ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); + return CreateQOLConfigs.server().equipments.useAir.get() ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); } @Override public int getBarColor(ItemStack stack) { - return stack.getOrDefault(QOLDataComponents.USE_AIR,false) ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); + return CreateQOLConfigs.server().equipments.useAir.get() ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); } @Override diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowsteel/ShadowSteelPickaxe.java b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowsteel/ShadowSteelPickaxe.java index 7a3cf0c..8f1ae68 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowsteel/ShadowSteelPickaxe.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowsteel/ShadowSteelPickaxe.java @@ -139,9 +139,6 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.digging").getString()) .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.digging.get(), true, stack.getOrDefault(QOLDataComponents.DIGGING, false), false, true))); - components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.use_air").getString()) - .withStyle(ChatFormatting.GOLD) - .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.use_air.get(), true, stack.getOrDefault(QOLDataComponents.USE_AIR, false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } @@ -149,29 +146,26 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, public void addConfigurations(List> list, ItemStack stack) { list.add(Configuration.ofBool("Digging", stack.getOrDefault(QOLDataComponents.DIGGING, false), QOLDataComponents.DIGGING, List.of("Activate the 3x3x3 digging when mining a block"), (e, oe) -> CreateQOLConfigs.server().equipments.tools.digging.get())); - list.add(Configuration.ofBool("Use Air", stack.getOrDefault(QOLDataComponents.USE_AIR, false), QOLDataComponents.USE_AIR, - List.of("Define if air should be used (if available) from the backtank instead of the tool's durability."), (e, oe) -> CreateQOLConfigs.server().equipments.tools.use_air.get())); - } @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); + return CreateQOLConfigs.server().equipments.useAir.get() && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } @Override public boolean isBarVisible(ItemStack stack) { - return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && stack.getOrDefault(QOLDataComponents.USE_AIR, false)) || super.isBarVisible(stack); + return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && CreateQOLConfigs.server().equipments.useAir.get()) || super.isBarVisible(stack); } @Override public int getBarWidth(ItemStack stack) { - return stack.getOrDefault(QOLDataComponents.USE_AIR, false) ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); + return CreateQOLConfigs.server().equipments.useAir.get() ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); } @Override public int getBarColor(ItemStack stack) { - return stack.getOrDefault(QOLDataComponents.USE_AIR, false) ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); + return CreateQOLConfigs.server().equipments.useAir.get() ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); } @Override diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowsteel/ShadowSteelShovel.java b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowsteel/ShadowSteelShovel.java index 6298d58..8388d3a 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowsteel/ShadowSteelShovel.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowsteel/ShadowSteelShovel.java @@ -74,9 +74,6 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.digging").getString()) .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.digging.get(), true, stack.getOrDefault(QOLDataComponents.DIGGING,false), false, true))); - components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.use_air").getString()) - .withStyle(ChatFormatting.GOLD) - .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.use_air.get(), true, stack.getOrDefault(QOLDataComponents.USE_AIR,false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } @@ -85,9 +82,6 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, public void addConfigurations(List> list, ItemStack stack) { list.add(Configuration.ofBool("Digging", stack.getOrDefault(QOLDataComponents.DIGGING, false), QOLDataComponents.DIGGING, List.of("Activate the 3x3x3 digging when mining a block"), (e, oe) -> CreateQOLConfigs.server().equipments.tools.digging.get())); - list.add(Configuration.ofBool("Use Air", stack.getOrDefault(QOLDataComponents.USE_AIR, false), QOLDataComponents.USE_AIR, - List.of("Define if air should be used (if available) from the backtank instead of the tool's durability."), (e, oe) -> CreateQOLConfigs.server().equipments.tools.use_air.get())); - } @Override @@ -111,22 +105,22 @@ public static void toggleAbility(ItemStack stack, Player p) { @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); + return CreateQOLConfigs.server().equipments.useAir.get() && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } @Override public boolean isBarVisible(ItemStack stack) { - return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && stack.getOrDefault(QOLDataComponents.USE_AIR,false)) || super.isBarVisible(stack); + return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && CreateQOLConfigs.server().equipments.useAir.get()) || super.isBarVisible(stack); } @Override public int getBarWidth(ItemStack stack) { - return stack.getOrDefault(QOLDataComponents.USE_AIR,false) ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); + return CreateQOLConfigs.server().equipments.useAir.get() ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); } @Override public int getBarColor(ItemStack stack) { - return stack.getOrDefault(QOLDataComponents.USE_AIR,false) ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); + return CreateQOLConfigs.server().equipments.useAir.get() ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); } public static void mineBlock(BlockEvent.BreakEvent event) { diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowsteel/ShadowSteelSword.java b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowsteel/ShadowSteelSword.java index 032a1b0..7d4246b 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowsteel/ShadowSteelSword.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/tools/shadowsteel/ShadowSteelSword.java @@ -136,37 +136,27 @@ public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, .withStyle(ChatFormatting.GOLD) .append(QOLConfigurableItem.cooldownState(CreateQOLConfigs.server().equipments.tools.swordsAbilities.get(), true, (int) Math.ceil(Minecraft.getInstance().player.getCooldowns().getCooldownPercent(this,0) * CreateQOLConfigs.server().equipments.tools.swordsCooldowns.get())))); - components.add(Component.translatable("createqol.ability.tool.toggle_message", Component.translatable("createqol.ability.tool.use_air").getString()) - .withStyle(ChatFormatting.GOLD) - .append(QOLConfigurableItem.chooseState(CreateQOLConfigs.server().equipments.tools.use_air.get(), true, stack.getOrDefault(QOLDataComponents.USE_AIR, false), false, true))); super.appendHoverText(stack, p_41422_, components, p_41424_); } - @Override - public void addConfigurations(List> list, ItemStack stack) { - list.add(Configuration.ofBool("Use Air", stack.getOrDefault(QOLDataComponents.USE_AIR, false), QOLDataComponents.USE_AIR, - List.of("Define if air should be used (if available) from the backtank instead of the tool's durability."), (e, oe) -> CreateQOLConfigs.server().equipments.tools.use_air.get())); - - } - @Override public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { - return stack.getOrDefault(QOLDataComponents.USE_AIR, false) && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); + return CreateQOLConfigs.server().equipments.useAir.get() && BacktankUtil.canAbsorbDamage(entity, getMaxDamage(stack)) ? 0 : super.damageItem(stack, amount, entity, onBroken); } @Override public boolean isBarVisible(ItemStack stack) { - return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && stack.getOrDefault(QOLDataComponents.USE_AIR, false)) || super.isBarVisible(stack); + return (BacktankUtil.isBarVisible(stack, getMaxDamage(stack)) && CreateQOLConfigs.server().equipments.useAir.get()) || super.isBarVisible(stack); } @Override public int getBarWidth(ItemStack stack) { - return stack.getOrDefault(QOLDataComponents.USE_AIR, false) ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); + return CreateQOLConfigs.server().equipments.useAir.get() ? BacktankUtil.getBarWidth(stack, getMaxDamage(stack)) : super.getBarWidth(stack); } @Override public int getBarColor(ItemStack stack) { - return stack.getOrDefault(QOLDataComponents.USE_AIR, false) ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); + return CreateQOLConfigs.server().equipments.useAir.get() ? BacktankUtil.getBarColor(stack, getMaxDamage(stack)) : super.getBarColor(stack); } @Override diff --git a/src/main/resources/assets/createqol/lang/en_us.json b/src/main/resources/assets/createqol/lang/en_us.json index ecd7bbe..c259d59 100644 --- a/src/main/resources/assets/createqol/lang/en_us.json +++ b/src/main/resources/assets/createqol/lang/en_us.json @@ -240,6 +240,8 @@ "createqol.armor.ability.dash_disabled": "Dashing is disabled on this server !", "createqol.armor.ability.dash_reloading": "Dashing is reloading, please wait!", + "createqol.ability.use_air": "Use Air", + "createqol.ability.armor.disabled": "%s is disabled by the config", "createqol.ability.armor.unavailable": "%1$s can't be enabled while the %2$s is enabled", "createqol.ability.armor.reloading": "%s is reloading, please wait!", @@ -265,7 +267,6 @@ "createqol.ability.tool.smelting": "Smelting", "createqol.ability.tool.tree_decapitation": "Tree Decapitation", "createqol.ability.tool.vein_mine": "Vein Mine", - "createqol.ability.tool.use_air": "Use Air", "createqol.ability.armor.air": "Air", "createqol.ability.armor.arms": "Arms", @@ -281,7 +282,6 @@ "createqol.ability.armor.propeller": "Propeller", "createqol.ability.armor.step_height": "Step Height", "createqol.ability.armor.void_walk": "Void Walk", - "createqol.ability.armor.use_air": "Use Air", "createqol.ability.state.disabled_by_config": "Disabled By Config", "createqol.ability.state.disabled": "Disabled", From 551d91e453cbd2f8f8643a5a4e18d83a35034f6e Mon Sep 17 00:00:00 2001 From: Gytube Date: Sat, 23 May 2026 23:48:06 +0200 Subject: [PATCH 7/8] Make air tooltip translatable Replace hard-coded English air tooltip in three chestplate classes with translatable keys and wrap result in parentheses for display. Updated files: RefinedRadianceChestplate, ShadowRadianceChestplate, ShadowSteelChestplate now use createqol.tooltip.use_air.powering or .breathing based on config. Added corresponding entries to en_us.json for the two new translation keys. --- .../items/armors/RefinedRadianceChestplate.java | 2 +- .../items/armors/ShadowRadianceChestplate.java | 2 +- .../createqualityoflife/items/armors/ShadowSteelChestplate.java | 2 +- src/main/resources/assets/createqol/lang/en_us.json | 2 ++ 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/armors/RefinedRadianceChestplate.java b/src/main/java/fr/iglee42/createqualityoflife/items/armors/RefinedRadianceChestplate.java index ff3dd47..11515ad 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/armors/RefinedRadianceChestplate.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/armors/RefinedRadianceChestplate.java @@ -99,7 +99,7 @@ public void addConfigurations(List> list, ItemStack stack) { @Override public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, List components, TooltipFlag p_41424_) { - String airTooltip = CreateQOLConfigs.server().equipments.useAir.get() ? " (Powering equipment with air)" : " (Underwater breathing only)"; + String airTooltip = " (" + Component.translatable(CreateQOLConfigs.server().equipments.useAir.get() ? "createqol.tooltip.use_air.powering" : "createqol.tooltip.use_air.breathing").getString() + ")"; if (!stack.getOrDefault(QOLDataComponents.ITEM_TOOLTIPS, ItemTooltips.DEFAULT).isEnable(ItemTooltips.Tooltip.OPTIONS)) return; components.add(Component.translatable("createqol.ability.armor.toggle_message", Component.translatable("createqol.ability.armor.air").getString()) .withStyle(ChatFormatting.GOLD) diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowRadianceChestplate.java b/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowRadianceChestplate.java index 4c61cc7..5c9dd7b 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowRadianceChestplate.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowRadianceChestplate.java @@ -190,7 +190,7 @@ private void pushVertically(Player p,double y){ @Override public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, List components, TooltipFlag p_41424_) { - String airTooltip = CreateQOLConfigs.server().equipments.useAir.get() ? " (Powering equipment with air)" : " (Underwater breathing only)"; + String airTooltip = " (" + Component.translatable(CreateQOLConfigs.server().equipments.useAir.get() ? "createqol.tooltip.use_air.powering" : "createqol.tooltip.use_air.breathing").getString() + ")"; if (!stack.getOrDefault(QOLDataComponents.ITEM_TOOLTIPS, ItemTooltips.DEFAULT).isEnable(ItemTooltips.Tooltip.OPTIONS)) return; components.add(Component.translatable("createqol.ability.armor.toggle_message", Component.translatable("createqol.ability.armor.air").getString()) .withStyle(ChatFormatting.GOLD) diff --git a/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowSteelChestplate.java b/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowSteelChestplate.java index 5637aca..98d07b6 100644 --- a/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowSteelChestplate.java +++ b/src/main/java/fr/iglee42/createqualityoflife/items/armors/ShadowSteelChestplate.java @@ -60,7 +60,7 @@ public void inventoryTick(ItemStack p_41404_, Level p_41405_, Entity p_41406_, i @Override public void appendHoverText(ItemStack stack, @Nullable TooltipContext p_41422_, List components, TooltipFlag p_41424_) { - String airTooltip = CreateQOLConfigs.server().equipments.useAir.get() ? " (Powering equipment with air)" : " (Underwater breathing only)"; + String airTooltip = " (" + Component.translatable(CreateQOLConfigs.server().equipments.useAir.get() ? "createqol.tooltip.use_air.powering" : "createqol.tooltip.use_air.breathing").getString() + ")"; if (!stack.getOrDefault(QOLDataComponents.ITEM_TOOLTIPS, ItemTooltips.DEFAULT).isEnable(ItemTooltips.Tooltip.OPTIONS)) return; components.add(Component.translatable("createqol.ability.armor.toggle_message", Component.translatable("createqol.ability.armor.air").getString()) .withStyle(ChatFormatting.GOLD) diff --git a/src/main/resources/assets/createqol/lang/en_us.json b/src/main/resources/assets/createqol/lang/en_us.json index c259d59..4e1504e 100644 --- a/src/main/resources/assets/createqol/lang/en_us.json +++ b/src/main/resources/assets/createqol/lang/en_us.json @@ -241,6 +241,8 @@ "createqol.armor.ability.dash_reloading": "Dashing is reloading, please wait!", "createqol.ability.use_air": "Use Air", + "createqol.tooltip.use_air.powering": "Powering equipment with air", + "createqol.tooltip.use_air.breathing": "Underwater breathing only", "createqol.ability.armor.disabled": "%s is disabled by the config", "createqol.ability.armor.unavailable": "%1$s can't be enabled while the %2$s is enabled", From 8939aef4c38ab1c44419de8eaef709d2b5402c9f Mon Sep 17 00:00:00 2001 From: Gytube Date: Sun, 24 May 2026 00:04:20 +0200 Subject: [PATCH 8/8] Add use_air localization for JA and RU Add createqol.ability.use_air and tooltip entries (use_air.powering, use_air.breathing) to Japanese and Russian language files to provide UI text for air-powered equipment and underwater breathing. --- src/main/resources/assets/createqol/lang/ja_jp.json | 4 ++++ src/main/resources/assets/createqol/lang/ru_ru.json | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/main/resources/assets/createqol/lang/ja_jp.json b/src/main/resources/assets/createqol/lang/ja_jp.json index 023f34c..8374d0c 100644 --- a/src/main/resources/assets/createqol/lang/ja_jp.json +++ b/src/main/resources/assets/createqol/lang/ja_jp.json @@ -230,6 +230,10 @@ "createqol.armor.ability.dash_disabled": "このサーバーではダッシュが無効化されています!", "createqol.armor.ability.dash_reloading": "ダッシュはリロード中です。お待ちください!", + "createqol.ability.use_air": "空気を使用", + "createqol.tooltip.use_air.powering": "空気で機器を電源供給", + "createqol.tooltip.use_air.breathing": "水中呼吸のみ", + "createqol.ability.armor.disabled": "%sは設定で無効化されています", "createqol.ability.armor.unavailable": "%1$sは%2$sが有効な間は有効化できません", "createqol.ability.armor.reloading": "%sはリロード中です。お待ちください!", diff --git a/src/main/resources/assets/createqol/lang/ru_ru.json b/src/main/resources/assets/createqol/lang/ru_ru.json index 409f7dc..9a504bb 100644 --- a/src/main/resources/assets/createqol/lang/ru_ru.json +++ b/src/main/resources/assets/createqol/lang/ru_ru.json @@ -232,6 +232,10 @@ "createqol.ability.armor.dash_disabled": "Функция рывка запрещена настройками мира/сервера", "createqol.ability.armor.dash_reloading": "Рывок перезаряжается...", + "createqol.ability.use_air": "Используйте воздух", + "createqol.tooltip.use_air.powering": "Питание оборудования с помощью воздуха", + "createqol.tooltip.use_air.breathing": "Подводное дыхание только", + "createqol.ability.armor.disabled": "%s запрещён настройками мира/сервера", "createqol.ability.armor.unavailable": "%1$s не может быть включён, пока активен %2$s", "createqol.ability.armor.reloading": "%s перезаряжается...",