3 using SiliconStudio.Core.Serialization;
4 using SiliconStudio.Paradox.Effects;
6 namespace SiliconStudio.
Paradox.EntityModel
16 var cloneContext = stream.Context.Get(EntityCloner.CloneContextProperty);
22 object mappedObject = null;
23 bool isSharedObject = cloneContext.MappedObjects != null && cloneContext.MappedObjects(obj, out mappedObject);
25 if (!isSharedObject && cloneContext.ClonedObjects != null && !cloneContext.ClonedObjects.Contains(obj))
27 isSharedObject =
true;
31 stream.Write(isSharedObject);
35 stream.Write(cloneContext.SharedObjects.Count);
36 cloneContext.SharedObjects.Add(mappedObject);
40 cloneContext.SerializedObjects.Add(obj);
45 bool isSharedObject = stream.ReadBoolean();
49 var sharedObjectIndex = stream.ReadInt32();
50 obj = (T)cloneContext.SharedObjects[sharedObjectIndex];
56 obj = (T)(
object)((Model)(
object)obj).Instantiate();
61 base.PreSerialize(ref obj, mode, stream);
62 cloneContext.SerializedObjects.Add(obj);
69 var cloneContext = stream.Context.Get(EntityCloner.CloneContextProperty);
71 if (cloneContext.SerializedObjects.Contains(obj))
74 var dataSerializer = cloneContext.EntitySerializerSelector.GetSerializer<T>();
78 dataSerializer.Serialize(ref obj, mode, stream);
83 var entity = ((EntityComponent)(
object)obj).
Entity;
85 stream.Serialize(ref entity, mode);
87 ((EntityComponent)(
object)obj).
Entity = entity;
Game entity. It usually aggregates multiple EntityComponent
override void Serialize(ref T obj, ArchiveMode mode, SerializationStream stream)
Base class for implementation of SerializationStream.
override void PreSerialize(ref T obj, ArchiveMode mode, SerializationStream stream)
Describes how to serialize and deserialize an object without knowing its type. Used as a common base ...
ArchiveMode
Enumerates the different mode of serialization (either serialization or deserialization).
Collection of Mesh, each one usually being a different LOD of the same Model. The effect system will ...