Class Animal
Inheritance
System.Object
Animal
Implements
System.IComparable
System.IDisposable
Assembly: Eco.Simulation.dll
Syntax
public abstract class Animal : Organism, IPredator, ITickable, IComparable, IBehaviorControlled, INetTrafficCategory, ICanTakeDamage, IPrey, INetObjectPosition, INetObject, IPositionAndBounds, IDisposable
Constructors
Animal(AnimalSpecies, Vector3, Boolean)
Declaration
protected Animal(AnimalSpecies species, Vector3 pos, bool corpse = false)
Parameters
Type |
Name |
Description |
AnimalSpecies |
species |
|
System.Numerics.Vector3 |
pos |
|
System.Boolean |
corpse |
|
Fields
AiTarget
Declaration
Field Value
AngerLevelToAttack
Declaration
public const float AngerLevelToAttack = 4F
Field Value
Type |
Description |
System.Single |
|
DefaultChanceToStopFleeing
Declaration
public const float DefaultChanceToStopFleeing = 0.55F
Field Value
Type |
Description |
System.Single |
|
DefaultFleeDuration
Declaration
public const double DefaultFleeDuration = 5
Field Value
Type |
Description |
System.Double |
|
Destroyed
Declaration
public readonly ThreadSafeAction<Animal> Destroyed
Field Value
DoNotContinueToWanderMemory
Declaration
public const string DoNotContinueToWanderMemory = "DoNotContinueToWander"
Field Value
Type |
Description |
System.String |
|
EarlyTickDistance
Declaration
public const float EarlyTickDistance = 4F
Field Value
Type |
Description |
System.Single |
|
FleePosition
Declaration
public Vector3 FleePosition
Field Value
Type |
Description |
System.Numerics.Vector3 |
|
FleeTarget
Declaration
public INetObjectPosition FleeTarget
Field Value
FleeTargetDistance
Declaration
public const float FleeTargetDistance = 15F
Field Value
Type |
Description |
System.Single |
|
FleeThreshold
Declaration
public const float FleeThreshold = 100F
Field Value
Type |
Description |
System.Single |
|
Floating
Declaration
Field Value
Type |
Description |
System.Boolean |
|
IsAnimalKilledMemory
Declaration
public const string IsAnimalKilledMemory = "IsAnimalKilled"
Field Value
Type |
Description |
System.String |
|
IsPlayerAttackedMemory
Declaration
public const string IsPlayerAttackedMemory = "IsPlayerAttacked"
Field Value
Type |
Description |
System.String |
|
LayToFleeTime
Declaration
public const float LayToFleeTime = 0.5F
Field Value
Type |
Description |
System.Single |
|
MaxAlertness
Declaration
public const float MaxAlertness = 255F
Field Value
Type |
Description |
System.Single |
|
PredatorAlertRate
Declaration
public const float PredatorAlertRate = 50F
Field Value
Type |
Description |
System.Single |
|
Prey
Declaration
Field Value
RunOrAttackMemory
Declaration
public const string RunOrAttackMemory = "RunOrAttack"
Field Value
Type |
Description |
System.String |
|
ShouldFleeTillMemory
Declaration
public const string ShouldFleeTillMemory = "ShouldFleeTill"
Field Value
Type |
Description |
System.String |
|
TriesToUnStuckMemory
Declaration
public const string TriesToUnStuckMemory = "TriesToUnStuck"
Field Value
Type |
Description |
System.String |
|
WakeUpAlertness
Declaration
public const float WakeUpAlertness = 50F
Field Value
Type |
Description |
System.Single |
|
Properties
Active
Declaration
public bool Active { get; }
Property Value
Type |
Description |
System.Boolean |
|
Alertness
Declaration
public float Alertness { get; set; }
Property Value
Type |
Description |
System.Single |
|
Anger
Declaration
public float Anger { get; set; }
Property Value
Type |
Description |
System.Single |
|
AttachedEntities
Declaration
public List<NetEntity> AttachedEntities { get; set; }
Property Value
Type |
Description |
System.Collections.Generic.List<NetEntity> |
|
BaseVelocity
Declaration
public Vector3 BaseVelocity { get; }
Property Value
Type |
Description |
System.Numerics.Vector3 |
|
Bounds
Declaration
public Rect Bounds { get; }
Property Value
Brain
Declaration
public Brain Brain { get; set; }
Property Value
CanInterruptMovement
Declaration
public bool CanInterruptMovement { get; }
Property Value
Type |
Description |
System.Boolean |
|
Controller
Declaration
public INetObjectViewer Controller { get; set; }
Property Value
DebugData
Declaration
public BehaviorDebugData DebugData { get; set; }
Property Value
DesiredSpeed
Declaration
public float DesiredSpeed { get; }
Property Value
Type |
Description |
System.Single |
|
DestinationReachTime
Declaration
public float DestinationReachTime { get; }
Property Value
Type |
Description |
System.Single |
|
DetectionRange
Declaration
public float DetectionRange { get; }
Property Value
Type |
Description |
System.Single |
|
FacingDir
Declaration
public Vector3 FacingDir { get; }
Property Value
Type |
Description |
System.Numerics.Vector3 |
|
GroundPosition
Declaration
public Vector3 GroundPosition { get; }
Property Value
Type |
Description |
System.Numerics.Vector3 |
|
Health
Declaration
public float Health { get; }
Property Value
Type |
Description |
System.Single |
|
Hunger
Declaration
public float Hunger { get; set; }
Property Value
Type |
Description |
System.Single |
|
ID
Declaration
Property Value
Type |
Description |
System.Int32 |
|
IsStunned
Declaration
public bool IsStunned { get; set; }
Property Value
Type |
Description |
System.Boolean |
|
LastUpdated
Declaration
public double LastUpdated { get; }
Property Value
Type |
Description |
System.Double |
|
LayerHomePos
Declaration
public Vector2i LayerHomePos { get; set; }
Property Value
Memory
Declaration
public IDictionary<string, object> Memory { get; }
Property Value
Type |
Description |
System.Collections.Generic.IDictionary<System.String, System.Object> |
|
MinimumNextTick
Declaration
public double MinimumNextTick { get; set; }
Property Value
Type |
Description |
System.Double |
|
NetObjectCreationRealtime
Declaration
public double NetObjectCreationRealtime { get; set; }
Property Value
Type |
Description |
System.Double |
|
NetTrafficCategory
Declaration
public string NetTrafficCategory { get; }
Property Value
Type |
Description |
System.String |
|
NextTick
Declaration
public override double NextTick { get; set; }
Property Value
Type |
Description |
System.Double |
|
Overrides
Position
Declaration
public sealed override Vector3 Position { get; set; }
Property Value
Type |
Description |
System.Numerics.Vector3 |
|
Overrides
RemainingPathTime
Declaration
public float RemainingPathTime { get; }
Property Value
Type |
Description |
System.Single |
|
RouteDestination
Declaration
public Nullable<Vector3> RouteDestination { get; }
Property Value
Type |
Description |
System.Nullable<System.Numerics.Vector3> |
|
ShouldSleep
Declaration
public virtual (bool, string) ShouldSleep { get; }
Property Value
Type |
Description |
System.ValueTuple<System.Boolean, System.String> |
|
Species
Declaration
public AnimalSpecies Species { get; }
Property Value
StartTime
Declaration
public double StartTime { get; }
Property Value
Type |
Description |
System.Double |
|
State
Declaration
public AnimalState State { get; }
Property Value
Target
Declaration
public Nullable<Vector3> Target { get; }
Property Value
Type |
Description |
System.Nullable<System.Numerics.Vector3> |
|
UpdateChannel
Declaration
public NetworkChannel UpdateChannel { get; }
Property Value
Visible
Declaration
public bool Visible { get; }
Property Value
Type |
Description |
System.Boolean |
|
WorldHomePos
Declaration
public override Vector2i WorldHomePos { get; }
Property Value
Overrides
Methods
AlertNearbyAnimals(Vector3, Single, Single)
Apply special cases for running from a dangerous place
Declaration
public static void AlertNearbyAnimals(Vector3 position, float range, float alertness = 150F)
Parameters
Type |
Name |
Description |
System.Numerics.Vector3 |
position |
|
System.Single |
range |
|
System.Single |
alertness |
|
Attack()
Declaration
BehaviorDo(String)
Declaration
public void BehaviorDo(string behName)
Parameters
Type |
Name |
Description |
System.String |
behName |
|
BehaviorPause(Boolean)
Declaration
public void BehaviorPause(bool paused)
Parameters
Type |
Name |
Description |
System.Boolean |
paused |
|
BehaviorStep()
Declaration
public void BehaviorStep()
ChangeState(AnimalState, Single, Boolean)
Declaration
public BTResult ChangeState(AnimalState state, float duration, bool stopMovement)
Parameters
Type |
Name |
Description |
AnimalState |
state |
|
System.Single |
duration |
|
System.Boolean |
stopMovement |
|
Returns
CheckAndConsumeDoNotContinueToWanderFlag()
Declaration
public bool CheckAndConsumeDoNotContinueToWanderFlag()
Returns
Type |
Description |
System.Boolean |
|
ClearRoute()
Make full stop for an animal and clear route
Declaration
Damage(Single)
Apply some damage to the animal - if it dies, return true.
Declaration
public bool Damage(float amount)
Parameters
Type |
Name |
Description |
System.Single |
amount |
|
Returns
Type |
Description |
System.Boolean |
|
DesiredDirection(Single)
Declaration
public Vector3 DesiredDirection(float lookAhead)
Parameters
Type |
Name |
Description |
System.Single |
lookAhead |
|
Returns
Type |
Description |
System.Numerics.Vector3 |
|
Destroy()
Declaration
public override void Destroy()
Overrides
Dispose()
Declaration
Dispose(Boolean)
Declaration
protected virtual void Dispose(bool disposing)
Parameters
Type |
Name |
Description |
System.Boolean |
disposing |
|
FleeFrom(Vector3, Double, Boolean)
Declaration
public virtual void FleeFrom(Vector3 position, double fleeDuration = 5, bool forceTick = false)
Parameters
Type |
Name |
Description |
System.Numerics.Vector3 |
position |
|
System.Double |
fleeDuration |
|
System.Boolean |
forceTick |
|
Declaration
public BTStatus FleeFromImmediately(Vector3 position, double fleeDuration = 5)
Parameters
Type |
Name |
Description |
System.Numerics.Vector3 |
position |
|
System.Double |
fleeDuration |
|
Returns
ForceTick()
Forces NextTick, usually as reaction on an event. Only updates if NextTick planned for latter time. Otherwise because ticks processed by queue by updating time it may be moved latter in processing queue.
Declaration
GetDirectionHome()
Declaration
public Vector2 GetDirectionHome()
Returns
GetFleeDirection()
Returns direction from FleePosition to current animal position.
Declaration
public Vector3 GetFleeDirection()
Returns
Type |
Description |
System.Numerics.Vector3 |
|
GetFleeDirectionWithChanceToStopFleeing(Single)
Declaration
public Vector3 GetFleeDirectionWithChanceToStopFleeing(float chanceToStopFleeing = 0.55F)
Parameters
Type |
Name |
Description |
System.Single |
chanceToStopFleeing |
|
Returns
Type |
Description |
System.Numerics.Vector3 |
|
GetObservedLevel()
Declaration
public float GetObservedLevel()
Returns
Type |
Description |
System.Single |
|
IsNotRelevant(INetObjectViewer)
Declaration
public bool IsNotRelevant(INetObjectViewer viewer)
Parameters
Returns
Type |
Description |
System.Boolean |
|
IsRelevant(INetObjectViewer)
Declaration
public bool IsRelevant(INetObjectViewer viewer)
Parameters
Returns
Type |
Description |
System.Boolean |
|
IsUpdated(INetObjectViewer)
Declaration
public bool IsUpdated(INetObjectViewer viewer)
Parameters
Returns
Type |
Description |
System.Boolean |
|
Kill()
Declaration
KillAndDestroy()
Destroy animal entity completely from client request
Declaration
public void KillAndDestroy()
LookAt(Vector3i)
Declaration
public void LookAt(Vector3i lookAtPos)
Parameters
Type |
Name |
Description |
Vector3i |
lookAtPos |
|
LookAt(INetObjectPosition)
Declaration
public void LookAt(INetObjectPosition objectPosition)
Parameters
ObstacleAvoidance(Vector3, Boolean)
Try avoid dynamic obstacles in front of us. Forced flag allows to recalculate path even if animal already fleeing from some position.
Declaration
public void ObstacleAvoidance(Vector3 obstaclePosition, bool forced)
Parameters
Type |
Name |
Description |
System.Numerics.Vector3 |
obstaclePosition |
|
System.Boolean |
forced |
|
OnPickup()
Declaration
protected void OnPickup()
Declaration
public virtual void OnPredatorDetected(IPredator predator, float distance)
Parameters
Type |
Name |
Description |
IPredator |
predator |
|
System.Single |
distance |
|
Declaration
public virtual void OnPreyDetected(IPrey newprey)
Parameters
Type |
Name |
Description |
IPrey |
newprey |
|
ReceiveInitialState(BSONObject)
Declaration
public virtual void ReceiveInitialState(BSONObject bsonObj)
Parameters
ReceiveUpdate(BSONObject)
Declaration
public virtual void ReceiveUpdate(BSONObject bsonObj)
Parameters
RemoveController()
Declaration
public void RemoveController()
SendInitialState(BSONObject, INetObjectViewer)
Declaration
public void SendInitialState(BSONObject obj, INetObjectViewer viewer)
Parameters
SendUpdate(BSONObject, INetObjectViewer)
Declaration
public void SendUpdate(BSONObject obj, INetObjectViewer viewer)
Parameters
SetController(INetObjectViewer, INetObjectViewer)
Thread safe controller setter which checks for old viewer before replace with new viewer.
Declaration
public void SetController(INetObjectViewer newViewer, INetObjectViewer oldViewer)
Parameters
SetFleePositionAndDuration(Vector3, Double)
Sets flee position and duration which should initiate actual flee behavior.
Declaration
public void SetFleePositionAndDuration(Vector3 position, double duration)
Parameters
Type |
Name |
Description |
System.Numerics.Vector3 |
position |
|
System.Double |
duration |
|
SetMemory(String, Object)
Only call this from the simulation thread to keep memory simple
Declaration
public void SetMemory(string name, object memory)
Parameters
Type |
Name |
Description |
System.String |
name |
|
System.Object |
memory |
|
SetRoute(Route, AnimalState, Nullable<Vector3i>, Single)
Set the route of the animal, making sure to change the state and update the next tick based on the distance and speed. Returns needed time to finish the path
Declaration
public float SetRoute(Route route, AnimalState state, Nullable<Vector3i> look = null, float delay = 0F)
Parameters
Type |
Name |
Description |
Route |
route |
|
AnimalState |
state |
|
System.Nullable<Vector3i> |
look |
|
System.Single |
delay |
Start of the route is delayed by this number of seconds by adding them to initial rotation time.
|
Returns
Type |
Description |
System.Single |
|
ShouldFlee()
Declaration
Returns
Type |
Description |
System.Boolean |
|
ShouldFlee(Behavior<Animal>)
Declaration
public virtual bool ShouldFlee(Behavior<Animal> beh)
Parameters
Returns
Type |
Description |
System.Boolean |
|
Declaration
public bool ShouldFleeUs(IPrey prey)
Parameters
Type |
Name |
Description |
IPrey |
prey |
|
Returns
Type |
Description |
System.Boolean |
|
Declaration
public bool ShouldPredatorAttack(IPredator predator)
Parameters
Returns
Type |
Description |
System.Boolean |
|
StopFlee()
Declaration
Stun(Boolean)
Declaration
public void Stun(bool isStunned)
Parameters
Type |
Name |
Description |
System.Boolean |
isStunned |
|
Tick()
Declaration
public override void Tick()
Overrides
TryDamage(INetObject, Single)
Tries to make damage to animal. Returns false
if animal can't take damage (already dead).
Declaration
public bool TryDamage(INetObject source, float amount)
Parameters
Type |
Name |
Description |
INetObject |
source |
|
System.Single |
amount |
|
Returns
Type |
Description |
System.Boolean |
|
Implements
System.IComparable
System.IDisposable
Extension Methods