diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index 7a35e75..c0813ee 100644 --- a/.idea/caches/build_file_checksums.ser +++ b/.idea/caches/build_file_checksums.ser Binary files differ diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/Instance.java b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/Instance.java index 61f62a1..2ec03c6 100644 --- a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/Instance.java +++ b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/Instance.java @@ -7,11 +7,11 @@ import org.ntlab.radishforandroidstudio.framework.model3D.Position3D; import org.ntlab.radishforandroidstudio.framework.model3D.Quaternion3D; import org.ntlab.radishforandroidstudio.framework.model3D.Universe; -import org.ntlab.radishforandroidstudio.framework.physics.AngularVelocity3D; import org.ntlab.radishforandroidstudio.framework.physics.Ground; -import org.ntlab.radishforandroidstudio.framework.physics.Velocity3D; import net.arnx.jsonic.JSONHint; +import org.ntlab.radishforandroidstudio.cactusClient.models.Area.Allowed; + /** * インスタンス @@ -27,7 +27,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<>(); @JSONHint(ignore = true) public static final int UNIQUE_ID_LENGTH = 12; @@ -40,7 +40,7 @@ setName(name); setState(Instance.State.AVAILABLE); setStageID(stageID); - // initUniverse(); + initUniverse(); } private void initUniverse() { @@ -78,11 +78,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); } @@ -91,10 +91,26 @@ return characterMap; } + public HashMap getCharacters(String accountID) { + if (accountID == null || accountID.isEmpty()) { + return getCharacters(); + } + HashMap returnedMap = new HashMap<>(); + for (String id : characterMap.keySet()) { + Character character = characterMap.get(id); + String[] accountURISplit = character.getAccountURI().split("/"); + if (accountURISplit[accountURISplit.length - 1].equals(accountID)) { + returnedMap.put(id, character); + } + } + return returnedMap; + } + public Character getCharacter(String characterId) { return characterMap.get(characterId); } + public void setName(String name) { this.name = name; } @@ -107,7 +123,7 @@ this.stageID = stageURI; } - public HashMap createArea(String name, Plain[] region, HashSet permissions) { + public HashMap createArea(String name, Plain[] region, HashSet permissions) { String id = RandomStringGenerator.generateUniqueString(Area.UNIQUE_ID_LENGTH, RandomStringGenerator.ALPHA_NUMERIC, areaMap.keySet()); Area area = new Area(name, region, permissions); @@ -117,18 +133,6 @@ return returnedMap; } - public HashMap createObject(Position3D position, Velocity3D velocity, - AngularVelocity3D angularVelocity, Quaternion3D angle, Object.Attribute attribute, int modelID) { - String id = RandomStringGenerator.generateUniqueString(Object.UNIQUE_ID_LENGTH, - RandomStringGenerator.ALPHA_NUMERIC, objMap.keySet()); - Object object = new Object(position, velocity, angularVelocity, angle, attribute, modelID); - objMap.put(id, object); - universe.place(object.getPlaceable()); - HashMap returnedMap = new HashMap<>(); - returnedMap.put(id, object); - return returnedMap; - } - public HashMap createCharacter(String instanceId, String accountURI, String name, Position3D position, Quaternion3D angle, int modelID) { String id = RandomStringGenerator.generateUniqueString(Character.UNIQUE_ID_LENGTH, @@ -145,12 +149,6 @@ return this; } - public Character updateCharacter(String characterId, Position3D position, Quaternion3D angle, String modelID) { - Character character = characterMap.get(characterId); - character.update(position, angle, modelID, null); // areaURI(第4引数)の更新は呼び出し先で自動で行われる - return character; - } - public Character destroyCharacter(String characterId) { return characterMap.remove(characterId); } @@ -159,10 +157,11 @@ return areaMap.remove(areaId); } - public Object destroyObject(String objId) { + public MovableObject destroyObject(String objId) { return objMap.remove(objId); } + public static enum State { AVAILABLE, MAINTENANCE; }