public static void EditStage(StageDocument stage) { var form = new StageProp(); form.project = stage.Project; form.LoadStage(stage); form.Show(); }
/* * * SetStage - Decide the stage object that will be edited * */ private void SetStage(StageDocument stage) { this.stage = stage; SetText(); this.stage.DirtyChanged += (b) => SetText(); stage.JoinChanged += (join) => { AlignScreenSurfaces(); if (surfaces.ContainsKey(join.screenOne)) { surfaces[join.screenOne].RedrawJoins(); } if (surfaces.ContainsKey(join.screenTwo)) { surfaces[join.screenTwo].RedrawJoins(); } }; foreach (var screen in stage.Screens) { var surface = CreateScreenSurface(screen); surface.Location = new Point(0, 0); } AlignScreenSurfaces(); stage.ScreenAdded += (s) => { CreateScreenSurface(s); AlignScreenSurfaces(); }; }
// this constructor implies a new screen private ScreenProp(StageDocument stage) { InitializeComponent(); is_new = true; textName.Text = ""; this.stage = stage; }
public StageDocument StageByName(string name) { if (openStages.ContainsKey(name)) { return(openStages[name]); } foreach (var info in Project.Stages) { if (info.Name == name) { try { StageDocument stage = new StageDocument(this, BaseDir, info.StagePath.Absolute); openStages.Add(name, stage); return(stage); } catch (IOException ex) { MessageBox.Show("A required file or directory for the stage was not found:\n\n" + ex.Message, "CME Level Editor", MessageBoxButtons.OK, MessageBoxIcon.Error); return(null); } } } return(null); }
public override void DoubleClick() { if (Stage == null) { Stage = Project.StageByName(stageName); if (Stage == null) { return; } parentNode.Nodes.Clear(); foreach (var screen in Stage.Screens) { var node = new TreeNode(screen.Name); node.ImageIndex = node.SelectedImageIndex = 3; node.Tag = new ScreenNodeHandler(Project, node, screen); parentNode.Nodes.Add(node); } Stage.ScreenAdded += screen => { var node = new TreeNode(screen.Name); node.ImageIndex = node.SelectedImageIndex = 3; node.Tag = new ScreenNodeHandler(Project, node, screen); parentNode.Nodes.Add(node); }; } Stage.ReFocus(); }
// this implies editing a screen private ScreenProp(ScreenDocument screen) { InitializeComponent(); this.screen = screen; stage = screen.Stage; textName.Text = screen.Name; widthField.Value = screen.Width; heightField.Value = screen.Height; }
public void FocusScreen(StageDocument stage) { if (stage != activeStage) { ActiveStage = stage; ChangeTileset(stage.Tileset); brushForm.ChangeTileset(stage.Tileset); if (stage.Project != activeProject) { activeProject = stage.Project; entityForm.LoadEntities(stage.Project); } } }
private void LoadStage(StageDocument stage) { this.stage = stage; this.Text = stage.Name + " Properties"; nameField.Text = stage.Name; tilesetField.Text = stage.Tileset.FilePath; if (stage.MusicIntro != null) { introField.Text = stage.MusicIntro.Absolute; } if (stage.MusicLoop != null) { loopField.Text = stage.MusicLoop.Absolute; } }
public StageForm(StageDocument stage) { InitializeComponent(); joinOverlay = new JoinOverlay(); joinOverlay.Owner = this; this.SetBackgroundGrid(); history = new History(); surfaces = new Dictionary<String, ScreenDrawingSurface>(); surfaceLocations = new Dictionary<string, Point>(); SetStage(stage); MainForm.Instance.DrawOptionToggled += () => { joinOverlay.Visible = MainForm.Instance.DrawJoins; }; }
public StageForm(StageDocument stage) { InitializeComponent(); joinOverlay = new JoinOverlay(); joinOverlay.Owner = this; this.SetBackgroundGrid(); history = new History(); surfaces = new Dictionary <String, ScreenDrawingSurface>(); surfaceLocations = new Dictionary <string, Point>(); SetStage(stage); MainForm.Instance.DrawOptionToggled += () => { joinOverlay.Visible = MainForm.Instance.DrawJoins; }; }
public StageDocument AddStage(string name, string tilesetPath) { string stageDir = Path.Combine(BaseDir, "stages"); if (!Directory.Exists(stageDir)) { Directory.CreateDirectory(stageDir); } string stagePath = Path.Combine(stageDir, name); if (!Directory.Exists(stagePath)) { Directory.CreateDirectory(stagePath); } var stage = new StageDocument(this) { Path = FilePath.FromAbsolute(stagePath, this.BaseDir), Name = name }; stage.ChangeTileset(tilesetPath); stage.Save(); openStages.Add(name, stage); var info = new StageLinkInfo { Name = name, StagePath = FilePath.FromAbsolute(stagePath, BaseDir) }; Project.AddStage(info); Save(); // need to save the reference to the new stage if (StageAdded != null) { StageAdded(stage); } return(stage); }
private bool Save() { if (stage == null) // new { try { stage = project.AddStage(nameField.Text, tilesetField.Text); } catch (Exception) { MessageBox.Show("There was an error creating the stage.\nPerhaps your tileset path is incorrect?", "CME Level Editor", MessageBoxButtons.OK, MessageBoxIcon.Warning); return(false); } } else { stage.Name = nameField.Text; try { stage.ChangeTileset(tilesetField.Text); } catch { MessageBox.Show("The tileset specified could not be loaded. Sorry.", "CME Project Editor", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } } if (introField.Text != "") { stage.MusicIntro = FilePath.FromAbsolute(introField.Text, stage.Path.BasePath); } if (loopField.Text != "") { stage.MusicLoop = FilePath.FromAbsolute(loopField.Text, stage.Path.BasePath); } return(true); }
public ScreenDocument(ScreenInfo screen, StageDocument stage) { Stage = stage; this.screen = screen; }
private void LoadStage(StageDocument stage) { this.stage = stage; this.Text = stage.Name + " Properties"; nameField.Text = stage.Name; tilesetField.Text = stage.Tileset.FilePath.Absolute; if (stage.MusicIntro != null) introField.Text = stage.MusicIntro.Absolute; if (stage.MusicLoop != null) loopField.Text = stage.MusicLoop.Absolute; }
public StageDocument StageByName(string name) { if (openStages.ContainsKey(name)) return openStages[name]; foreach (var info in Project.Stages) { if (info.Name == name) { try { StageDocument stage = new StageDocument(this, BaseDir, info.StagePath.Absolute); openStages.Add(name, stage); return stage; } catch (IOException ex) { MessageBox.Show("A required file or directory for the stage was not found:\n\n" + ex.Message, "CME Level Editor", MessageBoxButtons.OK, MessageBoxIcon.Error); return null; } } } return null; }
public StageDocument AddStage(string name, string tilesetPath) { string stageDir = Path.Combine(BaseDir, "stages"); if (!Directory.Exists(stageDir)) { Directory.CreateDirectory(stageDir); } string stagePath = Path.Combine(stageDir, name); if (!Directory.Exists(stagePath)) { Directory.CreateDirectory(stagePath); } var stage = new StageDocument(this) { Path = FilePath.FromAbsolute(stagePath, this.BaseDir), Name = name }; stage.ChangeTileset(tilesetPath); stage.Save(); openStages.Add(name, stage); var info = new StageInfo {Name = name, StagePath = FilePath.FromAbsolute(stagePath, BaseDir)}; Project.AddStage(info); Save(); // need to save the reference to the new stage if (StageAdded != null) StageAdded(stage); return stage; }
public StageNodeHandler(ProjectEditor project, TreeNode node, StageDocument stage) : base(project, node) { Stage = stage; stageName = stage.Name; }
public static void CreateScreen(StageDocument stage) { new ScreenProp(stage).Show(); }
public override void DoubleClick() { if (Stage == null) { Stage = Project.StageByName(stageName); if (Stage == null) return; parentNode.Nodes.Clear(); foreach (var screen in Stage.Screens) { var node = new TreeNode(screen.Name); node.ImageIndex = node.SelectedImageIndex = 3; node.Tag = new ScreenNodeHandler(Project, node, screen); parentNode.Nodes.Add(node); } Stage.ScreenAdded += screen => { var node = new TreeNode(screen.Name); node.ImageIndex = node.SelectedImageIndex = 3; node.Tag = new ScreenNodeHandler(Project, node, screen); parentNode.Nodes.Add(node); }; } Stage.ReFocus(); }
/* * * SetStage - Decide the stage object that will be edited * */ private void SetStage(StageDocument stage) { this.stage = stage; SetText(); this.stage.DirtyChanged += (b) => SetText(); stage.JoinChanged += (join) => { AlignScreenSurfaces(); if (surfaces.ContainsKey(join.screenOne)) surfaces[join.screenOne].RedrawJoins(); if (surfaces.ContainsKey(join.screenTwo)) surfaces[join.screenTwo].RedrawJoins(); }; foreach (var screen in stage.Screens) { var surface = CreateScreenSurface(screen); surface.Location = new Point(0, 0); } AlignScreenSurfaces(); stage.ScreenAdded += (s) => { CreateScreenSurface(s); AlignScreenSurfaces(); }; }
public StageNodeHandler(ProjectEditor project, TreeNode node, string stageName) : base(project, node) { Stage = null; this.stageName = stageName; }
private void closeToolStripMenuItem_Click(object sender, EventArgs e) { if (ActiveProject == null) return; if (ActiveProject.Close()) { projectForm.CloseProject(); tilestrip.ChangeTileset(null); entityForm.Unload(); brushForm.Clear(); ActiveProject = null; ActiveStage = null; } }
private bool Save() { if (stage == null) // new { try { stage = project.AddStage(nameField.Text, tilesetField.Text); } catch (Exception) { MessageBox.Show("There was an error creating the stage.\nPerhaps your tileset path is incorrect?", "CME Level Editor", MessageBoxButtons.OK, MessageBoxIcon.Warning); return false; } } else { stage.Name = nameField.Text; try { stage.ChangeTileset(tilesetField.Text); } catch { MessageBox.Show("The tileset specified could not be loaded. Sorry.", "CME Project Editor", MessageBoxButtons.OK, MessageBoxIcon.Error); return false; } } if (introField.Text != "") stage.MusicIntro = FilePath.FromAbsolute(introField.Text, stage.Path.BasePath); if (loopField.Text != "") stage.MusicLoop = FilePath.FromAbsolute(loopField.Text, stage.Path.BasePath); return true; }