Demote item reference projection value
This commit is contained in:
parent
c2a8729c75
commit
d8cd07fd84
5 changed files with 33 additions and 22 deletions
Binary file not shown.
|
|
@ -66,9 +66,11 @@ Dead legacy catalog roots for user records and galaxy map-layer resources have
|
|||
been deleted from live Unity source. Surviving runtime DTOs no longer carry
|
||||
legacy catalog group/table annotations; their remaining metadata is projection
|
||||
and inspection metadata for the typed runtime bridge.
|
||||
Item instances now carry `RuntimeItemReference`, a narrow item-id/value holder.
|
||||
The old generic `RuntimeCatalogLink<T>` abstraction has been deleted; item data
|
||||
projection is routed through `ItemManager` and the typed runtime catalog reader.
|
||||
Item instances now carry `RuntimeItemReference`, a narrow item-definition id plus
|
||||
optional hydrated projection cache. The old generic `RuntimeCatalogLink<T>`
|
||||
abstraction has been deleted; item data projection is routed through
|
||||
`ItemManager` and the typed runtime catalog reader. `Projection` is not durable
|
||||
state; it is a bridge for surviving simulation and UI code.
|
||||
Surviving item catalog Unity DTOs inherit `RuntimeItemProjectionEntry`; the old
|
||||
`RuntimeCatalogEntry` base name no longer appears in live source. Temporary
|
||||
faction/corporation projections and zone body/orbit DTOs keep local GUID fields
|
||||
|
|
|
|||
|
|
@ -65,12 +65,12 @@ public class ItemManager
|
|||
public ItemData GetData(ItemInstance item)
|
||||
{
|
||||
Hydrate(item);
|
||||
return item?.Data?.Value;
|
||||
return item?.Data?.Projection;
|
||||
}
|
||||
|
||||
public void Hydrate(ItemInstance item)
|
||||
{
|
||||
if (item?.Data == null || item.Data.Value != null)
|
||||
if (item?.Data == null || item.Data.Projection != null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
@ -82,7 +82,7 @@ public class ItemManager
|
|||
return;
|
||||
}
|
||||
|
||||
item.Data.SetValue(data);
|
||||
item.Data.SetProjection(data);
|
||||
}
|
||||
|
||||
public void Log(string s)
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ public abstract class RuntimeItemProjectionEntry
|
|||
|
||||
public class RuntimeItemReference
|
||||
{
|
||||
public ItemData Value { get; private set; }
|
||||
public ItemData Projection { get; private set; }
|
||||
public Guid ItemId;
|
||||
|
||||
public RuntimeItemReference()
|
||||
|
|
@ -37,12 +37,12 @@ public class RuntimeItemReference
|
|||
|
||||
public RuntimeItemReference(ItemData value)
|
||||
{
|
||||
SetValue(value);
|
||||
SetProjection(value);
|
||||
}
|
||||
|
||||
public void SetValue(ItemData value)
|
||||
public void SetProjection(ItemData value)
|
||||
{
|
||||
Value = value;
|
||||
Projection = value;
|
||||
ItemId = value?.ID ?? Guid.Empty;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -99,8 +99,9 @@ legacy catalog cache, and legacy UI paths should be migration-only or deleted.
|
|||
- `ActionGameManager` opens `AetheriaRuntimeCatalogStore` over
|
||||
`aetheria-world.cc`, projects it through `AetheriaRuntimeItemCatalog`, and
|
||||
gives `ItemManager` explicit item lookup authority. Item instances carry
|
||||
`RuntimeItemReference`, a hydrated item-id/value holder, not a process-global
|
||||
catalog resolver. The old `LegacyItemCatalogBoundary`,
|
||||
`RuntimeItemReference`, an item-definition id plus optional hydrated
|
||||
projection cache, not a process-global catalog resolver or durable item-data
|
||||
owner. The old `LegacyItemCatalogBoundary`,
|
||||
`LegacyItemCatalogCache`, and runtime MessagePack deserializer path have been
|
||||
deleted. The old `DatabaseEntry`/`RuntimeCatalogEntry` base has been demoted
|
||||
to `RuntimeItemProjectionEntry` for surviving item DTOs, and the old generic
|
||||
|
|
@ -130,11 +131,12 @@ legacy catalog cache, and legacy UI paths should be migration-only or deleted.
|
|||
`Faction` DTOs, including allegiance edges, for the existing simulation shape
|
||||
and resolves full name arrays from `aetheria.name_file.v2` records. The
|
||||
runtime no longer opens the old `GameData/NameFile/*.msgpack` directory.
|
||||
- Item instances carry `RuntimeItemReference`, a narrow item-id/value holder
|
||||
- Item instances carry `RuntimeItemReference`, a narrow item-definition id
|
||||
resolved by `ItemManager` against the typed runtime item catalog projected
|
||||
from `aetheria-world.cc`. MessagePack catalog construction no longer grabs
|
||||
global link-resolution authority, and the old generic `RuntimeCatalogLink<T>`
|
||||
abstraction is gone.
|
||||
from `aetheria-world.cc`. The optional `Projection` on the reference is a
|
||||
hydrated DTO cache for legacy simulation/UI code, not state authority.
|
||||
MessagePack catalog construction no longer grabs global link-resolution
|
||||
authority, and the old generic `RuntimeCatalogLink<T>` abstraction is gone.
|
||||
- `Economy.Server` now starts the modern `Aetheria.State` CultMesh node, drains
|
||||
pending Unity runtime commits through the typed state applicator, and no
|
||||
longer owns RethinkDB/LiteNetLib state.
|
||||
|
|
@ -378,8 +380,10 @@ legacy catalog cache, and legacy UI paths should be migration-only or deleted.
|
|||
`AetheriaRuntimeItemCatalog` materializes temporary `ItemData` DTOs from typed
|
||||
item records for the old simulation object model. `RuntimeItemProjectionEntry` is
|
||||
an item projection identity helper, not a persistence base or corporation
|
||||
owner, and behavior type selection now uses an explicit runtime catalog map instead of
|
||||
`UnionAttribute` reflection.
|
||||
owner. `RuntimeItemReference.Projection` is a hydrated DTO cache derived from
|
||||
`RuntimeItemReference.ItemId` through `ItemManager`; it is not allowed to own
|
||||
item identity or persistence. Behavior type selection now uses an explicit
|
||||
runtime catalog map instead of `UnionAttribute` reflection.
|
||||
Item/behavior DTO field layout for the temporary projection bridge is now
|
||||
marked with project-owned `LegacyPayloadKeyAttribute`, not MessagePack
|
||||
metadata. Item properties
|
||||
|
|
@ -680,11 +684,16 @@ First Aetheria surfaces to publish:
|
|||
- Done: demote `PlayerSettings` and nested settings from MessagePack shapes
|
||||
after the legacy settings writer was disabled.
|
||||
- Done: delete the process-global runtime catalog resolver from
|
||||
`RuntimeCatalogLink<T>`; item instances now carry hydrated identifiers and
|
||||
`ItemManager` owns resolution through the typed runtime catalog reader.
|
||||
`RuntimeCatalogLink<T>`; item instances now carry item-definition
|
||||
identifiers and `ItemManager` owns hydration through the typed runtime
|
||||
catalog reader.
|
||||
- Done: collapse the old generic `RuntimeCatalogLink<T>` abstraction into
|
||||
`RuntimeItemReference`, an item-specific runtime projection reference owned
|
||||
by `ItemManager`.
|
||||
- Done: demote `RuntimeItemReference.Value` to
|
||||
`RuntimeItemReference.Projection`, making the hydrated `ItemData` DTO a
|
||||
cache/display/behavior bridge derived from `ItemId` instead of the
|
||||
reference's apparent state value.
|
||||
- Done: quarantine the vendored Unity `MessagePack` assembly by disabling
|
||||
asmdef auto-reference; only explicit state-spine assemblies should see it
|
||||
while the Unity CultCache bridge still needs a low-level `.cc` codec.
|
||||
|
|
@ -738,8 +747,8 @@ First Aetheria surfaces to publish:
|
|||
- Unity batchmode compile with Editor `6000.4.2f1` returned cleanly after the
|
||||
runtime catalog resolver cut; `Logs/codex-unity-compile.log` has no compiler
|
||||
error hits.
|
||||
- `rg ".Data.Value|BindRuntimeItemCatalog|ResolveRuntimeItemCatalog|private static IRuntimeItemCatalogReader"` in
|
||||
`Assets/Scripts` now finds only `ItemManager` checking its own hydrated value.
|
||||
- `rg ".Data.Value|SetValue|BindRuntimeItemCatalog|ResolveRuntimeItemCatalog|private static IRuntimeItemCatalogReader"` in
|
||||
`Assets/Scripts` is zero for the old item value/resolver path.
|
||||
- Live Unity source has no `RuntimeCatalogLink<T>` or `RuntimeCatalogLinkBase`;
|
||||
item instances use `RuntimeItemReference` and expose `Data.ItemId`.
|
||||
- Live Unity source has no `RuntimeCatalogEntry`; only surviving item DTOs
|
||||
|
|
|
|||
Loading…
Reference in a new issue