Exemplo n.º 1
0
    // Called when room index (or season) is changed
    void OnRoomChanged()
    {
        if (ActiveRoom == null)
        {
            return;
        }

        eventGroup.Lock();

        roomSpinButton.Value = ActiveRoom.Index;
        warpEditor.SetMap(ActiveRoom.Index >> 8, ActiveRoom.Index & 0xff);
        SetTileset(ActiveRoomLayout.Tileset);

        if (roomVre == null)
        {
            // This only runs once
            roomVre = new ValueReferenceEditor(Project, ActiveRoom.ValueReferenceGroup);
            roomVre.AddWidgetToRight("Tileset", editTilesetButton);
            roomVreHolder.Add(roomVre);
            roomVre.ShowAll();

            roomTilesetModifiedEventWrapper.Bind <ValueModifiedEventArgs>("ModifiedEvent",
                                                                          (sender, args) => SetTileset((sender as ValueReference).GetIntValue(), ActiveSeason));
        }
        else
        {
            roomVre.ReplaceValueReferenceGroup(ActiveRoom.ValueReferenceGroup);
        }

        // Watch for changes to this room's tileset
        roomTilesetModifiedEventWrapper.ReplaceEventSource(ActiveRoom.ValueReferenceGroup["Tileset"]);

        // Watch for changes to the chest

        UpdateChestData();

        eventGroup.Unlock();

        UpdateLayoutGroupWarning();
    }
Exemplo n.º 2
0
    protected void OnWarpsActionActivated(object sender, EventArgs e)
    {
        if (openedWarpEditor)
        {
            return;
        }
        WarpEditor editor = new WarpEditor(Project);

        editor.SetMap(roomSpinButton.ValueAsInt >> 8, roomSpinButton.ValueAsInt & 0xff);

        Gtk.Window win = new Window(WindowType.Toplevel);
        win.Modal = false;
        win.Add(editor);

        editor.Destroyed += delegate(object sender2, EventArgs e2) {
            win.Destroy();
        };
        win.Destroyed += delegate(object sender2, EventArgs e2) {
            openedWarpEditor = false;
        };

        openedWarpEditor = true;
        win.ShowAll();
    }