public bool SerializeWrapper(ref MessagePackWriter writer, IExposedWrapper value, MessagePackSerializerOptions options) { if (value is TransformWrapper.Wrapper transformWrapper) { options.Resolver.GetFormatter <TransformWrapper.Wrapper>().Serialize(ref writer, transformWrapper, options); return(true); } if (value is RigidbodyWrapper.Wrapper rigidbodyWrapper) { options.Resolver.GetFormatter <RigidbodyWrapper.Wrapper>().Serialize(ref writer, rigidbodyWrapper, options); return(true); } return(false); }
public static T GetValue <T>(this IExposedWrapper wrapper, int id) { if (wrapper.Values == null) { return(default);
public LevelEditorComponentData(Type type, IExposedWrapper wrapper) { this.type = type; this.wrapper = wrapper; }
public LevelEditorComponentData(IExposedToLevelEditor exposed) { type = exposed.ComponentType; wrapper = exposed.GetWrapper(); }
void IExposedToLevelEditor.ApplyWrapper(IExposedWrapper wrapper, bool ignoreDirtyMask) { throw new NotImplementedException(); }
public abstract void ApplyWrapper(IExposedWrapper wrapper, bool ignoreDirtyMask = false);
public bool DeserializeWrapper(Type type, ref MessagePackReader reader, MessagePackSerializerOptions options, out IExposedWrapper wrapper) { if (type == typeof(TransformWrapper.Wrapper)) { wrapper = options.Resolver.GetFormatter <TransformWrapper.Wrapper>().Deserialize(ref reader, options); return(true); } if (type == typeof(RigidbodyWrapper.Wrapper)) { wrapper = options.Resolver.GetFormatter <RigidbodyWrapper.Wrapper>().Deserialize(ref reader, options); return(true); } wrapper = null; return(false); }
public bool DeserializeWrapperTemplate(Type type, ref MessagePackReader reader, MessagePackSerializerOptions options, out IExposedWrapper wrapper) { wrapper = null; return(false); }
public bool SerializeWrapperTemplate(ref MessagePackWriter writer, IExposedWrapper wrapper, MessagePackSerializerOptions options) { return(false); }
private static void DeserializeFormat0(ref MessagePackReader reader, MessagePackSerializerOptions options, ref Type type, ref IExposedWrapper wrapper) { int count = reader.ReadMapHeader(); int typeHash = 0; for (int i = 0; i < count; i++) { ReadOnlySpan <byte> stringKey = CodeGenHelpers.ReadStringSpan(ref reader); switch (stringKey.Length) { default: FAIL: reader.Skip(); continue; case 4: if (AutomataKeyGen.GetKey(ref stringKey) != 1701869940UL) { goto FAIL; } typeHash = reader.ReadInt32(); type = LevelEditorSerializer.GetType(typeHash); continue; case 10: if (!stringKey.SequenceEqual(SpanProperties.Slice(1))) { goto FAIL; } if (type == null) { Debug.LogWarning($"Couldn't find a wrapper for type hash {typeHash}."); reader.Skip(); continue; } ((LevelEditorResolver)LevelEditorResolver.instance).DeserializeWrapper(type, ref reader, options, out wrapper); continue; } } }
private static void DeserializeFormat1(ref MessagePackReader reader, MessagePackSerializerOptions options, ref Type type, ref IExposedWrapper wrapper) { int count = reader.ReadArrayHeader(); for (int i = 0; i < count; i++) { switch (i) { case 0: var typeHash = reader.ReadInt32(); type = LevelEditorSerializer.GetType(typeHash); break; case 1: if (type == null) { reader.Skip(); continue; } ((LevelEditorResolver)LevelEditorResolver.instance).DeserializeWrapper(type, ref reader, options, out wrapper); break; } } }
public bool DeserializeWrapper(Type type, ref MessagePackReader reader, MessagePackSerializerOptions options, out IExposedWrapper wrapper) { for (int i = 0; i < wrapperSerializers.Count; i++) { if (wrapperSerializers[i].DeserializeWrapper(type, ref reader, options, out wrapper)) { return(true); } } throw new FormatterNotRegisteredException($"Found no wrapper formatter for type {type}."); }