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); }
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); } }