diff --git a/src/main/java/cactusServer/entities/Area.java b/src/main/java/cactusServer/entities/Area.java index 222db78..0801fa2 100644 --- a/src/main/java/cactusServer/entities/Area.java +++ b/src/main/java/cactusServer/entities/Area.java @@ -6,10 +6,10 @@ private String name; private Plain[] region; // �C�ӌ‚̕��ʂ̕����� private HashSet permissions; // �G���A���ʼn”\�Ȃ��Ƃ̗��� - - public Area(String name, Plain[] regions, HashSet permissions) { + + public Area(String name, Plain[] region, HashSet permissions) { this.name = name; - this.region = regions; + this.region = region; this.permissions = permissions; } diff --git a/src/main/java/cactusServer/entities/Character.java b/src/main/java/cactusServer/entities/Character.java index a8f67f2..aa0e845 100644 --- a/src/main/java/cactusServer/entities/Character.java +++ b/src/main/java/cactusServer/entities/Character.java @@ -15,13 +15,15 @@ private String name; private Position3D position; private Angle angle; - private Model model; + private CharacterModel model; private String areaURI; private HashMap itemMap = new HashMap<>(); private static final int UNIQUE_ID_LENGTH = 12; + private final String CHARACTER_URI; - public Character(String accountURI, String name, Position3D position, Angle angle, Model model) { + public Character(String characterURI, String accountURI, String name, Position3D position, Angle angle, CharacterModel model) { + this.CHARACTER_URI = characterURI; this.accountURI = accountURI; this.name = name; this.position = position; @@ -46,7 +48,7 @@ return angle; } - public Model getModel() { + public CharacterModel getModel() { return model; } @@ -74,18 +76,24 @@ this.position = position; } - public void setAreaID(String areaID) { - this.areaURI = areaID; + public void setAngle(Angle angle) { + this.angle = angle; } - public Map createItem(String name, int amount) { + public void setModel(CharacterModel model) { + this.model = model; + } + + public void setAreaURI(String areaURI) { + this.areaURI = areaURI; + } + + public AddressedEntity createItem(String name, int amount) { Item item = new Item(name, amount); if (!hasItem(item)) { String id = RandomStringGenerator.generateUniqueString(UNIQUE_ID_LENGTH, RandomStringGenerator.ALPHA_NUMERIC, itemMap.keySet()); itemMap.put(id, item); - return new HashMap() { - {put(id, item);} - }; + return new AddressedEntity((CHARACTER_URI + "/items/" + id), item); } return null; } diff --git a/src/main/java/cactusServer/entities/CharacterModel.java b/src/main/java/cactusServer/entities/CharacterModel.java new file mode 100644 index 0000000..2daa1d1 --- /dev/null +++ b/src/main/java/cactusServer/entities/CharacterModel.java @@ -0,0 +1,5 @@ +package cactusServer.entities; + +public class CharacterModel { + +} diff --git a/src/main/java/cactusServer/entities/Instance.java b/src/main/java/cactusServer/entities/Instance.java index 3da95e1..19af565 100644 --- a/src/main/java/cactusServer/entities/Instance.java +++ b/src/main/java/cactusServer/entities/Instance.java @@ -3,16 +3,21 @@ import java.net.URI; import java.util.ArrayList; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import cactusServer.entities.Entity; import cactusServer.entities.Object; +import cactusServer.entities.Area.Allowed; +import cactusServer.entities.Object.Attribute; import cactusServer.models.Instances; import cactusServer.utils.RandomStringGenerator; import cactusServer.entities.Character; import framework.model3D.Position3D; +import framework.physics.AngularVelocity3D; +import framework.physics.Velocity3D; import net.arnx.jsonic.JSONHint; /** @@ -30,8 +35,7 @@ private HashMap characterMap = new HashMap<>(); private static final int UNIQUE_ID_LENGTH = 12; private final String INSTANCE_URI; - - + /** * (�����͌����_�ł̉��̂���) * @param name �C���X�^���X�� @@ -131,51 +135,33 @@ this.state = state; } - public AddressedEntity createArea(Area area) { + public AddressedEntity createArea(String name, Plain[] region, HashSet permissions) { String id = RandomStringGenerator.generateUniqueString(UNIQUE_ID_LENGTH, RandomStringGenerator.ALPHA_NUMERIC, areaMap.keySet()); + Area area = new Area(name, region, permissions); areaMap.put(id, area); return new AddressedEntity((INSTANCE_URI + "/areas/" + id), area); } -// public Map createArea(Area area) { -// String id = RandomStringGenerator.generateUniqueString(UNIQUE_ID_LENGTH, RandomStringGenerator.ALPHA_NUMERIC, areaMap.keySet()); -// areaMap.put(id, area); -// return new HashMap() { -// {put(id, area);} -// }; -// } - - public AddressedEntity createObject(Object object) { + public AddressedEntity createObject(Position3D position, Velocity3D velocity, AngularVelocity3D angularVelocity, Angle angle, Attribute attribute, ObjectModel model) { String id = RandomStringGenerator.generateUniqueString(UNIQUE_ID_LENGTH, RandomStringGenerator.ALPHA_NUMERIC, objMap.keySet()); + Object object = new Object(position, velocity, angularVelocity, angle, attribute, model); objMap.put(id, object); return new AddressedEntity((INSTANCE_URI + "/objects/" + id), object); } - -// public Map createObject(Object object) { -// String id = RandomStringGenerator.generateUniqueString(UNIQUE_ID_LENGTH, RandomStringGenerator.ALPHA_NUMERIC, objMap.keySet()); -// objMap.put(id, object); -// return new HashMap() { -// {put(id, object);} -// }; -// } - public AddressedEntity createObject(Character character) { + public AddressedEntity createCharacter(String accountURI, String name, Position3D position, Angle angle, CharacterModel model) { String id = RandomStringGenerator.generateUniqueString(UNIQUE_ID_LENGTH, RandomStringGenerator.ALPHA_NUMERIC, characterMap.keySet()); + String characterURI = (INSTANCE_URI + "/characters/" + id); + Character character = new Character(characterURI, accountURI, name, position, angle, model); characterMap.put(id, character); - return new AddressedEntity((INSTANCE_URI + "/characters/" + id), character); + return new AddressedEntity(characterURI, character); } - -// public Map createCharacter(Character character) { -// String id = RandomStringGenerator.generateUniqueString(UNIQUE_ID_LENGTH, RandomStringGenerator.ALPHA_NUMERIC, characterMap.keySet()); -// characterMap.put(id, character); -// return new HashMap() { -// {put(id, character);} -// }; -// } - - public Character updateCharacter(String characterId, Position3D position) { + + public Character updateCharacter(String characterId, Position3D position, Angle angle, CharacterModel model) { Character character = characterMap.get(characterId); character.setPosition(position); + character.setAngle(angle); + character.setModel(model); return character; } diff --git a/src/main/java/cactusServer/entities/Model.java b/src/main/java/cactusServer/entities/Model.java deleted file mode 100644 index 9836744..0000000 --- a/src/main/java/cactusServer/entities/Model.java +++ /dev/null @@ -1,5 +0,0 @@ -package cactusServer.entities; - -public class Model { - -} diff --git a/src/main/java/cactusServer/entities/Object.java b/src/main/java/cactusServer/entities/Object.java index 9c2b7b6..7cdea77 100644 --- a/src/main/java/cactusServer/entities/Object.java +++ b/src/main/java/cactusServer/entities/Object.java @@ -10,13 +10,17 @@ private Position3D position; private Velocity3D velocity; private AngularVelocity3D angularVelocity; + private Angle angle; private Attribute attribute; - - public Object(Position3D position, Velocity3D velocity, AngularVelocity3D angularVelocity, Attribute attribute) { + private ObjectModel model; + + public Object(Position3D position, Velocity3D velocity, AngularVelocity3D angularVelocity, Angle angle, Attribute attribute, ObjectModel model) { setPosition(position); setVelocity(velocity); setAngularVelocity(angularVelocity); + this.angle = angle; this.attribute = attribute; + this.model = model; } public Position3D getPosition() { @@ -31,6 +35,18 @@ return angularVelocity; } + public Angle getAngle() { + return angle; + } + + public Attribute getAttribute() { + return attribute; + } + + public ObjectModel getModel() { + return model; + } + public void setPosition(Position3D position) { this.position = position; } @@ -43,6 +59,18 @@ this.angularVelocity = angularVelocity; } + public void setAngle(Angle angle) { + this.angle = angle; + } + + public void setAttribute(Attribute attribute) { + this.attribute = attribute; + } + + public void setModel(ObjectModel model) { + this.model = model; + } + public static class Attribute { private boolean moveable; private double cof; diff --git a/src/main/java/cactusServer/entities/ObjectModel.java b/src/main/java/cactusServer/entities/ObjectModel.java new file mode 100644 index 0000000..8b387f8 --- /dev/null +++ b/src/main/java/cactusServer/entities/ObjectModel.java @@ -0,0 +1,5 @@ +package cactusServer.entities; + +public class ObjectModel { + +} diff --git a/src/main/java/cactusServer/entities/Player.java b/src/main/java/cactusServer/entities/Player.java index 5a02d68..8254621 100644 --- a/src/main/java/cactusServer/entities/Player.java +++ b/src/main/java/cactusServer/entities/Player.java @@ -1,5 +1,6 @@ package cactusServer.entities; +import cactusServer.models.Instances; import framework.model3D.Position3D; public class Player extends Entity{ diff --git a/src/main/java/cactusServer/models/Instances.java b/src/main/java/cactusServer/models/Instances.java index 16931a3..5a2f831 100644 --- a/src/main/java/cactusServer/models/Instances.java +++ b/src/main/java/cactusServer/models/Instances.java @@ -71,25 +71,7 @@ {put(id, instance);} }; } - -// /** -// * �V����Player���쐬����Map�ɒlj����� -// * -// * @param plyaer -// * @return �V�����쐬���ꂽ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); -// } - - /** - * �V����Player���쐬����Map�ɒlj����� - * - * @param plyaer - * @return �V�����쐬���ꂽID��Instance��Map - */ + 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);