Herdmember
Overview
This component tracks and manages an entity's association with a herd. It handles automatic herd creation or reassignment, tag management, and membership lifecycle events such as leaving or rejoining a herd.
Dependencies & Tags
- Dependencies:
healthcomponent (used to prevent herd creation for dead entities)
- Tags added/removed:
- Adds
"herdmember"tag when enabled - Removes
"herdmember"tag when disabled or component removed
- Adds
Properties
| Property | Type | Default Value | Description |
|---|---|---|---|
enabled | boolean | true | Controls whether the entity actively participates in herd behavior (e.g., herd creation, membership). |
herd | GODATA? | nil | Reference to the herd entity this member belongs to (may be invalid or nil). |
herdprefab | string | "beefaloherd" | Prefab name of the herd to spawn if no herd exists. |
task | GDTASK? | nil | Delayed task reference used for deferred herd initialization. |
Main Functions
SetHerd(herd)
- Description: Assigns the given
herdentity as this member’s current herd. - Parameters:
herd(GODATA?): The herd entity to associate with.
SetHerdPrefab(prefab)
- Description: Updates the prefab name used when creating a new herd.
- Parameters:
prefab(string): The new prefab name (e.g.,"beefaloherd").
GetHerd()
- Description: Returns the current herd reference.
- Returns:
GODATA?— The currently assigned herd entity.
CreateHerd()
- Description: Spawns a new herd entity (using
herdprefab) at the member’s current position and triggers herd-wide gathering if the herd has aherdcomponent. Only runs if enabled, no valid herd exists, and the member is alive. - Parameters: None.
Leave()
- Description: Removes this entity from its current herd (if valid) and schedules a respawn of a new herd after a 5-second delay, provided the component remains enabled.
- Parameters: None.
Enable(enabled)
- Description: Enables or disables the component. Disabling removes the member from its herd; enabling without a valid herd schedules herd creation after 5 seconds.
- Parameters:
enabled(boolean): Whether to enable participation in herd behavior.
GetDebugString()
- Description: Returns a debug string containing the current herd reference and whether the component is disabled.
- Returns:
string— e.g.,"herd:beefaloherd:123 disabled"or"herd:nil".
Events & Listeners
- Listens for:
enabledevent (via setter in class definition) → triggersonenabled(self, enabled)to add/remove"herdmember"tag
- Pushes/Triggers:
- None directly (relies on herd component methods like
RemoveMemberfor side effects)
- None directly (relies on herd component methods like