Skip to main content

Machines Simulator Object (MS) Reference

MS System & Display Methods​

void MS.ShowText(string/bool/int/float/double txt)​

  • Description: Shows the text variable value in the status tool bar, useful for debug purposes.

void MS.Message(string text)​

  • Description: Shows a text message in the upper side of the screen.

void MS.Message(string text, Color background, Color textcolor)​

  • Description: Shows a text message in the upper side, with background and text colors passed as parameters.

void MS.EndMessage()​

  • Description: Removes the current message.

void MS.Message(string text, int seconds, Color background, Color textcolor)​

  • Description: Shows a text message in the upper side, visible during the amount of seconds passed as a parameter.

float MS.Range(float n1, float n2)​

  • Description: Returns a random float within n1..n2 (range is inclusive).

int MS.ParseToInt(string value) / float MS.ParseToFloat(string value)​

  • Description: Converts a string value to an int or a float.

Camera Control​

Methods to manage the simulation cameras and their behavior:

  • void MS.ChangeFlyCam(): Changes camera to fly mode.
  • void MS.ChangeFirstPersonCam(): Changes camera to first person.
  • void MS.ChangeTripCam(): Changes camera to travel mode.
  • void MS.DisableCameraMovement(): Disables system camera movement. Useful to program special behaviors.
  • void MS.EnableCameraMovement(): The system takes back control of the camera.
  • void MS.EnableCameraTraveling(bool v): Enables or disables camera traveling (numeric keys 1-9).
  • Transform MS.SystemCamera: Returns the transform object reference (position, rotation, scale) of the camera.
  • void MS.SystemCameraPosition(Vector3 pos): Places the camera in the passed Vector3 position (x, y, z).
  • void MS.SystemCameraRotation(Vector3 angles): Rotates the camera to the passed Vector3 angles.
  • void MS.SystemCameraPosition(int pos, float timeToArrive): Places the camera in a predefined position number and sets travel time.

Environment & Lighting​

  • float MS.MainLightIntensity: Gets/Sets the main light intensity.
  • bool MS.Fog: Gets/Sets whether the environment has fog.
  • float MS.FogDensity: Gets/Sets the environment fog density.
  • Color MS.FogColor: Gets/Sets the environment fog color.
  • void MS.SetPlayerSize(float rad, float height): Sets the size of the player capsule.
  • void MS.ShowFloor(bool value): Shows or hides the factory floor. If false, collision is disabled.
  • void MS.HideFactory(): Hides the factory building (Factory 1 only).
  • void MS.SetLimits(Vector2 x, Vector2 y, Vector3 z): Sets movement limits for Factory 1 and 3.
  • void MS.OpenGates(int gate, bool open): Opens or closes each of the 8 doors (1 to 8) in Factory 3.

WorkParts & Collisions​

WorkPartLogic MS.WPList​

  • Description: List that contains all the current WorkPart objects created in the machine.
  • Example:
EditorUtils.ShowText(MS.WPList.Count.ToString());
// Set wpt variable to the WorkPart type of the 4th workpart:
int wpt = MS.WPList[3].WorkPartType;

void MS.CreateWP(int id, Vector3 pos, Vector3 rot)​

  • Description: Creates a WorkPart of type id (previously created in the editor) at the given position/rotation.

void MS.DestroyWP(WorkPartLogic wp)​

  • Description: Destroys the passed WorkPart object.

ComponentBase MS.Create(string compo, Vector3 pos, [Vector3 rot])​

  • Description: Creates the passed component name and places it in the scene.

bool MS.RayCollision(Vector3 origin, Vector3 direction, float distance)​

  • Description: Returns true if any component collides with the ray.

:::tip Tip Overloads exist to return detection distance (out float dectDist), the collided WorkPartLogic, or the ComponentBase object. :::

void MS.DisableCollision(Collider c1, Collider c2, bool v)​

  • Description: Disables or enables collisions between the two passed colliders.

User Interface (UI) Methods​

Methods to create and manage dynamic UI elements:

  • PanelValue MS.PanelDisplay(string desc, CustomWindow cw = null)
  • PanelButton MS.PanelButton(string text, CustomWindow cw = null)
  • InputValue MS.InputDisplay(string desc, CustomWindow cw = null)
  • PanelSlider MS.PanelSlider(string desc, float min, float max, float def, int anInp, CustomWindow cw = null)
  • TextBoxArea MS.TextAreaDisplay(CustomWindow cw = null)
  • LabelUI MS.LabelUI(string desc, CustomWindow cw = null)
  • ImageArea MS.ImageArea(string path, CustomWindow cw = null)
  • CustomWindow MS.CustomWindow(string desc)
  • Label3D MS.Label3D(string text)
  • QuadCreator MS.DynamicPlane()

UDC (User Defined Component) Values​

Methods to read/write properties from Graphic Code or other components:

  • string GetPCVal(string udc, string id)
  • int GetPCVal_Int(string udc, string id)
  • float GetPCVal_Dec(string udc, string id)
  • List<string> GetPCVal_L(string id)
  • void SetPCVal(string id, string/int/float/bool v)

System Events​

MS.PauseEvent​

  • Description: Fires when Pause mode is toggled.
  • Example:
bool Pause = false;

public void Init() {
MS.PauseEvent += PauseEvent;
}
public void Finish() {
MS.PauseEvent -= PauseEvent;
}
private void PauseEvent(bool pause) {
Pause = pause;
}

MS.DriverEvent​

  • Description: Fires when the I/O communication Driver is activated or deactivated.
  • Example:
bool runD = false;

public void Init() {
MS.DriverEvent += DriverEvent;
}
public void Finish() {
MS.DriverEvent -= DriverEvent;
}
private void DriverEvent(bool running) {
runD = running;
if(running)
MS.Message("Driver Connected", 10, Color.black, Color.red);
else
MS.Message("Driver Disconnected", 10, Color.yellow, Color.black);
}