using Polonium.MessageManager; namespace Polonium.Agents; public abstract partial class World : MessageBus { protected WorldModel Model { get; set; } public Knowledge CommonKnowledge { get; set; } public override void _Ready() { Model = GetNode("WorldModel"); Model.WorldKnowledge.PostCode = "WorldKnowledge"; Register(Model.WorldKnowledge); CommonKnowledge = GetNode("CommonKnowledge"); CommonKnowledge.PostCode = "CommonKnowledge"; Register(CommonKnowledge); base._Ready(); } public void Register(Agent agent) { Register(agent.Knowledge); } public virtual void Enter() { PoloniumRegistry.Instance.CurrentWorld = this; } public virtual void Exit() { PoloniumRegistry.Instance.CurrentWorld = null; } }