Skip to content

Commit 64cde0e

Browse files
committed
Adjust Terra Shatterer activation rules again
- off-hand items get priority for right-click interactions, unless sneaking and not aiming at any blocks - without off-hand item, sneak right-click toggles active state if above rank D - if at rank D or not sneaking, apply manasteel pickaxe logic for torch placement
1 parent e0bcf00 commit 64cde0e

File tree

3 files changed

+32
-12
lines changed

3 files changed

+32
-12
lines changed

Xplat/src/main/java/vazkii/botania/common/item/equipment/tool/terrasteel/TerraShattererItem.java

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,13 @@
1717
import net.minecraft.sounds.SoundSource;
1818
import net.minecraft.tags.BlockTags;
1919
import net.minecraft.world.InteractionHand;
20+
import net.minecraft.world.InteractionResult;
2021
import net.minecraft.world.InteractionResultHolder;
2122
import net.minecraft.world.entity.Entity;
2223
import net.minecraft.world.entity.player.Player;
2324
import net.minecraft.world.inventory.tooltip.TooltipComponent;
2425
import net.minecraft.world.item.*;
26+
import net.minecraft.world.item.context.UseOnContext;
2527
import net.minecraft.world.level.ClipContext;
2628
import net.minecraft.world.level.Level;
2729
import net.minecraft.world.level.block.entity.BlockEntity;
@@ -99,22 +101,40 @@ public void appendHoverText(ItemStack stack, Level world, List<Component> stacks
99101
}
100102
}
101103

104+
@NotNull
102105
@Override
103-
public InteractionResultHolder<ItemStack> use(Level level, Player player, InteractionHand hand) {
106+
public InteractionResultHolder<ItemStack> use(@NotNull Level level, Player player, @NotNull InteractionHand hand) {
104107
ItemStack stack = player.getItemInHand(hand);
105-
if (player.isSecondaryUseActive() && hand == InteractionHand.MAIN_HAND) {
106-
int tier = getLevel(stack);
108+
int tier = getLevel(stack);
109+
if (!player.isSecondaryUseActive() || tier == 0) {
110+
return InteractionResultHolder.pass(stack);
111+
}
112+
if (hand == InteractionHand.MAIN_HAND && !player.getOffhandItem().isEmpty()) {
107113
BlockHitResult blockhitresult = getPlayerPOVHitResult(level, player, ClipContext.Fluid.NONE);
108114

109-
if (tier != 0 && blockhitresult.getType() != HitResult.Type.BLOCK) {
110-
setEnabled(stack, !isEnabled(stack));
111-
if (!level.isClientSide) {
112-
level.playSound(null, player.getX(), player.getY(), player.getZ(), BotaniaSounds.terraPickMode, SoundSource.PLAYERS, 1F, 1F);
113-
}
114-
return InteractionResultHolder.sidedSuccess(stack, level.isClientSide());
115+
if (blockhitresult.getType() == HitResult.Type.BLOCK) {
116+
return InteractionResultHolder.pass(stack);
115117
}
116118
}
117-
return InteractionResultHolder.pass(stack);
119+
setEnabled(stack, !isEnabled(stack));
120+
if (!level.isClientSide) {
121+
level.playSound(null, player.getX(), player.getY(), player.getZ(), BotaniaSounds.terraPickMode, SoundSource.PLAYERS, 1F, 1F);
122+
}
123+
return InteractionResultHolder.sidedSuccess(stack, level.isClientSide());
124+
}
125+
126+
@NotNull
127+
@Override
128+
public InteractionResult useOn(UseOnContext ctx) {
129+
Player player = ctx.getPlayer();
130+
if (player == null) {
131+
return super.useOn(ctx);
132+
} else if (ctx.getHand() == InteractionHand.MAIN_HAND && !player.getOffhandItem().isEmpty()) {
133+
return InteractionResult.PASS;
134+
}
135+
return !player.isSecondaryUseActive() || getLevel(ctx.getItemInHand()) == 0
136+
? super.useOn(ctx)
137+
: InteractionResult.PASS;
118138
}
119139

120140
@Override

Xplat/src/main/resources/assets/botania/lang/de_de.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2886,7 +2886,7 @@
28862886
"botania.tagline.terraPick": "Aufrüstbare Spitzhacke mit großem Wirkbereich",
28872887
"botania.page.terraPick0": "Der $(item)Terra-Trümmerer$(0) ist ein Werkzeug, das dank der Menge von $(l:basics/terrasteel)$(item)Terrastahl$(0)$(/l) in seinem Rezept absolut groteske $(thing)Mana$(0)beträge absorbieren kann.$(p)Er funktioniert wie eine $(l:mana/mana_tablet)$(item)Manatafel$(0)$(/l) wenn er in ein $(l:mana/pool)$(item)Manabecken$(0)$(/l) geworfen wird. Das absorbierte $(thing)Mana$(0) kann jedoch nicht wieder freigesetzt werden, so dass er nicht als Speichermedium brauchbar ist.",
28882888
"botania.page.terraPick1": "Aus der gespeicherten $(thing)Mana$(0)menge leitet sich sein $(thing)Rang$(0) ab. Der Rang-Fortschritt ist wie folgt: $(thing)D$(0), $(thing)C$(0), $(thing)B$(0), $(thing)A$(0), $(thing)S$(0) und $(thing)SS$(0), wobei $(thing)D$(0) der niedrigste Rang ist und $(thing)SS$(0) der höchste.$(p)Der benötigte $(thing)Mana$(0)betrag, um von einem Rang zum nächsten aufzusteigen erhöht sich exponenziell mit dem Rang. Um am Anfang von $(thing)D$(0) nach $(thing)C$(0) zu kommen, braucht der Trümmerer den Inhalt eines $(l:mana/pool)$(item)Verdünnten Manabeckens$(0)$(/l).",
2889-
"botania.page.terraPick2": "Um von Rang $(thing)C$(0) nach Rang $(thing)B$(0) aufzusteigen wird bereits ein volles $(l:mana/pool)$(item)Manabecken$(0)$(/l) benötigt, danach erhöhen sich die Mengen jeweils auf das Zehnfache pro Rang bis hin zu $(thing)SS$(0).$(p)Der Rang des Werkzeugs ändert nicht seine Geschwindigkeit. Stattdessen erhöht sich die Reichweite seiner $(thing)Aktivierten Fähigkeit$(0).$(p)Ein Schleich-Rechtsklick in der Luft schaltet die Fähigkeit des Trümmerers an oder aus.",
2889+
"botania.page.terraPick2": "Um von Rang $(thing)C$(0) nach Rang $(thing)B$(0) aufzusteigen wird bereits ein volles $(l:mana/pool)$(item)Manabecken$(0)$(/l) benötigt, danach erhöhen sich die Mengen jeweils auf das Zehnfache pro Rang bis hin zu $(thing)SS$(0).$(p)Der Rang des Werkzeugs ändert nicht seine Geschwindigkeit. Stattdessen erhöht sich die Reichweite seiner $(thing)Aktivierten Fähigkeit$(0).$(p)Ein Schleich-Rechtsklick schaltet die Fähigkeit des Trümmerers an oder aus.",
28902890
"botania.page.terraPick3": "Wenn die Fähigkeit des Trümmerers aktiviert ist, kann dieser viele Blöcke auf einer breiten Fläche abbauen. Auf Rang $(thing)C$(0) baut er eine schmale Säule von Blöcken ab. Auf Rang $(thing)B$(0) erweitert sich die Form zu einem Quadrat, dessen Fläche sich bei höheren Rängen vergrößert. Ein Rang-$(thing)D$(0)-Werkzeug hat die Fähigkeit nicht. Wenn der Trümmerer aktiv ist, konsumiert er sein internes $(thing)Mana$(0) wenn $(l)nicht$() gegraben wird.",
28912891
"botania.page.terraPick4": "Das Werkzeug nimmt für jeden einzelnen Block Schaden, so dass ein guter $(thing)Mana$(0)vorrat im Inventar des Nutzers ein Muss ist: Der Trümmerer braucht $(thing)Mana$(0) für die Haltbarkeit, wie $(l:tools/mana_gear)$(item)Manastahlwerkzeuge$(0)$(/l).$(p)Wenn der Trümmerer auf dem Boden liegt, wird er nicht despawnen.",
28922892
"botania.page.terraPick5": "WIR GRABEN IN DER DATENBANK WOW WOW",

Xplat/src/main/resources/assets/botania/lang/en_us.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2899,7 +2899,7 @@
28992899
"botania.tagline.terraPick": "Upgradable pickaxe with large area-of-effect powers",
29002900
"botania.page.terraPick0": "The $(item)Terra Shatterer$(0) is a tool that, thanks to the sheer quantity of $(l:basics/terrasteel)$(item)Terrasteel$(0)$(/l) in its recipe, can absorb absolutely ludicrous amounts of $(thing)Mana$(0).$(p)The tool functions very much like a $(l:mana/mana_tablet)$(item)Mana Tablet$(0)$(/l) when tossed on a $(l:mana/pool)$(item)Mana Pool$(0)$(/l). However, any $(thing)Mana$(0) absorbed can't be released again, so it's nonviable as a storage device.",
29012901
"botania.page.terraPick1": "The amount of $(thing)Mana$(0) stored in the tool establishes its $(thing)Rank$(0). Ranks progress as follows: $(thing)D$(0), $(thing)C$(0), $(thing)B$(0), $(thing)A$(0), $(thing)S$(0), and $(thing)SS$(0), with $(thing)D$(0) being the lowest rank and $(thing)SS$(0) the highest.$(p)The amount of $(thing)Mana$(0) required to advance from rank to rank increases exponentially as the rank does. To advance from $(thing)D$(0) to $(thing)C$(0), for starters, a Shatterer requires just a few seconds of exposure to a $(l:mana/pool)$(item)Mana Pool$(0)$(/l).",
2902-
"botania.page.terraPick2": "To advance from rank $(thing)C$(0) to rank $(thing)B$(0), a full $(l:mana/pool)$(item)Mana Pool$(0)$(/l) is required, and the cost increases tenfold for each rank thereafter up to $(thing)SS$(0).$(p)The rank of the tool does not change its speed; rather, it increases the range of its $(thing)Active Ability$(0).$(p)A sneak right-click in the air will toggle the Shatterer's Ability on or off.",
2902+
"botania.page.terraPick2": "To advance from rank $(thing)C$(0) to rank $(thing)B$(0), a full $(l:mana/pool)$(item)Mana Pool$(0)$(/l) is required, and the cost increases tenfold for each rank thereafter up to $(thing)SS$(0).$(p)The rank of the tool does not change its speed; rather, it increases the range of its $(thing)Active Ability$(0).$(p)A sneak right-click will toggle the Shatterer's Ability on or off.",
29032903
"botania.page.terraPick3": "When the Shatterer's Ability is active, it can break many blocks in a wide surface area at once. At rank $(thing)C$(0), it breaks a narrow column of blocks; at rank $(thing)B$(0), it increases to a square, and surface areas increase from there on upward. Note that the rank-$(thing)D$(0) tool does not have an ability. The Shatterer, when active, continuously consumes its internal $(thing)Mana$(0) when $(l)not$() mining.",
29042904
"botania.page.terraPick4": "The tool takes damage for every single block broken, so a decent supply of $(thing)Mana$(0) in the wielder's inventory is a must for higher ranks: the tool will use $(thing)Mana$(0) for durability (like $(l:tools/mana_gear)$(item)Manasteel Tools$(0)$(/l) do).$(p)Finally, a Shatterer on the ground will never despawn.",
29052905
"botania.page.terraPick5": "WE'RE MINING IN THE DATABASE WOW WOW",

0 commit comments

Comments
 (0)