Difference between revisions of "Use"

From Valve Developer Community
Jump to: navigation, search
(Formating?)
m ({{key}} template)
 
Line 1: Line 1:
All entities have a '''Use''' [[input]], though many do nothing in response to it. There are four methods to invoke it:
+
All entities have a '''Use''' [[input]], though many do nothing in response to it. Typically, it performs the action players most expect when interacting with the entity (e.g. opening/closing a door, picking up a physics object). There are four methods to invoke it:
 
+
#A player looking at the entity and using the <code>+use</code> console command (commonly bound to the {{key|E}} key).
# A player looking at the entity and using the <code>+use</code> console command (this is normally done by pressing the '''e''' key).
+
#An entity [[output]] that specifies the <code>Use</code> input, or not specifying any input.
# An entity [[output]] that specifies the <code>Use</code> input, or not specifying any input.
+
#Directly calling the C++ function.
# Directly calling the C++ function.
+
#If an entity without a use function is parented to one which does, it will passthrough the input to the parent.
# If an entity without a use function is parented to one which does, it will passthrough the input to the parent.
 
 
 
Use typically performs the action players most expect when interacting with the entity (e.g. opening/closing a door, picking up a physics object).
 
  
 
==Programming==
 
==Programming==
Although there is always a Use input, the actual Use function of an entity starts null. It can be assigned at any time with <code>SetUse( void *SomeFunc([[CBaseEntity]] *pActivator, CBaseEntity *pCaller, USE_TYPE useType, [[float]] value) )</code>.
+
Although there is always a <code>Use</code> input, the actual <code>Use</code> function of an entity starts null. It can be assigned at any time with <code>SetUse( void *SomeFunc([[CBaseEntity]] *pActivator, CBaseEntity *pCaller, USE_TYPE useType, [[float]] value) )</code>.
  
 
It doesn't appear possible to specify <code>USE_TYPE</code> or <code>value</code> through the I/O system.
 
It doesn't appear possible to specify <code>USE_TYPE</code> or <code>value</code> through the I/O system.
 
[[Category:Level Design]]
 
[[Category:Level Design]]
 
[[Category:Programming]]
 
[[Category:Programming]]

Latest revision as of 10:25, 27 June 2018

All entities have a Use input, though many do nothing in response to it. Typically, it performs the action players most expect when interacting with the entity (e.g. opening/closing a door, picking up a physics object). There are four methods to invoke it:

  1. A player looking at the entity and using the +use console command (commonly bound to the E key).
  2. An entity output that specifies the Use input, or not specifying any input.
  3. Directly calling the C++ function.
  4. If an entity without a use function is parented to one which does, it will passthrough the input to the parent.

Programming

Although there is always a Use input, the actual Use function of an entity starts null. It can be assigned at any time with SetUse( void *SomeFunc(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value) ).

It doesn't appear possible to specify USE_TYPE or value through the I/O system.