📄 constantconditions.java
字号:
// Added By Omid Aghazadehpackage MRL.Utilities;import yab.agent.*;import yab.agent.object.*;import MRL.Utilities.Partitioning.Path;import java.util.*; //saeed 85-2-3public abstract interface ConstantConditions { // ------------------------------------------------------------------- Object static final Condition TRUE_C = new Condition() { public boolean eval(Object obj) { return true; } }; static final Condition FALSE_C = new Condition() { public boolean eval(Object obj) { return false; } }; static final Condition CIVILIAN_C = new Condition() { public boolean eval(Object obj) { return (obj instanceof Civilian); } }; public static final Condition FIRE_BRIGADE_C = new Condition() { public boolean eval(Object obj) { return (obj instanceof FireBrigade); } }; public static final Condition AMBULANCE_TEAM_C = new Condition() { public boolean eval(Object obj) { return (obj instanceof AmbulanceTeam); } }; public static final Condition POLICE_FORCE_C = new Condition() { public boolean eval(Object obj) { return (obj instanceof PoliceForce); } }; static final Condition PLATOON_C = new Condition() { public boolean eval(Object obj) { return (obj instanceof PlatoonAgent); } }; public static final Condition AMBULANCE_CENTER_C = new Condition() { public boolean eval(Object obj) { return (obj instanceof AmbulanceCenter); } }; public static final Condition FIRE_STATION_C = new Condition() { public boolean eval(Object obj) { return (obj instanceof FireStation); } }; public static final Condition POLICE_OFFICE_C = new Condition() { public boolean eval(Object obj) { return (obj instanceof PoliceOffice); } }; static final Condition ROAD_C = new Condition() { public boolean eval(Object obj) { return (obj instanceof Road); } }; public static final Condition NODE_C = new Condition() { public boolean eval(Object obj) { return (obj instanceof Node); } }; public static final Condition MOTIONLESS_OBJECT_C = new Condition() { public boolean eval(Object obj) { return (obj instanceof MotionlessObject); } }; static final Condition BUILDING_C = new Condition() { public boolean eval(Object obj) { return (obj instanceof Building); } }; static final Condition REFUGE_C = new Condition() { public boolean eval(Object obj) { return (obj instanceof Refuge); } }; static final Condition PATH_C = new Condition() { public boolean eval(Object obj) { return (obj instanceof Path); } }; static final Condition CENTER_C = new Condition() { public boolean eval(Object obj) { return (obj instanceof PoliceOffice || obj instanceof AmbulanceCenter || obj instanceof FireStation); } }; static final Condition SPECIAL_BUILDING_C = REFUGE_C.or(CENTER_C); public static final Condition VISIBLE_C = new Condition() { public boolean eval(Object obj) { return ((RCRObject) obj).isVisible(); } }; public static final Condition MO_POS_SET_C = new Condition() { public boolean eval(Object obj) { return ((MovingObject) obj).position() != null; } }; public static final Condition HAS_BEEN_SEEN_CND = Property.get("RealObject", "hasBeenSeen").equal(Boolean.TRUE); public static final Condition HAS_NOT_BEEN_SEEN_CND = Property.get("RealObject", "hasBeenSeen").equal(Boolean.FALSE); // ------------------------------------------------------------- MovingObject /* static final Condition MISSED_C = new Condition() { public boolean eval(Object obj) { return ( (MovingObject) obj).isMissed(); } }; static final Condition LOST_C = new Condition() { public boolean eval(Object obj) { return ( (MovingObject) obj).isLost(); } }; */ // ----------------------------------------------------------------- Humanoid public static final Condition BURIED_C = new Condition() { public boolean eval(Object obj) { return ((Humanoid) obj).isBuried(); } }; public static final Condition NEED_LOAD_C = new Condition() { public boolean eval(Object obj) { return ((Humanoid) obj).needLoad(); } }; public static final Condition ALIVE_C = new Condition() { public boolean eval(Object obj) { return ((Humanoid) obj).hp() > 0; } }; public static final Condition HUMANOID_C = new Condition() { public boolean eval(Object obj) { return obj instanceof Humanoid; } }; public static final Condition AGENT_C = HUMANOID_C.and(CIVILIAN_C.not()); public static final Condition HUM_TO_REP_C = HUMANOID_C.and(VISIBLE_C).and(BURIED_C).and(ALIVE_C); public static final Condition NEED_RESCUE_C = new Condition() { public boolean eval(Object obj) { return ((Humanoid) obj).needRescue(); } }; // ----------------------------------------------------------------- Building static final Condition NOT_BURNED_C = new Condition() { public boolean eval(Object obj) { return ((Building) obj).isUnburned(); } }; public static final Condition BURNING_C = new Condition() { public boolean eval(Object obj) { return ((Building) obj).isBurning(); } }; static final Condition PUT_OUT_C = new Condition() { public boolean eval(Object obj) { return ((Building) obj).isPutOut(); } }; static final Condition BURNED_C = new Condition() { public boolean eval(Object obj) { return ((Building) obj).isBurned(); } }; // --------------------------------------------------------------------- Road static final Condition MOVABLE_BOTH_DIRECTIONS_C = new Condition() { public boolean eval(Object obj) { return ((Road) obj).isMovableBothDirections(); } }; //static final Condition NOT_MOVABLE_BOTH_DIRECTIONS_C = new Condition() { // public boolean eval(Object obj) // { return ((Road) obj).isNotMovableBothDirections(); } //}; static final Condition MOVABLE_AT_LEAST_ONE_DIRECTION_C = new Condition() { public boolean eval(Object obj) { return ((Road) obj).isMovableAtLeastOneDirection(); } }; //static final Condition NOT_MOVABLE_AT_LEAST_ONE_DIRECTION_C=new Condition(){ // public boolean eval(Object obj) // { return ((Road) obj).isNotMovableAtLeastOneDirection(); } //}; public static final Condition PASSABLE_C = new Condition() { public boolean eval(Object obj) { if(obj instanceof Road){ Road rd = (Road) obj; return ( rd.linesToHead() == 0 || rd.passableLinesToHead() > 0 ) && (rd.linesToTail() == 0 || rd.passableLinesToTail() > 0); } else if (obj instanceof Path){ Path path = (Path) obj; if(path.isOneWayPath()){ return path.passableLinesFromStart(path.getFirstNodeForOneWayPaths()) > 0; } else return path.passableLines() > 0; } throw new Error ("Invalid Usage"); } }; public static final Condition NOT_PASSABLE_C = PASSABLE_C.not(); public static final Condition CLEARABLE_C = new Condition() { public boolean eval(Object obj) { return ((Road) obj).isClearable(); } }; public static final Condition SHOULD_CHECK_ROAD_CND = HAS_NOT_BEEN_SEEN_CND. or(NOT_PASSABLE_C); public static final Condition SHOULD_CHECK_PATH_CND = new Condition() { public boolean eval(Object obj) { return ((Path) obj).shouldCheck(); } }; public static final Property DAMAGE_PRP = Property.get("Humanoid", "damage"), BURIEDNESS_PRP = Property.get("Humanoid", "buriedness"), POSITION_PRP = Property.get("MovingObject", "position"), FIERYNESS_PRP = Property.get("Building", "fieryness"), LIFESPAN_PRP = Property.get("Humanoid", "lifespan"); public static final Property BROKENNESS_PRP = Property.get("Building", "brokenness"); public static final float IN_BLOCKS = (float) Integer.MAX_VALUE * (float) Integer.MAX_VALUE; public static final float NOT_SEEN_RD = (float) Integer.MAX_VALUE; public static final Condition BROKEN_CND = new Condition() { public boolean eval(Object obj) { return ((Building) obj).brokenness()>0; } }; public static final Comparator BROKENNESS_COMP = new Comparator(){ public int compare(Object obj1 , Object obj2){ return ((Building) obj1).brokenness() - ((Building)obj2).brokenness(); } };}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -