Comment by Shane Stevens: CharactersEditorFilter is an entirely new file created for displaying characters in rooms. Most of the methods are adapted from ObjectsEditorFilter as their functionality is similar.
Inheritance: IRoomEditorFilter
コード例 #1
0
        public RoomSettingsEditor(Room room)
        {
            this.SetStyle(ControlStyles.Selectable, true);

            InitializeComponent();
            Factory.GUIController.ColorThemes.Apply(LoadColorTheme);
            _room = room;
            sldZoomLevel.Maximum = ZOOM_MAX_VALUE / ZOOM_STEP_VALUE;
            sldZoomLevel.Value   = 100 / ZOOM_STEP_VALUE;
            // If the room is very small, we will display it with x2 zoom by default
            // TODO: implement some option in preferences, and/or relative to the desktop size?
            if (_room.Width < 640 || _room.Height < 400)
            {
                SetZoomSliderToMultiplier(2);
            }
            else
            {
                SetZoomSliderToMultiplier(1);
            }

            _layers.Add(new EdgesEditorFilter(bufferedPanel1, _room));
            _characterLayer = new CharactersEditorFilter(bufferedPanel1, _room, Factory.AGSEditor.CurrentGame);
            _layers.Add(_characterLayer);
            _layers.Add(new ObjectsEditorFilter(bufferedPanel1, _room));
            _layers.Add(new HotspotsEditorFilter(bufferedPanel1, _room));
            _layers.Add(new WalkableAreasEditorFilter(bufferedPanel1, _room));
            _layers.Add(new WalkBehindsEditorFilter(bufferedPanel1, _room));
            _layers.Add(new RegionsEditorFilter(bufferedPanel1, _room));

            foreach (IRoomEditorFilter layer in _layers)
            {
                layer.OnItemsChanged        += layer_OnItemsChanged;
                layer.OnSelectedItemChanged += layer_OnSelectedItemChanged;
            }

            RefreshLayersTree();
            _editAddressBar.SelectionChange += editAddressBar_SelectionChange;

            RepopulateBackgroundList(0);
            UpdateScrollableWindowSize();
            this.MouseWheel += new MouseEventHandler(RoomSettingsEditor_MouseWheel);
            this.bufferedPanel1.MouseWheel += new MouseEventHandler(RoomSettingsEditor_MouseWheel);
            this.sldZoomLevel.MouseWheel   += new MouseEventHandler(RoomSettingsEditor_MouseWheel);

            _editorConstructed = true;
        }
コード例 #2
0
ファイル: RoomSettingsEditor.cs プロジェクト: mo-g/ags
        public RoomSettingsEditor(Room room)
        {
            if (LockedCursor == null)
            {
                LockedCursor = Resources.ResourceManager.GetCursor("lock_cur.cur");
            }

            this.SetStyle(ControlStyles.Selectable, true);

            InitializeComponent();
            Factory.GUIController.ColorThemes.Apply(LoadColorTheme);
            _room = room;
            sldZoomLevel.Maximum = ZOOM_MAX_VALUE / ZOOM_STEP_VALUE;
            sldZoomLevel.Value   = 100 / ZOOM_STEP_VALUE;
            // TODO: choose default zoom based on the room size vs window size?
            SetZoomSliderToMultiplier(_room.Width <= 320 ? 2 : 1);

            _emptyLayer = new EmptyEditorFilter(bufferedPanel1, _room);
            _layers.Add(new EdgesEditorFilter(bufferedPanel1, _room));
            _characterLayer = new CharactersEditorFilter(bufferedPanel1, this, _room, Factory.AGSEditor.CurrentGame);
            _layers.Add(_characterLayer);
            _layers.Add(new ObjectsEditorFilter(bufferedPanel1, this, _room));
            _layers.Add(new HotspotsEditorFilter(bufferedPanel1, this, _room));
            _layers.Add(new WalkableAreasEditorFilter(bufferedPanel1, this, _room));
            _layers.Add(new WalkBehindsEditorFilter(bufferedPanel1, this, _room));
            _layers.Add(new RegionsEditorFilter(bufferedPanel1, this, _room));

            foreach (IRoomEditorFilter layer in _layers)
            {
                layer.OnItemsChanged        += layer_OnItemsChanged;
                layer.OnSelectedItemChanged += layer_OnSelectedItemChanged;
            }

            RefreshLayersTree();
            _editAddressBar.SelectionChange += editAddressBar_SelectionChange;
            _startNode = _editAddressBar.CurrentNode.UniqueID;

            RepopulateBackgroundList(0);
            UpdateScrollableWindowSize();
            this.MouseWheel += new MouseEventHandler(RoomSettingsEditor_MouseWheel);
            this.bufferedPanel1.MouseWheel += new MouseEventHandler(RoomSettingsEditor_MouseWheel);
            this.sldZoomLevel.MouseWheel   += new MouseEventHandler(RoomSettingsEditor_MouseWheel);

            _editorConstructed = true;
        }