Class MapObject
From TrainzOnline
(Difference between revisions)
(→GetMapObjectPosition) |
(→Methods) |
||
Line 192: | Line 192: | ||
*This method will start playing the sound. | *This method will start playing the sound. | ||
*Depending on the SoundScript configuration, the sound will either be played just once or played continuously in a looping cycle such that [[#StopSoundScriptEvent|StopSoundScriptEvent()]] will need to be called to stop it. | *Depending on the SoundScript configuration, the sound will either be played just once or played continuously in a looping cycle such that [[#StopSoundScriptEvent|StopSoundScriptEvent()]] will need to be called to stop it. | ||
+ | <br> | ||
+ | |||
+ | ===SetMapObjectOrientation=== | ||
+ | {{MethodHeader|public native void SetMapObjectOrientation(Orientation orientation)}} | ||
+ | ;Parameters | ||
+ | *'''orientation''' = The new orientation intended for this MapObject. | ||
+ | ;Returned Value | ||
+ | *None | ||
+ | ;Syntax | ||
+ | SetMapObjectOrientation(or); | ||
+ | ;Notes | ||
+ | *Instantly reorients this MapObject to the specified absolute orientation, as best possible. This will not successfully reposition a MapObject which has a parent relationship (for example, a Trackside object.) Various object parameters and game states may restrict or remove the ability to reorient objects. | ||
<br> | <br> | ||
Revision as of 22:19, 21 November 2020
- This class extends MeshObject to include product queues.
- A MapObject can have a number of product queues as defined in the queues section of the config.txt file for the asset.
- The class also provides methods to control particle emissions.
MapObject Messages
Major | Minor | Source | Destination |
MapObject | View-Details | ? | MapObject |
MapObject | View-Schedule | ? | MapObject |
Methods
AdjustMapObjectPosition
public native void AdjustMapObjectPosition(float dx, float dy, float dz)
- Parameters
- dx = The distance (m) to move the object along its x axis (right).
- dy = The distance (m) to move the object along its y axis (foward).
- dz = The distance (m) to move the object along its z axis (upward).
- Returned Value
- None.
- Syntax
AdjustMapObjectPosition(x, y, z);
- Notes
GetMapObjectOrientation
public native Orientation GetMapObjectOrientation(void)
- Parameters
- None.
- Returned Value
- The absolute orientation of this MapObject.
- Syntax
float angel_z = cabin.Loco.GetMapObjectOrientation().rz;
- Notes
- A call to GetMapObjectOrientation() which immediately follows a call to SetMapObjectOrientation() is not guaranteed to return the input orientation, since various other orientation restrictions may be in effect.
GetMapObjectPosition
public native Orientation GetMapObjectPosition(void)
- Parameters
- None.
- Returned Value
- The absolute position of this MapObject.
- Syntax
float axis_z = cabin.Loco.GetMapObjectPosition().z;
- Notes
- A call to GetMapObjectPosition() which immediately follows a call to SetMapObjectPosition() is not guaranteed to return the input position, since various other position restrictions may be in effect.
GetPFXEmitterLifetime
public native float GetPFXEmitterLifetime(int id, int phase)
- Parameters
- id = The ID of the particle effect, starting at zero and in the order defined in config.txt.
- phase = The phase of the effect, if there is only one phase use zero.
- Returned Value
- Value of the lifetime of the effect at the specified phase.
- Syntax
float lifetime GetPFXEmitterLifetime(0,0);
- Notes
GetPFXEmitterMaxRate
public native float GetPFXEmitterMaxRate(int id)
- Parameters
- id = The ID of the particle effect, starting at zero and in the order defined in config.txt.
- Returned Value
- Maximum rate of emissions per second.
- Syntax
float maxRate = GetPFXEmitterMaxRate(0);
- Notes
GetPFXEmitterMaxSize
public native float GetPFXEmitterMaxSize(int id, int phase)
- Parameters
- id = The ID of the particle effect, starting at zero and in the order defined in config.txt.
- phase = The phase of the effect, if there is only one phase use zero.
- Returned Value
- Maximum size of particle at the specified phase.
- Syntax
float maxsize = GetPFXEmitterMinSize();
- Notes
GetPFXEmitterMinRate
public native float GetPFXEmitterMinRate(int id)
- Parameters
- id = The ID of the particle effect, starting at zero and in the order defined in config.txt.
- Returned Value
- Maximum rate of emissions per second.
- Syntax
float minRtae = GetPFXEmitterMinRate(0);
- Notes
GetPFXEmitterMinSize
public native float GetPFXEmitterMinSize(int id, int phase)
- Parameters
- id = The ID of the particle effect, starting at zero and in the order defined in config.txt.
- phase = The phase of the effect, if there is only one phase use zero.
- Returned Value
- Minimum size of particle at the specified phase.
- Syntax
float minsize = GetPFXEmitterMinSize();
- Notes
GetPFXEmitterPhysicsDelay
public native float GetPFXEmitterPhysicsDelay(int id, int phase)
- Parameters
- id = The ID of the particle effect, starting at zero and in the order defined in config.txt.
- phase = The phase of the effect, if there is only one phase use zero.
- Returned Value
- Value for the physics delay in emission.
- Syntax
GetPFXEmitterPhysicsDelay(0,0);
- Notes
GetPFXEmitterRate
public native float GetPFXEmitterRate(int id, int phase)
- Parameters
- id = The ID of the particle effect, starting at zero and in the order defined in config.txt.
- phase = The phase of the effect, if there is only one phase use zero.
- Returned Value
- Rate of particle creation per second.
- Syntax
particlesPerSecond = GetPFXEmitterRate(0,0);
- Notes
GetPFXEmitterVelocity
public native float GetPFXEmitterVelocity(int id, int phase)
- Parameters
- id = The ID of the particle effect, starting at zero and in the order defined in config.txt.
- phase = The phase of the effect, if there is only one phase use zero.
- Returned Value
- Velocity in metres per second along the direction vector of emitted particles at the specified phase.
- Syntax
float speed = GetPFXEmitterVelocity(0,0);
- Notes
GetQueue
public native ProductQueue GetQueue(string queueName)
- Parameters
queueName = Name of the product queue to be returned.
- Returned Value
- A reference to the queue if possible, null otherwise.
- Syntax
ProductQueue queue = GetQueue("passengers");
GetQueues
public native ProductQueue[ ] GetQueues(void)
- Parameters
- None
- Returned Value
- An array of product queues, if there are no queues the array will be empty.
- Syntax
ProductQueue[] queues = GetQueues();
PlaySoundScriptEvent
public native void PlaySoundScriptEvent(string soundTrigger)
- Parameters
soundTrigger = Name of the sound event to start playing, this equates to the trigger tag of the sound script subcontainer in config.txt.
- Returned Value
- None
- Syntax
PlaySoundScriptEvent("dayloop");
- Notes
- Plays the specified sound event from the asset's SoundScript.
- SoundScripts are defined as sub-containers in the soundscript container of the asset's configuration.
- For details on creating assets with SoundScripts, see here.
- This method will start playing the sound.
- Depending on the SoundScript configuration, the sound will either be played just once or played continuously in a looping cycle such that StopSoundScriptEvent() will need to be called to stop it.
SetMapObjectOrientation
public native void SetMapObjectOrientation(Orientation orientation)
- Parameters
- orientation = The new orientation intended for this MapObject.
- Returned Value
- None
- Syntax
SetMapObjectOrientation(or);
- Notes
- Instantly reorients this MapObject to the specified absolute orientation, as best possible. This will not successfully reposition a MapObject which has a parent relationship (for example, a Trackside object.) Various object parameters and game states may restrict or remove the ability to reorient objects.
SetMapObjectPosition
public native void SetMapObjectPosition(WorldCoordinate position)
- Parameters
- position = The new position intended for this MapObject.
- Returned Value
- None
- Syntax
SetMapObjectPosition(pos);
- Notes
- Instantly repositions this MapObject to the specified absolute position, as best possible. This will not successfully reposition a MapObject which has a parent relationship (for example, a Trackside object.) This function may be VERY slow and should generally not be used. Various object parameters and game states may restrict or remove the ability to position objects.
SetPFXEmitterConeSize
public native void SetPFXEmitterConeSize(int id, float x, float y, float z)
- Parameters
- id = The ID of the particle effect, starting at zero and in the order defined in config.txt.
- x,y,z = New X,Y and Z components of the particle cone size.
- Returned Value
- None
- Syntax
SetPFXEmitterConeSize(0,2.0,3.0,2.0);
- Notes
SetPFXEmitterEmitParticles
public native void SetPFXEmitterEmitParticles(int id, int number,float time)
- Parameters
- id = The ID of the particle effect, starting at zero and in the order defined in config.txt.
- number = The number of particles to emit.
- time = The time in seconds over which the particles are to be created.
- Returned Value
- None
- Syntax
SetPFXEmitterEmitParticles(0,100,10.0);
- Notes
SetPFXEmitterEndColor
public native void SetPFXEmitterEndColor(int id, int phase, float r, float g, float b, float a)
- Parameters
- id = The ID of the particle effect, starting at zero and in the order defined in config.txt.
- phase = The phase of the effect, if there is only one phase use zero.
- r,g,b = Red, green and blue components of the required color.
- a = Alpha value of the color.
- Returned Value
- None
- Syntax
SetPFXEmitterStartColor(0,0,128,128,128,64); SetPFXEmitterStartColor(0,0,0.5,0.5,0.5,0.25);
- Notes
- Red, green, blue and alpha may be entered as integer or float values in the ranges 0..255 and 0.0..1.0 respectively.
- Both of the examples above give the same result.
- Note that 1,1,1,1 will be interpreted as float input and will produce white, whereas 2,2,2,2 will be interpreted as integers and will give a result which is almost black.
SetPFXEmitterLifetime
public native void SetPFXEmitterLifetime(int id, int phase, float life)
- Parameters
- id = The ID of the particle effect, starting at zero and in the order defined in config.txt.
- phase = The phase of the effect, if there is only one phase use zero.
- life = The new lifetime of particles in seconds at the specified phase.
- Returned Value
- None
- Syntax
SetPFXEmitterLifetime(0,0,10);
- Notes
SetPFXEmitterMaxRate
public native void SetPFXEmitterMaxRate(int id, float newsize)
- Parameters
- id = The ID of the particle effect, starting at zero and in the order defined in config.txt.
- rate = The new maximum rate of emission per second.
- Returned Value
- None
- Syntax
SetPFXEmitterMaxRate(0,5.0);
- Notes
SetPFXEmitterMaxSize
public native void SetPFXEmitterMaxSize(int id, int phase, float newsize)
- Parameters
- id = The ID of the particle effect, starting at zero and in the order defined in config.txt.
- phase = The phase of the effect, if there is only one phase use zero.
- newsize = The new maximum size of particles at the specified phase.
- Returned Value
- None
- Syntax
SetPFXEmitterMaxSize(0,0,10);
- Notes
SetPFXEmitterMinRate
public native void SetPFXEmitterMinRate(int id, float rate)
- Parameters
- id = The ID of the particle effect, starting at zero and in the order defined in config.txt.
- rate = The new minimum rate of emission per second.
- Returned Value
- None
- Syntax
SetPFXEmitterMinRate(0,5.0);
- Notes
SetPFXEmitterMinSize
public native void SetPFXEmitterMinSize(int id, int phase, float newsize)
- Parameters
- id = The ID of the particle effect, starting at zero and in the order defined in config.txt.
- phase = The phase of the effect, if there is only one phase use zero.
- newsize = The new minimum size of particles at the specified phase.
- Returned Value
- None
- Syntax
SetPFXEmitterMinSize(0,0,10);
- Notes
SetPFXEmitterPhysicsDelay
public native void SetPFXEmitterPhysicsDelay(int id, int phase, float value)
- Parameters
- id = The ID of the particle effect, starting at zero and in the order defined in config.txt.
- phase = The phase of the effect, if there is only one phase use zero.
- value = The new physics delay value to set for the specified phase.
- Returned Value
- None
- Syntax
SetPFXEmitterPhysicsDelay(0,0,5.0);
- Notes
SetPFXEmitterRate
public native void SetPFXEmitterRate(int id, int phase, float rate)
- Parameters
- id = The ID of the particle effect, starting at zero and in the order defined in config.txt.
- phase = The phase of the effect, if there is only one phase use zero.
- rate = New rate of particle creation per second at the specified phase.
- Returned Value
- None
- Syntax
SetPFXEmitterRate(0,0,5.0);
- Notes
SetPFXEmitterStartColor
public native void SetPFXEmitterStartColor(int id, int phase, float r, float g, float b, float a)
- Parameters
- id = The ID of the particle effect, starting at zero and in the order defined in config.txt.
- phase = The phase of the effect, if there is only one phase use zero.
- r,g,b = Red, green and blue components of the required color.
- a = Alpha value of the color.
- Returned Value
- None
- Syntax
SetPFXEmitterStartColor(0,0,128,128,128,64); SetPFXEmitterStartColor(0,0,0.5,0.5,0.5,0.25);
- Notes
- Red, green, blue and alpha may be entered as integer or float values in the ranges 0..255 and 0.0..1.0 respectively.
- Both of the examples above give the same result.
- Note that 1,1,1,1 will be interpreted as float input and will produce white, whereas 2,2,2,2 will be interpreted as integers and will give a result which is almost black.
SetPFXEmitterTexture
public native void SetPFXEmitterTexture(int id, KUID textureKUID)
- Parameters
- id = The ID of the particle effect, starting at zero and in the order defined in config.txt.
- textureKUID = The kuid of the new texture.
- Returned Value
- None
- Syntax
SetPFXEmitterTexture(0,<kuid:1234:5678>);
- Notes
SetPFXEmitterVelocity
public native void SetPFXEmitterVelocity(int id, int phase, float velocity)
- Parameters
- id = The ID of the particle effect, starting at zero and in the order defined in config.txt.
- phase = The phase of the effect, if there is only one phase use zero.
- velocity = New velocity in metres per second along the direction vector of emitted particles at the specified phase.
- Returned Value
- None
- Syntax
SetPFXEmitterVelocity(0,0,5.0);
- Notes
StopSoundScriptEvent
public native void StopSoundScriptEvent(string soundTrigger)
- Parameters
soundTrigger = Name of the sound event to start playing, this equates to the trigger tag of the sound script subcontainer in config.txt.
- Returned Value
- None
- Syntax
StopSoundScriptEvent("dayloop");
- Notes
- Terminates a looped sound script previously started with PlaySoundScriptEvent().