diff --git a/src/main/java/cactusServer/entities/Instance.java b/src/main/java/cactusServer/entities/Instance.java index 51cad77..470d2ca 100644 --- a/src/main/java/cactusServer/entities/Instance.java +++ b/src/main/java/cactusServer/entities/Instance.java @@ -12,9 +12,9 @@ import org.ntlab.radishforandroidstudio.framework.physics.Velocity3D; import cactusServer.entities.Entity; -import cactusServer.entities.Object; +import cactusServer.entities.MovableObject; import cactusServer.entities.Area.Allowed; -import cactusServer.entities.Object.Attribute; +import cactusServer.entities.MovableObject.Attribute; import cactusServer.models.StageModelManager; import cactusServer.utils.RandomStringGenerator; import cactusServer.entities.Character; @@ -34,7 +34,7 @@ private Universe universe; private Ground stage; private HashMap areaMap = new HashMap<>(); - private HashMap objMap = new HashMap<>(); + private HashMap objMap = new HashMap<>(); private HashMap characterMap = new HashMap<>(); private HashMap> bulletMap = new HashMap<>(); @JSONHint(ignore = true) @@ -86,11 +86,11 @@ } @JSONHint(ignore = true) - public HashMap getObjects() { + public HashMap getObjects() { return objMap; } - public Object getObject(String objId) { + public MovableObject getObject(String objId) { return objMap.get(objId); } @@ -145,14 +145,14 @@ return returnedMap; } - public HashMap createObject(Position3D position, Velocity3D velocity, + public HashMap createObject(Position3D position, Velocity3D velocity, AngularVelocity3D angularVelocity, Quaternion3D angle, Attribute attribute, int modelID) { - String id = RandomStringGenerator.generateUniqueString(Object.UNIQUE_ID_LENGTH, + String id = RandomStringGenerator.generateUniqueString(MovableObject.UNIQUE_ID_LENGTH, RandomStringGenerator.ALPHA_NUMERIC, objMap.keySet()); - Object object = new Object(position, velocity, angularVelocity, angle, attribute, modelID); + MovableObject object = new MovableObject(position, velocity, angularVelocity, angle, attribute, modelID); objMap.put(id, object); universe.place(object.getPlaceable()); - HashMap returnedMap = new HashMap<>(); + HashMap returnedMap = new HashMap<>(); returnedMap.put(id, object); return returnedMap; } @@ -212,7 +212,7 @@ return areaMap.remove(areaId); } - public Object destroyObject(String objId) { + public MovableObject destroyObject(String objId) { return objMap.remove(objId); } diff --git a/src/main/java/cactusServer/entities/MovableObject.java b/src/main/java/cactusServer/entities/MovableObject.java new file mode 100644 index 0000000..5133f55 --- /dev/null +++ b/src/main/java/cactusServer/entities/MovableObject.java @@ -0,0 +1,146 @@ +package cactusServer.entities; + +import org.ntlab.radishforandroidstudio.framework.model3D.Model3D; +import org.ntlab.radishforandroidstudio.framework.model3D.Object3D; +import org.ntlab.radishforandroidstudio.framework.model3D.Position3D; +import org.ntlab.radishforandroidstudio.framework.model3D.Quaternion3D; +import org.ntlab.radishforandroidstudio.framework.physics.AngularVelocity3D; +import org.ntlab.radishforandroidstudio.framework.physics.Velocity3D; +import org.ntlab.radishforandroidstudio.java3d.Box; +import org.ntlab.radishforandroidstudio.java3d.Primitive; + +import cactusServer.models.ObjectModelManager; +//import framework.model3D.Position3D; +//import framework.physics.AngularVelocity3D; +//import framework.physics.Velocity3D; +import net.arnx.jsonic.JSONHint; + +public class MovableObject extends Entity3D { + private Position3D position; + private Velocity3D velocity; + private AngularVelocity3D angularVelocity; + private Quaternion3D angle; + private Attribute attribute; + private Model3D model; + private Primitive prim; + private Object3D object; + + @JSONHint(ignore = true) + public static final int UNIQUE_ID_LENGTH = 12; + + @SuppressWarnings("unused") + private MovableObject() { + // JSONDecode���̌Ăяo���p + } + + public MovableObject(Position3D position, Velocity3D velocity, AngularVelocity3D angularVelocity, Quaternion3D angle, + Attribute attribute, int modelID) { + setPosition(position); + setVelocity(velocity); + setAngularVelocity(angularVelocity); + setAngle(angle); + setAttribute(attribute); + setModel(modelID); + setPrim(new Box()); + setObject(new Object3D("", prim)); + setPlaceable(object); + } + + public Position3D getPosition() { + return position; + } + + public Velocity3D getVelocity() { + return velocity; + } + + public AngularVelocity3D getAngularVelocity() { + return angularVelocity; + } + + public Quaternion3D getAngle() { + return angle; + } + + public Attribute getAttribute() { + return attribute; + } + + public Model3D getModel() { + return model; + } + + public void setPosition(Position3D position) { + this.position = position; + } + + public void setVelocity(Velocity3D velocity) { + this.velocity = velocity; + } + + public void setAngularVelocity(AngularVelocity3D angularVelocity) { + this.angularVelocity = angularVelocity; + } + + public void setAngle(Quaternion3D angle) { + this.angle = angle; + } + + public void setAttribute(Attribute attribute) { + this.attribute = attribute; + } + + public void setModel(int modelID) { + this.model = ObjectModelManager.getInstance().getObject(modelID); + } + + public static class Attribute { + private boolean movable; // �“� + private double cof; // ���C�W�� + + @SuppressWarnings("unused") + private Attribute() { + + } + + public Attribute(boolean moveable, double cof) { + setMovable(moveable); + setCof(cof); + } + + public boolean isMovable() { + return movable; + } + + public double getCof() { + return cof; + } + + public void setMovable(boolean moveable) { + this.movable = moveable; + } + + public void setCof(double cof) { + this.cof = cof; + } + } + + @JSONHint(ignore = true) + public Primitive getPrim() { + return prim; + } + + public void setPrim(Primitive prim) { + this.prim = prim; + } + + @JSONHint(ignore = true) + public Object3D getObject() { + return object; + } + + public void setObject(Object3D object) { + this.object = object; + } + +} \ No newline at end of file diff --git a/src/main/java/cactusServer/entities/Object.java b/src/main/java/cactusServer/entities/Object.java deleted file mode 100644 index 96de680..0000000 --- a/src/main/java/cactusServer/entities/Object.java +++ /dev/null @@ -1,146 +0,0 @@ -package cactusServer.entities; - -import org.ntlab.radishforandroidstudio.framework.model3D.Model3D; -import org.ntlab.radishforandroidstudio.framework.model3D.Object3D; -import org.ntlab.radishforandroidstudio.framework.model3D.Position3D; -import org.ntlab.radishforandroidstudio.framework.model3D.Quaternion3D; -import org.ntlab.radishforandroidstudio.framework.physics.AngularVelocity3D; -import org.ntlab.radishforandroidstudio.framework.physics.Velocity3D; -import org.ntlab.radishforandroidstudio.java3d.Box; -import org.ntlab.radishforandroidstudio.java3d.Primitive; - -import cactusServer.models.ObjectModelManager; -//import framework.model3D.Position3D; -//import framework.physics.AngularVelocity3D; -//import framework.physics.Velocity3D; -import net.arnx.jsonic.JSONHint; - -public class Object extends Entity3D { - private Position3D position; - private Velocity3D velocity; - private AngularVelocity3D angularVelocity; - private Quaternion3D angle; - private Attribute attribute; - private Model3D model; - private Primitive prim; - private Object3D object; - - @JSONHint(ignore = true) - public static final int UNIQUE_ID_LENGTH = 12; - - @SuppressWarnings("unused") - private Object() { - // JSONDecode���̌Ăяo���p - } - - public Object(Position3D position, Velocity3D velocity, AngularVelocity3D angularVelocity, Quaternion3D angle, - Attribute attribute, int modelID) { - setPosition(position); - setVelocity(velocity); - setAngularVelocity(angularVelocity); - setAngle(angle); - setAttribute(attribute); - setModel(modelID); - setPrim(new Box()); - setObject(new Object3D("", prim)); - setPlaceable(object); - } - - public Position3D getPosition() { - return position; - } - - public Velocity3D getVelocity() { - return velocity; - } - - public AngularVelocity3D getAngularVelocity() { - return angularVelocity; - } - - public Quaternion3D getAngle() { - return angle; - } - - public Attribute getAttribute() { - return attribute; - } - - public Model3D getModel() { - return model; - } - - public void setPosition(Position3D position) { - this.position = position; - } - - public void setVelocity(Velocity3D velocity) { - this.velocity = velocity; - } - - public void setAngularVelocity(AngularVelocity3D angularVelocity) { - this.angularVelocity = angularVelocity; - } - - public void setAngle(Quaternion3D angle) { - this.angle = angle; - } - - public void setAttribute(Attribute attribute) { - this.attribute = attribute; - } - - public void setModel(int modelID) { - this.model = ObjectModelManager.getInstance().getObject(modelID); - } - - public static class Attribute { - private boolean movable; // �“� - private double cof; // ���C�W�� - - @SuppressWarnings("unused") - private Attribute() { - - } - - public Attribute(boolean moveable, double cof) { - setMovable(moveable); - setCof(cof); - } - - public boolean isMovable() { - return movable; - } - - public double getCof() { - return cof; - } - - public void setMovable(boolean moveable) { - this.movable = moveable; - } - - public void setCof(double cof) { - this.cof = cof; - } - } - - @JSONHint(ignore = true) - public Primitive getPrim() { - return prim; - } - - public void setPrim(Primitive prim) { - this.prim = prim; - } - - @JSONHint(ignore = true) - public Object3D getObject() { - return object; - } - - public void setObject(Object3D object) { - this.object = object; - } - -} \ No newline at end of file diff --git a/src/main/java/cactusServer/models/CollisionManager.java b/src/main/java/cactusServer/models/CollisionManager.java index 8f089d1..9a3df16 100644 --- a/src/main/java/cactusServer/models/CollisionManager.java +++ b/src/main/java/cactusServer/models/CollisionManager.java @@ -13,7 +13,7 @@ import cactusServer.entities.Bullet; import cactusServer.entities.Instance; -import cactusServer.entities.Object; +import cactusServer.entities.MovableObject; import cactusServer.entities.Player; import net.arnx.jsonic.JSONHint; @@ -50,11 +50,11 @@ } public void collisionPlayersObjects(String instanceId, Instance instance) { - for (Object object : instance.getObjects().values()) { + for (MovableObject object : instance.getObjects().values()) { for (Player player : Instances.getInstance().getPlayers(instanceId).values()) { collisionMove(object, player); } - for (Object object2 : instance.getObjects().values()) { + for (MovableObject object2 : instance.getObjects().values()) { if (!object.equals(object2)) { collisionMove(object, object2); } @@ -62,7 +62,7 @@ } } - public void collisionMove(Object object, Player player) { + public void collisionMove(MovableObject object, Player player) { CollisionResult result; result = PhysicsUtility.checkCollision(player.getObject(), null, object.getObject(), null); if (result != null) { @@ -70,7 +70,7 @@ } } - public void collisionMove(Object object1, Object object2) { + public void collisionMove(MovableObject object1, MovableObject object2) { CollisionResult result; result = PhysicsUtility.checkCollision(object1.getObject(), null, object2.getObject(), null); if (result != null) { @@ -84,7 +84,7 @@ } } - private void objMove(CollisionResult result, Object object, boolean negate) { + private void objMove(CollisionResult result, MovableObject object, boolean negate) { result.normal.scale(-1); Vector3d vec = object.getPosition().getVector3d(); if (negate) @@ -149,7 +149,7 @@ private void collisionBulletAndObjects(Instance instance, String bulletOwnerPlayerId, String bulletId, Bullet bullet, Iterator> bulletEntryIt) { System.out.println("c1"); - for (Object object : instance.getObjects().values()) { + for (MovableObject object : instance.getObjects().values()) { if (isCollision(bullet, object)) { System.out.println("c2"); // instance.destroyBullet(bulletOwnerPlayerId, bulletId); @@ -166,7 +166,7 @@ return (result != null); } - private boolean isCollision(Bullet bullet, Object object) { + private boolean isCollision(Bullet bullet, MovableObject object) { CollisionResult result; result = PhysicsUtility.checkCollision((Object3D) (bullet.getPlaceable()), null, object.getObject(), null); return (result != null); diff --git a/src/main/java/cactusServer/resources/ObjectsRest.java b/src/main/java/cactusServer/resources/ObjectsRest.java index 200610c..bfc996d 100644 --- a/src/main/java/cactusServer/resources/ObjectsRest.java +++ b/src/main/java/cactusServer/resources/ObjectsRest.java @@ -18,8 +18,8 @@ import org.ntlab.radishforandroidstudio.framework.physics.Velocity3D; import cactusServer.entities.Instance; -import cactusServer.entities.Object; -import cactusServer.entities.Object.Attribute; +import cactusServer.entities.MovableObject; +import cactusServer.entities.MovableObject.Attribute; import cactusServer.models.Instances; import net.arnx.jsonic.JSON; @@ -53,9 +53,9 @@ @FormParam("angle") Quaternion3D angle, @FormParam("attribute") Attribute attribute, @FormParam("model") int modelID) { Instance instance = Instances.getInstance().getInstance(instanceId); - HashMap idMap = instance.createObject(position, velocity, angularVelocity, angle, attribute, + HashMap idMap = instance.createObject(position, velocity, angularVelocity, angle, attribute, modelID); - HashMap uriMap = new HashMap<>(); + HashMap uriMap = new HashMap<>(); for (String id : idMap.keySet()) { String uri = (InstancesRest.INSTANCES_URI + "/" + instanceId + "/objects/") + id; uriMap.put(uri, idMap.get(id)); @@ -72,7 +72,7 @@ @FormParam("angularVelocity") AngularVelocity3D angularVelocity, @FormParam("angle") Quaternion3D angle) { Instance instance = Instances.getInstance().getInstance(instanceId); if (instance != null) { - Object object = instance.getObject(objectId); + MovableObject object = instance.getObject(objectId); if (object != null) { object.setAngle(angle); object.setAngularVelocity(angularVelocity); diff --git a/src/main/java/cactusServer/utils/App.java b/src/main/java/cactusServer/utils/App.java index 47d12d3..8b68c82 100644 --- a/src/main/java/cactusServer/utils/App.java +++ b/src/main/java/cactusServer/utils/App.java @@ -20,7 +20,7 @@ import cactusServer.entities.*; import cactusServer.entities.Character; import cactusServer.entities.EmoteState.EmoteType; -import cactusServer.entities.Object.*; +import cactusServer.entities.MovableObject.*; import cactusServer.models.Accounts; import cactusServer.models.BulletModelManager; import cactusServer.models.CharacterModelManager;