using CtrEditor.ObjetosSim;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
namespace CtrEditor.Serialization
{
///
/// Almacena datos locales para un objeto global
///
public class DatosLocales
{
///
/// ID del objeto global al que pertenecen estos datos locales
///
public UniqueId Id_GlobalObject { get; set; }
///
/// Posición vertical local
///
public float? Top { get; set; }
///
/// Posición horizontal local
///
public float? Left { get; set; }
///
/// Ancho local
///
public float? Ancho { get; set; }
///
/// Alto local
///
public float? Alto { get; set; }
///
/// Diccionario para almacenar propiedades dinámicas adicionales
///
public Dictionary PropiedadesAdicionales { get; set; }
///
/// Constructor por defecto necesario para deserialización
///
public DatosLocales()
{
PropiedadesAdicionales = new Dictionary();
}
///
/// Constructor con ID del objeto global
///
public DatosLocales(UniqueId idGlobalObject)
{
Id_GlobalObject = idGlobalObject;
PropiedadesAdicionales = new Dictionary();
}
///
/// Copia los datos relevantes desde un objeto global
///
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
}
///
/// Aplica los datos locales al objeto global
///
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
}
}
}