91 lines
2.6 KiB
C#
91 lines
2.6 KiB
C#
using CtrEditor.ObjetosSim;
|
|
using Newtonsoft.Json;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
|
|
namespace CtrEditor.Serialization
|
|
{
|
|
/// <summary>
|
|
/// Almacena datos locales para un objeto global
|
|
/// </summary>
|
|
public class DatosLocales
|
|
{
|
|
/// <summary>
|
|
/// ID del objeto global al que pertenecen estos datos locales
|
|
/// </summary>
|
|
public UniqueId Id_GlobalObject { get; set; }
|
|
|
|
/// <summary>
|
|
/// Posición vertical local
|
|
/// </summary>
|
|
public float? Top { get; set; }
|
|
|
|
/// <summary>
|
|
/// Posición horizontal local
|
|
/// </summary>
|
|
public float? Left { get; set; }
|
|
|
|
/// <summary>
|
|
/// Ancho local
|
|
/// </summary>
|
|
public float? Ancho { get; set; }
|
|
|
|
/// <summary>
|
|
/// Alto local
|
|
/// </summary>
|
|
public float? Alto { get; set; }
|
|
|
|
/// <summary>
|
|
/// Diccionario para almacenar propiedades dinámicas adicionales
|
|
/// </summary>
|
|
public Dictionary<string, object> PropiedadesAdicionales { get; set; }
|
|
|
|
/// <summary>
|
|
/// Constructor por defecto necesario para deserialización
|
|
/// </summary>
|
|
public DatosLocales()
|
|
{
|
|
PropiedadesAdicionales = new Dictionary<string, object>();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Constructor con ID del objeto global
|
|
/// </summary>
|
|
public DatosLocales(UniqueId idGlobalObject)
|
|
{
|
|
Id_GlobalObject = idGlobalObject;
|
|
PropiedadesAdicionales = new Dictionary<string, object>();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Copia los datos relevantes desde un objeto global
|
|
/// </summary>
|
|
public void CopiarDesdeObjeto(osBase objeto)
|
|
{
|
|
if (objeto == null) return;
|
|
|
|
Id_GlobalObject = objeto.Id;
|
|
Top = objeto.Top;
|
|
Left = objeto.Left;
|
|
Ancho = objeto.Ancho;
|
|
Alto = objeto.Alto;
|
|
|
|
// Aquí puedes añadir más propiedades si es necesario
|
|
}
|
|
|
|
/// <summary>
|
|
/// Aplica los datos locales al objeto global
|
|
/// </summary>
|
|
public void AplicarAObjeto(osBase objeto)
|
|
{
|
|
if (objeto == null || objeto.Id.Value != Id_GlobalObject.Value) return;
|
|
|
|
if (Left.HasValue) objeto.Left = Left.Value;
|
|
if (Top.HasValue) objeto.Top = Top.Value;
|
|
if (Ancho.HasValue) objeto.Ancho = Ancho.Value;
|
|
if (Alto.HasValue) objeto.Alto = Alto.Value;
|
|
|
|
// Aquí puedes aplicar más propiedades si es necesario
|
|
}
|
|
}
|
|
} |