public void StandingOn(MonoGameCharacterController character)
        {
            var pixel = buffer[character.Y, character.X];

            if (hotspots.ContainsKey(pixel))
            {
                hotspots[pixel].StandingOn?.Invoke(new StandingOn(character));
            }
        }
        void IXnaGameLoop.Initialize()
        {
            foreach (var type in Module.GenerateAnimations())
            {
                Animations[type] = new MonoGameAnimationController(services.Make <AnimationModule>(type), services);
            }

            foreach (var type in Module.GenerateCharacterAnimations())
            {
                CharacterAnimations[type] = new MonoGameCharacterAnimationController(services.Make <CharacterAnimationModule>(type), services);
            }

            foreach (var type in Module.GenerateCharacters())
            {
                Characters[type] = new MonoGameCharacterController(services.Make <CharacterModule>(type), services);
            }

            foreach (var type in Module.GenerateItems())
            {
                Items[type] = new MonoGameItemController(services.Make <ItemModule>(type), services);
            }

            foreach (var type in Module.GenerateInventoryItems())
            {
                InventoryItems[type] = new MonoGameInventoryItemController(services.Make <InventoryItemModule>(type));
            }

            foreach (var type in Module.GenerateRooms())
            {
                Rooms[type] = new MonoGameRoomController(services.Make <RoomModule>(type), services);
            }

            PreInitialize();
            Animations.Values.ToList().ForEach(a => a.PreInitialize());
            CharacterAnimations.Values.ToList().ForEach(c => c.PreInitialize());
            Characters.Values.ToList().ForEach(c => c.PreInitialize());
            Items.Values.ToList().ForEach(i => i.PreInitialize());
            InventoryItems.Values.ToList().ForEach(i => i.PreInitialize());
            Rooms.Values.ToList().ForEach(r => r.PreInitialize());

            Animations.Values.Select(a => a as IXnaGameLoop).ToList().ForEach(a => a.Initialize());
            CharacterAnimations.Values.Select(c => c as IXnaGameLoop).ToList().ForEach(c => c.Initialize());
            Characters.Values.Select(c => c as IXnaGameLoop).ToList().ForEach(c => c.Initialize());
            Items.Values.Select(i => i as IXnaGameLoop).ToList().ForEach(i => i.Initialize());
            InventoryItems.Values.Select(i => i as IXnaGameLoop).ToList().ForEach(i => i.Initialize());
            Rooms.Values.Select(r => r as IXnaGameLoop).ToList().ForEach(r => r.Initialize());
        }
Пример #3
0
 public void RemoveCharacter(MonoGameCharacterController character)
 {
     characters.Remove(character);
 }
Пример #4
0
 public void AddCharacter(MonoGameCharacterController character)
 {
     characters.Add(character);
 }