Files
CustomNPC-Plus/src/main/java/noppes/npcs/scripted/ScriptTelegraph.java
T
2026-01-24 02:35:26 -05:00

211 lines
7.7 KiB
Java

package noppes.npcs.scripted;
import kamkeel.npcs.controllers.TelegraphController;
import kamkeel.npcs.controllers.data.telegraph.Telegraph;
import kamkeel.npcs.controllers.data.telegraph.TelegraphInstance;
import kamkeel.npcs.controllers.data.telegraph.TelegraphType;
import net.minecraft.entity.Entity;
import net.minecraft.world.World;
import noppes.npcs.api.ITelegraph;
import noppes.npcs.api.ITelegraphInstance;
import noppes.npcs.api.IWorld;
import noppes.npcs.api.entity.IEntity;
/**
* Script wrapper for Telegraph configuration.
* Implements ITelegraph API interface.
*/
public class ScriptTelegraph implements ITelegraph {
private final Telegraph telegraph;
public ScriptTelegraph(Telegraph telegraph) {
this.telegraph = telegraph;
}
/**
* Get the underlying Telegraph object.
*/
public Telegraph getMCTelegraph() {
return telegraph;
}
// ═══════════════════════════════════════════════════════════════════════════
// TYPE
// ═══════════════════════════════════════════════════════════════════════════
@Override
public String getType() {
return telegraph.getType().name();
}
@Override
public void setType(String type) {
if (type == null) return;
try {
telegraph.setType(TelegraphType.valueOf(type.toUpperCase()));
} catch (IllegalArgumentException ignored) {
}
}
// ═══════════════════════════════════════════════════════════════════════════
// SHAPE PARAMETERS
// ═══════════════════════════════════════════════════════════════════════════
@Override
public float getRadius() {
return telegraph.getRadius();
}
@Override
public void setRadius(float radius) {
telegraph.setRadius(radius);
}
@Override
public float getInnerRadius() {
return telegraph.getInnerRadius();
}
@Override
public void setInnerRadius(float innerRadius) {
telegraph.setInnerRadius(innerRadius);
}
@Override
public float getLength() {
return telegraph.getLength();
}
@Override
public void setLength(float length) {
telegraph.setLength(length);
}
@Override
public float getWidth() {
return telegraph.getWidth();
}
@Override
public void setWidth(float width) {
telegraph.setWidth(width);
}
@Override
public float getAngle() {
return telegraph.getAngle();
}
@Override
public void setAngle(float angle) {
telegraph.setAngle(angle);
}
// ═══════════════════════════════════════════════════════════════════════════
// TIMING
// ═══════════════════════════════════════════════════════════════════════════
@Override
public int getDuration() {
return telegraph.getDurationTicks();
}
@Override
public void setDuration(int ticks) {
telegraph.setDurationTicks(ticks);
}
// ═══════════════════════════════════════════════════════════════════════════
// COLORS
// ═══════════════════════════════════════════════════════════════════════════
@Override
public int getColor() {
return telegraph.getColor();
}
@Override
public void setColor(int argb) {
telegraph.setColor(argb);
}
@Override
public int getWarningColor() {
return telegraph.getWarningColor();
}
@Override
public void setWarningColor(int argb) {
telegraph.setWarningColor(argb);
}
@Override
public int getWarningStartTick() {
return telegraph.getWarningStartTick();
}
@Override
public void setWarningStartTick(int tick) {
telegraph.setWarningStartTick(tick);
}
// ═══════════════════════════════════════════════════════════════════════════
// ANIMATION
// ═══════════════════════════════════════════════════════════════════════════
@Override
public boolean isAnimated() {
return telegraph.isAnimated();
}
@Override
public void setAnimated(boolean animated) {
telegraph.setAnimated(animated);
}
// ═══════════════════════════════════════════════════════════════════════════
// POSITIONING
// ═══════════════════════════════════════════════════════════════════════════
@Override
public float getHeightOffset() {
return telegraph.getHeightOffset();
}
@Override
public void setHeightOffset(float offset) {
telegraph.setHeightOffset(offset);
}
// ═══════════════════════════════════════════════════════════════════════════
// SPAWN METHODS
// ═══════════════════════════════════════════════════════════════════════════
@Override
public ITelegraphInstance spawn(IWorld world, double x, double y, double z) {
return spawn(world, x, y, z, 0);
}
@Override
public ITelegraphInstance spawn(IWorld world, double x, double y, double z, float yaw) {
if (world == null || world.getMCWorld() == null) return null;
World mcWorld = (World) world.getMCWorld();
TelegraphInstance instance = TelegraphController.Instance.spawn(telegraph, mcWorld, x, y, z, yaw);
return new ScriptTelegraphInstance(instance);
}
@Override
public ITelegraphInstance spawn(IEntity entity) {
return spawn(entity, 0);
}
@Override
public ITelegraphInstance spawn(IEntity entity, float yaw) {
if (entity == null || entity.getMCEntity() == null) return null;
Entity mcEntity = (Entity) entity.getMCEntity();
TelegraphInstance instance = TelegraphController.Instance.spawn(telegraph, mcEntity, yaw);
return new ScriptTelegraphInstance(instance);
}
}