mirror of
https://github.com/space-wizards/RobustToolbox.git
synced 2026-09-16 15:22:27 +02:00
* Refactor map loading & saving * test fixes * ISerializationManager tweaks * Fix component composition * Try fix entity deserialization component composition * comments * CL * error preinit * a * cleanup * error if version is too new * Add AlwaysPushSerializationTest * Add auto-inclusion test * Better categorization * Combine test components * Save -> TrySave Also better handling for saving multiple entities individually * Create new partial class for map loading * Add OrphanSerializationTest * Include MapIds in BeforeSerializationEvent * Addd LifetimeSerializationTest * Add TestMixedLifetimeSerialization * Add CategorizationTest * explicitly serialize list of nullspace entities * Add backwards compatibility test * Version comments also fixes wrong v4 format * add MapMergeTest * Add NetEntity support * Optimize EntityDeserializer Avoid unnecessary component deserialization * fix assert & other bugs * fucking containers strike again * Fix deletion of pre-init entities * fix release note merge conflict * Update Robust.Shared/Map/MapManager.GridCollection.cs Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> * VV --------- Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
43 lines
2.0 KiB
C#
43 lines
2.0 KiB
C#
using System.Collections.Generic;
|
|
using Robust.Shared.EntitySerialization;
|
|
using Robust.Shared.GameObjects;
|
|
using Robust.Shared.Serialization.Markdown.Mapping;
|
|
|
|
namespace Robust.Shared.Map.Events;
|
|
|
|
/// <summary>
|
|
/// This event is broadcast just before the map loader reads the entity section. It can be used to somewhat modify
|
|
/// how the map data is read, as a super basic kind of map migration tool.
|
|
/// </summary>
|
|
public sealed class BeforeEntityReadEvent
|
|
{
|
|
/// <summary>
|
|
/// Set of deleted entity prototypes.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// While reading the map, these entities will be treated as if they have no prototype. After the map has been
|
|
/// loaded, these entities will get deleted. This is so that entities parented to this entity (e.g., stored in
|
|
/// containers) also get deleted, instead of just causing errors. Note that this has not been properly tested is
|
|
/// quite likely to cause unexpected errors and should be used with care.
|
|
/// </remarks>
|
|
public readonly HashSet<string> DeletedPrototypes = new();
|
|
|
|
/// <summary>
|
|
/// This dictionary maps old entity prototype IDs to some new value. As with <see cref="DeletedPrototypes"/>, this
|
|
/// might cause unexpected errors, user beware.
|
|
/// </summary>
|
|
public readonly Dictionary<string, string> RenamedPrototypes = new();
|
|
}
|
|
|
|
/// <summary>
|
|
/// This event is broadcast just before the given entities (and their children) are serialized.
|
|
/// For convenience, the event also contains a set with all the maps that the entities are on. This does not
|
|
/// necessarily mean that the maps are themselves getting serialized.
|
|
/// </summary>
|
|
public readonly record struct BeforeSerializationEvent(HashSet<EntityUid> Entities, HashSet<MapId> MapIds);
|
|
|
|
/// <summary>
|
|
/// This event is broadcast just after entities (and their children) have been serialized, but before it gets written to a yaml file.
|
|
/// </summary>
|
|
public readonly record struct AfterSerializationEvent(HashSet<EntityUid> Entities, MappingDataNode Node, FileCategory Category);
|