Skip to content

Instantly share code, notes, and snippets.

@TimTheTerribleCS
Last active October 3, 2016 12:09
Show Gist options
  • Save TimTheTerribleCS/6dfd1a7698c3cd7a3cde9fef74c81b58 to your computer and use it in GitHub Desktop.
Save TimTheTerribleCS/6dfd1a7698c3cd7a3cde9fef74c81b58 to your computer and use it in GitHub Desktop.
Lenghtens stations tracks
// specify the id of the segment you want to edit (search with the other script)
var segmentId = XXXXX;
// specifies how the start and end point of the segment are modified
// x, y, z in meters (the second parameter is the height)
var moveStart = new Vector3(-24, 0, 0);
var moveEnd = new Vector3(24, 0, 0);
// Here you can change the network type (e.g. from ground train track to elevated train track)
var changeNetTypeTo = "Train Station Track";
// --- end of editable variables ---
var mgr = NetManager.instance;
if (mgr.m_segments.m_buffer[segmentId].m_flags == NetSegment.Flags.None)
{
Debug.Log("Invalid Segment ID (see first line of script)!");
}
Debug.Log("Modifying segment " + segmentId + " (Type: " + mgr.m_segments.m_buffer[segmentId].Info.name + ")...");
mgr.MoveNode(mgr.m_segments.m_buffer[segmentId].m_startNode, mgr.m_nodes.m_buffer[mgr.m_segments.m_buffer[segmentId].m_startNode].m_position + moveStart);
mgr.MoveNode(mgr.m_segments.m_buffer[segmentId].m_endNode, mgr.m_nodes.m_buffer[mgr.m_segments.m_buffer[segmentId].m_endNode].m_position + moveEnd);
Debug.Log("Segment start/end points modified!");
var netInfo = PrefabCollection<NetInfo>.FindLoaded(changeNetTypeTo);
if (netInfo != null)
{
ushort newNetTypeId = (ushort)netInfo.m_prefabDataIndex;
mgr.m_segments.m_buffer[segmentId].m_infoIndex = newNetTypeId;
Debug.Log("Net type changed to " + changeNetTypeTo + "!");
}
else
{
Debug.Log(changeNetTypeTo + " is not a valid net type! skipping net type changing...");
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment