public override void OnBeforeSimulationTick() { try { _OnBeforeSimulationTick(); } catch (Exception e) { ModDebug.Error(e); } }
public override void OnUpdate(float realTimeDelta, float simulationTimeDelta) { try { _OnUpdate(); } catch (Exception e) { ModDebug.Error(e); } }
void SafelySetBuiltinTabstripSelectedIndex(int index) { ignoreBuiltinTabstripEvents = true; try { ModDebug.Log("Setting builtin tabstrip mode: " + index); builtinTabstrip.selectedIndex = index; } catch (Exception e) { ModDebug.Error(e); } ignoreBuiltinTabstripEvents = false; }
void HandleMouseDrag(ref ToolBase.RaycastOutput raycastOutput, ref ToolError error, bool test, ref NetInfo newRoadPrefab, ref int newSegmentIndex) { Vector3 hitPosDelta = Vector3.zero; if (!test) { if (currentTime - prevRebuildTime < 0.1f) { return; } if (dragging) { hitPosDelta = raycastOutput.m_hitPos - prevHitPos; if (hitPosDelta.magnitude < 12.0f) { return; } } else { prevHitPos = raycastOutput.m_hitPos; dragging = true; if (toolMode == ToolMode.Oneway) { return; } } prevHitPos = raycastOutput.m_hitPos; } int segmentIndex = raycastOutput.m_netSegment; if (segmentIndex != 0) { NetManager net = Singleton <NetManager> .instance; NetInfo prefab = net.m_segments.m_buffer[segmentIndex].Info; bool isOneway = !prefab.m_hasForwardVehicleLanes || !prefab.m_hasBackwardVehicleLanes; string prefabName = null; if (!roadPrefabNames.TryGetValue(prefab.GetInstanceID(), out prefabName) || prefabName == null) { ModDebug.Error("Prefab name not found"); error = ToolError.Unknown; return; } string newPrefabName = null; if (toolMode == ToolMode.Oneway) { if (!isOneway) { newPrefabName = FindMatchingName(prefabName, twowayNames, onewayNames); } else { newPrefabName = prefabName; } } else { if (isOneway) { newPrefabName = FindMatchingName(prefabName, onewayNames, twowayNames); } else { toolError = ToolError.AlreadyTwoway; return; } } if (newPrefabName != null) { if (test) { toolError = ToolError.None; return; } NetInfo newPrefab; if (!roadPrefabs.TryGetValue(newPrefabName, out newPrefab) || newPrefab == null) { ModDebug.Error("Prefab not found: " + newPrefabName); error = ToolError.Unknown; return; } newRoadPrefab = newPrefab; int newIndex = RebuildSegment(segmentIndex, newPrefab, toolMode == ToolMode.Oneway, raycastOutput.m_hitPos, hitPosDelta, ref error); if (newIndex != 0) { if (error != ToolError.None) { return; } prevBuiltSegmentIndex = newSegmentIndex; prevRebuildTime = currentTime; newSegmentIndex = newIndex; } } else { toolError = ToolError.CannotUpgradeThisType; return; } } }