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); } }
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); } }
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(""); } }
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); }
public int GetSensorValue(SensorID sensor) { return(sensor_values_[(int)sensor]); }