diff --git a/src/main/java/cactusServer/entities/Area.java b/src/main/java/cactusServer/entities/Area.java index 3dc0ee4..20496b4 100644 --- a/src/main/java/cactusServer/entities/Area.java +++ b/src/main/java/cactusServer/entities/Area.java @@ -2,25 +2,30 @@ import java.util.HashSet; -public class Area extends Entity{ +import framework.model3D.Position3D; +import net.arnx.jsonic.JSONHint; + +public class Area extends Entity { private String name; private Plain[] region; // �C�ӌ‚̕��ʂ̕����� private HashSet permissions; // �G���A���ʼn”\�Ȃ��Ƃ̗��� + @JSONHint(ignore = true) + public static final int UNIQUE_ID_LENGTH = 12; private Area() { // JSONDecode���̌Ăяo���p } - + public Area(String name, Plain[] region, HashSet permissions) { setName(name); setRegion(region); setPermissions(permissions); } - + public String getName() { return name; } - + public Plain[] getRegion() { return region; } @@ -28,35 +33,47 @@ public Plain getRegion(int index) { return region[index]; } - + public HashSet getPermissions() { return permissions; } - + public boolean isPermission(Allowed allowed) { return permissions.contains(allowed); } + public boolean isSurroundingPosition(Position3D position) { + for (Plain plain : region) { + // ������ Plain��a,b,c,d �� Character��x,y,z ��p����, �L�����N�^�[�����ʂ̗��ɂ��邩�ǂ����̔�����s�� + double equation = (plain.getA() * position.getX()) + (plain.getB() * position.getY()) + + (plain.getC() * position.getZ()) + plain.getD(); + if (equation > 0) { + return false; + } + } + return true; + } + public void setName(String name) { this.name = name; } - + public void setRegion(Plain[] region) { this.region = region; } - + public void setPermissions(HashSet permissions) { this.permissions = permissions; } - + public void addPermission(Allowed allowed) { permissions.add(allowed); } - + public void removePermission(Allowed allowed) { permissions.remove(allowed); } - + public static enum Allowed { SHOOT, KILL; }