// Methods public void SetRoom(Room r, int season, bool changedFromWarpFollow = false) { if (r == Room && this.season == season) { return; } if (room != null) { RoomLayout.LayoutModifiedEvent -= OnLayoutModified; room.GetObjectGroup().RemoveModifiedHandler(OnObjectModified); room.GetWarpGroup().RemoveModifiedHandler(OnWarpModified); } room = r; if (season != -1) { this.season = season; } if (room != null) { RoomLayout.LayoutModifiedEvent += OnLayoutModified; room.GetObjectGroup().AddModifiedHandler(OnObjectModified); room.GetWarpGroup().AddModifiedHandler(OnWarpModified); Width = room.Width; Height = room.Height; ObjectGroupEditor.SetObjectGroup(room.GetObjectGroup()); } if (r == null) { EditingWarpDestination = null; } GenerateRoomComponents(); selectedComponent = null; if (EditingWarpDestination != null) { EditingWarpDestination.DestRoom = r; } roomEventWrapper.ReplaceEventSource(room); UpdateChestEvents(); RoomChangedEvent?.Invoke(this, new RoomChangedEventArgs { room = r, fromFollowWarp = changedFromWarpFollow }); QueueDraw(); }
void UpdatePointerTextBox(Gtk.Entry entry, ValueReference r) { pointerFrame.Remove(pointerFrame.Child); subEditor = new ObjectGroupEditor(); Gtk.Alignment alignment = new Gtk.Alignment(0.5F, 0.5F, 0.0F, 0.8F); try { Project.GetFileWithLabel(entry.Text.Trim()); subEditor.SetObjectGroup(Project.GetDataType <ObjectGroup>(r.GetStringValue())); subEditor.ShowAll(); alignment.Add(subEditor); r.SetValue(entry.Text.Trim()); } catch (InvalidLookupException) { subEditor.SetObjectGroup(null); Gtk.Label label = new Gtk.Label("Error: label \"" + entry.Text + "\" not found."); label.Show(); alignment.Add(label); } pointerFrame.Label = entry.Text; pointerFrame.Add(alignment); pointerFrame.ShowAll(); }
void UpdatePointerTextBox(Gtk.Entry entry, ValueReference r) { pointerFrame.Remove(pointerFrame.Child); subEditor = new ObjectGroupEditor(); Gtk.Alignment alignment = new Gtk.Alignment(0.5F, 0.5F, 0.0F, 0.8F); try { Project.GetFileWithLabel(entry.Text.Trim()); subEditor.SetObjectGroup(Project.GetDataType<ObjectGroup>(r.GetStringValue())); subEditor.ShowAll(); alignment.Add(subEditor); r.SetValue(entry.Text.Trim()); } catch (LabelNotFoundException) { subEditor.SetObjectGroup(null); Gtk.Label label = new Gtk.Label("Error: label \"" + entry.Text + "\" not found."); label.Show(); alignment.Add(label); } pointerFrame.Label = entry.Text; pointerFrame.Add(alignment); pointerFrame.ShowAll(); }