57 lines
2.3 KiB
Java
57 lines
2.3 KiB
Java
package com.thebrokenrail.scriptcraft.bridge;
|
|
|
|
import com.thebrokenrail.scriptcraft.util.Util;
|
|
import net.minecraft.entity.Entity;
|
|
import net.minecraft.entity.damage.DamageSource;
|
|
import net.minecraft.nbt.CompoundTag;
|
|
import net.minecraft.util.math.Vec3d;
|
|
import net.minecraft.util.registry.Registry;
|
|
|
|
import java.util.Objects;
|
|
|
|
class EntityBridges {
|
|
static void register() {
|
|
Bridges.addBridge("Entity.getEntityWorld", args -> ((Entity) args[0]).getEntityWorld());
|
|
Bridges.addBridge("Entity.getID", args -> Registry.ENTITY_TYPE.getId(((Entity) args[0]).getType()).toString());
|
|
|
|
Bridges.addBridge("Entity.getName", args -> ((Entity) args[0]).getName().asString());
|
|
Bridges.addBridge("Entity.getDisplayName", args -> ((Entity) args[0]).getDisplayName().asString());
|
|
Bridges.addBridge("Entity.getCustomName", args -> ((Entity) args[0]).hasCustomName() ? Objects.requireNonNull(((Entity) args[0]).getCustomName()).asString() : null);
|
|
|
|
Bridges.addBridge("Entity.kill", args -> {
|
|
((Entity) args[0]).kill();
|
|
return null;
|
|
});
|
|
Bridges.addBridge("Entity.remove", args -> {
|
|
((Entity) args[0]).remove();
|
|
return null;
|
|
});
|
|
Bridges.addBridge("Entity.damage", args -> ((Entity) args[0]).damage((DamageSource) args[1], (float) args[2]));
|
|
|
|
Bridges.addBridge("Entity.setFireTicks", args -> {
|
|
((Entity) args[0]).setFireTicks((int) args[1]);
|
|
return null;
|
|
});
|
|
Bridges.addBridge("Entity.getFireTicks", args -> ((Entity) args[0]).getFireTicks());
|
|
|
|
Bridges.addBridge("Entity.getPosition", args -> {
|
|
Vec3d pos = ((Entity) args[0]).getPos();
|
|
Double[] out = new Double[3];
|
|
out[0] = pos.getX();
|
|
out[1] = pos.getY();
|
|
out[2] = pos.getZ();
|
|
return out;
|
|
});
|
|
Bridges.addBridge("Entity.setPosition", args -> {
|
|
((Entity) args[0]).updatePosition(Util.toDouble(args[1], 0), Util.toDouble(args[2], 0), Util.toDouble(args[3], 0));
|
|
return null;
|
|
});
|
|
|
|
Bridges.addBridge("Entity.toTag", args -> ((Entity) args[0]).toTag(new CompoundTag()));
|
|
Bridges.addBridge("Entity.fromTag", args -> {
|
|
((Entity) args[0]).fromTag((CompoundTag) args[1]);
|
|
return null;
|
|
});
|
|
}
|
|
}
|