当該クラスのコード修正等. 一旦コミットしておく.
1 parent 763d69e commit 585ed44d1e1d5c2c1925dc09479e9384edf2cf8a
r-isitani authored on 29 May 2018
Showing 7 changed files
View
32
src/main/java/cactusServer/entities/Character.java
private String accountURI;
private String name;
private Position3D position;
private Angle angle;
// private Model model;
private Model model;
private String areaURI;
 
private HashMap<String, Item> itemMap = new HashMap<>();
private static final int UNIQUE_ID_LENGTH = 12;
 
public Character(String accountURI, String name, Position3D position, String areaId) {
public Character(String accountURI, String name, Position3D position, Angle angle, Model model) {
this.accountURI = accountURI;
this.name = name;
this.position = position;
this.areaURI = areaId;
this.angle = angle;
this.model = model;
updateAreaURI();
}
 
public String getAccountURI() {
return accountURI;
public Position3D getPosition() {
return position;
}
public String getAreaId() {
public Angle getAngle() {
return angle;
}
 
public Model getModel() {
return model;
}
public String getAreaURI() {
return areaURI;
}
public Item getItem(String itemId) {
}
return item;
}
private void updateAreaURI() {
}
public Item destroyItem(String itemId) {
return itemMap.remove(itemId);
}
}
View
13
src/main/java/cactusServer/entities/EmoteState.java
*
*/
public class EmoteState {
private EmoteType emoteType;
 
public EmoteState(EmoteType emoteType) {
this.emoteType = emoteType;
}
public EmoteType getEmoteType() {
return emoteType;
}
 
public void setEmoteType(EmoteType emoteType) {
if (!this.emoteType.equals(emoteType)) {
this.emoteType = emoteType;
// この下でエモートの種類を変更したことによる必要処理を呼び出す
}
}
public static enum EmoteType {
// 開始するエモートの種類の列挙
}
View
103
src/main/java/cactusServer/entities/Instance.java
import java.util.Set;
 
import cactusServer.entities.Entity;
import cactusServer.entities.Object;
import cactusServer.models.Instances;
import cactusServer.utils.RandomStringGenerator;
import cactusServer.entities.Character;
import framework.model3D.Position3D;
import net.arnx.jsonic.JSONHint;
*/
public class Instance extends Entity {
private String name;
private State state;
// private StageModel stage;
@JSONHint(ignore = true) private HashMap<String, Area> areaMap = new HashMap<>();
@JSONHint(ignore = true) private HashMap<String, Object> objMap = new HashMap<>();
@JSONHint(ignore = true) private HashMap<String, Character> characterMap = new HashMap<>();
@JSONHint(ignore = true) private static final int UNIQUE_ID_LENGTH = 12;
private StageModel stage;
private HashMap<String, Area> areaMap = new HashMap<>();
private HashMap<String, Object> objMap = new HashMap<>();
private HashMap<String, Character> characterMap = new HashMap<>();
private static final int UNIQUE_ID_LENGTH = 12;
private final String INSTANCE_URI;
/**
* (引数は現時点での仮のもの)
* @param name インスタンス名
*/
public Instance(String instanceID, String name, State state, StageModel stageModel) {
this.INSTANCE_URI = Instances.INSTANCES_URI + "/" + instanceID;
this.name = name;
this.state = state;
this.stage = stageModel;
}
/**
* InstancesRestとのエラー解消用 (後で消す)
* @param name
* @param state
*/
public Instance(String name, State state) {
this.name = name;
this.state = state;
this.INSTANCE_URI = Instances.INSTANCES_URI + "/";
}
/**
* InstancesRestとのエラー解消用 (後で消す)
* @param name
*/
public Instance(String name) {
this.name = name;
this.state = State.AVAILABLE;
this.INSTANCE_URI = Instances.INSTANCES_URI + "/";
}
 
public String getName() {
return name;
public State getState() {
return state;
}
public StageModel getStage() {
return stage;
}
 
@JSONHint(ignore = true)
public Set<String> getAreaIdSet() {
return areaMap.keySet();
}
public void setState(State state) {
this.state = state;
}
 
public Map<String, Area> createArea(Area area) {
public AddressedEntity createArea(Area area) {
String id = RandomStringGenerator.generateUniqueString(UNIQUE_ID_LENGTH, RandomStringGenerator.ALPHA_NUMERIC, areaMap.keySet());
areaMap.put(id, area);
return new HashMap<String, Area>() {
{put(id, area);}
};
return new AddressedEntity((INSTANCE_URI + "/areas/" + id), area);
}
// public Map<String, Area> createArea(Area area) {
// String id = RandomStringGenerator.generateUniqueString(UNIQUE_ID_LENGTH, RandomStringGenerator.ALPHA_NUMERIC, areaMap.keySet());
// areaMap.put(id, area);
// return new HashMap<String, Area>() {
// {put(id, area);}
// };
// }
public AddressedEntity createObject(Object object) {
String id = RandomStringGenerator.generateUniqueString(UNIQUE_ID_LENGTH, RandomStringGenerator.ALPHA_NUMERIC, objMap.keySet());
objMap.put(id, object);
return new AddressedEntity((INSTANCE_URI + "/objects/" + id), object);
}
 
public Map<String, Object> createObject(Object object) {
String id = RandomStringGenerator.generateUniqueString(UNIQUE_ID_LENGTH, RandomStringGenerator.ALPHA_NUMERIC, objMap.keySet());
objMap.put(id, object);
return new HashMap<String, Object>() {
{put(id, object);}
};
}
public Map<String, Character> createCharacter(Character character) {
// public Map<String, Object> createObject(Object object) {
// String id = RandomStringGenerator.generateUniqueString(UNIQUE_ID_LENGTH, RandomStringGenerator.ALPHA_NUMERIC, objMap.keySet());
// objMap.put(id, object);
// return new HashMap<String, Object>() {
// {put(id, object);}
// };
// }
public AddressedEntity createObject(Character character) {
String id = RandomStringGenerator.generateUniqueString(UNIQUE_ID_LENGTH, RandomStringGenerator.ALPHA_NUMERIC, characterMap.keySet());
characterMap.put(id, character);
return new HashMap<String, Character>() {
{put(id, character);}
};
return new AddressedEntity((INSTANCE_URI + "/characters/" + id), character);
}
// public Map<String, Character> createCharacter(Character character) {
// String id = RandomStringGenerator.generateUniqueString(UNIQUE_ID_LENGTH, RandomStringGenerator.ALPHA_NUMERIC, characterMap.keySet());
// characterMap.put(id, character);
// return new HashMap<String, Character>() {
// {put(id, character);}
// };
// }
public Character updateCharacter(String characterId, Position3D position) {
Character character = characterMap.get(characterId);
character.setPosition(position);
View
6
src/main/java/cactusServer/entities/Model.java 0 → 100644
package cactusServer.entities;
 
public class Model {
 
}
View
44
src/main/java/cactusServer/entities/Player.java
 
import framework.model3D.Position3D;
 
public class Player extends Entity{
private String InstanceURI;
private String instanceURI;
private String characterURI;
private String areaURI;
private Position3D position;
private Angle angle;
private CameraState cameraState;
private EmoteState emoteState;
 
public Player(String InstanceURI, String characterURI, CameraState cameraState, EmoteState.EmoteType animationClassToStart) {
this.InstanceURI = InstanceURI;
public Player(String instanceURI, String characterURI, CameraState cameraState, EmoteState.EmoteType animationClassToStart) {
this.instanceURI = instanceURI;
this.characterURI = characterURI;
this.cameraState = cameraState;
this.emoteState = new EmoteState(animationClassToStart);
}
public String getInstanceURI() {
return InstanceURI;
return instanceURI;
}
public String getCharacterURI() {
return characterURI;
 
public Position3D getPosition() {
return position;
}
public Angle getAngle() {
return angle;
}
 
public CameraState getCameraState() {
return cameraState;
}
 
public EmoteState getEmoteState() {
return emoteState;
}
public void setInstanceURI(String instanceURI) {
this.instanceURI = instanceURI;
}
 
public void setCharacterURI(String characterURI) {
this.characterURI = characterURI;
}
 
public void setPosition(Position3D position) {
this.position = position;
}
 
public void setAngle(Angle angle) {
this.angle = angle;
}
 
public void setCameraState(CameraState cameraState) {
this.cameraState = cameraState;
}
public void updateEmoteType(EmoteState.EmoteType animationClassToStart) {
this.emoteState.setEmoteType(animationClassToStart);
}
}
View
6
src/main/java/cactusServer/entities/StageModel.java 0 → 100644
package cactusServer.entities;
 
public class StageModel {
 
}
View
73
src/main/java/cactusServer/models/Instances.java
 
import org.apache.commons.lang3.RandomStringUtils;
 
import cactusServer.entities.AddressedEntity;
import cactusServer.entities.CameraState;
import cactusServer.entities.EmoteState;
import cactusServer.entities.Instance;
import cactusServer.entities.Player;
import cactusServer.entities.StageModel;
import cactusServer.utils.RandomStringGenerator;
import net.arnx.jsonic.JSONHint;
 
/**
* インスタンスを管理するクラス
*
* @author ryo isitani
* @author r-isitani
*
*/
public class Instances {
private static Instances theInstance = null;
private HashMap<String, Instance> instanceMap = new HashMap<>(); // instanceのIDと実体を管理
private HashMap<String, Player> playerMap = new HashMap<>();
private static final int UNIQUE_ID_LENGTH = 12;
private static final String INSTANCES_URI = "/CactusServer/rest/instances/";
@JSONHint(ignore = true) public static final String INSTANCES_URI = "/CactusServer/rest/instances";
private Instances() {
 
}
}
return theInstance;
}
// /**
// * 新しいInstanceを作成してMapに追加する
// *
// * @param instance
// * @return 新しく作成されたIDとInstanceのMap
// */
// public AddressedEntity createInstance(Instance instance) {
// String id = RandomStringGenerator.generateUniqueString(UNIQUE_ID_LENGTH, RandomStringGenerator.ALPHA_NUMERIC, instanceMap.keySet());
// instanceMap.put(id, instance);
// return new AddressedEntity(URI.create(INSTANCES_URI + id).toString(), instance);
// }
/**
* 新しいInstanceクラスを作成してMapに追加する
* @param name
* @param state
* @param stageModel
* @return
*/
public AddressedEntity createInstance(String name, Instance.State state, StageModel stageModel) {
String id = RandomStringGenerator.generateUniqueString(UNIQUE_ID_LENGTH, RandomStringGenerator.ALPHA_NUMERIC, instanceMap.keySet());
Instance instance = new Instance(id, name, state, stageModel);
instanceMap.put(id, instance);
return new AddressedEntity((INSTANCES_URI + "/" + id), instance);
}
/**
* InstancesRestとのエラー解消用 (後で消す)
*
{put(id, instance);}
};
}
// /**
// * 新しいPlayerを作成してMapに追加する
// *
// * @param plyaer
// * @return 新しく作成されたIDとInstanceのMap
// */
// public AddressedEntity createInstance(Player player) {
// String id = RandomStringGenerator.generateUniqueString(UNIQUE_ID_LENGTH, RandomStringGenerator.ALPHA_NUMERIC, playerMap.keySet());
// playerMap.put(id, player);
// return new AddressedEntity((INSTANCES_URI + "/" + id), player);
// }
/**
* InstancesRestのエラー解消用 (後から消す)
* @param id
* @param name
* @return
* 新しいPlayerを作成してMapに追加する
*
* @param plyaer
* @return 新しく作成されたIDとInstanceのMap
*/
public Instance createInstance(String id, String name) {
// String id = createUniqueId(UNIQUE_ID_LENGTH, instanceMap.keySet());
Instance instance = new Instance(name, Instance.State.AVAILABLE);
instanceMap.put(id, instance);
return instance;
public AddressedEntity createPlayer(String instanceURI, String characterURI, CameraState cameraState, EmoteState.EmoteType animationClassToStart) {
String id = RandomStringGenerator.generateUniqueString(UNIQUE_ID_LENGTH, RandomStringGenerator.ALPHA_NUMERIC, playerMap.keySet());
Player player = new Player(instanceURI, characterURI, cameraState, animationClassToStart);
playerMap.put(id, player);
return new AddressedEntity((INSTANCES_URI + "/players/" + id), player);
}
 
/**
* IDに対応するInstanceを取得して返す
*/
public Instance getInstance(String instanceId) {
return instanceMap.get(instanceId);
}
public Player getPlayer(String playerId) {
return playerMap.get(playerId);
}
 
/**
* IDに対応するInstanceをMapから削除して返す
*
*/
public Instance destroyInstance(String instanceId) {
return instanceMap.remove(instanceId);
}
public Player destroyPlayer(String playerId) {
return playerMap.remove(playerId);
}
}