Exemplo n.º 1
0
        public override ObjectModel DisassembleValue(AnimationCurve value, DisassemblyContext context)
        {
            IEnumerable <ObjectModel> frames = value.keys.Select(x => DissasembleKeyframe(x));

            return(new ObjectModel(
                       new ObjectField("Keyframes", new ArrayModel(frames))));
        }
Exemplo n.º 2
0
 public override ObjectModel DisassembleValue(LayerMask value, DisassemblyContext context)
 {
     return(new ObjectModel()
     {
         { "Mask", new PrimitiveModel(value.value) }
     });
 }
 public override ObjectModel DisassembleValue(Vector3Int value, DisassemblyContext context)
     => new ObjectModel()
     {
         { "X", new PrimitiveModel (value.x) },
         { "Y", new PrimitiveModel (value.y) },
         { "Z", new PrimitiveModel (value.z) },
     };
Exemplo n.º 4
0
 public ValueModel Disassemble(DisassemblyContext context)
 {
     return(new ObjectModel(
                new ObjectField("Tier", new PrimitiveModel(TierIndex)),
                new ObjectField("Variant", new PrimitiveModel(VariantIndex))
                ));
 }
 public override ObjectModel DisassembleValue(Quaternion value, DisassemblyContext context)
     => new ObjectModel()
     {
         { "X", new PrimitiveModel (value.x) },
         { "Y", new PrimitiveModel (value.y) },
         { "Z", new PrimitiveModel (value.z) },
         { "W", new PrimitiveModel (value.w) },
     };
 public ValueModel Disassemble(DisassemblyContext context)
 {
     return(new ObjectModel(
                new ObjectField("Identifier", new PrimitiveModel(Identifier)),
                new ObjectField("IsCompleted", new PrimitiveModel(IsCompleted)),
                new ObjectField("CompletedOn", new PrimitiveModel(CompletedOn)),
                new ObjectField("Progression", Progression)));
 }
        public override ObjectModel Disassemble(BoxCollider2D source, DisassemblyContext context)
        {
            Vector2Assembler assembler = new Vector2Assembler();

            return(new ObjectModel(
                       new ObjectField("Offset", assembler.DisassembleValue(source.offset, context)),
                       new ObjectField("Size", assembler.DisassembleValue(source.size, context))
                       ));
        }
 public override ObjectModel DisassembleValue(Color value, DisassemblyContext context)
 {
     return(new ObjectModel(
                new ObjectField("Red", new PrimitiveModel(value.r)),
                new ObjectField("Green", new PrimitiveModel(value.g)),
                new ObjectField("Blue", new PrimitiveModel(value.b)),
                new ObjectField("Alpha", new PrimitiveModel(value.a))
                ));
 }
Exemplo n.º 9
0
 public override ObjectModel DisassembleValue(Rect value, DisassemblyContext context)
 {
     return(new ObjectModel(
                new ObjectField("X", new PrimitiveModel(value.x)),
                new ObjectField("Y", new PrimitiveModel(value.y)),
                new ObjectField("Width", new PrimitiveModel(value.width)),
                new ObjectField("Height", new PrimitiveModel(value.height))
                ));
 }
Exemplo n.º 10
0
        public RootModel Disassemble(GameObject gameObject)
        {
            DisassemblyContext context = new DisassemblyContext();
            GameObject         copy    = Object.Instantiate(gameObject);
            RootModel          model   = new RootModel(RecursiveDisassemble(copy, context));

            context.ReturnGuidRequests();
            Object.DestroyImmediate(copy);
            return(model);
        }
        public override ObjectModel Disassemble(Transform source, DisassemblyContext context)
        {
            Vector3Assembler assembler = new Vector3Assembler();

            return(new ObjectModel(
                       new ObjectField("Position", assembler.DisassembleValue(source.localPosition, context)),
                       new ObjectField("Rotation", assembler.DisassembleValue(source.localRotation.eulerAngles, context)),
                       new ObjectField("Scale", assembler.DisassembleValue(source.localScale, context))
                       ));
        }
        public override ObjectModel Disassemble(CircleCollider2D source, DisassemblyContext context)
        {
            Vector2Assembler vs = new Vector2Assembler();

            return(new ObjectModel(
                       new ObjectField("Radius", new PrimitiveModel(source.radius)),
                       new ObjectField("Offset", vs.DisassembleValue(source.offset, context)),
                       new ObjectField("IsTrigger", new PrimitiveModel(source.isTrigger)),
                       new ObjectField("UsedByEffector", new PrimitiveModel(source.usedByEffector))));
        }
Exemplo n.º 13
0
 public override ObjectModel Disassemble(Renderer source, DisassemblyContext context)
 {
     return(new ObjectModel(
                new ObjectField("ShadowCastingMode", new PrimitiveModel(source.shadowCastingMode)),
                new ObjectField("RecieveShadows", new PrimitiveModel(source.receiveShadows)),
                new ObjectField("LightProbeUsage", new PrimitiveModel(source.lightProbeUsage)),
                new ObjectField("ReflectionProbeUsage", new PrimitiveModel(source.reflectionProbeUsage)),
                new ObjectField("MotionVectorGenerationMode", new PrimitiveModel(source.motionVectorGenerationMode)),
                new ObjectField("AllowOcclusionWhenDynamic", new PrimitiveModel(source.allowOcclusionWhenDynamic)),
                new ObjectField("SortingLayer", new PrimitiveModel(source.sortingLayerID)),
                new ObjectField("OrderInLayer", new PrimitiveModel(source.sortingOrder))
                ));
 }
Exemplo n.º 14
0
        public ValueModel Disassemble(DisassemblyContext context)
        {
            ObjectModel obj = new ObjectModel(
                new ObjectField("Name", new PrimitiveModel(Name)),
                new ObjectField("Description", new PrimitiveModel(Description)),
                new ObjectField("Identifier", new PrimitiveModel(Identifier)),
                new ObjectField("Width", new PrimitiveModel(Width)),
                new ObjectField("Height", new PrimitiveModel(Height)),
                new ObjectField("Tiles", Tiles.Disassemble(context)),
                new ObjectField("Objects", new ArrayModel(Objects))
                );

            return(obj);
        }
        public RootModel Disassemble(TurretAssembly assembly)
        {
            DisassemblyContext context = new DisassemblyContext();
            List <ObjectField> tiers   = new List <ObjectField>();

            foreach (Transform tier in assembly.transform)
            {
                tiers.Add(new ObjectField(tier.name, DisassembleTier(assembly, Tier.Parse(tier.gameObject.name), context)));
            }

            return(new RootModel(new ObjectModel(
                                     new ObjectField("Name", ValueModelFactory.Create(assembly.Name, context)),
                                     new ObjectField("Description", ValueModelFactory.Create(assembly.Description, context)),
                                     new ObjectField("Tiers", new ObjectModel(tiers.ToArray())),
                                     new ObjectField("UpgradeMap", _valueAssembler.Disassemble(assembly.UpgradeMap, typeof(UpgradeMap), new DisassemblyContext())
                                                     ))));
        }
Exemplo n.º 16
0
        public override ObjectModel DisassembleValue(Gradient value, DisassemblyContext context)
        {
            ColorAssembler assembler = new ColorAssembler();

            return(new ObjectModel(
                       new ObjectField("ColorKeys", new ArrayModel(
                                           value.colorKeys.Select(x => new ObjectModel(
                                                                      new ObjectField("Time", new PrimitiveModel(x.time)),
                                                                      new ObjectField("Color", assembler.DisassembleValue(x.color, context)))))),

                       new ObjectField("AlphaKeys", new ArrayModel(
                                           value.alphaKeys.Select(x => new ObjectModel(
                                                                      new ObjectField("Time", new PrimitiveModel(x.time)),
                                                                      new ObjectField("Alpha", new PrimitiveModel(x.alpha)))))),

                       new ObjectField("Mode", new PrimitiveModel((int)value.mode))
                       ));
        }
        public override ObjectModel Disassemble(LineRenderer source, DisassemblyContext context)
        {
            ValueAssembler    assembler      = new ValueAssembler();
            RendererAssembler baseSerializer = new RendererAssembler(); // Base serialization could potentially be automated using reflection.

            return(new ObjectModel(baseSerializer.Disassemble(source, context),
                                   new ObjectField("PositionCount", new PrimitiveModel(source.positionCount)),
                                   new ObjectField("Positions", new ArrayModel(GetPositions(source).Select(x => ValueModelFactory.Create(x, context)))),
                                   new ObjectField("Curve", ValueModelFactory.Create(source.widthCurve, context)),
                                   new ObjectField("Colors", ValueModelFactory.Create(source.colorGradient, context)),
                                   new ObjectField("CornerVerticies", new PrimitiveModel(source.numCornerVertices)),
                                   new ObjectField("CapVerticies", new PrimitiveModel(source.numCapVertices)),
                                   new ObjectField("Alignment", new PrimitiveModel(source.alignment)),
                                   new ObjectField("TextureMode", new PrimitiveModel(source.textureMode)),
                                   new ObjectField("ShadowBias", new PrimitiveModel(source.shadowBias)),
                                   new ObjectField("GenerateLighingData", new PrimitiveModel(source.generateLightingData)),
                                   new ObjectField("UseWorldSpace", new PrimitiveModel(source.useWorldSpace))));
        }
        public override ObjectModel Disassemble(TrailRenderer source, DisassemblyContext context)
        {
            RendererAssembler baseAssembler = new RendererAssembler();

            return(new ObjectModel(baseAssembler.Disassemble(source, context),
                                   new ObjectField("Curve", ValueModelFactory.Create(source.widthCurve, context)),
                                   new ObjectField("Time", new PrimitiveModel(source.time)),
                                   new ObjectField("MinVertexDistance", new PrimitiveModel(source.minVertexDistance)),
                                   new ObjectField("Autodestruct", new PrimitiveModel(source.autodestruct)),
                                   new ObjectField("Emitting", new PrimitiveModel(source.emitting)),
                                   new ObjectField("Color", ValueModelFactory.Create(source.colorGradient, context)),
                                   new ObjectField("CornerVertices", new PrimitiveModel(source.numCornerVertices)),
                                   new ObjectField("CapVertices", new PrimitiveModel(source.numCapVertices)),
                                   new ObjectField("Alignment", new PrimitiveModel(source.alignment)),
                                   new ObjectField("TextureMode", new PrimitiveModel(source.textureMode)),
                                   new ObjectField("GenerateLigtingData", new PrimitiveModel(source.generateLightingData)),
                                   new ObjectField("ShadowBias", new PrimitiveModel(source.shadowBias))
                                   ));
        }
        public ObjectModel Disassemble(Component component, DisassemblyContext context)
        {
            var converter = GetComponentConverter(component.GetType());

            if (converter != null)
            {
                Component converted = converter.ConvertComponent(component, component.gameObject);
                return(context.MakeReferencable(component, (ObjectModel)Disassemble(converted, context).MakeExplicit(converted.GetType())));
            }

            var assembler = GetEngineComponentAssembler(component.GetType());

            if (assembler != null)
            {
                return(context.MakeReferencable(component, (ObjectModel)assembler.Disassemble(component, context).MakeExplicit(component.GetType()))); // Components are always explicit.
            }

            ObjectPopulator populator = new ObjectPopulator();

            return((ObjectModel)populator.Extract(component, context).MakeExplicit(component.GetType()));
        }
Exemplo n.º 20
0
        public ObjectModel RecursiveDisassemble(GameObject gameObject, DisassemblyContext context)
        {
            var children = new List <ObjectModel>();

            Component[] components      = gameObject.GetComponents <Component>().Where(x => !x.GetType().IsDefined(typeof(DontSerializeAttribute), false)).ToArray();
            var         componentModels = new List <ObjectModel>();

            foreach (Component component in components)
            {
                componentModels.Add(_componentAssembler.Disassemble(component, context));
            }

            return(context.MakeReferencable(gameObject, new ObjectModel(
                                                new ObjectField("Name", ValueModelFactory.Create(gameObject.name, context)),
                                                new ObjectField("Tag", ValueModelFactory.Create(gameObject.tag, context)),
                                                new ObjectField("Layer", ValueModelFactory.Create(gameObject.layer, context)),
                                                new ObjectField("Static", ValueModelFactory.Create(gameObject.isStatic, context)),
                                                new ObjectField("Components", new ArrayModel(componentModels)),
                                                new ObjectField("Children", new ArrayModel(GetChildren(gameObject).Select(x => RecursiveDisassemble(x, context))))
                                                )));
        }
        public ObjectModel Dissassemble(TurretComponent component, DisassemblyContext context)
        {
            GameObject         obj      = component.gameObject;
            List <ObjectModel> children = new List <ObjectModel>();

            foreach (Transform child in obj.transform)
            {
                TurretComponent childComponent = child.GetComponent <TurretComponent>();
                if (childComponent != null)
                {
                    children.Add(Dissassemble(childComponent, context));
                }
            }

            return(new ObjectModel(
                       new ObjectField("UniqueIdentifier", ValueModelFactory.Create(component.Identifier, context)),
                       new ObjectField("LocalPosition", ValueModelFactory.Create((Vector2)obj.transform.localPosition, context)),
                       new ObjectField("Angle", ValueModelFactory.Create(obj.transform.localRotation.eulerAngles.z, context)),
                       new ObjectField("Flipped", ValueModelFactory.Create(component.Flipped, context)),
                       new ObjectField("Children", new ArrayModel(children))
                       ));
        }
Exemplo n.º 22
0
 public abstract ObjectModel DisassembleValue(T value, DisassemblyContext context);
Exemplo n.º 23
0
 public ObjectModel Disassemble(object value, DisassemblyContext context)
 {
     return(DisassembleValue((T)value, context));
 }
Exemplo n.º 24
0
 public override ObjectModel Disassemble(Rigidbody2D source, DisassemblyContext context)
 {
     return(new ObjectModel(
                new ObjectField("BodyType", new PrimitiveModel(source.bodyType))
                ));
 }
Exemplo n.º 25
0
 public ValueModel Disassemble(DisassemblyContext context)
 {
     return(new ObjectModel(_translations.Select(x => new ObjectField(x.Key, new PrimitiveModel(x.Value))).ToArray()));
 }
 public abstract void Disassemble(ObjectField field, object obj, Type expectedType, DisassemblyContext context);
Exemplo n.º 27
0
 public override void Disassemble(ObjectField field, object obj, Type expectedType, DisassemblyContext context)
 {
     context.RequestGuid(obj, x => field.Model = new ReferenceModel(x));
 }
        public static ValueModel Create(object value, DisassemblyContext context)
        {
            ValueAssembler assemblers = new ValueAssembler();

            return(assemblers.Disassemble(value, value.GetType(), context));
        }
Exemplo n.º 29
0
 public override void Disassemble(ObjectField field, object obj, Type expectedType, DisassemblyContext context)
 {
     field.Model = _assembler.Disassemble(obj, expectedType, context);
 }
Exemplo n.º 30
0
 public ValueModel Disassemble(DisassemblyContext context)
 {
     return(new ArrayModel(EnflattenTiles(Tiles).Select(x => x.Disassemble(context))));
 }