Exemple #1
0
    bool IsSensorEnabled(SensorID id)
    {
        switch (id)
        {
        case SensorID.Plants: return(body.data.useNutrients || body.data.useFoodStats);

        case SensorID.Microbes: return(body.data.useFoodPosition);

        case SensorID.Eggs: return(body.data.useEggs);

        case SensorID.Meat: return(body.data.useFoodVelocity);

        case SensorID.Corpse: return(body.data.useCorpse);

        case SensorID.Friend: return(body.data.hasAnimalSensor);    //friend.usePos || friend.useVel || friend.useDir;

        case SensorID.Foe: return(body.data.hasAnimalSensor);       //threat.usePos || threat.useVel || threat.useDir;

        case SensorID.Water: return(body.data.useWaterStats);

        case SensorID.Wall: return(false);

        case SensorID.Internals: return(true);

        case SensorID.Communication: return(body.data.hasComms);

        case SensorID.Contact: return(true);

        default: return(false);
        }
    }
Exemple #2
0
    bool IsSensorInActiveState(SensorID id)
    {
        switch (id)
        {
        case SensorID.Plants: return(agent.foodModule.nutrientGradX != null);

        case SensorID.Microbes: return(true);

        case SensorID.Eggs: return(body.data.useEggs);

        case SensorID.Meat: return(agent.foodModule.foodAnimalVelX != null);

        case SensorID.Corpse: return(body.data.useCorpse);

        case SensorID.Friend: return(agent.friendModule.friendDirX != null);

        case SensorID.Foe: return(agent.threatsModule.enemyDirX != null);

        case SensorID.Water: return(agent.environmentModule.waterDepth != null);

        case SensorID.Internals: return(true);

        case SensorID.Communication: return(body.data.hasComms);

        case SensorID.Contact: return(true);

        default: return(false);
        }
    }
Exemple #3
0
    string GetSensorEnabledText(SensorID id)
    {
        switch (id)
        {
        case SensorID.Plants: return("nutrientDir [" + agent.foodModule.nutrientGradX[0].ToString("F2") +
                                     "," + agent.foodModule.nutrientGradY[0].ToString("F2"));

        case SensorID.Microbes: return("Microbes: " + agent.foodModule.nearestAnimalParticlePos);

        case SensorID.Eggs: return("Eggs [" + agent.foodModule.foodEggDirX[0].ToString("F2") +
                                   "," + agent.foodModule.foodEggDirY[0].ToString("F2") +
                                   "] d: " + agent.foodModule.foodEggDistance[0].ToString("F2"));

        case SensorID.Meat: return("Animal vel [" + agent.foodModule.foodAnimalVelX[0].ToString("F2") +
                                   "," + agent.foodModule.foodAnimalVelY[0].ToString("F2") + "]");

        case SensorID.Corpse: return("Carrion [" + agent.foodModule.foodCorpseDirX[0].ToString("F2") +
                                     "," + agent.foodModule.foodCorpseDirY[0].ToString("F2") +
                                     "] d: " + agent.foodModule.foodCorpseDistance[0].ToString("F2"));

        case SensorID.Friend: return("Friend [" + agent.friendModule.friendDirX[0].ToString("F2") +
                                     "," + agent.friendModule.friendDirY[0].ToString("F2") +
                                     "] vel [" + agent.friendModule.friendVelX[0].ToString("F2") +
                                     "," + agent.friendModule.friendVelY[0].ToString("F2") + "]");

        case SensorID.Foe: return("Foe: " + agent.threatsModule.enemyDirX[0].ToString("F2") +
                                  "," + agent.threatsModule.enemyDirY[0].ToString("F2"));

        case SensorID.Water: return("Water: " + agent.environmentModule.waterDepth[0].ToString("F2") +
                                    ", vel [" + agent.environmentModule.waterVelX[0].ToString("F2") +
                                    "," + agent.environmentModule.waterVelY[0].ToString("F2") + "]");

        case SensorID.Internals: return("Health: " + agent.coreModule.hitPoints[0].ToString("F2") +
                                        ", Energy: " + agent.coreModule.energyStored[0].ToString("F2"));

        case SensorID.Communication: return("CommsIn " + agent.communicationModule.inComm0[0].ToString("F2") +
                                            ", " + agent.communicationModule.inComm1[0].ToString("F2") +
                                            ", " + agent.communicationModule.inComm2[0].ToString("F2") +
                                            ", " + agent.communicationModule.inComm3[0].ToString("F2"));

        case SensorID.Contact: return("Contact Force [" + agent.coreModule.contactForceX[0].ToString("F2") +
                                      "," + agent.coreModule.contactForceY[0].ToString("F2") + "]");

        default: return("");
        }
    }
Exemple #4
0
        public int GetValue(SensorID sensorID)
        {
            int value = 0;
            int i     = (int)sensorID;

            if (i >= spGroup.offsetInSensorDesc && i < spGroup.offsetInSensorDesc + spGroup.numItems)
            {
                int offsetInBytes = sd[i].offset - sd[spGroup.offsetInSensorDesc].offset;
                if (sd[i].numBytes == 1)
                {
                    value = (int)bytes[offsetInBytes];
                }
                else if (sd[i].numBytes == 2)
                {
                    Int16 value16 = (Int16)(bytes[offsetInBytes] * 256 + bytes[offsetInBytes + 1]);
                    value = (int)value16;
                }
            }
            // else invalid return

            return(value);
        }
Exemple #5
0
 public int GetSensorValue(SensorID sensor)
 {
     return(sensor_values_[(int)sensor]);
 }