Skip to content

Commit

Permalink
chore: Create BaseEntityInputs and BaseEntityOutputs to match up with…
Browse files Browse the repository at this point in the history
… upstream HammerAddons

We need to backport this change, as postcompiler extends BaseEntityInputs
  • Loading branch information
ozxybox committed Nov 8, 2024
1 parent bc3e47f commit a288e81
Show file tree
Hide file tree
Showing 4 changed files with 102 additions and 221 deletions.
65 changes: 3 additions & 62 deletions fgd/bases/BaseEntity.fgd
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
// Special case - entities that aren't quite brushes or point ents.
@BaseClass = BaseEntity
@BaseClass
base(BaseEntityIO)
= BaseEntity
[
targetname(target_source) : "Name" : : "The name that other entities refer to this entity by."
globalname(string) : "Global Entity Name" : : "Name by which this entity is linked to another entity in a different map. " +
Expand All @@ -10,65 +12,4 @@
thinkfunction[VSCRIPT](string) : "Script think function" : : "Name of a function in this entity's script scope which will be called automatically."

linedivider_base[!engine](string) readonly : "----------------------------------------------------------------------------------------------------------" : ""

// Inputs
input Kill(void) : "Removes this entity from the world."
input KillHierarchy(void) : "Removes this entity and all its children from the world."
input AddOutput(string) : "Adds an entity I/O connection to this entity or changes keyvalues dynamically. Format:" +
"\n'<output name> <targetname>:<inputname>:" +
"<parameter>:<delay>:<max times to fire (-1 == infinite, 1 = only once)>'\n" +
"or 'keyvalue newval'. Very dangerous, use with care."
input FireUser1(void) : "Causes this entity's OnUser1 output to be fired."
input FireUser2(void) : "Causes this entity's OnUser2 output to be fired."
input FireUser3(void) : "Causes this entity's OnUser3 output to be fired."
input FireUser4(void) : "Causes this entity's OnUser4 output to be fired."
input Use(void) : "Same as a player invoking +use; may not do anything. Can also be invoked by creating an output that does not specify an input."

input RunScriptFile[VSCRIPT](string) : "Execute a game script file from disk."
input RunScriptCode[+VSCRIPT](script) : "Execute a string of script source code."
input CallScriptFunction[VSCRIPT](string) : "Execute the given function name."

input CancelPending(void) : "Cancel any events fired by this relay that are currently pending in the I/O event queue."
input PassUser1(string) : "Causes this entity's OutUser1 output to be fired, passing along the parameter unchanged."
input PassUser2(string) : "Causes this entity's OutUser2 output to be fired, passing along the parameter unchanged."
input PassUser3(string) : "Causes this entity's OutUser3 output to be fired, passing along the parameter unchanged."
input PassUser4(string) : "Causes this entity's OutUser4 output to be fired, passing along the parameter unchanged."

input FireRandomUser(void) : "Fires OnUser1, OnUser2, OnUser3, or OnUser4 with a 25% chance of each."
input PassRandomUser(string) : "Fires OutUser1, OutUser2, OutUser3, or OutUser4 with a 25% chance of each. The parameter is passed along unchanged."

input KillIfNotVisible(void) : "Removes this entity if it is not in the player's viewcone."
input KillWhenNotVisible(void) : "Removes this entity when it is not in the player's viewcone."

input FireOutput(string) : "Fires the named output on this entity. Format: '<output name>:<activator>:<caller>:<parameter>:<delay>' (OnDeath:hl3cardgame:gaben). Everything beyond the output name is optional."
input RemoveOutput(string) : "Removes all instances of the named output on this entity. Wildcards are supported, meaning you could just pass '*' to wipe all outputs from this entity."
input AcceptInput(string) : "Fires the named input on this entity. Format: '<input name>:<parameter>:<activator>:<caller>:<output ID>' (SetTarget:cheese). Everything beyond the input name is optional. Mind the fact this is arranged differently from FireOutput, having the parameter right after the input name."
input CancelPending(void) : "Cancels any events fired by this entity that are currently pending in the I/O event queue."

input AddSpawnFlags(integer) : "Adds spawnflag(s) to this entity. Many spawnflags have their respective numbers suffixed in this FGD."
input RemoveSpawnFlags(integer) : "Removes spawnflag(s) to this entity. Many spawnflags have their respective numbers suffixed in this FGD."

input AddSolidFlags(integer) : "Adds solid flags to this entity."
input RemoveSolidFlags(integer) : "Removes solid flags from this entity."

input ChangeVariable(string) : "Similar to AddOutput, except it changes an internal variable similar to logic_datadesc_accessor instead. Very dangerous, use with care."

input SetEntityName(target_destination) : "Sets this entity's name that other entities should refer to it by."
input SetTarget(target_destination) : "Sets this entity's target. This is specific to certain entities, particularly logic entities that involve a target."
input SetOwnerEntity(target_destination) : "Sets this entity's owner entity. This has nothing to do with parenting and has more to do with collision and kill credits."

input SetThinkNull(void) : "Sets this entity's general think function to null. Behavior varies from entity to entity.."

input Use(void) : "More or less replicates the player interacting with an entity. (+USE)"

// Outputs
output OnUser1(void) : "Fired in response to FireUser1 input."
output OnUser2(void) : "Fired in response to FireUser2 input."
output OnUser3(void) : "Fired in response to FireUser3 input."
output OnUser4(void) : "Fired in response to FireUser4 input."

output OutUser1(string) : "Fires in response to PassUser1 input, with the parameter passed through unchanged."
output OutUser2(string) : "Fires in response to PassUser2 input, with the parameter passed through unchanged."
output OutUser3(string) : "Fires in response to PassUser3 input, with the parameter passed through unchanged."
output OutUser4(string) : "Fires in response to PassUser4 input, with the parameter passed through unchanged."
]
82 changes: 3 additions & 79 deletions fgd/bases/BaseEntityBrush.fgd
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
@BaseClass = BaseEntityBrush
@BaseClass
base(BaseEntityIO)
= BaseEntityBrush
[
targetname(target_source) : "Name" : : "The name that other entities refer to this entity by."
globalname(string) : "Global Entity Name" : : "Name by which this entity is linked to another entity in a different map. " +
Expand Down Expand Up @@ -41,82 +43,4 @@

linedivider_basebrush[!engine](string) readonly : "----------------------------------------------------------------------------------------------------------" : ""

// Inputs
input Kill(void) : "Removes this entity from the world."
input KillHierarchy(void) : "Removes this entity and all its children from the world."

input SetParent(target_destination) : "Changes the entity's parent in the movement hierarchy."
input SetParentAttachment(string) : "Change this entity to attach to a specific attachment point on its parent. Entities must be parented before being sent this input. The parameter passed in should be the name of the attachment."
input SetParentAttachmentMaintainOffset(string) : "Change this entity to attach to a specific attachment point on it's parent. Entities must be parented before being sent this input. The parameter passed in should be the name of the attachment. The entity will maintain it's position relative to the parent at the time it is attached."
input ClearParent(void) : "Removes this entity from the the movement hierarchy, leaving it free to move independently."
input SetLocalAngles(vector) : "Sets the rotation of the entity relative to the parent's rotation."
input SetLocalOrigin(vector) : "Sets the position of the entity relative to its parent if one exists. Otherwise relative to the world."
input SetAbsAngles(vector) : "Set this entity's angles, always relative to the world origin."

input AddOutput(string) : "Adds an entity I/O connection to this entity or changes keyvalues dynamically. Format:" +
"\n'<output name> <targetname>:<inputname>:" +
"<parameter>:<delay>:<max times to fire (-1 == infinite, 1 = only once)>'\n" +
"or 'keyvalue newval'. Very dangerous, use with care."
input FireUser1(void) : "Causes this entity's OnUser1 output to be fired."
input FireUser2(void) : "Causes this entity's OnUser2 output to be fired."
input FireUser3(void) : "Causes this entity's OnUser3 output to be fired."
input FireUser4(void) : "Causes this entity's OnUser4 output to be fired."
input Use(void) : "Same as a player invoking +use; may not do anything. Can also be invoked by creating an output that does not specify an input."
input RunScriptFile[VSCRIPT](string) : "Execute a game script file from disk."
input RunScriptCode[VSCRIPT](script) : "Execute a string of script source code."
input CallScriptFunction[VSCRIPT](string) : "Execute the given function name."

input PassUser1(string) : "Causes this entity's OutUser1 output to be fired, passing along the parameter unchanged."
input PassUser2(string) : "Causes this entity's OutUser2 output to be fired, passing along the parameter unchanged."
input PassUser3(string) : "Causes this entity's OutUser3 output to be fired, passing along the parameter unchanged."
input PassUser4(string) : "Causes this entity's OutUser4 output to be fired, passing along the parameter unchanged."

input FireRandomUser(void) : "Fires OnUser1, OnUser2, OnUser3, or OnUser4 with a 25% chance of each."
input PassRandomUser(string) : "Fires OutUser1, OutUser2, OutUser3, or OutUser4 with a 25% chance of each. The parameter is passed along unchanged."

input KillIfNotVisible(void) : "Removes this entity if it is not in the player's viewcone."
input KillWhenNotVisible(void) : "Removes this entity when it is not in the player's viewcone."

input FireOutput(string) : "Fires the named output on this entity. Format: '<output name>:<activator>:<caller>:<parameter>:<delay>' (OnDeath:hl3cardgame:gaben). Everything beyond the output name is optional."
input RemoveOutput(string) : "Removes all instances of the named output on this entity. Wildcards are supported, meaning you could just pass '*' to wipe all outputs from this entity."
input AcceptInput(string) : "Fires the named input on this entity. Format: '<input name>:<parameter>:<activator>:<caller>:<output ID>' (SetTarget:cheese). Everything beyond the input name is optional. Mind the fact this is arranged differently from FireOutput, having the parameter right after the input name."
input CancelPending(void) : "Cancels any events fired by this entity that are currently pending in the I/O event queue."

input FreeChildren(void) : "Unparents all direct children of this entity."
input SetLocalVelocity(vector) : "Sets this entity's current velocity."
input SetLocalAngularVelocity(vector) : "Sets this entity's current angular velocity."

input AddSpawnFlags(integer) : "Adds spawnflag(s) to this entity. Many spawnflags have their respective numbers suffixed in this FGD."
input RemoveSpawnFlags(integer) : "Removes spawnflag(s) to this entity. Many spawnflags have their respective numbers suffixed in this FGD."

input AddSolidFlags(integer) : "Adds solid flags to this entity."
input RemoveSolidFlags(integer) : "Removes solid flags from this entity."

input ChangeVariable(string) : "Similar to AddOutput, except it changes an internal variable similar to logic_datadesc_accessor instead. Very dangerous, use with care."

input SetHealth(integer) : "Sets this entity's health."
input AddHealth(integer) : "Adds to this entity's health."
input RemoveHealth(integer) : "Removes from this entity's health."

input SetMaxHealth(integer) : "Sets this entity's max health."

input SetEntityName(target_destination) : "Sets this entity's name that other entities should refer to it by."
input SetTarget(target_destination) : "Sets this entity's target. This is specific to certain entities, particularly logic entities that involve a target."
input SetOwnerEntity(target_destination) : "Sets this entity's owner entity. This has nothing to do with parenting and has more to do with collision and kill credits."

input SetThinkNull(void) : "Sets this entity's general think function to null. Behavior varies from entity to entity.."

input Use(void) : "More or less replicates the player interacting with an entity. (+USE)"
input Touch(target_destination) : "Simulates this entity touching the specified entity."

// Outputs
output OnUser1(void) : "Fired in response to FireUser1 input."
output OnUser2(void) : "Fired in response to FireUser2 input."
output OnUser3(void) : "Fired in response to FireUser3 input."
output OnUser4(void) : "Fired in response to FireUser4 input."

output OutUser1(string) : "Fires in response to PassUser1 input, with the parameter passed through unchanged."
output OutUser2(string) : "Fires in response to PassUser2 input, with the parameter passed through unchanged."
output OutUser3(string) : "Fires in response to PassUser3 input, with the parameter passed through unchanged."
output OutUser4(string) : "Fires in response to PassUser4 input, with the parameter passed through unchanged."
]
93 changes: 93 additions & 0 deletions fgd/bases/BaseEntityIO.fgd
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
@BaseClass = BaseEntityInputs
[
// Inputs
input Kill(void) : "Removes this entity from the world."
input KillHierarchy(void) : "Removes this entity and all its children from the world."

input SetParent(target_destination) : "Changes the entity's parent in the movement hierarchy."
input SetParentAttachment(string) : "Change this entity to attach to a specific attachment point on its parent. Entities must be parented before being sent this input. The parameter passed in should be the name of the attachment."
input SetParentAttachmentMaintainOffset(string) : "Change this entity to attach to a specific attachment point on it's parent. Entities must be parented before being sent this input. The parameter passed in should be the name of the attachment. The entity will maintain it's position relative to the parent at the time it is attached."
input ClearParent(void) : "Removes this entity from the the movement hierarchy, leaving it free to move independently."
input SetLocalAngles(vector) : "Sets the rotation of the entity relative to the parent's rotation."
input SetLocalOrigin(vector) : "Sets the position of the entity relative to its parent if one exists. Otherwise relative to the world."
input SetAbsAngles(vector) : "Set this entity's angles, always relative to the world origin."

input AddOutput(string) : "Adds an entity I/O connection to this entity or changes keyvalues dynamically. Format:" +
"\n'<output name> <targetname>:<inputname>:" +
"<parameter>:<delay>:<max times to fire (-1 == infinite, 1 = only once)>'\n" +
"or 'keyvalue newval'. Very dangerous, use with care."
input FireUser1(void) : "Causes this entity's OnUser1 output to be fired."
input FireUser2(void) : "Causes this entity's OnUser2 output to be fired."
input FireUser3(void) : "Causes this entity's OnUser3 output to be fired."
input FireUser4(void) : "Causes this entity's OnUser4 output to be fired."
input Use(void) : "Same as a player invoking +use; may not do anything. Can also be invoked by creating an output that does not specify an input."

input RunScriptFile[VSCRIPT](string) : "Execute a game script file from disk."
input RunScriptCode[VSCRIPT](script) : "Execute a string of script source code."
input CallScriptFunction[VSCRIPT](string) : "Execute the given function name."

input PassUser1(string) : "Causes this entity's OutUser1 output to be fired, passing along the parameter unchanged."
input PassUser2(string) : "Causes this entity's OutUser2 output to be fired, passing along the parameter unchanged."
input PassUser3(string) : "Causes this entity's OutUser3 output to be fired, passing along the parameter unchanged."
input PassUser4(string) : "Causes this entity's OutUser4 output to be fired, passing along the parameter unchanged."

input FireRandomUser(void) : "Fires OnUser1, OnUser2, OnUser3, or OnUser4 with a 25% chance of each."
input PassRandomUser(string) : "Fires OutUser1, OutUser2, OutUser3, or OutUser4 with a 25% chance of each. The parameter is passed along unchanged."

input KillIfNotVisible(void) : "Removes this entity if it is not in a player's viewcone."
input KillWhenNotVisible(void) : "Removes this entity when it is not in a player's viewcone. You can pass a time for when this should start."

input FireOutput(string) : "Fires the named output on this entity. Format: '<output name>:<activator>:<caller>:<parameter>:<delay>' (OnDeath:hl3cardgame:gaben). Everything beyond the output name is optional."
input RemoveOutput(string) : "Removes all instances of the named output on this entity. Wildcards are supported, meaning you could just pass '*' to wipe all outputs from this entity."
input AcceptInput(string) : "Fires the named input on this entity. Format: '<input name>:<parameter>:<activator>:<caller>:<output ID>' (SetTarget:cheese). Everything beyond the input name is optional. Mind the fact this is arranged differently from FireOutput, having the parameter right after the input name."
input CancelPending(void) : "Cancels any events fired by this entity that are currently pending in the I/O event queue."

input FreeChildren(void) : "Unparents all direct children of this entity."
input SetLocalVelocity(vector) : "Sets this entity's current velocity."
input SetLocalAngularVelocity(vector) : "Sets this entity's current angular velocity."

input AddSpawnFlags(integer) : "Adds spawnflag(s) to this entity. Many spawnflags have their respective numbers suffixed in this FGD."
input RemoveSpawnFlags(integer) : "Removes spawnflag(s) to this entity. Many spawnflags have their respective numbers suffixed in this FGD."

input AddSolidFlags(integer) : "Adds solid flags to this entity."
input RemoveSolidFlags(integer) : "Removes solid flags from this entity."

input ChangeVariable(string) : "Similar to AddOutput, except it changes an internal variable similar to logic_datadesc_accessor instead. Very dangerous, use with care."

input SetHealth(integer) : "Sets this entity's health."
input AddHealth(integer) : "Adds to this entity's health."
input RemoveHealth(integer) : "Removes from this entity's health."

input SetMaxHealth(integer) : "Sets this entity's max health."

input SetEntityName(target_destination) : "Sets this entity's name that other entities should refer to it by."
input SetTarget(target_destination) : "Sets this entity's target. This is specific to certain entities, particularly logic entities that involve a target."
input SetOwnerEntity(target_destination) : "Sets this entity's owner entity. This has nothing to do with parenting and has more to do with collision and kill credits."

input SetThinkNull(void) : "Sets this entity's general think function to null. Behavior varies from entity to entity.."

input Use(void) : "More or less replicates the player interacting with an entity. (+USE)"
input Touch(target_destination) : "Simulates this entity touching the specified entity."
]

@BaseClass = BaseEntityOutputs
[
// Outputs
output OnUser1(void) : "Fired in response to FireUser1 input."
output OnUser2(void) : "Fired in response to FireUser2 input."
output OnUser3(void) : "Fired in response to FireUser3 input."
output OnUser4(void) : "Fired in response to FireUser4 input."

output OutUser1(string) : "Fires in response to PassUser1 input, with the parameter passed through unchanged."
output OutUser2(string) : "Fires in response to PassUser2 input, with the parameter passed through unchanged."
output OutUser3(string) : "Fires in response to PassUser3 input, with the parameter passed through unchanged."
output OutUser4(string) : "Fires in response to PassUser4 input, with the parameter passed through unchanged."
]

// Note: These are split up a little funny here for now to allow us to maintain compat with the original HA repo
@BaseClass
base(BaseEntityInputs, BaseEntityOutputs)
= BaseEntityIO
[

]
Loading

0 comments on commit a288e81

Please sign in to comment.