Strip all Phase references, TODO/FUTURE roadmap notes, and internal planning comments from the codebase. Run Prettier for consistent formatting across all Java files.
58 lines
1.4 KiB
Java
58 lines
1.4 KiB
Java
package com.tiedup.remake.tasks;
|
|
|
|
import com.tiedup.remake.state.IBondageState;
|
|
import net.minecraft.world.entity.LivingEntity;
|
|
import net.minecraft.world.item.ItemStack;
|
|
import net.minecraft.world.level.Level;
|
|
|
|
/**
|
|
*
|
|
* Based on original TyingTask from 1.12.2
|
|
*
|
|
* Extends TimedInteractTask with item tracking:
|
|
* - Holds a reference to the bind/gag item being applied
|
|
* - The item will be consumed when tying completes successfully
|
|
*/
|
|
public abstract class TyingTask extends TimedInteractTask {
|
|
|
|
protected ItemStack bind; // The bind/gag item being applied
|
|
|
|
/**
|
|
* Create a new tying task.
|
|
*
|
|
* @param bind The bind/gag item to apply
|
|
* @param targetState The target's IBondageState state
|
|
* @param targetEntity The target entity
|
|
* @param seconds Total duration in seconds
|
|
* @param level The world
|
|
*/
|
|
public TyingTask(
|
|
ItemStack bind,
|
|
IBondageState targetState,
|
|
LivingEntity targetEntity,
|
|
int seconds,
|
|
Level level
|
|
) {
|
|
super(targetState, targetEntity, seconds, level);
|
|
this.bind = bind;
|
|
}
|
|
|
|
/**
|
|
* Get the bind/gag item being applied.
|
|
*
|
|
* @return The item stack
|
|
*/
|
|
public ItemStack getBind() {
|
|
return bind;
|
|
}
|
|
|
|
/**
|
|
* Set the bind/gag item.
|
|
*
|
|
* @param bind The item stack
|
|
*/
|
|
public void setBind(ItemStack bind) {
|
|
this.bind = bind;
|
|
}
|
|
}
|