diff --git a/Audio File.nl2sco b/Audio File.nl2sco
index f86c2f1..8d3e7f5 100644
--- a/Audio File.nl2sco
+++ b/Audio File.nl2sco
@@ -9,7 +9,7 @@
diff --git a/Audio Group.nl2sco b/Audio Group.nl2sco
index 2006148..9fce32a 100644
--- a/Audio Group.nl2sco
+++ b/Audio Group.nl2sco
@@ -9,7 +9,7 @@
diff --git a/Button - Master Switch.nl2sco b/Button - Master Switch.nl2sco
index 8bae953..65087e7 100644
--- a/Button - Master Switch.nl2sco
+++ b/Button - Master Switch.nl2sco
@@ -26,7 +26,7 @@
diff --git a/Button - Music Mute Toggle.nl2sco b/Button - Music Mute Toggle.nl2sco
index a04000f..54643db 100644
--- a/Button - Music Mute Toggle.nl2sco
+++ b/Button - Music Mute Toggle.nl2sco
@@ -26,7 +26,7 @@
diff --git a/Button - Trigger.nl2sco b/Button - Trigger.nl2sco
index fc3d987..b57e336 100644
--- a/Button - Trigger.nl2sco
+++ b/Button - Trigger.nl2sco
@@ -26,7 +26,7 @@
diff --git a/Cue Trigger - Emergency Stop.nl2sco b/Cue Trigger - Emergency Stop.nl2sco
index 80d4ee6..26703d1 100644
--- a/Cue Trigger - Emergency Stop.nl2sco
+++ b/Cue Trigger - Emergency Stop.nl2sco
@@ -9,7 +9,7 @@
diff --git a/Cue Trigger - Proximity Cube.nl2sco b/Cue Trigger - Proximity Cube.nl2sco
index ceba74b..27ecdd9 100644
--- a/Cue Trigger - Proximity Cube.nl2sco
+++ b/Cue Trigger - Proximity Cube.nl2sco
@@ -11,7 +11,7 @@
diff --git a/Cue Trigger - Proximity Sphere.nl2sco b/Cue Trigger - Proximity Sphere.nl2sco
index d47bf63..1aa455f 100644
--- a/Cue Trigger - Proximity Sphere.nl2sco
+++ b/Cue Trigger - Proximity Sphere.nl2sco
@@ -12,7 +12,7 @@
diff --git a/Cue Trigger - Station Dispatch.nl2sco b/Cue Trigger - Station Dispatch.nl2sco
index 084e004..70d40a5 100644
--- a/Cue Trigger - Station Dispatch.nl2sco
+++ b/Cue Trigger - Station Dispatch.nl2sco
@@ -9,7 +9,7 @@
diff --git a/Cue Trigger - Station Gate.nl2sco b/Cue Trigger - Station Gate.nl2sco
index a3db1c6..81af5a0 100644
--- a/Cue Trigger - Station Gate.nl2sco
+++ b/Cue Trigger - Station Gate.nl2sco
@@ -9,7 +9,7 @@
diff --git a/Cue Trigger - Station Platform.nl2sco b/Cue Trigger - Station Platform.nl2sco
index 3621100..f3df5f4 100644
--- a/Cue Trigger - Station Platform.nl2sco
+++ b/Cue Trigger - Station Platform.nl2sco
@@ -9,7 +9,7 @@
diff --git a/Cue Trigger - Station Restraint.nl2sco b/Cue Trigger - Station Restraint.nl2sco
index bbb23bd..b3687a7 100644
--- a/Cue Trigger - Station Restraint.nl2sco
+++ b/Cue Trigger - Station Restraint.nl2sco
@@ -9,7 +9,7 @@
diff --git a/Cue Trigger - Time Of Day.nl2sco b/Cue Trigger - Time Of Day.nl2sco
index 8daea86..c055fc7 100644
--- a/Cue Trigger - Time Of Day.nl2sco
+++ b/Cue Trigger - Time Of Day.nl2sco
@@ -9,7 +9,7 @@
diff --git a/Cue Trigger - Timer.nl2sco b/Cue Trigger - Timer.nl2sco
index d3e6156..ade336a 100644
--- a/Cue Trigger - Timer.nl2sco
+++ b/Cue Trigger - Timer.nl2sco
@@ -9,7 +9,7 @@
diff --git a/Cue Trigger - Track Trigger.nl2sco b/Cue Trigger - Track Trigger.nl2sco
index bb057bf..e75ca5b 100644
--- a/Cue Trigger - Track Trigger.nl2sco
+++ b/Cue Trigger - Track Trigger.nl2sco
@@ -9,7 +9,7 @@
diff --git a/Cue Trigger - Weather.nl2sco b/Cue Trigger - Weather.nl2sco
index 195191e..f491c5d 100644
--- a/Cue Trigger - Weather.nl2sco
+++ b/Cue Trigger - Weather.nl2sco
@@ -9,7 +9,7 @@
diff --git a/Emitter - Car.nl2sco b/Emitter - Car.nl2sco
index 660a940..5033d24 100644
--- a/Emitter - Car.nl2sco
+++ b/Emitter - Car.nl2sco
@@ -14,7 +14,7 @@
diff --git a/Emitter - Cube.nl2sco b/Emitter - Cube.nl2sco
index ffc1304..90dcf25 100644
--- a/Emitter - Cube.nl2sco
+++ b/Emitter - Cube.nl2sco
@@ -11,7 +11,7 @@
diff --git a/Emitter - Point.nl2sco b/Emitter - Point.nl2sco
index b9a89ab..871e09f 100644
--- a/Emitter - Point.nl2sco
+++ b/Emitter - Point.nl2sco
@@ -13,7 +13,7 @@
diff --git a/Emitter - Sphere.nl2sco b/Emitter - Sphere.nl2sco
index f5dfe11..0314b5b 100644
--- a/Emitter - Sphere.nl2sco
+++ b/Emitter - Sphere.nl2sco
@@ -13,7 +13,7 @@
diff --git a/New.nl2mat b/New.nl2mat
deleted file mode 100644
index dcd699b..0000000
--- a/New.nl2mat
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/scripts/BlockLogic.nlvm b/scripts/BlockLogic.nlvm
new file mode 100644
index 0000000..8c8f1cd
--- /dev/null
+++ b/scripts/BlockLogic.nlvm
@@ -0,0 +1,63 @@
+package scripts;
+
+import com.nolimitscoaster.*;
+
+public abstract class BlockLogic extends Behaviour implements ITrackProcess
+{
+ public final int GetOrder() { return 25; }
+ public bool Awake() { return true; }
+
+ protected Coaster m_Coaster = null;
+ protected IBlock m_ControlledBlock = null;
+
+ public static final int STATE_EMPTY = 0;
+ public static final int STATE_APPROACH = 1;
+ public static final int STATE_PROCESS = 2;
+ public static final int STATE_LEAVING = 3;
+
+ public void Start()
+ {
+ Block block = GetBlockParameter("controlled_block", true);
+ m_ControlledBlock = GetIBlockFromInternalType(block);
+
+
+ BlockLogicManager.GetInstance().Register(this);
+ }
+
+ protected IBlock GetIBlockFromInternalType(Block block)
+ {
+ String blockId = block.getName();
+ if(block.isStation())
+ {
+ IReferenceable reference = Registry.GetInstance().GetReferenceFromName("scripts.StationSection", blockId);
+ if(reference == null)
+ Exception.Throw("Unable to find type 'scripts.StationSection' with name '" + blockId + "'");
+ return (IBlock)reference;
+ }
+ else if(block.isLift())
+ {
+ IReferenceable reference = Registry.GetInstance().GetReferenceFromName("scripts.LiftSection", blockId);
+ if(reference == null)
+ Exception.Throw("Unable to find type 'scripts.LiftSection' with name '" + blockId + "'");
+ return (IBlock)reference;
+ }
+ else
+ {
+ IReferenceable reference = Register.GetInstance().GetReferenceFromName("scripts.BlockSection", blockId);
+ if(reference == null)
+ Exception.Throw("Unable to find type 'scripts.BlockSection' with name '" + blockId + "'");
+ return (IBlock)reference;
+ }
+ }
+
+ public final Coaster GetCoaster()
+ {
+ return m_ControlledBlock.GetBlock().getCoaster();
+ }
+ public final Section GetSection()
+ {
+ return m_ControlledBlock.GetBlock().getSection();
+ }
+
+ public abstract void Process();
+}
\ No newline at end of file
diff --git a/scripts/BlockLogicManager.nlvm b/scripts/BlockLogicManager.nlvm
new file mode 100644
index 0000000..eb092a0
--- /dev/null
+++ b/scripts/BlockLogicManager.nlvm
@@ -0,0 +1,46 @@
+package scripts;
+
+import scripts.containers.*;
+
+public final class BlockLogicManager extends UpdateableObject
+{
+ private static BlockLogicManager m_Instance = null;
+ private List m_RegisteredTrackProcesses = new List();
+
+ private BlockLogicManager()
+ {
+ SetShouldUpdate(true);
+ }
+
+ public static BlockLogicManager GetInstance()
+ {
+ if(m_Instance == null)
+ m_Instance = new BlockLogicManager();
+
+ return m_Instance;
+ }
+
+
+ public void RegisterProcess(ITrackProcess process)
+ {
+ if(m_RegisteredTrackProcesses.Contains(process))
+ return;
+
+ m_RegisteredTrackProcesses.Insert(process);
+ }
+ public void UnregisterProcess(ITrackProcess process)
+ {
+ if(m_RegisteredTrackProcesses.Contains(process))
+ m_RegisteredTrackProcesses.Remove(process);
+ }
+
+ public void Update(float tick)
+ {
+ IEnumerator enumerator = m_RegisteredTrackProcesses.GetEnumerator();
+ while(enumerator.MoveNext())
+ ((ITrackProcess)enumerator.Get()).Process();
+ }
+
+ public void LateUpdate(float tick) { }
+ public void LateUnblockedUpdate() { }
+}
\ No newline at end of file
diff --git a/scripts/blocks/BlockSection.nlvm b/scripts/BlockSection.nlvm
similarity index 85%
rename from scripts/blocks/BlockSection.nlvm
rename to scripts/BlockSection.nlvm
index baa1854..14656d6 100644
--- a/scripts/blocks/BlockSection.nlvm
+++ b/scripts/BlockSection.nlvm
@@ -1,11 +1,11 @@
-package scripts.blocks;
+package scripts;
import com.nolimitscoaster.Block;
import com.nolimitscoaster.Section;
///
/// .
-public class BlockSection extends TransportSection, IState, IBlock, ITrainPositionQuery
+public class BlockSection extends TransportSection, IState, IBlock, ITrainPositionQuery, IReferenceable
{
protected Block m_Block = null;
@@ -74,15 +74,22 @@ public class BlockSection extends TransportSection, IState, IBlock, ITrainPositi
m_Block.setState(state);
}
-
- public String GetName()
+ public Block GetBlock()
+ {
+ return m_Block;
+ }
+ public TrackSection GetTrackSection()
{
- return m_Block.getName();
+ return this;
+ }
+ public int GetNumberOfTrainsOnBlock()
+ {
+ return m_Block.getNumberOfTrainsOnBlock();
}
- public Block GetBlock()
+ public String GetType()
{
- return m_Block;
+ return "scripts.BlockSection";
}
}
///
\ No newline at end of file
diff --git a/scripts/Elevator.nlvm b/scripts/Elevator.nlvm
new file mode 100644
index 0000000..bfabbd7
--- /dev/null
+++ b/scripts/Elevator.nlvm
@@ -0,0 +1,21 @@
+package scripts;
+
+import scripts.containers.*;
+
+public class Elevator extends Behaviour
+{
+ private Dictionary m_ElevatorInternalDoors = new Dictionary();
+
+ public int GetOrder() { return 20; }
+
+ public bool Awake() { return true; }
+ public void Start()
+ {
+ Json data = Json.Parse(Tools.loadTextFileFromResource(GetResourcePathParameter("elevator_data", true)));
+ }
+
+ public void Update(float delta)
+ {
+
+ }
+}
\ No newline at end of file
diff --git a/scripts/blocks/IBlock.nlvm b/scripts/IBlock.nlvm
similarity index 53%
rename from scripts/blocks/IBlock.nlvm
rename to scripts/IBlock.nlvm
index 5d20712..78aec9e 100644
--- a/scripts/blocks/IBlock.nlvm
+++ b/scripts/IBlock.nlvm
@@ -1,12 +1,18 @@
-package scripts.blocks;
+package scripts;
///
/// .
-public interface IBlock
+public interface IBlock extends IState
{
///
/// Gets the underlying block.
///
public Block GetBlock();
+
+ public TrackSection GetTrackSection();
+
+ public int GetNumberOfTrainsOnBlock();
+
+
}
///
\ No newline at end of file
diff --git a/scripts/IInputable.nlvm b/scripts/IInputable.nlvm
new file mode 100644
index 0000000..3b08511
--- /dev/null
+++ b/scripts/IInputable.nlvm
@@ -0,0 +1,10 @@
+package scripts;
+import scripts.delegates.*;
+
+public interface IInputable extends IReferenceable
+{
+ public void SetIsInputEnabled(bool isEnableInput);
+ public bool GetIsInputEnabled();
+
+ public Delegate1 OnInputTriggered();
+}
\ No newline at end of file
diff --git a/scripts/IInputableButton.nlvm b/scripts/IInputableButton.nlvm
new file mode 100644
index 0000000..08c5e30
--- /dev/null
+++ b/scripts/IInputableButton.nlvm
@@ -0,0 +1,6 @@
+package scripts;
+
+public interface IInputableButton extends IInputable
+{
+
+}
\ No newline at end of file
diff --git a/scripts/blocks/IState.nlvm b/scripts/IState.nlvm
similarity index 85%
rename from scripts/blocks/IState.nlvm
rename to scripts/IState.nlvm
index 2a9ffdc..62421f3 100644
--- a/scripts/blocks/IState.nlvm
+++ b/scripts/IState.nlvm
@@ -1,4 +1,4 @@
-package scripts.blocks;
+package scripts;
///
/// .
diff --git a/scripts/blocks/ITrackProcess.nlvm b/scripts/ITrackProcess.nlvm
similarity index 89%
rename from scripts/blocks/ITrackProcess.nlvm
rename to scripts/ITrackProcess.nlvm
index e9c761b..e42ba9f 100644
--- a/scripts/blocks/ITrackProcess.nlvm
+++ b/scripts/ITrackProcess.nlvm
@@ -1,4 +1,4 @@
-package scripts.core.blocks;
+package scripts;
import com.nolimitscoaster.Section;
diff --git a/scripts/blocks/ITrainPositionQuery.nlvm b/scripts/ITrainPositionQuery.nlvm
similarity index 77%
rename from scripts/blocks/ITrainPositionQuery.nlvm
rename to scripts/ITrainPositionQuery.nlvm
index dbdcd8d..0c2ec05 100644
--- a/scripts/blocks/ITrainPositionQuery.nlvm
+++ b/scripts/ITrainPositionQuery.nlvm
@@ -1,4 +1,4 @@
-package scripts.blocks;
+package scripts;
public interface ITrainPositionQuery
{
@@ -10,4 +10,7 @@ public interface ITrainPositionQuery
public bool IsTrainBeforeStartOfSection(float offset);
public bool IsTrainBehindEndOfSection(float offset);
+
+ public bool IsTrainOnTrackSection();
+ public Train GetTrainOnSection();
}
\ No newline at end of file
diff --git a/scripts/blocks/LiftSection.nlvm b/scripts/LiftSection.nlvm
similarity index 85%
rename from scripts/blocks/LiftSection.nlvm
rename to scripts/LiftSection.nlvm
index 6acb810..2bf0a08 100644
--- a/scripts/blocks/LiftSection.nlvm
+++ b/scripts/LiftSection.nlvm
@@ -1,11 +1,11 @@
-package scripts.core.blocks;
+package scripts;
import com.nolimitscoaster.Block;
import com.nolimitscoaster.Section;
///
/// .
-public class LiftSection extends TrackSection implements IState, IBlock, ITrainPositionQuery
+public class LiftSection extends TrackSection implements IState, IBlock, ITrainPositionQuery, IReferenceable
{
protected Block m_Block = null;
@@ -76,9 +76,23 @@ public class LiftSection extends TrackSection implements IState, IBlock, ITrainP
}
+ public TrackSection GetTrackSection()
+ {
+ return this;
+ }
+ public int GetNumberOfTrainsOnBlock()
+ {
+ return m_Block.getNumberOfTrainsOnBlock();
+ }
+
public float GetDeviceSpeed()
{
return m_Section.getLiftCurrentSpeed();
}
+
+ public String GetType()
+ {
+ return "scripts.LiftSection";
+ }
}
///
\ No newline at end of file
diff --git a/scripts/StandardBlockLogic.nlvm b/scripts/StandardBlockLogic.nlvm
new file mode 100644
index 0000000..b7b8a68
--- /dev/null
+++ b/scripts/StandardBlockLogic.nlvm
@@ -0,0 +1,67 @@
+package scripts;
+
+public class StandardBlockLogic extends BlockLogic
+{
+ public void Start()
+ {
+ super.Start();
+
+ }
+
+ public void Process()
+ {
+ int blockState = m_ControlledBlock.GetState();
+ switch(blockState)
+ {
+ case BlockLogic.STATE_EMPTY:
+ if(m_ControlledBlock instanceof LiftSection)
+ {
+ LiftSection lift = (LiftSection)m_ControlledBlock;
+ lift.SetLiftState(LiftSection.E_LIFT_IDLE);
+ }
+ else if(m_ControlledBlock instanceof BlockSection || m_ControlledBlock instanceof StationSection)
+ {
+ BlockSection block = (BlockSection)m_ControlledBlock;
+ block.SetBrakeState(BlockSection.E_BRAKE_ON);
+ block.SetTransportState(TransportSection.E_TRANSPORT_OFF);
+ }
+ break;
+ case BlockLogic.STATE_APPROACH:
+ if(m_ControlledBlock instanceof LiftSection)
+ {
+ LiftSection lift = (LiftSection)m_ControlledBlock;
+ lift.SetLiftState(LiftSection.E_LIFT_FWD);
+ }
+ else if(m_ControlledBlock instanceof BlockSection || m_ControlledBlock instanceof StationSection)
+ {
+ BlockSection block = (BlockSection)m_ControlledBlock;
+ block.SetBrakeState(BlockSection.E_BRAKE_OFF);
+ }
+ break;
+ case BlockLogic.STATE_PROCESS:
+
+ break;
+ case BlockLogic.STATE_LEAVING:
+ TrackSection trackSection = m_ControlledBlock.GetTrackSection();
+ bool isTrainOnSection = trackSection.IsTrainOnTrackSection();
+ int numTrainOnSection = m_ControlledBlock.GetNumberOfTrainsOnBlock();
+ bool isBlockCleared = !isTrainOnSection && numTrainOnSection < 1;
+
+ if(m_ControlledBlock instanceof LiftSection)
+ {
+ LiftSection lift = (LiftSection)m_ControlledBlock;
+ lift.SetLiftState(LiftSection.E_LIFT_FWD);
+ }
+ else if(m_ControlledBlock instanceof BlockSection || m_ControlledBlock instanceof StationSection)
+ {
+ BlockSection block = (BlockSection)m_ControlledBlock;
+ block.SetTransportState(TransportSection.E_TRANSPORT_FWD);
+ block.SetBrakeState(BlockSection.E_BRAKE_OFF);
+ }
+
+ if(isBlockCleared)
+ m_ControlledBlock.SetState(BlockLogic.STATE_EMPTY);
+ break;
+ }
+ }
+}
\ No newline at end of file
diff --git a/scripts/StationSection.nlvm b/scripts/StationSection.nlvm
new file mode 100644
index 0000000..ff40a1d
--- /dev/null
+++ b/scripts/StationSection.nlvm
@@ -0,0 +1,40 @@
+package scripts;
+
+import com.nolimitscoaster.Block;
+import com.nolimitscoaster.Section;
+
+///
+/// .
+public class StationSection extends BlockSection implements IState, IBlock, ITrainPositionQuery, IReferenceable
+{
+ public static final int STATION_IDLE = 0;
+ public static final int STATION_OPEN_RESTRAINT = 1;
+ public static final int STATION_CLOSE_RESTRAINT = 2;
+ public static final int STATION_OPEN_GATE = 3;
+ public static final int STATION_CLOSE_GATE = 4;
+ public static final int STATION_CHECK_CLEAR = 5;
+
+ public StationSection(Block block)
+ {
+ super(block);
+ }
+ public StationSection(Section section)
+ {
+ super(section);
+ }
+
+ public void SetStationEnter()
+ {
+ m_Block.setStationEntering();
+ }
+ public void SetStationLeave()
+ {
+ m_Block.setStationLeaving();
+ }
+
+ public String GetType()
+ {
+ return "scripts.StationSection";
+ }
+}
+///
\ No newline at end of file
diff --git a/scripts/blocks/TrackSection.nlvm b/scripts/TrackSection.nlvm
similarity index 70%
rename from scripts/blocks/TrackSection.nlvm
rename to scripts/TrackSection.nlvm
index 2b37830..c3453ac 100644
--- a/scripts/blocks/TrackSection.nlvm
+++ b/scripts/TrackSection.nlvm
@@ -1,17 +1,18 @@
-package scripts.blocks;
+package scripts;
import com.nolimitscoaster.Section;
import scripts.containers.*;
///
/// .
-public abstract class TrackSection extends Object implements ITrainPositionQuery
+public abstract class TrackSection extends Object implements ITrainPositionQuery, IReferenceable
{
protected Section m_Section = null;
public TrackSection(Section section)
{
m_Section = section;
+ Registry.GetInstance().Register(this);
}
@@ -42,6 +43,11 @@ public abstract class TrackSection extends Object implements ITrainPositionQuery
{
return m_Section.isTrainOnSection();
}
+ public Train GetTrainOnSection()
+ {
+ return m_Section.getTrainOnSection();
+ }
+
public final Coaster GetCoaster()
{
@@ -51,5 +57,20 @@ public abstract class TrackSection extends Object implements ITrainPositionQuery
{
return m_Section;
}
+
+
+ public final String GetName()
+ {
+ return m_Section.getName();
+ }
+ public final void SetName(String name)
+ {
+ Exception.Throw("Cannot modify name of type 'scripts.TrackSection'");
+ }
+
+ public String GetType()
+ {
+ return "scripts.TrackSection";
+ }
}
///
\ No newline at end of file
diff --git a/scripts/blocks/TransportSection.nlvm b/scripts/TransportSection.nlvm
similarity index 96%
rename from scripts/blocks/TransportSection.nlvm
rename to scripts/TransportSection.nlvm
index a8de124..2d09231 100644
--- a/scripts/blocks/TransportSection.nlvm
+++ b/scripts/TransportSection.nlvm
@@ -1,4 +1,4 @@
-package scripts.blocks;
+package scripts;
import com.nolimitscoaster.Section;
@@ -93,6 +93,9 @@ public class TransportSection extends TrackSection implements ITrainPositionQuer
return m_Section.getTransportCurrentSpeed();
}
- public void Process() { }
+ public String GetType()
+ {
+ return "scripts.TransportSection";
+ }
}
///
diff --git a/scripts/AudioConfig.nlvm b/scripts/audiokit/AudioConfig.nlvm
similarity index 94%
rename from scripts/AudioConfig.nlvm
rename to scripts/audiokit/AudioConfig.nlvm
index b5ed42c..174e618 100644
--- a/scripts/AudioConfig.nlvm
+++ b/scripts/audiokit/AudioConfig.nlvm
@@ -1,4 +1,4 @@
-package scripts;
+package scripts.audiokit;
public final class AudioConfig extends Object
{
diff --git a/scripts/AudioController.nlvm b/scripts/audiokit/AudioController.nlvm
similarity index 99%
rename from scripts/AudioController.nlvm
rename to scripts/audiokit/AudioController.nlvm
index 1cb2677..c457895 100644
--- a/scripts/AudioController.nlvm
+++ b/scripts/audiokit/AudioController.nlvm
@@ -1,4 +1,4 @@
-package scripts;
+package scripts.audiokit;
//import scripts.math.*;
//import scripts.utilities.*;
diff --git a/scripts/AudioCue.nlvm b/scripts/audiokit/AudioCue.nlvm
similarity index 99%
rename from scripts/AudioCue.nlvm
rename to scripts/audiokit/AudioCue.nlvm
index a6e8ed2..5089025 100644
--- a/scripts/AudioCue.nlvm
+++ b/scripts/audiokit/AudioCue.nlvm
@@ -1,4 +1,4 @@
-package scripts;
+package scripts.audiokit;
import scripts.utilities.StringUtil;
import scripts.containers.*;
diff --git a/scripts/AudioCueButton.nlvm b/scripts/audiokit/AudioCueButton.nlvm
similarity index 98%
rename from scripts/AudioCueButton.nlvm
rename to scripts/audiokit/AudioCueButton.nlvm
index b8a10bf..675cc42 100644
--- a/scripts/AudioCueButton.nlvm
+++ b/scripts/audiokit/AudioCueButton.nlvm
@@ -1,4 +1,4 @@
-package scripts;
+package scripts.audiokit;
import com.nolimitscoaster.*;
diff --git a/scripts/AudioCueEStop.nlvm b/scripts/audiokit/AudioCueEStop.nlvm
similarity index 98%
rename from scripts/AudioCueEStop.nlvm
rename to scripts/audiokit/AudioCueEStop.nlvm
index dc0de63..396e1a6 100644
--- a/scripts/AudioCueEStop.nlvm
+++ b/scripts/audiokit/AudioCueEStop.nlvm
@@ -1,4 +1,4 @@
-package scripts;
+package scripts.audiokit;
import com.nolimitscoaster.*;
diff --git a/scripts/AudioCueStationDispatch.nlvm b/scripts/audiokit/AudioCueStationDispatch.nlvm
similarity index 97%
rename from scripts/AudioCueStationDispatch.nlvm
rename to scripts/audiokit/AudioCueStationDispatch.nlvm
index 4af0868..df5b6cc 100644
--- a/scripts/AudioCueStationDispatch.nlvm
+++ b/scripts/audiokit/AudioCueStationDispatch.nlvm
@@ -1,4 +1,4 @@
-package scripts;
+package scripts.audiokit;
import com.nolimitscoaster.*;
diff --git a/scripts/AudioCueStationGate.nlvm b/scripts/audiokit/AudioCueStationGate.nlvm
similarity index 89%
rename from scripts/AudioCueStationGate.nlvm
rename to scripts/audiokit/AudioCueStationGate.nlvm
index 9870159..7e830ac 100644
--- a/scripts/AudioCueStationGate.nlvm
+++ b/scripts/audiokit/AudioCueStationGate.nlvm
@@ -1,4 +1,4 @@
-package scripts;
+package scripts.audiokit;
public final class AudioCueStationGate extends AudioCueStationState
{
diff --git a/scripts/AudioCueStationPlatform.nlvm b/scripts/audiokit/AudioCueStationPlatform.nlvm
similarity index 89%
rename from scripts/AudioCueStationPlatform.nlvm
rename to scripts/audiokit/AudioCueStationPlatform.nlvm
index 04bd7eb..b1be654 100644
--- a/scripts/AudioCueStationPlatform.nlvm
+++ b/scripts/audiokit/AudioCueStationPlatform.nlvm
@@ -1,4 +1,4 @@
-package scripts;
+package scripts.audiokit;
public final class AudioCueStationPlatform extends AudioCueStationState
{
diff --git a/scripts/audiokit/AudioCueStationRestraint.nlvm b/scripts/audiokit/AudioCueStationRestraint.nlvm
new file mode 100644
index 0000000..383ea99
--- /dev/null
+++ b/scripts/audiokit/AudioCueStationRestraint.nlvm
@@ -0,0 +1,11 @@
+package scripts.audiokit;
+
+public final class AudioCueStationRestraint extends AudioCueStationState
+{
+ public void Update(float deltaTime)
+ {
+ if(m_Station.isTrainOnSection())
+ m_Activation = m_Station.getTrainOnSection().getHarnessState();
+ super.Update(deltaTime);
+ }
+}
\ No newline at end of file
diff --git a/scripts/AudioCueStationState.nlvm b/scripts/audiokit/AudioCueStationState.nlvm
similarity index 98%
rename from scripts/AudioCueStationState.nlvm
rename to scripts/audiokit/AudioCueStationState.nlvm
index 0703693..e874c6e 100644
--- a/scripts/AudioCueStationState.nlvm
+++ b/scripts/audiokit/AudioCueStationState.nlvm
@@ -1,4 +1,4 @@
-package scripts;
+package scripts.audiokit;
import com.nolimitscoaster.*;
diff --git a/scripts/AudioCueTimeOfDay.nlvm b/scripts/audiokit/AudioCueTimeOfDay.nlvm
similarity index 98%
rename from scripts/AudioCueTimeOfDay.nlvm
rename to scripts/audiokit/AudioCueTimeOfDay.nlvm
index 2c6643c..63a2dd0 100644
--- a/scripts/AudioCueTimeOfDay.nlvm
+++ b/scripts/audiokit/AudioCueTimeOfDay.nlvm
@@ -1,4 +1,4 @@
-package scripts;
+package scripts.audiokit;
import scripts.math.*;
diff --git a/scripts/AudioCueTimer.nlvm b/scripts/audiokit/AudioCueTimer.nlvm
similarity index 96%
rename from scripts/AudioCueTimer.nlvm
rename to scripts/audiokit/AudioCueTimer.nlvm
index 650696b..95d973e 100644
--- a/scripts/AudioCueTimer.nlvm
+++ b/scripts/audiokit/AudioCueTimer.nlvm
@@ -1,4 +1,4 @@
-package scripts;
+package scripts.audiokit;
public final class AudioCueTimer extends AudioCue
{
diff --git a/scripts/AudioCueTrackTrigger.nlvm b/scripts/audiokit/AudioCueTrackTrigger.nlvm
similarity index 98%
rename from scripts/AudioCueTrackTrigger.nlvm
rename to scripts/audiokit/AudioCueTrackTrigger.nlvm
index 78eb314..29e2a75 100644
--- a/scripts/AudioCueTrackTrigger.nlvm
+++ b/scripts/audiokit/AudioCueTrackTrigger.nlvm
@@ -1,4 +1,4 @@
-package scripts;
+package scripts.audiokit;
import com.nolimitscoaster.*;
import scripts.utilities.*;
diff --git a/scripts/AudioCueVolumeTrigger.nlvm b/scripts/audiokit/AudioCueVolumeTrigger.nlvm
similarity index 98%
rename from scripts/AudioCueVolumeTrigger.nlvm
rename to scripts/audiokit/AudioCueVolumeTrigger.nlvm
index 5c758ff..0384b07 100644
--- a/scripts/AudioCueVolumeTrigger.nlvm
+++ b/scripts/audiokit/AudioCueVolumeTrigger.nlvm
@@ -1,4 +1,4 @@
-package scripts;
+package scripts.audiokit;
import scripts.math.*;
diff --git a/scripts/AudioCueVolumeTriggerCube.nlvm b/scripts/audiokit/AudioCueVolumeTriggerCube.nlvm
similarity index 89%
rename from scripts/AudioCueVolumeTriggerCube.nlvm
rename to scripts/audiokit/AudioCueVolumeTriggerCube.nlvm
index b86ccf3..5abd2d7 100644
--- a/scripts/AudioCueVolumeTriggerCube.nlvm
+++ b/scripts/audiokit/AudioCueVolumeTriggerCube.nlvm
@@ -1,4 +1,4 @@
-package scripts;
+package scripts.audiokit;
import scripts.math.*;
diff --git a/scripts/AudioCueVolumeTriggerSphere.nlvm b/scripts/audiokit/AudioCueVolumeTriggerSphere.nlvm
similarity index 89%
rename from scripts/AudioCueVolumeTriggerSphere.nlvm
rename to scripts/audiokit/AudioCueVolumeTriggerSphere.nlvm
index f213e50..fb1306c 100644
--- a/scripts/AudioCueVolumeTriggerSphere.nlvm
+++ b/scripts/audiokit/AudioCueVolumeTriggerSphere.nlvm
@@ -1,4 +1,4 @@
-package scripts;
+package scripts.audiokit;
import scripts.math.*;
diff --git a/scripts/AudioCueWeather.nlvm b/scripts/audiokit/AudioCueWeather.nlvm
similarity index 98%
rename from scripts/AudioCueWeather.nlvm
rename to scripts/audiokit/AudioCueWeather.nlvm
index 9e65d68..6756293 100644
--- a/scripts/AudioCueWeather.nlvm
+++ b/scripts/audiokit/AudioCueWeather.nlvm
@@ -1,4 +1,4 @@
-package scripts;
+package scripts.audiokit;
public final class AudioCueWeather extends AudioCue
{
diff --git a/scripts/AudioEmitter.nlvm b/scripts/audiokit/AudioEmitter.nlvm
similarity index 99%
rename from scripts/AudioEmitter.nlvm
rename to scripts/audiokit/AudioEmitter.nlvm
index 64481c3..cdb1845 100644
--- a/scripts/AudioEmitter.nlvm
+++ b/scripts/audiokit/AudioEmitter.nlvm
@@ -1,4 +1,4 @@
-package scripts;
+package scripts.audiokit;
import scripts.containers.*;
diff --git a/scripts/AudioEmitterCar.nlvm b/scripts/audiokit/AudioEmitterCar.nlvm
similarity index 98%
rename from scripts/AudioEmitterCar.nlvm
rename to scripts/audiokit/AudioEmitterCar.nlvm
index ddc2f35..a32cea1 100644
--- a/scripts/AudioEmitterCar.nlvm
+++ b/scripts/audiokit/AudioEmitterCar.nlvm
@@ -1,4 +1,4 @@
-package scripts;
+package scripts.audiokit;
import scripts.math.*;
import scripts.containers.*;
diff --git a/scripts/AudioEmitterCube.nlvm b/scripts/audiokit/AudioEmitterCube.nlvm
similarity index 89%
rename from scripts/AudioEmitterCube.nlvm
rename to scripts/audiokit/AudioEmitterCube.nlvm
index ad7664b..7debe99 100644
--- a/scripts/AudioEmitterCube.nlvm
+++ b/scripts/audiokit/AudioEmitterCube.nlvm
@@ -1,4 +1,4 @@
-package scripts;
+package scripts.audiokit;
import scripts.math.*;
diff --git a/scripts/AudioEmitterPoint.nlvm b/scripts/audiokit/AudioEmitterPoint.nlvm
similarity index 90%
rename from scripts/AudioEmitterPoint.nlvm
rename to scripts/audiokit/AudioEmitterPoint.nlvm
index 35baea8..7b4ef60 100644
--- a/scripts/AudioEmitterPoint.nlvm
+++ b/scripts/audiokit/AudioEmitterPoint.nlvm
@@ -1,4 +1,4 @@
-package scripts;
+package scripts.audiokit;
public class AudioEmitterPoint extends AudioEmitter
{
diff --git a/scripts/AudioEmitterSphere.nlvm b/scripts/audiokit/AudioEmitterSphere.nlvm
similarity index 91%
rename from scripts/AudioEmitterSphere.nlvm
rename to scripts/audiokit/AudioEmitterSphere.nlvm
index 552f03c..1f125e2 100644
--- a/scripts/AudioEmitterSphere.nlvm
+++ b/scripts/audiokit/AudioEmitterSphere.nlvm
@@ -1,4 +1,4 @@
-package scripts;
+package scripts.audiokit;
import scripts.math.*;
diff --git a/scripts/AudioEmitterVolume.nlvm b/scripts/audiokit/AudioEmitterVolume.nlvm
similarity index 98%
rename from scripts/AudioEmitterVolume.nlvm
rename to scripts/audiokit/AudioEmitterVolume.nlvm
index d451ce2..7152302 100644
--- a/scripts/AudioEmitterVolume.nlvm
+++ b/scripts/audiokit/AudioEmitterVolume.nlvm
@@ -1,4 +1,4 @@
-package scripts;
+package scripts.audiokit;
import scripts.containers.*;
import scripts.math.*;
diff --git a/scripts/AudioFile.nlvm b/scripts/audiokit/AudioFile.nlvm
similarity index 98%
rename from scripts/AudioFile.nlvm
rename to scripts/audiokit/AudioFile.nlvm
index 42141f2..e675d13 100644
--- a/scripts/AudioFile.nlvm
+++ b/scripts/audiokit/AudioFile.nlvm
@@ -1,4 +1,4 @@
-package scripts;
+package scripts.audiokit;
import com.nolimitscoaster.*;
diff --git a/scripts/AudioToggleMute.nlvm b/scripts/audiokit/AudioToggleMute.nlvm
similarity index 99%
rename from scripts/AudioToggleMute.nlvm
rename to scripts/audiokit/AudioToggleMute.nlvm
index a20589c..bcf3f1c 100644
--- a/scripts/AudioToggleMute.nlvm
+++ b/scripts/audiokit/AudioToggleMute.nlvm
@@ -1,4 +1,4 @@
-package scripts;
+package scripts.audiokit;
import com.nolimitscoaster.*;
import scripts.containers.*;
diff --git a/scripts/AudioToggleShutOff.nlvm b/scripts/audiokit/AudioToggleShutOff.nlvm
similarity index 99%
rename from scripts/AudioToggleShutOff.nlvm
rename to scripts/audiokit/AudioToggleShutOff.nlvm
index be6b55b..553eea0 100644
--- a/scripts/AudioToggleShutOff.nlvm
+++ b/scripts/audiokit/AudioToggleShutOff.nlvm
@@ -1,4 +1,4 @@
-package scripts;
+package scripts.audiokit;
import com.nolimitscoaster.*;
import scripts.containers.*;
diff --git a/scripts/blocks/StationSection.nlvm b/scripts/blocks/StationSection.nlvm
deleted file mode 100644
index 117a3ec..0000000
--- a/scripts/blocks/StationSection.nlvm
+++ /dev/null
@@ -1,12 +0,0 @@
-package scripts.core.blocks;
-
-import com.nolimitscoaster.Block;
-import com.nolimitscoaster.Section;
-
-///
-/// .
-public class StationSection extends BlockSection implements IState, IBlock, ITrainPositionQuery
-{
-
-}
-///
\ No newline at end of file
diff --git a/scripts/math/Matrix4x4.nlvm b/scripts/math/Matrix4x4.nlvm
index 0cca2f3..66ad18d 100644
--- a/scripts/math/Matrix4x4.nlvm
+++ b/scripts/math/Matrix4x4.nlvm
@@ -7,7 +7,6 @@ import com.nolimitscoaster.Tools;
/// Immutable Matrix4x4 type.
public final class Matrix4x4 extends Object
{
- private Matrix4x4f m_NativeMatrix = null;
private float[] m_NativeComponents = null;
///
@@ -90,9 +89,7 @@ public final class Matrix4x4 extends Object
///
public Matrix4x4()
{
- m_NativeMatrix = new Matrix4x4f();
- m_NativeMatrix.initIdentity();
- m_NativeComponents = m_NativeMatrix.elems();
+ InitialiseIdentity();
}
///
/// Creates a new Matrix4x4 instance as a copy.
@@ -100,8 +97,7 @@ public final class Matrix4x4 extends Object
///
public Matrix4x4(Matrix4x4 copy)
{
- m_NativeMatrix = new Matrix4x4f();
- m_NativeComponents = m_NativeMatrix.elems();
+ InitialiseIdentity();
float[] copyComponents = copy.m_NativeComponents;
for(int i = 0; i < copyComponents.length; ++i)
m_NativeComponents[i] = copyComponents[i];
@@ -111,8 +107,7 @@ public final class Matrix4x4 extends Object
///
public Matrix4x4(float a1, float a2, float a3, float a4, float b1, float b2, float b3, float b4, float c1, float c2, float c3, float c4, float d1, float d2, float d3, float d4)
{
- m_NativeMatrix = new Matrix4x4f();
- m_NativeComponents = m_NativeMatrix.elems();
+ InitialiseIdentity();
m_NativeComponents[A1] = a1;
m_NativeComponents[A2] = a2;
m_NativeComponents[A3] = a3;
@@ -143,10 +138,8 @@ public final class Matrix4x4 extends Object
///
public Matrix4x4(Vector4 right, Vector4 up, Vector4 forward, Vector4 position)
{
- m_NativeMatrix = new Matrix4x4f();
- m_NativeMatrix.initIdentity();
- m_NativeComponents = m_NativeMatrix.elems();
- SetColumns(new Vector3(right), new Vector3(up), new Vector3(forward), new Vector3(position));
+ InitialiseIdentity();
+ m_NativeComponents = SetColumns(new Vector3(right), new Vector3(up), new Vector3(forward), new Vector3(position)).m_NativeComponents;
m_NativeComponents[D4] = position.W;
}
///
@@ -158,13 +151,22 @@ public final class Matrix4x4 extends Object
///
public Matrix4x4(Vector3 right, Vector3 up, Vector3 forward, Vector3 position)
{
- m_NativeMatrix = new Matrix4x4f();
- m_NativeMatrix.initIdentity();
- m_NativeComponents = m_NativeMatrix.elems();
- SetColumns(right, up, forward, position);
+ InitialiseIdentity();
+ m_NativeComponents = SetColumns(right, up, forward, position).m_NativeComponents;
}
+ private void InitialiseIdentity()
+ {
+ m_NativeComponents = new float[]
+ {
+ 1, 0, 0, 0,
+ 0, 1, 0, 0,
+ 0, 0, 1, 0,
+ 0, 0, 0, 1
+ };
+ }
+
///
/// Creates a translation Matrix4x4.
@@ -173,7 +175,9 @@ public final class Matrix4x4 extends Object
public static Matrix4x4 AsTranslation(float x, float y, float z)
{
Matrix4x4 matrix = new Matrix4x4();
- matrix.m_NativeMatrix.initTrans(x, y, z);
+ matrix.m_NativeComponents[A4] = x;
+ matrix.m_NativeComponents[B4] = y;
+ matrix.m_NativeComponents[C4] = z;
return matrix;
}
///
@@ -192,24 +196,32 @@ public final class Matrix4x4 extends Object
public static Matrix4x4 AsRotation(float x, float y, float z)
{
Matrix4x4 matrix = new Matrix4x4();
+
Matrix4x4f rotation = new Matrix4x4f();
+ Matrix4x4f cumulativeRotation = new Matrix4x4f();
+ cumulativeRotation.initIdentity();
+
if(x != 0)
{
rotation.initXRot(x);
- matrix.m_NativeMatrix.multRight(rotation);
+ cumulativeRotation.multRight(rotation);
}
if(y != 0)
{
- matrix.m_NativeMatrix.multRight(rotation);
rotation.initYRot(y);
+ cumulativeRotation.multRight(rotation);
}
if(z != 0)
{
rotation.initZRot(z);
- matrix.m_NativeMatrix.multRight(rotation);
+ cumulativeRotation.multRight(rotation);
}
+ float[] elems = cumulativeRotation.elems();
+ for(int i = 0; i < 16; ++i)
+ matrix.m_NativeComponents[i] = elems[i];
+
return matrix;
}
///
@@ -228,7 +240,13 @@ public final class Matrix4x4 extends Object
public static Matrix4x4 AsScale(float x, float y, float z)
{
Matrix4x4 matrix = new Matrix4x4();
- matrix.m_NativeMatrix.initScal(x, y, z);
+ Matrix4x4f temp = new Matrix4x4f();
+ temp.initScal(x, y, z);
+
+ float[] elems = temp.elems();
+ for(int i = 0; i < 16; ++i)
+ matrix.m_NativeComponents[i] = elems[i];
+
return matrix;
}
///
@@ -306,7 +324,11 @@ public final class Matrix4x4 extends Object
public Matrix4x4 LeftMultiply(Matrix4x4 left)
{
Matrix4x4 copy = new Matrix4x4(this);
- copy.m_NativeMatrix.multLeft(left.m_NativeMatrix);
+ Matrix4x4f copyNative = GetNative();
+ copyNative.multLeft(left.GetNative());
+ float[] elems = copyNative.elems();
+ for(int i = 0; i < 16; ++i)
+ copy.m_NativeComponents[i] = elems[i];
return copy;
}
///
@@ -316,14 +338,20 @@ public final class Matrix4x4 extends Object
public Matrix4x4 RightMultiply(Matrix4x4 right)
{
Matrix4x4 copy = new Matrix4x4(this);
- copy.m_NativeMatrix.multRight(right.m_NativeMatrix);
+ Matrix4x4f copyNative = GetNative();
+ copyNative.multRight(right.GetNative());
+ float[] elems = copyNative.elems();
+ for(int i = 0; i < 16; ++i)
+ copy.m_NativeComponents[i] = elems[i];
return copy;
}
+
public Vector3 Multiply3x3(Vector3 vector)
{
Vector3f nativeVector = new Vector3f(vector.X, vector.Y, vector.Z);
- m_NativeMatrix.multVector3x3(nativeVector, nativeVector);
+ Matrix4x4f nativeMatrix = GetNative();
+ nativeMatrix.multVector3x3(nativeVector, nativeVector);
return Vector3.FromNative(nativeVector);
}
@@ -333,9 +361,10 @@ public final class Matrix4x4 extends Object
///
public Vector3 TransformVector3Zero(Vector3 vector)
{
- Vector4f v = new Vector4f(vector.X, vector.Y, vector.Z, 0);
- m_NativeMatrix.multVector(v, v);
- return new Vector3(v.x, v.y, v.z);
+ Vector4f nativeVector = new Vector4f(vector.X, vector.Y, vector.Z, 0);
+ Matrix4x4f nativeMatrix = GetNative();
+ nativeMatrix.multVector(nativeVector, nativeVector);
+ return new Vector3(nativeVector.x, nativeVector.y, nativeVector.z);
}
///
/// Transforms the vector by the matrix with the virtual 4th component being 1.
@@ -343,9 +372,10 @@ public final class Matrix4x4 extends Object
///
public Vector3 TransformVector3One(Vector3 vector)
{
- Vector4f v = new Vector4f(vector.X, vector.Y, vector.Z, 1);
- m_NativeMatrix.multVector(v, v);
- return new Vector3(v.x, v.y, v.z);
+ Vector4f nativeVector = new Vector4f(vector.X, vector.Y, vector.Z, 1);
+ Matrix4x4f nativeMatrix = GetNative();
+ nativeMatrix.multVector(nativeVector, nativeVector);
+ return new Vector3(nativeVector.x, nativeVector.y, nativeVector.z);
}
///
@@ -355,7 +385,11 @@ public final class Matrix4x4 extends Object
public Matrix4x4 Invert()
{
Matrix4x4 copy = new Matrix4x4(this);
- copy.m_NativeMatrix.invert();
+ Matrix4x4f invert = GetNative();
+ invert.invert();
+ float[] elems = invert.elems();
+ for(int i = 0; i < 16; ++i)
+ copy.m_NativeComponents[i] = elems[i];
return copy;
}
@@ -464,16 +498,35 @@ public final class Matrix4x4 extends Object
}
+ public float GetDeterminant()
+ {
+ float[] m = m_NativeComponents;
+ return
+ m[A1] * (m[B2] * (m[C3] * m[D4] - m[C4] * m[D3])
+ - m[B3] * (m[C2] * m[D4] - m[C4] * m[D2])
+ + m[B4] * (m[C2] * m[D3] - m[C3] * m[D2]))
+ - m[A2] * (m[B1] * (m[C3] * m[D4] - m[C4] * m[D3])
+ - m[B3] * (m[C1] * m[D4] - m[C4] * m[D1])
+ + m[B4] * (m[C1] * m[D3] - m[C3] * m[D1]))
+ + m[A3] * (m[B1] * (m[C2] * m[D4] - m[C4] * m[D2])
+ - m[B2] * (m[C1] * m[D4] - m[C4] * m[D1])
+ + m[B4] * (m[C1] * m[D2] - m[C2] * m[D1]))
+ - m[A4] * (m[B1] * (m[C2] * m[D3] - m[C3] * m[D2])
+ - m[B2] * (m[C1] * m[D3] - m[C3] * m[D1])
+ + m[B3] * (m[C1] * m[D2] - m[C2] * m[D1]));
+
+ }
+
///
/// Interpolate between two matrices.
///
public static Matrix4x4 Lerp(float t, Matrix4x4 in, Matrix4x4 out)
{
- float[] inComp = in.m_NativeMatrix.elems();
- float[] outComp = out.m_NativeMatrix.elems();
+ float[] inComp = in.m_NativeComponents;
+ float[] outComp = out.m_NativeComponents;
Matrix4x4 matrix = new Matrix4x4();
- float[] comp = matrix.m_NativeMatrix.elems();
+ float[] comp = matrix.m_NativeComponents;
for(int i = 0; i < 16; ++i)
comp[i] = Tools.lerp(t, inComp[i], outComp[i]);
@@ -487,11 +540,9 @@ public final class Matrix4x4 extends Object
public static Matrix4x4 FromNative(Matrix4x4f nativeMatrix)
{
Matrix4x4 matrix = new Matrix4x4();
- float[] inComp = matrix.m_NativeMatrix.elems();
float[] copyComp = nativeMatrix.elems();
-
for(int i = 0; i < 16; ++i)
- inComp[i] = copyComp[i];
+ matrix.m_NativeComponents[i] = copyComp[i];
return matrix;
}
@@ -502,10 +553,8 @@ public final class Matrix4x4 extends Object
public void GetNative(Matrix4x4f outMatrix)
{
float[] outComp = outMatrix.elems();
- float[] copyComp = m_NativeMatrix.elems();
-
for(int i = 0; i < 16; ++i)
- outComp[i] = copyComp[i];
+ outComp[i] = m_NativeComponents[i];
}
///
/// Gets the underlying Matrix4x4f type.
@@ -514,12 +563,9 @@ public final class Matrix4x4 extends Object
public Matrix4x4f GetNative()
{
Matrix4x4f outMatrix = new Matrix4x4f();
-
float[] outComp = outMatrix.elems();
- float[] copyComp = m_NativeMatrix.elems();
-
for(int i = 0; i < 16; ++i)
- outComp[i] = copyComp[i];
+ outComp[i] = m_NativeComponents[i];
return outMatrix;
}