Example #1
0
        public void SetupCosmeticInformation(TileEntry data, DataTreeObject dataTreeParent)
        {
            if (dataTreeParent == null)
            {
                return;
            }

            // This method returns a property, but this is just a stock object (it was created this way in TudeySceneConfigBrancher)
            List <DataTreeObject> values          = dataTreeParent.Properties[dataTreeParent.FindSimpleProperty("Entries")];
            DataTreeObject        prop            = values.First();
            DataTreeObject        existingTileCtr = prop.FindSimpleProperty("Tiles");

            if (existingTileCtr != null)
            {
                // Yes, there is a reason you call find twice. The implicit cast from property to object on existingTileCtr creates a new object
                // as such, casting it back for use in this lookup is a different key.
                existingTileCtr = prop.Properties[prop.FindSimpleProperty("Tiles")].FirstOrDefault();
            }
            DataTreeObject tilesContainer = existingTileCtr ?? new DataTreeObject()
            {
                ImageKey = SilkImage.Tile
            };

            if (existingTileCtr == null)
            {
                // We made a new one. Add it.
                prop.AddSimpleProperty("Tiles", tilesContainer);
            }

            DataTreeObject individualTileDataContainer = new DataTreeObject()
            {
                Text = data.tile.getName(),
                // ImageKey = SilkImage.Tile
            };


            Coord location = data.getLocation();

            //Transform3D trs = new Transform3D(new Vector3f(location.x, data.elevation, location.y), new Quaternion().fromAngleAxis((float)(data.rotation * Math.PI / 2), Vector3f.UNIT_Y), 1f);
            individualTileDataContainer.AddSimpleProperty("Elevation", data.elevation);
            individualTileDataContainer.AddSimpleProperty("Rotation (Deg)", data.rotation * 90);
            individualTileDataContainer.AddSimpleProperty("Coordinate", $"[{location.x}, {location.y}]", SilkImage.Matrix);
            individualTileDataContainer.AddSimpleProperty("Tile Reference", data.tile?.getName(), SilkImage.Reference);
            tilesContainer.AddSimpleProperty("Entry", individualTileDataContainer, SilkImage.Tile);
        }
        public void SetupCosmeticInformation(PlaceableEntry data, DataTreeObject dataTreeParent)
        {
            if (dataTreeParent == null)
            {
                return;
            }
            Transform3D transform = GetTransformField(data);

            // This method returns a property, but this is just a stock object (it was created this way in TudeySceneConfigBrancher)
            List <DataTreeObject> values = dataTreeParent.Properties[dataTreeParent.FindSimpleProperty("Entries")];
            DataTreeObject        prop   = values.First();
            DataTreeObject        existingPlaceableCtr = prop.FindSimpleProperty("Placeable Objects");

            if (existingPlaceableCtr != null)
            {
                // Yes, there is a reason you call find twice. The implicit cast from property to object on existingTileCtr creates a new object
                // as such, casting it back for use in this lookup is a different key.
                existingPlaceableCtr = prop.Properties[prop.FindSimpleProperty("Placeable Objects")].FirstOrDefault();
            }
            DataTreeObject placeableContainer = existingPlaceableCtr ?? new DataTreeObject()
            {
                ImageKey = SilkImage.Variant
            };

            if (existingPlaceableCtr == null)
            {
                // We made a new one. Add it.
                prop.AddSimpleProperty("Placeable Objects", placeableContainer);
            }

            DataTreeObject individualPlacementCtr = new DataTreeObject()
            {
                Text = data.placeable.getName()
            };

            individualPlacementCtr.AddSimpleProperty("Transform", transform.toString(), SilkImage.Matrix);
            individualPlacementCtr.AddSimpleProperty("Reference", data.getReference()?.getName() ?? "null", SilkImage.Reference);
            placeableContainer.AddSimpleProperty("Entry", individualPlacementCtr);
        }
Example #3
0
        public void SetupCosmeticInformation(ViewerAffecterConfig model, DataTreeObject dataTreeParent)
        {
            if (dataTreeParent == null)
            {
                return;
            }
            ViewerEffectConfig effect = model.effect;
            string             cls    = JavaClassNameStripper.GetWholeClassName(effect.getClass());

            if (cls == null)
            {
                XanLogger.WriteLine("WARNING: Attempt to get class of ViewerEffectConfig failed!");
                return;
            }

            DataTreeObjectProperty implementationPropKey = dataTreeParent.FindSimpleProperty("Implementation");
            DataTreeObject         implementationProp    = dataTreeParent.Properties[implementationPropKey].First();

            implementationProp.Text = cls.Replace("$", "::");
            if (effect is Skybox skybox)
            {
                dataTreeParent.ImageKey = SilkImage.Sky;
                string name = skybox.model?.getName();
                if (name == null && dataTreeParent.Parent != null && dataTreeParent.Parent.ImageKey == SilkImage.Schemed)
                {
                    dataTreeParent.ImageKey = SilkImage.Scheme;
                    dataTreeParent.AddSimpleProperty("Data Type", "Render Scheme", SilkImage.Scheme);
                }
                else
                {
                    // Name may still be null here.
                    SilkImage target = name == null ? SilkImage.Missing : SilkImage.ModelSet;
                    dataTreeParent.AddSimpleProperty("Model Reference", name, SilkImage.Reference, target, false);
                }

                Transform3D newTrs = new Transform3D(skybox.translationOrigin, Quaternion.IDENTITY, skybox.translationScale.x);
                dataTreeParent.AddSimpleProperty("Transform", newTrs.toString(), SilkImage.Matrix);
            }
        }