示例#1
0
        private void DualityEditorApp_ObjectPropertyChanged(object sender, ObjectPropertyChangedEventArgs e)
        {
            // If we changed something about our selected tileset, update the UI to reflect that
            Tileset tileset = this.SelectedTileset.Res;

            if (tileset != null)
            {
                bool affectsTileset     = e.HasObject(tileset);
                bool affectsConfigLayer =
                    e.HasAnyObject(tileset.RenderConfig) ||
                    e.HasAnyObject(tileset.AutoTileConfig) ||
                    e.HasProperty(TilemapsReflectionInfo.Property_Tileset_RenderConfig) ||
                    e.HasProperty(TilemapsReflectionInfo.Property_Tileset_AutoTileConfig);
                if (affectsTileset || affectsConfigLayer)
                {
                    if (this.activeMode != null)
                    {
                        this.activeMode.RaiseOnTilesetModified(e);
                    }

                    this.ApplyRequired = tileset.HasChangedSinceCompile;
                }
            }

            // If the user changed the assigned Tileset of a Tilemap present in the current Scene,
            // we'll need to update the implicit Tileset selection for the palette.
            if (e.Objects.ComponentCount > 0 &&
                e.HasProperty(TilemapsReflectionInfo.Property_Tilemap_Tileset) &&
                e.Objects.Components.OfType <Tilemap>().Any())
            {
                this.ApplyGlobalTilesetSelection(SelectionChangeReason.Unknown);
            }
        }
示例#2
0
        private void DualityEditorApp_ObjectPropertyChanged(object sender, ObjectPropertyChangedEventArgs e)
        {
            if (this.tileset.Res != null)
            {
                bool affectsTileset =
                    e.HasObject(this.tileset.Res);
                bool affectsRenderConfig =
                    e.HasAnyObject(this.tileset.Res.RenderConfig) ||
                    e.HasProperty(TilemapsReflectionInfo.Property_Tileset_RenderConfig);

                if (!affectsTileset && !affectsRenderConfig)
                {
                    return;
                }

                if (affectsRenderConfig)
                {
                    this.OnTilesetChanged();
                }
                else if (affectsTileset)
                {
                    this.UpdateContentLayout();
                }

                this.Invalidate();
            }
        }
        [Test] public void RegularChange()
        {
            TestObject[] obj = new TestObject[]
            {
                new TestObject {
                    Foo = 42, Bar = "Hello"
                },
                new TestObject {
                    Foo = 10, Bar = "World"
                },
                new TestObject {
                    Foo = 0, Bar = "Not"
                }
            };
            ObjectPropertyChangedEventArgs args = new ObjectPropertyChangedEventArgs(
                new ObjectSelection(obj.Take(2)),
                new PropertyInfo[] { TestObject.FooProperty });

            Assert.IsTrue(args.HasObject(obj[0]));
            Assert.IsTrue(args.HasObject(obj[1]));
            Assert.IsFalse(args.HasObject(obj[2]));

            Assert.IsTrue(args.HasAnyObject(obj));
            Assert.IsTrue(args.HasAnyObject(obj.Skip(1)));
            Assert.IsFalse(args.HasAnyObject(obj.Skip(2)));

            Assert.IsTrue(args.HasProperty(TestObject.FooProperty));
            Assert.IsFalse(args.HasProperty(TestObject.BarProperty));
            Assert.IsFalse(args.HasProperty(UnrelatedObject.NotProperty));

            Assert.IsTrue(args.HasAnyProperty(TestObject.FooProperty));
            Assert.IsTrue(args.HasAnyProperty(TestObject.FooProperty, TestObject.BarProperty));
            Assert.IsFalse(args.HasAnyProperty(TestObject.BarProperty));
            Assert.IsFalse(args.HasAnyProperty(UnrelatedObject.NotProperty));

            Assert.IsFalse(args.CompleteChange);
        }
示例#4
0
 private void DualityEditorApp_ObjectPropertyChanged(object sender, ObjectPropertyChangedEventArgs e)
 {
     // If the user changed the assigned Tileset of a Tilemap present in the current Scene,
     // we'll need to update the implicit Tileset selection for the palette.
     if (e.Objects.ComponentCount > 0 &&
         e.HasProperty(TilemapsReflectionInfo.Property_Tilemap_Tileset) &&
         e.Objects.Components.OfType <Tilemap>().Any())
     {
         this.ApplySelectedTileset();
     }
     // If the Scene itself has changed and we didn't have a selected Tileset, try to
     // select one from the Scene again.
     if (e.HasObject(Scene.Current) && this.SelectedTileset == null)
     {
         this.SelectTilesetFromCurrentScene();
     }
 }
示例#5
0
        private void DualityEditorApp_ObjectPropertyChanged(object sender, ObjectPropertyChangedEventArgs e)
        {
            // Ignore changes to objects we're not previewing
            if (!e.HasObject(this.prevImageValue))
            {
                return;
            }

            // Ignore changes to AssetInfo data, as this doesn't directly affect us until Re-Import
            if (!e.CompleteChange && e.HasProperty(ReflectionInfo.Property_Resource_AssetInfo))
            {
                return;
            }

            // Update the preview to reflect changes.
            this.InvalidatePreview();
            this.PerformGetValue();
        }
 private void DualityEditorApp_ObjectPropertyChanged(object sender, ObjectPropertyChangedEventArgs e)
 {
     if (e.HasProperty(TilemapsReflectionInfo.Property_Tilemap_Tiles))
     {
         this.Invalidate();
     }
     else if (e.HasObject(Scene.Current))
     {
         this.UpdateActionToolButtons();
     }
 }
示例#7
0
        private void DualityEditorApp_ObjectPropertyChanged(object sender, ObjectPropertyChangedEventArgs e)
        {
            // If we changed something about our selected tileset, update the UI to reflect that
            Tileset tileset = this.SelectedTileset.Res;
            if (tileset != null)
            {
                bool affectsTileset = e.HasObject(tileset);
                bool affectsConfigLayer =
                    e.HasAnyObject(tileset.RenderConfig) ||
                    e.HasAnyObject(tileset.AutoTileConfig) ||
                    e.HasProperty(TilemapsReflectionInfo.Property_Tileset_RenderConfig) ||
                    e.HasProperty(TilemapsReflectionInfo.Property_Tileset_AutoTileConfig);
                if (affectsTileset || affectsConfigLayer)
                {
                    if (this.activeMode != null)
                        this.activeMode.RaiseOnTilesetModified(e);

                    this.ApplyRequired = tileset.HasChangedSinceCompile;
                }
            }

            // If the user changed the assigned Tileset of a Tilemap present in the current Scene,
            // we'll need to update the implicit Tileset selection for the palette.
            if (e.Objects.ComponentCount > 0 &&
                e.HasProperty(TilemapsReflectionInfo.Property_Tilemap_Tileset) &&
                e.Objects.Components.OfType<Tilemap>().Any())
            {
                this.ApplyGlobalTilesetSelection(SelectionChangeReason.Unknown);
            }
        }
 private void DualityEditorApp_ObjectPropertyChanged(object sender, ObjectPropertyChangedEventArgs e)
 {
     // If the user changed the assigned Tileset of a Tilemap present in the current Scene,
     // we'll need to update the implicit Tileset selection for the palette.
     if (e.Objects.ComponentCount > 0 &&
         e.HasProperty(TilemapsReflectionInfo.Property_Tilemap_Tileset) &&
         e.Objects.Components.OfType<Tilemap>().Any())
     {
         this.ApplySelectedTileset();
     }
     // If the Scene itself has changed and we didn't have a selected Tileset, try to
     // select one from the Scene again.
     if (e.HasObject(Scene.Current) && this.SelectedTileset == null)
     {
         this.SelectTilesetFromCurrentScene();
     }
 }