public CasePhotocell(CasePhotocellInfo info, BaseTrack conv) : base(info, conv) { photocellInfo = info; AssemblyInfo ai = new AssemblyInfo(); conveyor = conv; photocellDisplay = new CasePhotocellDisplay(new PhotocellDisplayInfo { width = info.width }); photocellDisplay.ListSolutionExplorer = false; photocellDisplay.OnPhotocellDisplayDeleted += photocellDisplay_OnPhotocellDisplayDeleted; Add(photocellDisplay, new Vector3(info.length / 2, 0, 0)); sensor.OnEnter += sensor_OnEnter; sensor.OnLeave += sensor_OnLeave; sensor.Color = Color.Green; sensor.Visible = false; conv.TransportSection.Route.InsertActionPoint(sensor); //If the photocell is connected to a belt conveyor then we want to pause the timers if the conveyor is not available if (conveyor is IBeltControl) { beltControl = conveyor as IRouteStatus; routeStatus = beltControl.GetRouteStatus(conveyor.StartFixPoint); routeStatus.OnRouteStatusChanged += routeStatus_OnRouteStatusChanged; } OnNameChanged += CasePhotocell_OnNameChanged; }
public void UpdateWidth(float width) { photocellInfo.width = width; RemoveAssembly(photocellDisplay); //Easier to recreate graphic as it is just a graphic photocellDisplay.deleteFromUser = false; photocellDisplay.Dispose(); photocellDisplay = new CasePhotocellDisplay(new PhotocellDisplayInfo { width = width }); photocellDisplay.ListSolutionExplorer = false; photocellDisplay.OnPhotocellDisplayDeleted += photocellDisplay_OnPhotocellDisplayDeleted; Add(photocellDisplay, new Vector3(0, 0, 0)); DeviceDistance = photocellInfo.distance; }