All Downloads are FREE. Search and download functionalities are using the official Maven repository.

scenarioTWO.plans.RelsP Maven / Gradle / Ivy

The newest version!
/*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
  This code is generated by JAC version 5.6 by
  Agent Oriented Software. http://www.agent-software.com.au

    DO NOT ALTER THIS CODE AND DO NOT REMOVE THIS COMMENT
 *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/
package scenarioTWO.plans;
import aos.jack.jak.plan.Plan;
import aos.jack.jak.plan.PlanFSM;
import aos.jack.jak.plan.ExMap;
import aos.jack.jak.agent.NameSpace;
import aos.jack.jak.event.Event;
import aos.jack.jak.task.Task;
import aos.jack.jak.core.Generator;
import aos.jack.jak.logic.Signature;
import scenarioTWO.events.RelsG;
import scenarioTWO.agents.EvacResident;
import io.github.agentsoz.abmjack.env.GenericActGoal;
import io.github.agentsoz.bushfiretute.shared.ActionID;
import aos.jack.jak.cursor.Cursor;
import aos.jack.jak.fsm.FSM;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Random;
import aos.jack.jak.core.Jak;

public class RelsP extends aos.jack.jak.plan.Plan {
    final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger("");
    public scenarioTWO.events.RelsG relsg_h;
    public scenarioTWO.agents.EvacResident res;
    public io.github.agentsoz.abmjack.env.GenericActGoal genericactgoal_p;
    private static aos.jack.jak.plan.ExMap[] __exMap_body;
    private static java.lang.String[] __tt__body = {
            "scenarioTWO/plans/RelsP.plan",
            "body",
            "50",
            "51",
            "53",
            "54",
            "56",
            "58",
            "60",
            "61",
            "62",
            "67",
            "68",
            "69",
            "70",
            "48"};
    private final static java.lang.String[] __planVariableNames = {
            "logger",
            "relsg_h",
            "res",
            "genericactgoal_p"};
    private final static java.lang.String[] __planVariableTypes = {
            "Logger",
            "RelsG",
            "scenarioTWO.agents.EvacResident",
            "io.github.agentsoz.abmjack.env.GenericActGoal"};
    private final static java.lang.String[] __reasoningMethods = {
            "body"};
    private final static java.lang.String[] __fsmVariableNames_body = {
            "relCoords",
            "pickuptime",
            "params",
            "gag",
            "startTime",
            "endTime",
            "tripTime"};
    private final static java.lang.String[] __fsmTypes_body = {
            "double[]",
            "int",
            "Object[]",
            "GenericActGoal",
            "long",
            "long",
            "long"};
    private final static java.lang.String[] __fsmLocalNames_body = {
            "__local__6_0",
            "__local__6_1",
            "__local__6_2",
            "__local__6_3",
            "__local__6_4",
            "__local__6_5",
            "__local__6_6"};
    private double[] getRandomCoordinate()
    {
        java.util.Random random = new java.util.Random();
        double[] coordinates = new double[2];
        int distance = random.nextInt(res.bdiConnector.getMaxDistanceToRelatives());
        logger.trace(" | Max distance to relatives: " + res.bdiConnector.getMaxDistanceToRelatives());
        double angle = random.nextDouble() * 2 * java.lang.Math.PI;
        // Calculating destination's X coordinate

        coordinates[0] = res.startLocation[0] + distance * java.lang.Math.cos(angle);
        // Calculating destination's Y coordinate

        coordinates[1] = res.startLocation[1] + distance * java.lang.Math.sin(angle);
        return coordinates;
    }
    
    public RelsP()
    {
    }
    
    private RelsP(aos.jack.jak.task.Task __t, scenarioTWO.plans.RelsP __env)
    {
        __agent = __env.__agent;
        __ns = __env.__ns;
        __planTask = __t;
        __logic = __t.logic;
        relsg_h = __env.relsg_h;
        res = (scenarioTWO.agents.EvacResident) __ns.getIF(scenarioTWO.agents.EvacResident.class);
        genericactgoal_p = __env.genericactgoal_p;
    }
    
    public boolean init_sentinel(aos.jack.jak.agent.NameSpace __a)
    {
        relsg_h = (scenarioTWO.events.RelsG) __a.findEvent("scenarioTWO.events.RelsG");
        if (relsg_h == null) {
            warning("RelsG relsg_h: is not found in the capability/agent this plan comes from");
            return false;
        }
        genericactgoal_p = (io.github.agentsoz.abmjack.env.GenericActGoal) __a.findEvent("io.github.agentsoz.abmjack.env.GenericActGoal");
        if (genericactgoal_p == null) {
            warning("GenericActGoal genericactgoal_p: is not found in the capability/agent this plan comes from");
            return false;
        }
        return true;
    }
    
    public aos.jack.jak.plan.Plan freeze()
    {
        return this;
    }
    
    public aos.jack.jak.plan.Plan unfreeze()
    {
        return this;
    }
    
    public java.lang.Object genObject(int __index)
    {
        switch (__index) {
        }
        aos.jack.jak.core.Jak.error("illegal Object Construction");
        return null;
    }
    
    public aos.jack.jak.cursor.Cursor genCursor(int __index)
        throws java.lang.Exception
    {
        switch (__index) {
        }
        aos.jack.jak.core.Jak.error("illegal Cursor Construction");
        return null;
    }
    
    public aos.jack.jak.fsm.FSM genFSM(int __index)
        throws java.lang.Exception
    {
        switch (__index) {
        }
        aos.jack.jak.core.Jak.error("illegal FSM Construction");
        return null;
    }
    
    public boolean testCondition(int __index)
        throws java.lang.Exception
    {
        switch (__index) {
        }
        aos.jack.jak.core.Jak.error("illegal test Construction");
        return false;
    }
    
    public aos.jack.jak.plan.PlanFSM body()
    {
        return new scenarioTWO.plans.RelsP.__bodyFSM();
    }
    
    private RelsP(scenarioTWO.events.RelsG __ev, aos.jack.jak.task.Task __t, scenarioTWO.plans.RelsP __env)
    {
        this(__t,__env);
        this.relsg_h = __ev;
    }
    
    protected aos.jack.jak.logic.Signature eventSignature(int __log)
    {
        return relsg_h.getSignature(__log);
    }
    
    public java.lang.String handledEvent()
    {
        return "scenarioTWO.events.RelsG";
    }
    
    public boolean __relevant(aos.jack.jak.event.Event __e)
    {
        return __ns.isEnabled();
    }
    
    public aos.jack.jak.plan.Plan createPlan(aos.jack.jak.event.Event __e, aos.jack.jak.task.Task __t)
    {
        if (!(__e instanceof scenarioTWO.events.RelsG)) 
            return null;
        scenarioTWO.events.RelsG __e1 = (scenarioTWO.events.RelsG) __e;
        return new scenarioTWO.plans.RelsP(__e1,__t,this);
    }
    
    public java.lang.String[] variableNames()
    {
        return __planVariableNames;
    }
    
    public java.lang.String[] variableTypes()
    {
        return __planVariableTypes;
    }
    
    public java.lang.Object getVariable(int n)
    {
        switch (n) {
            case 0: 
            {
                return aos.util.ToObject.box(logger);
            }
            case 1: 
            {
                return aos.util.ToObject.box(relsg_h);
            }
            case 2: 
            {
                return aos.util.ToObject.box(res);
            }
            case 3: 
            {
                return aos.util.ToObject.box(genericactgoal_p);
            }
            default: 
            {
                throw new java.lang.IndexOutOfBoundsException("Plan " + this + " does not have variable number " + n);
            }
        }
    }
    
    public java.lang.String[] reasoningMethods()
    {
        return mergeReasoningMethods(__reasoningMethods,super.reasoningMethods());
    }
    
    public aos.jack.jak.cursor.Cursor context()
    {
        try {
            return (((true)?aos.jack.jak.cursor.Cursor.trueCursor:aos.jack.jak.cursor.Cursor.falseCursor));
        }
        catch (java.lang.Exception e) {
            e.printStackTrace();
            return aos.jack.jak.cursor.Cursor.falseCursor;
        }
    }
    
    class __bodyFSM extends aos.jack.jak.plan.PlanFSM implements aos.jack.jak.core.Generator {
        double[] __local__6_0;
        int __local__6_1;
        java.lang.Object[] __local__6_2;
        io.github.agentsoz.abmjack.env.GenericActGoal __local__6_3;
        long __local__6_4;
        long __local__6_5;
        long __local__6_6;
        private int __breakLevel = 0;
        public int run(int __status)
            throws java.lang.Throwable
        {
            do {
                try {
                    if (__tothrow != null) 
                        throw __tothrow;
                    if ((aos.jack.jak.core.Jak.debugging & aos.jack.jak.core.Jak.LOG_PLANS) != 0) 
                        aos.util.logging.LogMsg.log(this,aos.jack.jak.core.Jak.LOG_PLANS,__task + "-RelsP.body:" + java.lang.Integer.toString(__state));
                    if (__task.nsteps > 0) {
                        __task.nsteps-- ;
                        if (__task.nsteps == 0) 
                            agent.changeFocus();
                    }
                    if (__state < 10) {
                        __status = super.stdrun(scenarioTWO.plans.RelsP.this,__status);
                        if (__status != CONTINUE || agent.changing_focus) 
                            return __status;
                        continue;
                    }
                    __curstate = __state;
                    switch (__state) {
                        default: 
                        {
                            aos.jack.jak.core.Jak.error("RelsP.body: Illegal state");
                            return FAILED_STATE;
                        }
                        //* (50) 		double[] relCoords = getRandomCoordinate(); // 1. get a destination
                        case 10: 
                        {
                            __breakLevel = 0;
                            __local__6_0 = getRandomCoordinate();
                            __state = 11;
                            break;
                        }
                        //* (51) 		int pickuptime = res.bdiConnector.getPickupTime() * 60; // 2. get a random pickup time in minutes and convert it to seconds
                        case 11: 
                        {
                            __local__6_1 = res.bdiConnector.getPickupTime() * 60;
                            __state = 12;
                            break;
                        }
                        //* (53) 		res.initiatedAction=ActionID.DRIVETO_AND_PICKUP;
                        case 12: 
                        {
                            __state = 13;
                            // 2. get a random pickup time in minutes and convert it to seconds

                            res.initiatedAction = io.github.agentsoz.bushfiretute.shared.ActionID.DRIVETO_AND_PICKUP;
                            break;
                        }
                        //* (54) 		res.targetDestination="Relatives";
                        case 13: 
                        {
                            __state = 14;
                            res.targetDestination = "Relatives";
                            break;
                        }
                        //* (56) 		Object[] params = new Object[] { (Object)ActionID.DRIVETO_AND_PICKUP , relCoords, res.targetDestination, pickuptime};
                        case 14: 
                        {
                            __local__6_2 = new java.lang.Object[]{
                                (java.lang.Object) io.github.agentsoz.bushfiretute.shared.ActionID.DRIVETO_AND_PICKUP,
                                __local__6_0,
                                res.targetDestination,
                                __local__6_1};
                            __state = 15;
                            break;
                        }
                        //* (58) 		res.log("picking up relatives; action "+ActionID.DRIVETO_AND_PICKUP + "; relatives are at " + relCoords[0] +","+ relCoords[1] + "; pickup-time is "+ pickuptime );
                        case 15: 
                        {
                            __state = 16;
                            res.log("picking up relatives; action " + io.github.agentsoz.bushfiretute.shared.ActionID.DRIVETO_AND_PICKUP + "; relatives are at " + __local__6_0[0] + "," + __local__6_0[1] + "; pickup-time is " + __local__6_1);
                            break;
                        }
                        //* (60) 		GenericActGoal gag = genericactgoal_p.act(res.getActionManager(), ActionID.DRIVETO_AND_PICKUP, params );
                        case 16: 
                        {
                            __local__6_3 = genericactgoal_p.act(res.getActionManager(),io.github.agentsoz.bushfiretute.shared.ActionID.DRIVETO_AND_PICKUP,__local__6_2);
                            __state = 17;
                            break;
                        }
                        //* (61) 		long startTime = res.getCurrentTime();
                        case 17: 
                        {
                            __local__6_4 = res.getCurrentTime();
                            __state = 18;
                            break;
                        }
                        //* (62) 		@subtask( gag );
                        case 18: 
                        {
                            __task.push(__local__6_3);
                            __state = -__state;
                            __subtask_pass = 19;
                            __subtask_fail = 4;
                            return SUBTASK;
                        }
                        //* (67) 		long endTime = res.getCurrentTime();
                        case 19: 
                        {
                            __local__6_5 = res.getCurrentTime();
                            __state = 20;
                            break;
                        }
                        //* (68) 		long tripTime = (endTime - pickuptime) - startTime;
                        case 20: 
                        {
                            __local__6_6 = (__local__6_5 - __local__6_1) - __local__6_4;
                            __state = 21;
                            break;
                        }
                        //* (69) 		res.addToTravelTime(tripTime);
                        case 21: 
                        {
                            __state = 22;
                            res.addToTravelTime(__local__6_6);
                            break;
                        }
                        //* (70) 		res.log("picked up relatives at time " + endTime);
                        case 22: 
                        {
                            __state = 23;
                            res.log("picked up relatives at time " + __local__6_5);
                            break;
                        }
                        //* (48) 	body()
                        case 23: 
                        {
                            if (__pending == null) 
                                __state = PASSED_STATE;
                            __tothrow = __pending;
                            break;
                        }
                    }
                }
                catch (java.lang.Throwable e) {
                    handleException(e,__exMap_body);
                }
            }
             while (!agent.changing_focus);
            return CONTINUE;
        }
        
        public java.lang.String methodName()
        {
            return "body";
        }
        
        __bodyFSM()
        {
        }
        
        public java.lang.String stateInfo()
        {
            int n = __curstate;
            java.lang.String file = __tt__body[0];
            java.lang.String method = __tt__body[1];
            if (n < 0) 
                n = -n;
            n -= (10 - 2);
            java.lang.String line = (n < 2)?"??":__tt__body[n];
            return file + ":" + line + " " + method + " [" + __curstate + "]";
        }
        
        public java.lang.Object genObject(int __index)
        {
            switch (__index) {
            }
            aos.jack.jak.core.Jak.error("illegal Object Construction");
            return null;
        }
        
        public aos.jack.jak.cursor.Cursor genCursor(int __index)
            throws java.lang.Exception
        {
            switch (__index) {
            }
            aos.jack.jak.core.Jak.error("illegal Cursor Construction");
            return null;
        }
        
        public aos.jack.jak.fsm.FSM genFSM(int __index)
            throws java.lang.Exception
        {
            switch (__index) {
            }
            aos.jack.jak.core.Jak.error("illegal FSM Construction");
            return null;
        }
        
        public boolean testCondition(int __index)
            throws java.lang.Exception
        {
            switch (__index) {
            }
            aos.jack.jak.core.Jak.error("illegal test Construction");
            return false;
        }
        
        public aos.jack.jak.plan.Plan getPlan()
        {
            return scenarioTWO.plans.RelsP.this;
        }
        
        protected aos.jack.jak.fsm.FSM fail()
        {
            return getPlan().fail();
        }
        
        protected aos.jack.jak.fsm.FSM pass()
        {
            return getPlan().pass();
        }
        
        public void enter()
        {
            __trace = agent.trace("scenarioTWO.plans.RelsP.body");
        }
        
        public java.lang.Object getVariable(int n)
        {
            switch (n) {
                case 0: 
                {
                    return aos.util.ToObject.box(__local__6_0);
                }
                case 1: 
                {
                    return aos.util.ToObject.box(__local__6_1);
                }
                case 2: 
                {
                    return aos.util.ToObject.box(__local__6_2);
                }
                case 3: 
                {
                    return aos.util.ToObject.box(__local__6_3);
                }
                case 4: 
                {
                    return aos.util.ToObject.box(__local__6_4);
                }
                case 5: 
                {
                    return aos.util.ToObject.box(__local__6_5);
                }
                case 6: 
                {
                    return aos.util.ToObject.box(__local__6_6);
                }
                default: 
                {
                    throw new java.lang.IndexOutOfBoundsException("Reasoning Method " + methodName() + " does not have variable number " + n);
                }
            }
        }
        
        public java.lang.String[] variableNames()
        {
            return __fsmVariableNames_body;
        }
        
        public java.lang.String[] variableTypes()
        {
            return __fsmTypes_body;
        }
        
        public java.lang.String[] variableLocalNames()
        {
            return __fsmLocalNames_body;
        }
        
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy