public EmotionTrainer(IEventSwitchPriority eventSwitchPriority) { worldObject = new WorldObject("emotion", eventSwitchPriority); worldObject.AddComponent(new Sprite(worldObject, new SpriteData { Color = Color.White, Height = 16, Width = 16, TextureName = "Emotions/trainer_b" })); worldObject.AddComponent(new Animation(worldObject)); }
private IEnumerable <WorldObject> GenerateGrass(EventSwitchHandler eventSwitchHandler) { var list = new List <WorldObject>(); for (int x = 0; x < 30; x++) { for (int y = 0; y < 20; y++) { var worldObject = new WorldObject($"tile_0_{x}_{y}", eventSwitchHandler); worldObject.AddComponent(new TileGraphic(worldObject, x, y) { AnimationSpeed = 1000, TextureName = "Tiles/main_tile", TileFrames = new List <TileFrame> { new TileFrame { TextureXPosition = 16 * rnd.Next(0, 5), TextureYPosition = 0 } }, ZTilePosition = 0 }); list.Add(worldObject); } } return(list); }
public IList <WorldObject> LoadEntities(string mapName, IWorldData worldData, IEventRunner eventRunner, EventSwitchHandler eventSwitchHandler) { var entityList = new List <WorldObject>(); var entity = new WorldObject("player", eventSwitchHandler); entity.AddComponent(new Sprite(entity, new SpriteData { Color = Color.White, Height = 19, Width = 15, TextureName = "NPC/main_character", XTilePosition = 2, YTilePosition = 2 }, new Rectangle(0, 0, 16, 19))); entity.AddComponent(new MovementPlayer(entity, 1, new InputKeyboard())); entity.AddComponent(new Animation(entity)); entity.AddComponent(new Collision(entity, worldData)); entity.AddComponent(new ComponentTest(entity, eventRunner, new InputKeyboard(), eventSwitchHandler)); //NPC var entityNpc = new WorldObject("npc", eventSwitchHandler); entityNpc.AddComponent(new Sprite(entityNpc, new SpriteData { Color = Color.White, Height = 19, Width = 15, TextureName = "NPC/rock_trainer", XTilePosition = 4, YTilePosition = 4 }, new Rectangle(0, 0, 16, 19))); entityNpc.AddComponent(new Animation(entityNpc, new AnimationSpinning(16, 20, 400)), 1); entityNpc.AddComponent(new Collision(entityNpc, worldData)); //entityNpc.AddComponent(new EventTriggerEyeContact(entityNpc, eventRunner, new List<IEvent> { new EventEmotion("npc", new EmotionTrainer(eventSwitchHandler)), new EventMovement("npc", new Vector2(8, 8))}, worldData)); entityNpc.AddComponent(new Movement(entityNpc, 1)); entityList.Add(entityNpc); entityList.Add(entity); return(entityList); }
private IEnumerable <WorldObject> GenerateBushes(EventSwitchHandler eventSwitchHandler) { var list = new List <WorldObject>(); for (int x = 0; x < 30; x++) { for (int y = 0; y < 20; y++) { var chance = rnd.Next(0, 100); if (chance < 80 || (x == 8 && y == 8)) { continue; } var collisionObject = new WorldObject($"tile_collision_{x}_{y}", eventSwitchHandler); collisionObject.AddComponent(new TileCollision(collisionObject, x, y)); list.Add(collisionObject); var type = rnd.Next(0, 3); var worldObject = new WorldObject($"tile_1_{x}_{y}", eventSwitchHandler); if (type == 0) { worldObject.AddComponent(new TileGraphic(worldObject, x, y) { AnimationSpeed = 200, TextureName = "Tiles/main_tile", TileFrames = new List <TileFrame> { new TileFrame { TextureXPosition = 0, TextureYPosition = 16 }, new TileFrame { TextureXPosition = 16, TextureYPosition = 16 }, new TileFrame { TextureXPosition = 32, TextureYPosition = 16 }, new TileFrame { TextureXPosition = 48, TextureYPosition = 16 } }, ZTilePosition = 0 }); } if (type == 1) { worldObject.AddComponent(new TileGraphic(worldObject, x, y) { AnimationSpeed = 1000, TextureName = "Tiles/main_tile", TileFrames = new List <TileFrame> { new TileFrame { TextureXPosition = 0, TextureYPosition = 32 } }, ZTilePosition = 0 }); } if (type == 2) { worldObject.AddComponent(new TileGraphic(worldObject, x, y) { AnimationSpeed = 1000, TextureName = "Tiles/main_tile", TileFrames = new List <TileFrame> { new TileFrame { TextureXPosition = 16, TextureYPosition = 32 } }, ZTilePosition = 0 }); } list.Add(worldObject); } } return(list); }