public override void OnWagonActivate(Wagon wagon, ActivateInfo info) { if (info.button == ActivateButton.RightClick) { Destroy(wagon.gameObject); } }
public override void OnTrackActivate(TrackSectionComponent track, ActivateInfo info) { bool selectStart; if (info.button == ActivateButton.LeftClick && HighlightClosestEnd(track.trackSection, true, info.hit.point, out selectStart)) { if (state == State.Idle) { fromSection = track.trackSection; fromEnd = !selectStart; ToState(State.SelectedStart); } else if (state == State.SelectedStart) { // Try to place the track var toSection = track.trackSection; var toEnd = !selectStart; if (!TryPlaceTrack(fromSection, fromEnd, toSection, toEnd)) { Debug.Log("Unable to place flex section!"); } ToState(State.Idle); } } else if (info.button == ActivateButton.RightClick) { ToState(State.Idle); } }
public override void OnTrackActivate(TrackSectionComponent track, ActivateInfo info) { if (info.button == ActivateButton.LeftClick && selectedWagon != null) { // Place the selected wagon on the track float distance; GetSnappedTrackPosition(track.trackSection, info.hit.point, out distance); PlaceSelected(track.trackSection, distance); } }
public override void OnTrackHover(TrackSectionComponent track, ActivateInfo info) { if (HighlightClosestEnd(track.trackSection, true, info.hit.point, out shouldInvertOnReposition)) { lastHighlightedSection = track.trackSection; } else { lastHighlightedSection = null; } }
public override void OnWagonActivate(Wagon wagon, ActivateInfo info) { var localHit = wagon.transform.InverseTransformPoint(info.hit.point); var mag = wagon.rigidbody.mass * trainImpulseSpeed * (1.0f / Time.deltaTime); if (localHit.z < 0) { mag = -mag; } // Push wagon wagon.ApplyForce(mag); }
public override void OnWagonActivate(Wagon wagon, ActivateInfo info) { var loco = wagon.GetComponent <LocomotiveController>(); if (loco != null) { DeactivateLocomotiveGlow(); locomotive = loco; var glow = locomotive.GetComponent <GlowObject>(); glow.ActivateGlow(); speedSlider.value = Mathf.Round(locomotive.targetSpeed) / multiplier; } }
public override void OnTrackHover(TrackSectionComponent track, ActivateInfo info) { if (selectedWagon != null) { float distance; // TODO: Draw ghost instead var matrix = Matrix4x4.TRS(GetSnappedTrackPosition(track.trackSection, info.hit.point, out distance), track.trackSection.GetRotationOnTrack(distance), Vector3.one); Highlighter.DrawHighlighter(matrix); Graphics.DrawMesh(selectedWagon.GetComponent <MeshFilter>().sharedMesh, matrix, selectedWagon.GetComponent <MeshRenderer>().sharedMaterial, gameObject.layer); } }
public override void OnTrackActivate(TrackSectionComponent track, ActivateInfo info) { if (lastHighlightedSection == track.trackSection && info.button == ActivateButton.LeftClick) { // Reposition on track section, or deselect trackLayer.Reposition(lastHighlightedSection != trackLayer.CurrentSection ? lastHighlightedSection : null, shouldInvertOnReposition); } else if (info.button == ActivateButton.RightClick) { // Delete track if (track.trackSection == trackLayer.CurrentSection) { trackLayer.CurrentSection = null; } RemoveTrackSection(track); } }
private DataTable QueryLogInfo() { DateTime time = DateTime.Now; DateTime start = time; DateTime end = time; if (dpStart.SelectedDate != null) { start = dpStart.SelectedDate.Value; } if (dpEnd.SelectedDate != null) { end = dpEnd.SelectedDate.Value.AddDays(1).AddMilliseconds(-1); } ActivateInfo act = new ActivateInfo(start, end); return(act.QueryLogIn()); }
private void MainTimer_Tick(object sender, EventArgs e) { if (UITag == SysParms.UITag) {//单击的为当前窗口 return; } if (SysParms.UITag == 8) {//退出时 如推焦车推焦杆和平煤杆正在动,即处于生产状态时,禁止; //bool yes = false; for (int i = 0; i < 2; i++) { if (((TjcDataRead)Communication.CarsLst[i].DataRead).PushPoleLength == 0 && ((TjcDataRead)Communication.CarsLst[i].DataRead).PingPoleLength == 0) { ActivateInfo act = new ActivateInfo(DateTime.Now, false); act.RecToDB(); Environment.Exit(0); } else { SysParms.UITag = UITag; string mesg = (i + 1) + "#推焦车正在推焦或者平煤,请等待推焦和平煤结束之后再退出!"; MessageBox.Show(mesg, "提示"); return; } } } // 0630 新增结焦状态 0912增加系统设置 if (SysParms.UITag != UITag) { if (SysParms.UITag == 1) { planEdit.UpdateDgItemsSource(); } ui[SysParms.UITag].Show(); ui[UITag].Hide(); UITag = SysParms.UITag; } }
public void Hover(ActivateInfo hit) { // TODO: Highlight in some way? }
public void Activate(ActivateInfo hit) { Decouple(); }
public virtual void OnTrackActivate(TrackSectionComponent track, ActivateInfo info) { }
public virtual void OnWagonActivate(Wagon wagon, ActivateInfo info) { }
public void Activate(ActivateInfo info) { junction.Toggle(); UpdateFromJunction(); }
private void RecActivateInfo() { ActivateInfo act = new ActivateInfo(DateTime.Now, true); act.RecToDB(); }
public void Hover(ActivateInfo info) { }
// Update is called once per frame void Update() { // Get input parameters var mouseInput = new Vector2(Input.GetAxisRaw("Mouse X"), invertMouseY ? Input.GetAxisRaw("Mouse Y") : -Input.GetAxisRaw("Mouse Y")); var walkInput = new Vector3(Input.GetAxisRaw("Horizontal"), 0, Input.GetAxisRaw("Vertical")); var scaleInput = Input.GetAxisRaw("Mouse ScrollWheel"); var speed = walkSpeed; if (walkInput.sqrMagnitude > 1) { walkInput.Normalize(); } if (Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)) { speed = runSpeed; } else if (Input.GetKey(KeyCode.LeftControl) || Input.GetKey(KeyCode.RightControl)) { speed = stepSpeed; } // Handle mouse lock if (Input.GetKeyDown(KeyCode.LeftAlt) || Input.GetKeyDown(KeyCode.RightAlt)) { SetMouseLock(!lockedMouse); } // Do scale height = Mathf.Clamp(height + scaleInput * scaleSpeed, minHeight, maxHeight); if (!disableLookWhenMouseUnlocked || lockedMouse) { // Do yaw rotation transform.Rotate(Vector3.up, mouseInput.x * mouseSensitivity * Time.deltaTime); // Do pitch rotation var pitchDelta = mouseInput.y * mouseSensitivity * Time.deltaTime; if (pitchAngle + pitchDelta < -85) { pitchDelta = -85 - pitchAngle; } else if (pitchAngle + pitchDelta > 85) { pitchDelta = 85 - pitchAngle; } pitchAngle += pitchDelta; pitchTransform.Rotate(Vector3.right, pitchDelta, Space.Self); } // Do movement transform.Translate(walkInput * speed * Time.deltaTime * scale, Space.Self); // Update camera height var pos = pitchTransform.localPosition; pos.y = height * scale; pitchTransform.localPosition = pos; // Do activation RaycastHit hit; Ray ray = lockedMouse ? new Ray(pitchTransform.position, pitchTransform.forward) : Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit, 1000.0f, activatableMask)) { var activatable = hit.collider.GetComponent <IActivatable>(); var info = new ActivateInfo(hit, ActivateButton.None); if (activatable != null) { activatable.Hover(info); if (Clicked()) { info.button = Input.GetButtonDown("Fire1") ? ActivateButton.LeftClick : ActivateButton.RightClick; activatable.Activate(info); } } else if (Clicked()) { ToolController.Instance.ActiveTool.OnTerrainHit(hit); } } else if (Clicked()) { ToolController.Instance.ActiveTool.OnNothingHit(); } }
public void Activate(ActivateInfo hit) { ToolController.Instance.ActiveTool.OnWagonActivate(this, hit); }
public void Hover(ActivateInfo hit) { ToolController.Instance.ActiveTool.OnTrackHover(this, hit); }