Files
2026-03-04 10:03:45 +08:00

56 lines
1.6 KiB
C#

using System;
using System.Collections.Generic;
using UnityEngine;
namespace Gaia.FullSerializer.Internal.DirectConverters
{
public class Texture2D_DirectConverter : fsDirectConverter<Texture2D>
{
protected override fsResult DoSerialize(Texture2D model, Dictionary<string, fsData> serialized)
{
fsResult success = fsResult.Success;
if (model == null)
{
return success + SerializeMember(serialized, "present", value: false);
}
success += SerializeMember(serialized, "present", value: true);
success += SerializeMember(serialized, "name", model.name);
success += SerializeMember(serialized, "path", "");
success += SerializeMember(serialized, "width", model.width);
return success + SerializeMember(serialized, "height", model.height);
}
protected override fsResult DoDeserialize(Dictionary<string, fsData> data, ref Texture2D model)
{
fsResult success = fsResult.Success;
bool value = false;
success += DeserializeMember<bool>(data, "present", out value);
if (value)
{
string value2 = "";
success += DeserializeMember<string>(data, "path", out value2);
if (!string.IsNullOrEmpty(value2))
{
model = GaiaUtils.GetAsset(value2, typeof(Texture2D)) as Texture2D;
if (model == null)
{
Debug.LogWarning("Unable to locate asset : " + value2);
}
else
{
string value3 = model.name;
success += DeserializeMember<string>(data, "name", out value3);
model.name = value3;
}
}
}
return success;
}
public override object CreateInstance(fsData data, Type storageType)
{
return new Texture2D(0, 0);
}
}
}