private void MovementListSelectionChange() { lock (instanceMutationLock) { selectedMovementStep = ((LevelEntityMovementStep)movementFrameList.SelectedItem); travelTimeField.Value = (decimal)selectedMovementStep.TravelTime; smoothingCheckbox.Checked = selectedMovementStep.SmoothTransition; if (!ignoreStepChanges) { EditorToolbar.SetEntityMovementStep(editTarget, selectedMovementStep); } } }
public void AddMovementStep(LevelEntityMovementStep step, LevelEntityMovementStep insertAfterTarget = null) { lock (instanceMutationLock) { if (insertAfterTarget != null) { int index = movementSteps.IndexOf(insertAfterTarget); movementSteps.Insert(index + 1, step); } else { movementSteps.Add(step); } } }
public void ReplaceSelectedMovementStep(LevelEntityMovementStep newLems) { lock (instanceMutationLock) { ignoreStepChanges = true; editTarget.ReplaceMovementStep(selectedMovementStep, newLems); } Invoke(new Action(() => { UpdateMovementData(); movementFrameList.SelectedItem = newLems; })); lock (instanceMutationLock) { ignoreStepChanges = false; } }
private void AddMovementFrame() { var selectedStep = movementFrameList.SelectedItem as LevelEntityMovementStep; if (selectedStep == null) { selectedStep = editTarget.InitialMovementStep; } LevelEntityMovementStep newStep = new LevelEntityMovementStep(selectedStep.Transform, 1f, false); editTarget.AddMovementStep(newStep, movementFrameList.SelectedItem as LevelEntityMovementStep); UpdateMovementData(); movementFrameList.SelectedItem = newStep; }
private void TravelTimeOrSmoothingChanged() { var selectedStep = movementFrameList.SelectedItem as LevelEntityMovementStep; if (selectedStep == null) { movementFrameList.SelectedIndex = 0; return; } LevelEntityMovementStep replacement = new LevelEntityMovementStep(selectedStep.Transform, (float)travelTimeField.Value, smoothingCheckbox.Checked); editTarget.ReplaceMovementStep(selectedStep, replacement); UpdateMovementData(); movementFrameList.SelectedItem = replacement; }
private void DeleteMovementFrame() { if (editTarget.IsStatic) { MessageBox.Show(this, "Can not delete the last movement step."); return; } LevelEntityMovementStep selectedStep = movementFrameList.SelectedItem as LevelEntityMovementStep; if (selectedStep == null) { MessageBox.Show(this, "Please select a movement step first."); return; } var dialogResult = MessageBox.Show(this, "Are you sure you wish to delete the selected movement frame?", "Delete movement frame", MessageBoxButtons.OKCancel); if (dialogResult == DialogResult.Cancel) { return; } editTarget.RemoveMovementStep(selectedStep); UpdateMovementData(); movementFrameList.SelectedIndex = 0; }
public void ReplaceMovementStep(LevelEntityMovementStep existing, LevelEntityMovementStep replacement) { lock (instanceMutationLock) { movementSteps.Replace(existing, replacement); } }
public void RemoveMovementStep(LevelEntityMovementStep step) { lock (instanceMutationLock) { movementSteps.Remove(step); } }
public LevelGeometryEntity(LevelDescription parentLevel, string tag, LevelGeometry geom, LevelMaterial mat, int id, LevelEntityMovementStep movementStep = null) { Tag = tag; geomID = geom.ID; matID = mat.ID; ID = id; this.ParentLevel = parentLevel; AddMovementStep(movementStep ?? new LevelEntityMovementStep(Transform.DEFAULT_TRANSFORM, 0f, false)); alternatingMovementDirection = false; initialDelay = 0f; texPan = Vector2.ZERO; }