private void AddCreatureTemplates([NotNull] IReadOnlyCollection <CreatureTemplateModel> resultTemplates) { if (resultTemplates == null) { throw new ArgumentNullException(nameof(resultTemplates)); } foreach (var template in resultTemplates) { if (Logger.IsInfoEnabled) { Logger.Info($"Processing Creature Template: {template.TemplateId} Name: {template.CreatureName}"); } CreatureTemplateMappable.Add(NetworkEntityGuid.Empty, template); } }
private void CreateActor(WorldActorState state, CreateCreatureEntityActorMessage message) { //Create the actor and tell it to initialize. IActorRef actorRef = state.WorldActorFactory.ActorOf(Resolver.Create <DefaultCreatureEntityActor>(), message.EntityGuid.RawGuidValue.ToString()); //TODO: Move to factory. CreatureInstanceModel instanceModel = CreatureInstanceMappable.RetrieveEntity(message.EntityGuid); CreatureTemplateModel templateModel = CreatureTemplateMappable.RetrieveEntity(message.EntityGuid); DefaultCreatureEntityActor.InitializeActor(actorRef, new DefaultCreatureActorState(EntityDataMappable.RetrieveEntity(message.EntityGuid), message.EntityGuid, instanceModel, templateModel, InterestMappable.RetrieveEntity(message.EntityGuid))); ActorRefMappable.AddObject(message.EntityGuid, actorRef); if (Logger.IsInfoEnabled) { Logger.Info($"Created Creature Actor: {typeof(DefaultCreatureEntityActor)} for Entity: {message.EntityGuid}"); } }