public void SetupCosmeticInformation(StaticSetConfig model, DataTreeObject dataTreeParent)
        {
            if (dataTreeParent == null)
            {
                return;
            }

            // So a note to self: Static sets have the 'meshes' container which is a map of other model files.
            // In SK Animator Tools V1 I was an idiot and thought the "model" property was the only key. This is false.
            // Instead, model represents the *default selection*. There may be more models. Iterate through the keys like damn lol.


            DataTreeObjectProperty targetProp = dataTreeParent.AddSimpleProperty("Target Set Model", model.model);

            targetProp.ExtraData["StaticSetConfig"] = model;
            // if (useOnlyTargetModel) dataTreeParent.AddSimpleProperty("Special Directive", "Only export target model", SilkImage.Scripted);

            List <object> objects = new List <object>();

            if (model.meshes != null)
            {
                object[] keys  = model.meshes.keySet().toArray();
                int      msIdx = 0;
                foreach (object key in keys)
                {
                    MeshSet        subModel    = (MeshSet)model.meshes.get(key);
                    VisibleMesh[]  meshes      = subModel.visible;
                    DataTreeObject subModelRef = new DataTreeObject()
                    {
                        Text     = key.ToString(),
                        ImageKey = SilkImage.ModelSet
                    };

                    List <object> subModels = new List <object>();
                    int           idx       = 0;
                    foreach (VisibleMesh mesh in meshes)
                    {
                        subModels.Add(new DataTreeObjectProperty("Mesh " + idx, SilkImage.Triangle));
                        idx++;
                    }

                    subModelRef.AddSimpleProperty("Geometry", subModels.ToArray(), SilkImage.Variant, SilkImage.Value, false);
                    objects.Add(subModelRef);
                    msIdx++;
                }
            }
            dataTreeParent.AddSimpleProperty("Contained Meshes", objects.ToArray(), SilkImage.Reference, SilkImage.Reference, false);
        }
Пример #2
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);
            }
        }