Files
CustomNPC-Plus/src/main/java/noppes/npcs/scripted/ScriptTelegraphInstance.java
T

122 lines
4.2 KiB
Java
Raw Normal View History

2026-01-24 02:35:26 -05:00
package noppes.npcs.scripted;
import kamkeel.npcs.controllers.TelegraphController;
import kamkeel.npcs.controllers.data.telegraph.TelegraphInstance;
import net.minecraft.entity.Entity;
import noppes.npcs.api.ITelegraphInstance;
import noppes.npcs.api.entity.IEntity;
/**
* Script wrapper for TelegraphInstance.
* Implements ITelegraphInstance API interface.
*/
public class ScriptTelegraphInstance implements ITelegraphInstance {
private final TelegraphInstance instance;
public ScriptTelegraphInstance(TelegraphInstance instance) {
this.instance = instance;
}
/**
* Get the underlying TelegraphInstance object.
*/
public TelegraphInstance getMCInstance() {
return instance;
}
@Override
public String getInstanceId() {
return instance.getInstanceId();
}
// ═══════════════════════════════════════════════════════════════════════════
// POSITION
// ═══════════════════════════════════════════════════════════════════════════
@Override
public double getX() {
return instance.getX();
}
@Override
public double getY() {
return instance.getY();
}
@Override
public double getZ() {
return instance.getZ();
}
@Override
public float getYaw() {
return instance.getYaw();
}
@Override
public void setPosition(double x, double y, double z) {
instance.setX(x);
instance.setY(y);
instance.setZ(z);
}
// ═══════════════════════════════════════════════════════════════════════════
// ENTITY FOLLOWING
// ═══════════════════════════════════════════════════════════════════════════
@Override
public void followEntity(IEntity entity) {
if (entity == null || entity.getMCEntity() == null) return;
Entity mcEntity = (Entity) entity.getMCEntity();
instance.setEntityIdToFollow(mcEntity.getEntityId());
}
@Override
public void stopFollowing() {
instance.lockPosition();
}
@Override
public boolean isFollowing() {
return instance.getEntityIdToFollow() >= 0;
}
// ═══════════════════════════════════════════════════════════════════════════
// TIMING
// ═══════════════════════════════════════════════════════════════════════════
@Override
public int getRemainingTicks() {
return instance.getRemainingTicks();
}
@Override
public int getTotalTicks() {
return instance.getTotalTicks();
}
@Override
public float getProgress() {
return instance.getProgress();
}
@Override
public boolean isWarning() {
return instance.isWarning();
}
// ═══════════════════════════════════════════════════════════════════════════
// CONTROL
// ═══════════════════════════════════════════════════════════════════════════
@Override
public void remove() {
TelegraphController.Instance.remove(instance);
}
@Override
public void lockPosition() {
instance.lockPosition();
}
}