private ZoningTool11 CreateZoningTool() { if (Object.op_Inequality((Object)this.buildTool, (Object)null)) { return(this.buildTool); } this.buildTool = (ZoningTool11)((Component)ToolsModifierControl.get_toolController()).get_gameObject().GetComponent <ZoningTool11>(); if (Object.op_Equality((Object)this.buildTool, (Object)null)) { this.buildTool = (ZoningTool11)((Component)ToolsModifierControl.get_toolController()).get_gameObject().AddComponent <ZoningTool11>(); } return(this.buildTool); }
private void DestroyZoningTool() { Logger.DebugData((object)Object.op_Equality((Object)ToolsModifierControl.get_toolController(), (Object)null)); if (Object.op_Inequality((Object)ToolsModifierControl.get_toolController(), (Object)null) && (Object.op_Equality((Object)ToolsModifierControl.get_toolController().get_CurrentTool(), (Object)this.buildTool) || Object.op_Equality((Object)ToolsModifierControl.get_toolController().get_CurrentTool(), (Object)null))) { ToolsModifierControl.get_toolController().set_CurrentTool((ToolBase)this.netTool); } if (Object.op_Inequality((Object)this.buildTool, (Object)null)) { Logger.Debug("Destroying tool: " + ((object)this.buildTool).GetType().Name + " it is: " + (object)this.buildTool); Object.Destroy((Object)this.buildTool); this.buildTool = (ZoningTool11)null; } else { Logger.Debug("Destroying tool: " + typeof(ZoningTool11).Name + " it is: " + (object)this.buildTool); } }
public virtual void OnBeforeSimulationTick() { if (!this.enabled) { return; } if (Object.op_Inequality((Object)this.buildTool, (Object)null)) { if (!this.mouseDown && this.buildTool.SegmentsTouched.Count > 0) { this.buildTool.SegmentsTouched = new HashSet <int>(); } this.buildTool.isHoveringSegment = false; this.buildTool.ToolCursor = (CursorInfo)this.netTool.m_upgradeCursor; // ISSUE: variable of the null type __Null texture = ((CursorInfo)this.netTool.m_upgradeCursor).m_texture; } if (!this.mouseRayValid) { return; } ToolBase.RaycastInput input; ((ToolBase.RaycastInput) ref input).\u002Ector(this.mouseRay, this.mouseRayLength); input.m_netService = (__Null)this.raycastService; input.m_ignoreTerrain = (__Null)1; input.m_ignoreNodeFlags = (__Null) - 1; input.m_ignoreSegmentFlags = (__Null)32; ToolBase.RaycastOutput output; if (ZoningTool11.RayCast(input, out output)) { int netSegment = (int)output.m_netSegment; if (netSegment != 0) { NetManager instance = Singleton <NetManager> .get_instance(); NetTool.ControlPoint startPoint; NetTool.ControlPoint middlePoint; NetTool.ControlPoint endPoint; this.GetSegmentControlPoints(netSegment, out startPoint, out middlePoint, out endPoint); ushort num1; ushort num2; int num3; int num4; if ((NetTool.CreateNode(((NetSegment) ref ((Array16 <NetSegment>)instance.m_segments).m_buffer[netSegment]).get_Info(), startPoint, middlePoint, endPoint, (FastList <NetTool.NodePosition>)NetTool.m_nodePositionsSimulation, 1000, true, false, true, false, false, false, (ushort)0, ref num1, ref num2, ref num3, ref num4) & 32L) != null) { this.toolError = ToolError.OutOfArea; } else if (this.mouseDown) { this.HandleMouseDrag(ref output, ref this.toolError, false, ref netSegment); } else { this.HandleMouseDrag(ref output, ref this.toolError, true, ref netSegment); } if (Object.op_Inequality((Object)this.buildTool, (Object)null)) { this.buildTool.segment = (NetSegment)((Array16 <NetSegment>)instance.m_segments).m_buffer[netSegment]; this.buildTool.segmentIndex = netSegment; if (Object.op_Equality((Object)(((NetSegment) ref this.buildTool.segment).get_Info().m_netAI as RoadAI), (Object)null) && this.toolError != ToolError.OutOfArea) { this.toolError = ToolError.CannotUpgradeThisType; } this.buildTool.isHoveringSegment = this.toolError != ToolError.CannotUpgradeThisType; this.GetSegmentControlPoints(netSegment, out this.buildTool.startPoint, out this.buildTool.middlePoint, out this.buildTool.endPoint); } } }