Feat: Entity.getAABB/isSleeping/playAnimation
This commit is contained in:
@@ -17,6 +17,7 @@ import cn.nukkit.item.Item;
|
||||
import cn.nukkit.level.Level;
|
||||
import cn.nukkit.level.Location;
|
||||
import cn.nukkit.level.Position;
|
||||
import cn.nukkit.math.AxisAlignedBB;
|
||||
import cn.nukkit.math.BlockFace;
|
||||
import cn.nukkit.math.Vector3;
|
||||
import cn.nukkit.nbt.NBTIO;
|
||||
@@ -152,6 +153,22 @@ public class EntityMethod {
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean isEntitySleeping(long entityUid) {
|
||||
return validateThen(entityUid, entity -> entity instanceof Player player && player.isSleeping(), false);
|
||||
}
|
||||
|
||||
public static void getEntityAABB(long entityUid, float[] aabb) {
|
||||
validateThen(entityUid, entity -> {
|
||||
final AxisAlignedBB box = entity.getBoundingBox();
|
||||
aabb[0] = (float) box.getMinX();
|
||||
aabb[1] = (float) box.getMinY();
|
||||
aabb[2] = (float) box.getMinZ();
|
||||
aabb[3] = (float) box.getMaxX();
|
||||
aabb[4] = (float) box.getMaxY();
|
||||
aabb[5] = (float) box.getMaxZ();
|
||||
});
|
||||
}
|
||||
|
||||
public static int getEntityDimension(long entityUid) {
|
||||
return validateThen(entityUid, entity -> FakeDimensions.getFakeIdForLevel(entity.getLevel()), -1);
|
||||
}
|
||||
|
||||
@@ -1092,4 +1092,16 @@ public class NativeAPI {
|
||||
public static void setChunkStateChangeCallbackEnabled(int state, boolean b) {
|
||||
EventListener.setChunkStateChangedCallbackEnabled(state, b);
|
||||
}
|
||||
|
||||
public static boolean isEntitySleeping(long entity) {
|
||||
return EntityMethod.isEntitySleeping(entity);
|
||||
}
|
||||
|
||||
public static void getEntityAABB(long entity, float[] aabb) {
|
||||
EntityMethod.getEntityAABB(entity, aabb);
|
||||
}
|
||||
|
||||
@ClientOnly
|
||||
public static void playAnimation(long l, String name, float time, String controller, String query, String hz) {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import android.util.Pair;
|
||||
import cn.nukkit.nbt.tag.CompoundTag;
|
||||
|
||||
import com.reider745.InnerCoreServer;
|
||||
import com.reider745.api.ClientOnly;
|
||||
import com.reider745.entity.EntityMethod;
|
||||
import com.reider745.item.CustomItem;
|
||||
import com.zhekasmirnov.apparatus.adapter.innercore.game.entity.EntityActor;
|
||||
@@ -655,6 +656,26 @@ public class AdaptedScriptAPI extends API {
|
||||
return NativeAPI.getEntityDimension(unwrapEntity(entity));
|
||||
}
|
||||
|
||||
@JSStaticFunction
|
||||
@ClientOnly
|
||||
public static void playAnimation(Object entity, String name, double time, String controller, String query, String hz) {
|
||||
NativeAPI.playAnimation(unwrapEntity(entity), name, (float) time, controller, query, hz);
|
||||
}
|
||||
|
||||
|
||||
@JSStaticFunction
|
||||
public static boolean isSleeping(Object entity) {
|
||||
return NativeAPI.isEntitySleeping(unwrapEntity(entity));
|
||||
}
|
||||
|
||||
@JSStaticFunction
|
||||
public static float[] getAABB(Object entity) {
|
||||
float[] aabb = new float[6];
|
||||
NativeAPI.getEntityAABB(unwrapEntity(entity), aabb);
|
||||
return aabb;
|
||||
}
|
||||
|
||||
|
||||
@JSStaticFunction
|
||||
public static ArrayList<Long> getAllArrayList() {
|
||||
return new ArrayList<>(NativeCallback.getAllEntities());
|
||||
|
||||
Reference in New Issue
Block a user