public void AttachToGridX() { if (GridManager.Instance.NumRows <= 0) { return; } dataBefore = new UndoSystem.NoteDataBefore(mData); float minabs = int.MaxValue; float pos = mData.Position; for (int i = 0; i < GridManager.GridCols.Count; i++) { float curtime = GridManager.GridCols [i].Time; curtime /= 1000f; curtime = ParamCalculator.UnityXToVanillaPosition(curtime); if (mData.Direction != 0) { curtime = curtime * 1.25f - 0.625f; } curtime -= mData.Width / 2f; if (Mathf.Abs(curtime - mData.Position) < minabs) { minabs = Mathf.Abs(curtime - mData.Position); pos = curtime; } } mData.Position = pos; UndoSystem.RegisterUndo(new UndoSystem.NoteDataChangeUndoAction(mData, dataBefore, new UndoSystem.NoteDataBefore(mData))); }
public static GameObject NewNote(string path, int timedelta = 0, bool regundo = false) { GameObject go = GameObject.Instantiate(Resources.Load <GameObject> (path)); NoteData nd = go.GetComponent <NoteData> (); nd.Direction = GridManager.Instance.GridDir; go.transform.position = Camera.main.ScreenToWorldPoint(Input.mousePosition); Vector3 tmp = go.transform.position; tmp.z = 0; if (GridManager.Instance.GridDir == 1) { tmp.x = go.transform.position.y / 9f * 16f / 0.8f; tmp.y = -go.transform.position.x + 4.255f - 2f; } else if (GridManager.Instance.GridDir == -1) { tmp.x = go.transform.position.y / 9f * 16f / 0.8f; tmp.y = go.transform.position.x + 4.25f - 2f; } go.transform.position = tmp; nd.Position = ParamCalculator.UnityXToVanillaPosition(tmp.x) - nd.Width / 2; nd.Time = ParamCalculator.PositionYToTime(tmp.y) + timedelta; nd.Width = WidthStore [WidthStoreN]; nd.InnerID = ++AtomicCounter; nd.NotifyWidth = true; go.GetComponent <NoteSelection> ().ShouldAttachGridY = true; if (regundo) { UndoSystem.RegisterUndo(new UndoSystem.CreateNoteUndoAction(nd, path)); } return(go); }
protected override bool OnCreate() { if (!base.OnCreate()) { return(false); } LongOperationNotifier.Setup(); Log.Info(">> 初始化 EntitySystemWorld..."); if (!EntitySystemWorld.Init(new EntitySystemWorld())) { Log.Info(">> EntitySystemWorld 初始化失败!"); return(false); } WorldType worldType = EntitySystemWorld.Instance.DefaultWorldType; if (!EntitySystemWorld.Instance.WorldCreate(WorldSimulationTypes.Editor, worldType)) { Log.Info(">> 创建世界失败, WorldType: {0}", worldType); return(false); } instance = this; DesignerInterface.Init(new DesignerInterfaceImpl()); EntityWorld.Setup(); if (MainForm.Instance != null) { /* * if (MainForm.Instance.ResourcesForm != null) * { * MainForm.Instance.ResourcesForm.ResourceChange += new ResourcesForm.ResourceChangeDelegate(this.OnResourceChange); * MainForm.Instance.ResourcesForm.IsResourceEditModeActive += new ResourcesForm.IsResourceEditModeActiveDelegate(this.OnIsResourceEditMode); * MainForm.Instance.ResourcesForm.ResourceBeginEditMode += new ResourcesForm.ResourceBeginEditModeDelegate(this.OnResourceBeginEditMode); * MainForm.Instance.ResourcesForm.ResourceRename += new ResourcesForm.ResourceRenameDelegate(this.OnResourceRename); * } * //*/ if (MainForm.Instance.PropertiesForm != null) { MainForm.Instance.PropertiesForm.ReadOnly = true; } } ResourceUtils.OnUITypeEditorEditValue += ResourceUtils_OnUITypeEditorEditValue; AddonManager.PreInit(); InitResourceTypeManager(); UndoSystem.Init(64); //EntitySystemWorld.Instance.Simulation = true; return(true); }
public void KeysWithControlAlt() { if (Input.GetKeyDown(KeyCode.O)) { Dialogs.OpenXml(); } else if (Input.GetKeyDown(KeyCode.I)) { Dialogs.OpenMusic(); } else if (Input.GetKeyDown(KeyCode.R)) { if (PlaybackSystem.GetMillisTotal() < 500) { MessageBox.Show("You Should Load A Music First!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } else if (MessageBox.Show("Confirm Exporting Video?", "Confirm", MessageBoxButtons.YesNo) == DialogResult.Yes) { ExportVideoSystem.Instance.RecordOnce(); } } else if (Input.GetKeyDown(KeyCode.K)) { Instantiate(Resources.Load("UI/FormChartInfo"), Canvas.transform); } else if (Input.GetKeyDown(KeyCode.S)) { Dialogs.SaveXml(); } else if (Input.GetKeyDown(KeyCode.V)) { if (TimeControl.Instance == null) { Instantiate(Resources.Load <GameObject> ("UI/TimeControl"), Canvas.transform); } else { NoteSelection.MouseInterfaceID = -1; DestroyObject(TimeControl.Instance.gameObject); TimeControl.Instance = null; } } else if (Input.GetKeyDown(KeyCode.Z)) { UndoSystem.Undo(); } else if (Input.GetKeyDown(KeyCode.Y) || Input.GetKeyDown(KeyCode.X)) { UndoSystem.Redo(); } }
/// <summary> /// Initializes a new instance of the ImageEditPanel /// </summary> public ImageEditPanel() { EditingEnabled = true; // Create the controls SuspendLayout(); _internalPictureBox = new InternalPictureBox(this) { MinimumZoom = new PointF(0.25f, 0.25f), MaximumZoom = new PointF(160, 160), ShowImageArea = false, ClipBackgroundToImage = true, AllowDrag = false, NotifyTo = this, Dock = DockStyle.Fill }; _owningPanel = new Panel { Dock = DockStyle.Fill, AutoScroll = true, BorderStyle = BorderStyle.FixedSingle }; // Add controls _owningPanel.Controls.Add(_internalPictureBox); Controls.Add(_owningPanel); ResumeLayout(true); _undoSystem = new UndoSystem(); _defaultCompositingMode = CompositingMode.SourceOver; _defaultFillMode = OperationFillMode.SolidFillFirstColor; }
// Update is called once per frame void Update() { if (Begin == null || !Begin.gameObject.activeInHierarchy) { if (End != null && End.gameObject.activeInHierarchy) { DestroyObject(End.gameObject); } Destroy(gameObject); return; } if (End == null || !End.gameObject.activeInHierarchy) { if (Begin != null && Begin.gameObject.activeInHierarchy) { UndoSystem.RegisterUndo(new UndoSystem.HoldCreateUndoAction(Begin.GetComponent <NoteData> (), Begin.GetComponent <NoteData> ().Sub, false)); DestroyObject(Begin.gameObject); } Destroy(gameObject); return; } Vector3 bgp = Begin.position; GetComponent <SpriteRenderer> ().enabled = !End.GetComponent <NoteJudge> ().Judged; Vector3 sc = transform.localScale; if (Begin.GetComponent <NoteData> ().Direction == 0) { if (Begin.GetComponent <NoteJudge> ().Judged) { bgp.y = -2; } sc.x = Begin.localScale.x * 4f; sc.y = (End.position.y - bgp.y) * 2f; } else { if (Begin.GetComponent <NoteJudge> ().Judged) { bgp.x = Begin.GetComponent <NoteData> ().Direction * 4.25f; } sc.x = Begin.localScale.x * 4f; sc.y = Mathf.Abs(End.position.x - bgp.x) * 2f; } End.GetComponent <NoteData> ().Time = Mathf.Max(Begin.GetComponent <NoteData> ().Time + 60, End.GetComponent <NoteData> ().Time); End.GetComponent <NoteData> ().Position = Begin.GetComponent <NoteData> ().Position; End.GetComponent <NoteData> ().Width = Begin.GetComponent <NoteData> ().Width; End.GetComponent <NoteData> ().NotifyWidth = true; End.GetComponent <NoteData> ().Direction = Begin.GetComponent <NoteData> ().Direction; Begin.GetComponent <NoteData> ().Sub = End.GetComponent <NoteData> (); transform.position = (bgp + End.position) / 2; transform.localRotation = Begin.localRotation; Color c = new Color(1f, 1f, 1f, 1f); if (Begin.GetComponent <NoteData> ().Direction == 0 && Begin.position.y > 1f) { c.a = 2f - transform.position.y; } else if (Begin.GetComponent <NoteData> ().Direction != 0 && Begin.GetComponent <NoteData> ().Direction *(Begin.position.x) < 2f) { c.a = Begin.GetComponent <NoteData> ().Direction *(transform.position.x) - 1f; } c.a = Mathf.Clamp01(c.a); GetComponent <SpriteRenderer> ().color = c; GetComponent <SpriteRenderer> ().size = new Vector2(sc.x, sc.y); }
public void KeysBared() { if (Input.GetKeyDown(KeyCode.Space)) { TimeControlSystem.isPlaying = !TimeControlSystem.isPlaying; } if (Input.GetKeyDown(KeyCode.Z)) { if (Mathf.Abs(GridManager.Instance.GridDir) > 1) { MessageBox.Show("You Should Enable Grids First!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } NewNote("NoteNormal", regundo: true); } if (Input.GetKeyDown(KeyCode.X)) { if (Mathf.Abs(GridManager.Instance.GridDir) > 1) { MessageBox.Show("You Should Enable Grids First!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } NewNote("NoteChain", regundo: true); } if (Input.GetKeyDown(KeyCode.C)) { if (Mathf.Abs(GridManager.Instance.GridDir) > 1) { MessageBox.Show("You Should Enable Grids First!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } GameObject go = NewNote("NoteHoldSub", 500); Transform ed = go.transform; go = NewNote("NoteHoldHold"); Transform bg = go.transform; go = GameObject.Instantiate(Resources.Load <GameObject> ("NoteHold")); HoldScaling hs = go.GetComponent <HoldScaling> (); hs.Begin = bg; hs.End = ed; UndoSystem.RegisterUndo(new UndoSystem.HoldCreateUndoAction(bg.GetComponent <NoteData>(), ed.GetComponent <NoteData>())); } if (Input.GetKeyDown(KeyCode.U)) { if (PlaybackSystem.PlaySpeed >= 0.2f) { PlaybackSystem.PlaySpeed -= 0.1f; } else { PlaybackSystem.PlaySpeed = 0.1f; } } else if (Input.GetKeyDown(KeyCode.I)) { if (PlaybackSystem.PlaySpeed <= 2.9f) { PlaybackSystem.PlaySpeed += 0.1f; } else { PlaybackSystem.PlaySpeed = 3f; } } KeyCode[] ls = { KeyCode.Alpha1, KeyCode.Alpha2, KeyCode.Alpha3, KeyCode.Alpha4 }; for (int i = 0; i < 4; i++) { if (Input.GetKeyDown(ls [i])) { WidthStoreN = i; } } if (Input.GetKeyDown(KeyCode.G)) { GridManager.Instance.GridDir++; if (GridManager.Instance.GridDir > 1) { GridManager.Instance.GridDir = -1; } } }
private void Awake() { instance = this; cubeMoves = new Stack <MainCube>(); }
private void Start() { UndoSystem.undoSystem = this; gouradFirst.Value = new CommandEmpty(); gouradLast.Value = new CommandEmpty(); }
IEnumerator do_Update() { if (ShouldAttachGridX) { ShouldAttachGridX = false; AttachToGridX(); } if (ShouldAttachGridY) { ShouldAttachGridY = false; AttachToGridY(); } if (mData.Direction == 0) { Hitbox = new Rect(transform.position.x - transform.localScale.x, transform.position.y - transform.localScale.y * 0.32f, transform.localScale.x * 2, transform.localScale.y * 2 * 0.32f); } else { Hitbox = new Rect(transform.position.x - transform.localScale.y * 0.32f, transform.position.y - transform.localScale.x, transform.localScale.y * 2 * 0.32f, transform.localScale.x * 2); } if ((Input.GetKey(KeyCode.LeftAlt) || Input.GetKey(KeyCode.RightAlt))) { if (JudgeContain()) { if (Input.GetMouseButton(0)) { AttachToGridX(); } if (Input.GetMouseButton(1)) { AttachToGridY(); } } yield break; } lastClick += Time.deltaTime; if (MouseInterfaceID == -1 && Input.GetMouseButton(0) && GridManager.Instance.GridDir == mData.Direction && JudgeContain() && !TimeControlSystem.isPlaying) { if (lastClick < 0.33f) { Debug.Log(1); Instantiate(Resources.Load <GameObject> ("UI/NoteDataEdit"), HotkeySystem.Instance.Canvas.transform).GetComponent <NoteDataEdit> ().Editing = mData; MouseInterfaceID = -2; } else { MouseInterfaceID = Mathf.Abs(GetHashCode()); IsSelected = true; dataBefore = new UndoSystem.NoteDataBefore(mData); mIndicator = Instantiate(Resources.Load <GameObject> ("RectLines")).GetComponent <RectLines> (); mIndicator.Rectangle = Hitbox; mIndicator.LineWidth = 0.05f; } lastClick = 0; } if (MouseInterfaceID == Mathf.Abs(GetHashCode())) { mIndicator.Rectangle = Hitbox; if (!Input.GetMouseButton(0) || GridManager.Instance.GridDir != mData.Direction) { MouseInterfaceID = -1; IsSelected = false; mIndicator.NeedsDestroy = true; AttachToGridY(); UndoSystem.RegisterUndo(new UndoSystem.NoteDataChangeUndoAction(mData, dataBefore, new UndoSystem.NoteDataBefore(mData))); } } if (MouseInterfaceID == -1 && Input.GetMouseButtonDown(1) && JudgeContain()) { MouseInterfaceID = Mathf.Abs(GetHashCode()); yield return(new WaitForEndOfFrame()); Destroy(gameObject); if (mData.NoteType != "HOLD" && mData.NoteType != "SUB") { UndoSystem.RegisterUndo(new UndoSystem.CreateNoteUndoAction(mData, name.Split('(') [0], false)); } else if (mData.Sub != null) { UndoSystem.RegisterUndo(new UndoSystem.HoldCreateUndoAction(mData, mData.Sub, false)); } } if (IsSelected) { if (Input.GetKey(KeyCode.LeftControl) || Input.GetKey(KeyCode.RightControl)) { mData.Width += Input.GetAxis("Mouse Y") * 0.8f; if (mData.Width < 0.05f) { mData.Width = 0.05f; } else { mData.Position -= Input.GetAxis("Mouse Y") * 0.4f; } } else { float UNX; float UNY; if (mData.Direction == 0) { UNX = transform.position.x + Input.GetAxis("Mouse X"); UNY = transform.position.y + Input.GetAxis("Mouse Y"); } else if (mData.Direction == 1) { UNX = (transform.position.y + Input.GetAxis("Mouse Y")) / 9f * 16f / 0.8f; UNY = -(transform.position.x + Input.GetAxis("Mouse X")) + 4.255f - 2f; } else { UNX = (transform.position.y + Input.GetAxis("Mouse Y")) / 9f * 16f / 0.8f; UNY = (transform.position.x + Input.GetAxis("Mouse X")) + 4.25f - 2f; } mData.Position = ParamCalculator.UnityXToVanillaPosition(UNX) - mData.Width / 2; mData.Time = ParamCalculator.PositionYToTime(UNY); } } }