Skip to content

Commit

Permalink
Rename interact modifier hook to keybind interact modifier hook
Browse files Browse the repository at this point in the history
Will be making a new interact hook for general tool use shortly
  • Loading branch information
KnightMiner committed Dec 19, 2022
1 parent 5c01971 commit 271d14b
Show file tree
Hide file tree
Showing 9 changed files with 22 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
import slimeknights.tconstruct.library.modifiers.hook.ConditionalStatModifierHook;
import slimeknights.tconstruct.library.modifiers.hook.ElytraFlightModifierHook;
import slimeknights.tconstruct.library.modifiers.hook.HarvestEnchantmentsModifierHook;
import slimeknights.tconstruct.library.modifiers.hook.InteractModifierHook;
import slimeknights.tconstruct.library.modifiers.hook.KeybindInteractModifierHook;
import slimeknights.tconstruct.library.modifiers.hook.LootingModifierHook;
import slimeknights.tconstruct.library.modifiers.hook.PlantHarvestModifierHook;
import slimeknights.tconstruct.library.modifiers.hook.ProjectileHitModifierHook;
Expand Down Expand Up @@ -99,7 +99,7 @@ private TinkerHooks() {}
/* Interaction */

/** Hook for when the player interacts with an armor slot. Currently only impleented for helmets and leggings */
public static final ModifierHook<InteractModifierHook> ARMOR_INTERACT = register("armor_interact", InteractModifierHook.class, InteractModifierHook.MERGER, new InteractModifierHook() {
public static final ModifierHook<KeybindInteractModifierHook> ARMOR_INTERACT = register("armor_interact", KeybindInteractModifierHook.class, KeybindInteractModifierHook.MERGER, new KeybindInteractModifierHook() {
@Override
public boolean startInteract(IToolStackView tool, ModifierEntry modifier, Player player, EquipmentSlot slot, TooltipKey keyModifier) {
IArmorInteractModifier interact = modifier.getModifier().getModule(IArmorInteractModifier.class);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@
import slimeknights.tconstruct.library.modifiers.Modifier;
import slimeknights.tconstruct.library.modifiers.ModifierEntry;
import slimeknights.tconstruct.library.modifiers.TinkerHooks;
import slimeknights.tconstruct.library.modifiers.hook.InteractModifierHook;
import slimeknights.tconstruct.library.modifiers.hook.KeybindInteractModifierHook;
import slimeknights.tconstruct.library.modifiers.impl.InventoryModifier;
import slimeknights.tconstruct.library.modifiers.util.ModifierHookMap.Builder;
import slimeknights.tconstruct.library.tools.capability.ToolInventoryCapability;
import slimeknights.tconstruct.library.tools.nbt.IToolStackView;

public class InventoryMenuModifier extends InventoryModifier implements InteractModifierHook {
public class InventoryMenuModifier extends InventoryModifier implements KeybindInteractModifierHook {
/** Loader instance */
public static final GenericIntSerializer<InventoryMenuModifier> LOADER = new GenericIntSerializer<>("size", InventoryMenuModifier::new, t -> t.slotsPerLevel);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@
* Hooks for interacting with a tool based on a keybind.
* If you wish to use this hook for another slot, please discuss it with us, so we can implement a solution that will benefit all addons rather than having dupliate keybinds.
*/
public interface InteractModifierHook {
public interface KeybindInteractModifierHook {
/** Empty implementation */
InteractModifierHook EMPTY = new InteractModifierHook() {};
KeybindInteractModifierHook EMPTY = new KeybindInteractModifierHook() {};

/** Merger that uses the first on start interact, but runs all on stop */
Function<Collection<InteractModifierHook>, InteractModifierHook> MERGER = InteractMerger::new;
Function<Collection<KeybindInteractModifierHook>,KeybindInteractModifierHook> MERGER = InteractMerger::new;


/**
Expand All @@ -44,10 +44,10 @@ default void stopInteract(IToolStackView tool, ModifierEntry modifier, Player pl


/** Merger that uses the first on start interact, but runs all on stop */
record InteractMerger(Collection<InteractModifierHook> modules) implements InteractModifierHook {
record InteractMerger(Collection<KeybindInteractModifierHook> modules) implements KeybindInteractModifierHook {
@Override
public boolean startInteract(IToolStackView tool, ModifierEntry modifier, Player player, EquipmentSlot slot, TooltipKey keyModifier) {
for (InteractModifierHook module : modules) {
for (KeybindInteractModifierHook module : modules) {
if (module.startInteract(tool, modifier, player, slot, keyModifier)) {
return true;
}
Expand All @@ -57,7 +57,7 @@ public boolean startInteract(IToolStackView tool, ModifierEntry modifier, Player

@Override
public void stopInteract(IToolStackView tool, ModifierEntry modifier, Player player, EquipmentSlot slot) {
for (InteractModifierHook module : modules) {
for (KeybindInteractModifierHook module : modules) {
module.stopInteract(tool, modifier, player, slot);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
import net.minecraft.world.entity.EquipmentSlot;
import net.minecraft.world.entity.player.Player;
import slimeknights.mantle.client.TooltipKey;
import slimeknights.tconstruct.library.modifiers.hook.InteractModifierHook;
import slimeknights.tconstruct.library.modifiers.hook.KeybindInteractModifierHook;
import slimeknights.tconstruct.library.tools.nbt.IToolStackView;

/**
* Hooks for interacting on a helmet, left generic for addonss to use for other armor pieces
* @deprecated use {@link InteractModifierHook}. This interface extends that one to make migration easier on hold hooks
* @deprecated use {@link KeybindInteractModifierHook}. This interface extends that one to make migration easier on hold hooks
*/
@SuppressWarnings("DeprecatedIsStillUsed")
@Deprecated
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
import slimeknights.tconstruct.TConstruct;
import slimeknights.tconstruct.library.modifiers.ModifierEntry;
import slimeknights.tconstruct.library.modifiers.TinkerHooks;
import slimeknights.tconstruct.library.modifiers.hook.InteractModifierHook;
import slimeknights.tconstruct.library.modifiers.hook.KeybindInteractModifierHook;
import slimeknights.tconstruct.library.modifiers.impl.TankModifier;
import slimeknights.tconstruct.library.modifiers.spilling.SpillingFluid;
import slimeknights.tconstruct.library.modifiers.spilling.SpillingFluidManager;
Expand All @@ -29,7 +29,7 @@
import slimeknights.tconstruct.shared.particle.FluidParticleData;

/** Modifier to handle spilling recipes on helmets */
public class SlurpingModifier extends TankModifier implements InteractModifierHook {
public class SlurpingModifier extends TankModifier implements KeybindInteractModifierHook {
private static final float DEGREE_TO_RADIANS = (float)Math.PI / 180F;
private static final TinkerDataKey<SlurpingInfo> SLURP_FINISH_TIME = TConstruct.createKey("slurping_finish");
public SlurpingModifier() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,15 @@
import slimeknights.tconstruct.TConstruct;
import slimeknights.tconstruct.library.modifiers.ModifierEntry;
import slimeknights.tconstruct.library.modifiers.TinkerHooks;
import slimeknights.tconstruct.library.modifiers.hook.InteractModifierHook;
import slimeknights.tconstruct.library.modifiers.hook.KeybindInteractModifierHook;
import slimeknights.tconstruct.library.modifiers.impl.NoLevelsModifier;
import slimeknights.tconstruct.library.modifiers.util.ModifierHookMap.Builder;
import slimeknights.tconstruct.library.tools.capability.TinkerDataCapability;
import slimeknights.tconstruct.library.tools.capability.TinkerDataKeys;
import slimeknights.tconstruct.library.tools.context.EquipmentChangeContext;
import slimeknights.tconstruct.library.tools.nbt.IToolStackView;

public class ZoomModifier extends NoLevelsModifier implements InteractModifierHook {
public class ZoomModifier extends NoLevelsModifier implements KeybindInteractModifierHook {
private static final ResourceLocation ZOOM = TConstruct.getResource("zoom");

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ public void afterHarvest(IToolStackView tool, ModifierEntry modifier, UseOnConte
if (context.getClickedPos().equals(pos)) {
LivingEntity living = context.getPlayer();
if (living != null && tryTeleport(living, pos.getX() + 0.5f, pos.getY(), pos.getZ() + 0.5f)) {
ToolDamageUtil.damageAnimated(tool, 2, living);
ToolDamageUtil.damageAnimated(tool, 2, living, context.getHand());
}
}
}
Expand Down Expand Up @@ -157,7 +157,7 @@ public boolean onProjectileHitBlock(ModifierNBT modifiers, NamespacedNBT persist
@Override
public void onArrowLaunch(IToolStackView tool, ModifierEntry modifier, LivingEntity shooter, AbstractArrow arrow, NamespacedNBT persistentData) {
// damage on shoot as we won't have tool context once the arrow lands
ToolDamageUtil.damageAnimated(tool, 10, shooter);
ToolDamageUtil.damageAnimated(tool, 10, shooter, shooter.getUsedItemHand());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,13 @@
import slimeknights.tconstruct.common.TinkerTags;
import slimeknights.tconstruct.library.modifiers.ModifierEntry;
import slimeknights.tconstruct.library.modifiers.TinkerHooks;
import slimeknights.tconstruct.library.modifiers.hook.InteractModifierHook;
import slimeknights.tconstruct.library.modifiers.hook.KeybindInteractModifierHook;
import slimeknights.tconstruct.library.modifiers.impl.NoLevelsModifier;
import slimeknights.tconstruct.library.modifiers.util.ModifierHookMap.Builder;
import slimeknights.tconstruct.library.tools.nbt.IToolStackView;
import slimeknights.tconstruct.tools.TinkerModifiers;

public class FirebreathModifier extends NoLevelsModifier implements InteractModifierHook {
public class FirebreathModifier extends NoLevelsModifier implements KeybindInteractModifierHook {
@Override
public boolean startInteract(IToolStackView tool, ModifierEntry modifier, Player player, EquipmentSlot slot, TooltipKey keyModifier) {
// stopped by water and by cooldown
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,15 @@
import slimeknights.tconstruct.TConstruct;
import slimeknights.tconstruct.library.modifiers.ModifierEntry;
import slimeknights.tconstruct.library.modifiers.TinkerHooks;
import slimeknights.tconstruct.library.modifiers.hook.InteractModifierHook;
import slimeknights.tconstruct.library.modifiers.hook.KeybindInteractModifierHook;
import slimeknights.tconstruct.library.modifiers.impl.NoLevelsModifier;
import slimeknights.tconstruct.library.modifiers.util.ModifierHookMap.Builder;
import slimeknights.tconstruct.library.tools.context.EquipmentChangeContext;
import slimeknights.tconstruct.library.tools.nbt.IToolStackView;
import slimeknights.tconstruct.tools.TinkerModifiers;
import slimeknights.tconstruct.tools.modifiers.effect.NoMilkEffect;

public class SelfDestructiveModifier extends NoLevelsModifier implements InteractModifierHook {
public class SelfDestructiveModifier extends NoLevelsModifier implements KeybindInteractModifierHook {
/** Self damage source */
private static final DamageSource SELF_DESTRUCT = (new DamageSource(TConstruct.prefix("self_destruct"))).bypassArmor().setExplosion();

Expand Down

0 comments on commit 271d14b

Please sign in to comment.