Class MapObject

From TrainzOnline
Revision as of 23:46, 28 December 2020 by Danny252 (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


  • 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.


Contents

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


Related Methods

Categories

Personal tools