Files
Polonium/src/Agents/World.cs
2025-03-03 11:08:25 +00:00

37 lines
876 B
C#

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>("WorldModel");
Model.WorldKnowledge.PostCode = "WorldKnowledge";
Register(Model.WorldKnowledge);
CommonKnowledge = GetNode<Knowledge>("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;
}
}