diff --git a/src/main/java/cactusServer/entities/Allowed.java b/src/main/java/cactusServer/entities/Allowed.java new file mode 100644 index 0000000..37621e8 --- /dev/null +++ b/src/main/java/cactusServer/entities/Allowed.java @@ -0,0 +1,5 @@ +package cactusServer.entities; + +public enum Allowed { + SHOOT, KILL; +} diff --git a/src/main/java/cactusServer/entities/Area.java b/src/main/java/cactusServer/entities/Area.java index af3dddb..9c74882 100644 --- a/src/main/java/cactusServer/entities/Area.java +++ b/src/main/java/cactusServer/entities/Area.java @@ -1,16 +1,15 @@ package cactusServer.entities; -import java.util.ArrayList; -import java.util.HashMap; +import java.util.HashSet; public class Area { private String name; - private ArrayList> region = new ArrayList<>(); // �C�ӌ‚̕��ʂ̕����� - private HashMap permissions = new HashMap<>(); // �G���A���ʼn”\�Ȃ��Ƃ̗��� + private Plain[] region; // �C�ӌ‚̕��ʂ̕����� + private HashSet permissions; // �G���A���ʼn”\�Ȃ��Ƃ̗��� - public Area(String name, ArrayList> region, HashMap permissions) { + public Area(String name, Plain[] regions, HashSet permissions) { this.name = name; - this.region = region; + this.region = regions; this.permissions = permissions; } @@ -18,19 +17,23 @@ return name; } - public ArrayList> getRegion() { + public Plain[] getRegions() { return region; } - public HashMap getRegion(int index) { - return region.get(index); + public Plain getRegion(int index) { + return region[index]; } - public HashMap getPermissions() { - return permissions; + public boolean isPermission(Allowed allowed) { + return permissions.contains(allowed); } - public boolean getPermission(String key) { - return permissions.get(key); + public void setPermission(Allowed allowed) { + permissions.add(allowed); + } + + public void removePermission(Allowed allowed) { + permissions.remove(allowed); } } diff --git a/src/main/java/cactusServer/entities/Instance.java b/src/main/java/cactusServer/entities/Instance.java index 6231d89..3a2d9f2 100644 --- a/src/main/java/cactusServer/entities/Instance.java +++ b/src/main/java/cactusServer/entities/Instance.java @@ -1,5 +1,12 @@ package cactusServer.entities; +import java.util.HashMap; +import java.util.HashSet; +import cactusServer.entities.Object; +import framework.model3D.Position3D; +import framework.physics.AngularVelocity3D; +import framework.physics.Velocity3D; + /** * �C���X�^���X * @author ryo isitani @@ -7,6 +14,8 @@ */ public class Instance { private String name; + private HashMap areaMap = new HashMap<>(); + private HashMap objMap = new HashMap<>(); /** * (�����͌����_�ł̉��̂���) @@ -19,4 +28,50 @@ public String getName() { return name; } + + public HashMap getAreaMap() { + return areaMap; + } + + public Area getArea(String areaId) { + return areaMap.get(areaId); + } + + public HashMap getObjMap() { + return objMap; + } + + public Object getObject(String objId) { + return objMap.get(objId); + } + + public Area createArea(String areaId, String name, Plain[] regions, HashSet permissions) { + if (areaMap.containsKey(areaId)) { + return null; + } + Area area = new Area(name, regions, permissions); + areaMap.put(areaId, area); + return area; + } + + public Object createObject(String objId, Position3D position, Velocity3D velocity, AngularVelocity3D angularVelocity) { + if (objMap.containsKey(objId)) { + return null; + } + Object object = new Object(position, velocity, angularVelocity); + objMap.put(objId, object); + return object; + } + + public Area removeArea(String areaId) { + return areaMap.remove(areaId); + } + + public Object removeObject(String objId) { + return objMap.remove(objId); + } + + public static enum InstanceState { + ABAILABLE, MAINTENANCE; + } } diff --git a/src/main/java/cactusServer/entities/Plain.java b/src/main/java/cactusServer/entities/Plain.java new file mode 100644 index 0000000..6d78bac --- /dev/null +++ b/src/main/java/cactusServer/entities/Plain.java @@ -0,0 +1,33 @@ +package cactusServer.entities; + +import java.util.List; + +public class Plain { + private double a; // ���ʂ̕����� ax+by+cz+d ��a + private double b; // ���ʂ̕����� ax+by+cz+d ��b + private double c; // ���ʂ̕����� ax+by+cz+d ��c + private double d; // ���ʂ̕����� ax+by+cz+d ��d + + public Plain(double a, double b, double c, double d) { + this.a = a; + this.b = b; + this.c = c; + this.d = d; + } + + public double getA() { + return a; + } + + public double getB() { + return b; + } + + public double getC() { + return c; + } + + public double getD() { + return d; + } +} diff --git a/src/main/java/cactusServer/models/Instances.java b/src/main/java/cactusServer/models/Instances.java index 04dbad1..46e7b67 100644 --- a/src/main/java/cactusServer/models/Instances.java +++ b/src/main/java/cactusServer/models/Instances.java @@ -14,7 +14,6 @@ public class Instances { private static Instances theInstance = null; private HashMap instanceMap = new HashMap<>(); // instance��ID�Ǝ��̂��Ǘ� - private HashSet instanceIdSet = new HashSet<>(); // �g�p�ς�ID�̏W�� private Instances() { @@ -43,7 +42,7 @@ * ������, instanceID���d�������ꍇ�͐V�KInstance���쐬������null��Ԃ� */ public Instance createInstance(String instanceId, String name) { - if (!instanceIdSet.add(instanceId)) { + if (instanceMap.containsKey(instanceId)) { return null; } Instance instance = new Instance(name);