private static GameComponent __factory2(ComponentManager Manager, Vector3 Position, Blackboard Data) { Weather.CreateForecast(Manager.World.Time.CurrentDate, Manager.World.ChunkManager.Bounds, Manager.World, 3); Weather.CreateStorm(MathFunctions.RandVector3Cube() * 10, MathFunctions.Rand(0.05f, 1.0f), Manager.World); return(new Cloud(Manager, 0.1f, 50, 40, Position)); }
public static void Initialize() { RegisterEntity("Crate", (position, data) => new Crate(position)); RegisterEntity("Balloon", (position, data) => CreateBalloon(position + new Vector3(0, 1000, 0), position, PlayState.ComponentManager, GameState.Game.Content, GameState.Game.GraphicsDevice, null, PlayState.PlayerFaction)); RegisterEntity("Work Pile", (position, data) => new WorkPile(position)); RegisterEntity("Pine Tree", (position, data) => new Tree(position, "pine", ResourceLibrary.ResourceType.PineCone, data.GetData("Scale", 1.0f))); RegisterEntity("Snow Pine Tree", (position, data) => new Tree(position, "snowpine", ResourceLibrary.ResourceType.PineCone, data.GetData("Scale", 1.0f))); RegisterEntity("Palm Tree", (position, data) => new Tree(position, "palm", ResourceLibrary.ResourceType.Coconut, data.GetData("Scale", 1.0f))); RegisterEntity("Cactus", (position, data) => new Cactus(position, "cactus", data.GetData("Scale", 1.0f))); RegisterEntity("Berry Bush", (position, data) => new Bush(position, "berrybush", data.GetData("Scale", 1.0f))); RegisterEntity("Bird", (position, data) => new Bird(ContentPaths.Entities.Animals.Birds.GetRandomBird(), position, PlayState.ComponentManager, PlayState.ChunkManager, GameState.Game.GraphicsDevice, GameState.Game.Content, "Bird")); RegisterEntity("Bat", (position, data) => new Bat(position)); RegisterEntity("Scorpion", (position, data) => new Scorpion(ContentPaths.Entities.Animals.Scorpion.scorption_animation, position, PlayState.ComponentManager, PlayState.ChunkManager, GameState.Game.GraphicsDevice, GameState.Game.Content, "Scorpion")); RegisterEntity("Spider", (position, data) => new Spider(ContentPaths.Entities.Animals.Spider.spider_animation, position)); RegisterEntity("Frog", (position, data) => new Frog(ContentPaths.Entities.Animals.Frog.frog0_animation, position, PlayState.ComponentManager, PlayState.ChunkManager, GameState.Game.GraphicsDevice, GameState.Game.Content, "Frog")); RegisterEntity("Tree Frog", (position, data) => new Frog(ContentPaths.Entities.Animals.Frog.frog1_animation, position, PlayState.ComponentManager, PlayState.ChunkManager, GameState.Game.GraphicsDevice, GameState.Game.Content, "Frog")); RegisterEntity("Brown Rabbit", (position, data) => new Rabbit(ContentPaths.Entities.Animals.Rabbit.rabbit0_animation, position, PlayState.ComponentManager, PlayState.ChunkManager, GameState.Game.GraphicsDevice, GameState.Game.Content, "Brown Rabbit")); RegisterEntity("White Rabbit", (position, data) => new Rabbit(ContentPaths.Entities.Animals.Rabbit.rabbit1_animation, position, PlayState.ComponentManager, PlayState.ChunkManager, GameState.Game.GraphicsDevice, GameState.Game.Content, "White Rabbit")); RegisterEntity("Deer", (position, data) => new Deer(ContentPaths.Entities.Animals.Deer.deer, position, PlayState.ComponentManager, PlayState.ChunkManager, GameState.Game.GraphicsDevice, GameState.Game.Content, "Deer")); RegisterEntity("Dwarf", (position, data) => GenerateDwarf(position, PlayState.ComponentManager, GameState.Game.Content, GameState.Game.GraphicsDevice, PlayState.ChunkManager, PlayState.Camera, PlayState.PlayerFaction, PlayState.PlanService, "Player", JobLibrary.Classes[JobLibrary.JobType.Worker], 0)); //RegisterEntity("TestDwarf", (position, data) => GenerateTestDwarf(position)); //RegisterEntity("TestGoblin", (position, data) => GenerateTestGoblin(position)); //RegisterEntity("TestSkeleton", (position, data) => GenerateTestSeketon(position)); //RegisterEntity("TestMoleman", (position, data) => GenerateTestMoleman(position)); RegisterEntity("AxeDwarf", (position, data) => GenerateDwarf(position, PlayState.ComponentManager, GameState.Game.Content, GameState.Game.GraphicsDevice, PlayState.ChunkManager, PlayState.Camera, PlayState.PlayerFaction, PlayState.PlanService, "Player", JobLibrary.Classes[JobLibrary.JobType.AxeDwarf], 0)); RegisterEntity("CraftsDwarf", (position, data) => GenerateDwarf(position, PlayState.ComponentManager, GameState.Game.Content, GameState.Game.GraphicsDevice, PlayState.ChunkManager, PlayState.Camera, PlayState.PlayerFaction, PlayState.PlanService, "Player", JobLibrary.Classes[JobLibrary.JobType.CraftsDwarf], 0)); RegisterEntity("Wizard", (position, data) => GenerateDwarf(position, PlayState.ComponentManager, GameState.Game.Content, GameState.Game.GraphicsDevice, PlayState.ChunkManager, PlayState.Camera, PlayState.PlayerFaction, PlayState.PlanService, "Player", JobLibrary.Classes[JobLibrary.JobType.Wizard], 0)); RegisterEntity("MusketDwarf", (position, data) => GenerateDwarf(position, PlayState.ComponentManager, GameState.Game.Content, GameState.Game.GraphicsDevice, PlayState.ChunkManager, PlayState.Camera, PlayState.PlayerFaction, PlayState.PlanService, "Player", JobLibrary.Classes[JobLibrary.JobType.MusketDwarf], 0)); RegisterEntity("Moleman", (position, data) => GenerateMoleman(position, PlayState.ComponentManager, GameState.Game.Content, GameState.Game.GraphicsDevice, PlayState.ChunkManager, PlayState.Camera, PlayState.ComponentManager.Factions.Factions["Molemen"], PlayState.PlanService, "Molemen")); RegisterEntity("Goblin", (position, data) => GenerateGoblin(position, PlayState.ComponentManager, GameState.Game.Content, GameState.Game.GraphicsDevice, PlayState.ChunkManager, PlayState.Camera, PlayState.ComponentManager.Factions.Factions["Goblins"], PlayState.PlanService, "Goblins")); RegisterEntity("Skeleton", (position, data) => GenerateSkeleton(position, PlayState.ComponentManager, GameState.Game.Content, GameState.Game.GraphicsDevice, PlayState.ChunkManager, PlayState.Camera, PlayState.ComponentManager.Factions.Factions["Undead"], PlayState.PlanService, "Undead")); RegisterEntity("Necromancer", (position, data) => GenerateNecromancer(position, PlayState.ComponentManager, GameState.Game.Content, GameState.Game.GraphicsDevice, PlayState.ChunkManager, PlayState.Camera, PlayState.ComponentManager.Factions.Factions["Undead"], PlayState.PlanService, "Undead")); RegisterEntity("Bed", (position, data) => new Bed(position)); RegisterEntity("Barrel", (position, data) => new Barrel(position)); RegisterEntity("Bear Trap", (position, data) => new BearTrap(position)); RegisterEntity("Lamp", (position, data) => new Lamp(position)); RegisterEntity("Table", (position, data) => new Table(position)); RegisterEntity("Chair", (position, data) => new Chair(position)); RegisterEntity("Flag", (position, data) => new Flag(position)); RegisterEntity("Mushroom", (position, data) => new Mushroom(position, ContentPaths.Entities.Plants.mushroom, ResourceLibrary.ResourceType.Mushroom, 2, false)); RegisterEntity("Cave Mushroom", (position, data) => new Mushroom(position, ContentPaths.Entities.Plants.cavemushroom, ResourceLibrary.ResourceType.CaveMushroom, 4, true)); RegisterEntity("Wheat", (position, data) => new Wheat(position)); RegisterEntity("Kitchen Table", (position, data) => new Table(position, new SpriteSheet(ContentPaths.Entities.Furniture.interior_furniture, 32), new Point(0, 7)) { Tags = new List <string>() { "Cutting Board" } }); RegisterEntity("Books", (position, data) => new Table(position, new SpriteSheet(ContentPaths.Entities.Furniture.interior_furniture, 32), new Point(0, 4)) { Tags = new List <string>() { "Research" }, Battery = new Table.ManaBattery() { Charge = 0.0f, MaxCharge = 100.0f } }); RegisterEntity("Potions", (position, data) => new Table(position, new SpriteSheet(ContentPaths.Entities.Furniture.interior_furniture, 32), new Point(1, 4)) { Tags = new List <string>() { "Research" }, Battery = new Table.ManaBattery() { Charge = 0.0f, MaxCharge = 100.0f } }); RegisterEntity("Anvil", (position, data) => new Anvil(position)); RegisterEntity("Forge", (position, data) => new Forge(position)); RegisterEntity("Elf", (position, data) => GenerateElf(position, PlayState.ComponentManager.Factions.Factions["Elf"], "Elf")); RegisterEntity("Demon", (position, data) => GenerateDemon(position, PlayState.ComponentManager.Factions.Factions["Demon"], "Demon")); RegisterEntity("Arrow", (position, data) => new ArrowProjectile(position, data.GetData("Velocity", Vector3.Up * 10 + MathFunctions.RandVector3Box(-10, 10, 0, 0, -10, 10)), data.GetData <Body>("Target", null))); RegisterEntity("Bullet", (position, data) => new BulletProjectile(position, data.GetData("Velocity", Vector3.Up * 10 + MathFunctions.RandVector3Box(-10, 10, 0, 0, -10, 10)), data.GetData <Body>("Target", null))); RegisterEntity("Web", (position, data) => new WebProjectile(position, data.GetData("Velocity", Vector3.Up * 10 + MathFunctions.RandVector3Box(-10, 10, 0, 0, -10, 10)), data.GetData <Body>("Target", null))); RegisterEntity("Fireball", (position, data) => new FireballProjectile(position, data.GetData("Velocity", Vector3.Up * 10 + MathFunctions.RandVector3Box(-10, 10, 0, 0, -10, 10)), data.GetData <Body>("Target", null))); RegisterEntity("Fairy", (position, data) => new Fairy("Player", position)); RegisterEntity("Target", (position, data) => new Target(position)); RegisterEntity("Stove", (position, data) => new Stove(position)); RegisterEntity("Strawman", (position, data) => { float value = (float)PlayState.Random.NextDouble(); return(value < 0.33 ? (Body)(new Strawman(position)) : (value < 0.66 ? (Body)(new WeightRack(position)) : (Body)(new PunchingBag(position)))); }); RegisterEntity("Bookshelf", (position, data) => new Bookshelf(position)); RegisterEntity("Wooden Door", (position, data) => new Door(position, PlayState.PlayerFaction, new SpriteSheet(ContentPaths.Entities.Furniture.interior_furniture, 32, 32), new Point(3, 1), 50)); RegisterEntity("Metal Door", (position, data) => new Door(position, PlayState.PlayerFaction, new SpriteSheet(ContentPaths.Entities.Furniture.interior_furniture, 32, 32), new Point(1, 8), 100)); RegisterEntity("Stone Door", (position, data) => new Door(position, PlayState.PlayerFaction, new SpriteSheet(ContentPaths.Entities.Furniture.interior_furniture, 32, 32), new Point(0, 8), 75)); RegisterEntity("Wooden Ladder", (position, data) => new Ladder(position, new SpriteSheet(ContentPaths.Entities.Furniture.interior_furniture, 32, 32), new Point(2, 0))); RegisterEntity("Stone Ladder", (position, data) => new Ladder(position, new SpriteSheet(ContentPaths.Entities.Furniture.interior_furniture, 32, 32), new Point(2, 8))); RegisterEntity("Metal Ladder", (position, data) => new Ladder(position, new SpriteSheet(ContentPaths.Entities.Furniture.interior_furniture, 32, 32), new Point(3, 8))); RegisterEntity("RandTrinket", (position, data) => CreateRandomTrinket(position)); RegisterEntity("RandFood", (position, data) => CreateRandomFood(position)); RegisterEntity("Turret", (position, data) => new TurretTrap(position, PlayState.PlayerFaction)); RegisterEntity("Snow Cloud", (position, data) => new Weather.Cloud(0.1f, 50, 40, position) { TypeofStorm = Weather.StormType.SnowStorm }); RegisterEntity("Rain Cloud", (position, data) => new Weather.Cloud(0.1f, 50, 40, position) { TypeofStorm = Weather.StormType.RainStorm }); RegisterEntity("Storm", (position, data) => { Weather.CreateForecast(3); Weather.CreateStorm(MathFunctions.RandVector3Cube() * 10, MathFunctions.Rand(0.05f, 1.0f)); return(new Weather.Cloud(0.1f, 50, 40, position)); }); }
public static void Initialize(WorldManager world) { World = world; RegisterEntity("Crate", (position, data) => new Crate(world.ComponentManager, position)); RegisterEntity("Balloon", (position, data) => CreateBalloon(position + new Vector3(0, 1000, 0), position, world.ComponentManager, GameState.Game.Content, GameState.Game.GraphicsDevice, null, world.PlayerFaction)); RegisterEntity("Work Pile", (position, data) => new WorkPile(world.ComponentManager, position)); RegisterEntity("Haunted Tree", (position, data) => new Tree("Haunted Tree", world.ComponentManager, position, "eviltree", ResourceLibrary.ResourceType.EvilSeed, data.GetData("Scale", 1.0f), "eviltreesprout")); RegisterEntity("Haunted Tree Sprout", (position, data) => new Seedling(world.ComponentManager, "Haunted Tree", position, "eviltreesprout", 12)); RegisterEntity("Pine Tree", (position, data) => new Tree("Pine Tree", world.ComponentManager, position, "pine", ResourceLibrary.ResourceType.PineCone, data.GetData("Scale", 1.0f), "pinesprout")); RegisterEntity("Pine Tree Sprout", (position, data) => new Seedling(world.ComponentManager, "Pine Tree", position, "pinesprout", 12)); RegisterEntity("Snow Pine Tree", (position, data) => new Tree("Pine Tree", world.ComponentManager, position, "snowpine", ResourceLibrary.ResourceType.PineCone, data.GetData("Scale", 1.0f), "pinesprout")); RegisterEntity("Snow Pine Tree Sprout", (position, data) => new Seedling(world.ComponentManager, "Snow Pine Tree", position, "pinesprout", 12)); RegisterEntity("Candycane", (position, data) => new Tree("Candycane", world.ComponentManager, position, "candycane", ResourceLibrary.ResourceType.Peppermint, data.GetData("Scale", 1.0f), "candycanesprout", false)); RegisterEntity("Candycane Sprout", (position, data) => new Seedling(world.ComponentManager, "Candycane", position, "candycanesprout", 12)); RegisterEntity("Palm Tree", (position, data) => new Tree("Palm Tree", world.ComponentManager, position, "palm", ResourceLibrary.ResourceType.Coconut, data.GetData("Scale", 1.0f), "palmsprout")); RegisterEntity("Palm Tree Sprout", (position, data) => new Seedling(world.ComponentManager, "Palm Tree", position, "palmsprout", 12)); RegisterEntity("Apple Tree", (position, data) => new Tree("Apple Tree", world.ComponentManager, position, "appletree", ResourceLibrary.ResourceType.Apple, data.GetData("Scale", 1.0f), "appletreesprout")); RegisterEntity("Apple Tree Sprout", (position, data) => new Seedling(world.ComponentManager, "Apple Tree", position, "appletreesprout", 12)); RegisterEntity("Cactus", (position, data) => new Cactus(world.ComponentManager, position, "cactus", data.GetData("Scale", 1.0f))); RegisterEntity("Cactus Sprout", (position, data) => new Seedling(world.ComponentManager, "Cactus", position, "cactussprout", 12)); RegisterEntity("Pumpkin", (position, data) => new Pumpkin(world.ComponentManager, position, "pumpkinvine", data.GetData("Scale", 1.0f))); RegisterEntity("Pumpkin Sprout", (position, data) => new Seedling(world.ComponentManager, "Pumpkin", position, "pumpkinvinesprout", 12)); RegisterEntity("Berry Bush", (position, data) => new Bush(world.ComponentManager, position, "berrybush", data.GetData("Scale", 1.0f))); RegisterEntity("Berry Bush Sprout", (position, data) => new Seedling(world.ComponentManager, "Berry Bush", position, "berrybushsprout", 12)); RegisterEntity("Bird", (position, data) => new Bird(ContentPaths.Entities.Animals.Birds.GetRandomBird(), position, world.ComponentManager, "Bird")); RegisterEntity("Bat", (position, data) => new Bat(world.ComponentManager, position)); RegisterEntity("Scorpion", (position, data) => new Scorpion(ContentPaths.Entities.Animals.Scorpion.scorption_animation, position, world.ComponentManager, "Scorpion")); RegisterEntity("Spider", (position, data) => new Spider(world.ComponentManager, ContentPaths.Entities.Animals.Spider.spider_animation, position)); RegisterEntity("Frog", (position, data) => new Frog(ContentPaths.Entities.Animals.Frog.frog0_animation, position, world.ComponentManager, "Frog")); RegisterEntity("Tree Frog", (position, data) => new Frog(ContentPaths.Entities.Animals.Frog.frog1_animation, position, world.ComponentManager, "Frog")); RegisterEntity("Brown Rabbit", (position, data) => new Rabbit(ContentPaths.Entities.Animals.Rabbit.rabbit0_animation, position, world.ComponentManager, "Brown Rabbit")); RegisterEntity("White Rabbit", (position, data) => new Rabbit(ContentPaths.Entities.Animals.Rabbit.rabbit1_animation, position, world.ComponentManager, "White Rabbit")); RegisterEntity("Deer", (position, data) => new Deer(ContentPaths.Entities.Animals.Deer.deer, position, world.ComponentManager, "Deer")); RegisterEntity("Dwarf", (position, data) => GenerateDwarf(position, world.ComponentManager, GameState.Game.Content, GameState.Game.GraphicsDevice, world.ChunkManager, world.Camera, world.PlayerFaction, world.PlanService, "Player", JobLibrary.Classes[JobLibrary.JobType.Worker], 0)); //RegisterEntity("TestDwarf", (position, data) => GenerateTestDwarf(position)); //RegisterEntity("TestGoblin", (position, data) => GenerateTestGoblin(position)); //RegisterEntity("TestSkeleton", (position, data) => GenerateTestSeketon(position)); //RegisterEntity("TestMoleman", (position, data) => GenerateTestMoleman(position)); RegisterEntity("AxeDwarf", (position, data) => GenerateDwarf(position, world.ComponentManager, GameState.Game.Content, GameState.Game.GraphicsDevice, world.ChunkManager, world.Camera, world.PlayerFaction, world.PlanService, "Player", JobLibrary.Classes[JobLibrary.JobType.AxeDwarf], 0)); RegisterEntity("CraftsDwarf", (position, data) => GenerateDwarf(position, world.ComponentManager, GameState.Game.Content, GameState.Game.GraphicsDevice, world.ChunkManager, world.Camera, world.PlayerFaction, world.PlanService, "Player", JobLibrary.Classes[JobLibrary.JobType.CraftsDwarf], 0)); RegisterEntity("Wizard", (position, data) => GenerateDwarf(position, world.ComponentManager, GameState.Game.Content, GameState.Game.GraphicsDevice, world.ChunkManager, world.Camera, world.PlayerFaction, world.PlanService, "Player", JobLibrary.Classes[JobLibrary.JobType.Wizard], 0)); RegisterEntity("MusketDwarf", (position, data) => GenerateDwarf(position, world.ComponentManager, GameState.Game.Content, GameState.Game.GraphicsDevice, world.ChunkManager, world.Camera, world.PlayerFaction, world.PlanService, "Player", JobLibrary.Classes[JobLibrary.JobType.MusketDwarf], 0)); RegisterEntity("Moleman", (position, data) => GenerateMoleman(position, world.ComponentManager, GameState.Game.Content, GameState.Game.GraphicsDevice, world.ChunkManager, world.Camera, World.Factions.Factions["Molemen"], world.PlanService, "Molemen")); RegisterEntity("Goblin", (position, data) => GenerateGoblin(position, world.ComponentManager, GameState.Game.Content, GameState.Game.GraphicsDevice, world.ChunkManager, world.Camera, World.Factions.Factions["Goblins"], world.PlanService, "Goblins")); RegisterEntity("Skeleton", (position, data) => GenerateSkeleton(position, world.ComponentManager, GameState.Game.Content, GameState.Game.GraphicsDevice, world.ChunkManager, world.Camera, World.Factions.Factions["Undead"], world.PlanService, "Undead")); RegisterEntity("Necromancer", (position, data) => GenerateNecromancer(position, world.ComponentManager, GameState.Game.Content, GameState.Game.GraphicsDevice, world.ChunkManager, world.Camera, World.Factions.Factions["Undead"], world.PlanService, "Undead")); RegisterEntity("Bed", (position, data) => new Bed(world.ComponentManager, position)); RegisterEntity("Barrel", (position, data) => new Barrel(world.ComponentManager, position)); RegisterEntity("Bear Trap", (position, data) => new BearTrap(world.ComponentManager, position)); RegisterEntity("Lamp", (position, data) => new Lamp(world.ComponentManager, position)); RegisterEntity("Table", (position, data) => new Table(world.ComponentManager, position)); RegisterEntity("Chair", (position, data) => new Chair(world.ComponentManager, position)); RegisterEntity("Flag", (position, data) => new Flag(world.ComponentManager, position, world.PlayerCompany.Information)); RegisterEntity("Mushroom", (position, data) => new Mushroom(world.ComponentManager, position, ContentPaths.Entities.Plants.mushroom, ResourceLibrary.ResourceType.Mushroom, 2, false, "mushroomsprout")); RegisterEntity("Mushroom Sprout", (position, data) => new Seedling(world.ComponentManager, "Mushroom", position, "mushroomsprout", 12)); RegisterEntity("Cave Mushroom", (position, data) => new Mushroom(world.ComponentManager, position, ContentPaths.Entities.Plants.caveshroom, ResourceLibrary.ResourceType.CaveMushroom, 4, true, "caveshroomsprout")); RegisterEntity("Cave Mushroom Sprout", (position, data) => new Seedling(world.ComponentManager, "Cave Mushroom", position, "caveshroomsprout", 12)); RegisterEntity("Wheat", (position, data) => new Wheat(world.ComponentManager, position)); RegisterEntity("Wheat Sprout", (position, data) => new Seedling(world.ComponentManager, "Wheat", position, "wheatsprout", 12)); RegisterEntity("Kitchen Table", (position, data) => new Table(world.ComponentManager, position, new SpriteSheet(ContentPaths.Entities.Furniture.interior_furniture, 32), new Point(0, 7)) { Tags = new List <string>() { "Cutting Board" } }); RegisterEntity("Books", (position, data) => new Table(world.ComponentManager, position, new SpriteSheet(ContentPaths.Entities.Furniture.interior_furniture, 32), new Point(0, 4)) { Tags = new List <string>() { "Research" }, Battery = new Table.ManaBattery() { Charge = 0.0f, MaxCharge = 100.0f } }); RegisterEntity("Potions", (position, data) => new Table(world.ComponentManager, position, new SpriteSheet(ContentPaths.Entities.Furniture.interior_furniture, 32), new Point(1, 4)) { Tags = new List <string>() { "Research" }, Battery = new Table.ManaBattery() { Charge = 0.0f, MaxCharge = 100.0f } }); RegisterEntity("Anvil", (position, data) => new Anvil(world.ComponentManager, position)); RegisterEntity("Forge", (position, data) => new Forge(world.ComponentManager, position)); RegisterEntity("Elf", (position, data) => GenerateElf(world, position, World.Factions.Factions["Elf"], "Elf")); RegisterEntity("Demon", (position, data) => GenerateDemon(world, position, World.Factions.Factions["Demon"], "Demon")); RegisterEntity("Arrow", (position, data) => new ArrowProjectile(world.ComponentManager, position, data.GetData("Velocity", Vector3.Up * 10 + MathFunctions.RandVector3Box(-10, 10, 0, 0, -10, 10)), data.GetData <Body>("Target", null))); RegisterEntity("Bullet", (position, data) => new BulletProjectile(world.ComponentManager, position, data.GetData("Velocity", Vector3.Up * 10 + MathFunctions.RandVector3Box(-10, 10, 0, 0, -10, 10)), data.GetData <Body>("Target", null))); RegisterEntity("Web", (position, data) => new WebProjectile(world.ComponentManager, position, data.GetData("Velocity", Vector3.Up * 10 + MathFunctions.RandVector3Box(-10, 10, 0, 0, -10, 10)), data.GetData <Body>("Target", null))); RegisterEntity("Fireball", (position, data) => new FireballProjectile(world.ComponentManager, position, data.GetData("Velocity", Vector3.Up * 10 + MathFunctions.RandVector3Box(-10, 10, 0, 0, -10, 10)), data.GetData <Body>("Target", null))); RegisterEntity("Fairy", (position, data) => new Fairy(world.ComponentManager, "Player", position)); RegisterEntity("Target", (position, data) => new Target(world.ComponentManager, position)); RegisterEntity("Stove", (position, data) => new Stove(world.ComponentManager, position)); RegisterEntity("Strawman", (position, data) => { float value = (float)MathFunctions.Random.NextDouble(); return(value < 0.33 ? (Body)(new Strawman(world.ComponentManager, position)) : (value < 0.66 ? (Body)(new WeightRack(world.ComponentManager, position)) : (Body)(new PunchingBag(world.ComponentManager, position)))); }); RegisterEntity("Snake", (position, data) => new Snake(false, position, world.ComponentManager, "Snake").Physics); RegisterEntity("Necrosnake", (position, data) => { var snek = new Snake(true, position, world.ComponentManager, "Snake"); snek.Attacks[0].DiseaseToSpread = "Necrorot"; return(snek.Physics); }); RegisterEntity("Bookshelf", (position, data) => new Bookshelf(world.ComponentManager, position) { Tags = new List <string>() { "Research" } }); RegisterEntity("Door", (position, data) => new Door(world.ComponentManager, position, World.PlayerFaction, data.GetData <List <ResourceAmount> >("Resources", new List <ResourceAmount>() { new ResourceAmount(ResourceLibrary.ResourceType.Wood) }))); RegisterEntity("Ladder", (position, data) => new Ladder(world.ComponentManager, position, data.GetData <List <ResourceAmount> >("Resources", new List <ResourceAmount>() { new ResourceAmount(ResourceLibrary.ResourceType.Wood) }))); RegisterEntity("RandTrinket", (position, data) => CreateRandomTrinket(world, position)); RegisterEntity("RandFood", (position, data) => CreateRandomFood(world, position)); RegisterEntity("Turret", (position, data) => new TurretTrap(world.ComponentManager, position, world.PlayerFaction)); RegisterEntity("Snow Cloud", (position, data) => new Cloud(world.ComponentManager, 0.1f, 50, 40, position) { TypeofStorm = StormType.SnowStorm }); RegisterEntity("Rain Cloud", (position, data) => new Cloud(world.ComponentManager, 0.1f, 50, 40, position) { TypeofStorm = StormType.RainStorm }); RegisterEntity("Storm", (position, data) => { Weather.CreateForecast(world.Time.CurrentDate, world.ChunkManager.Bounds, world, 3); Weather.CreateStorm(MathFunctions.RandVector3Cube() * 10, MathFunctions.Rand(0.05f, 1.0f), world); return(new Cloud(world.ComponentManager, 0.1f, 50, 40, position)); }); RegisterEntity("Chicken", (position, data) => new Chicken(position, world.ComponentManager, "Chicken", "Chicken")); RegisterEntity("Turkey", (position, data) => new Chicken(position, world.ComponentManager, "Turkey", "Turkey")); RegisterEntity("Penguin", (position, data) => new Chicken(position, world.ComponentManager, "Penguin", "Penguin")); RegisterEntity("MudGolem", (position, data) => new MudGolem(new CreatureStats(new MudGolemClass(), 0), "dirt_particle", "Carnivore", world.PlanService, World.Factions.Factions["Carnivore"], world.ComponentManager, "Mud Golem", position)); RegisterEntity("SnowGolem", (position, data) => new MudGolem(new CreatureStats(new SnowGolemClass(), 0), "snow_particle", "Carnivore", world.PlanService, World.Factions.Factions["Carnivore"], world.ComponentManager, "Snow Golem", position)); RegisterEntity("Mud", (position, data) => new MudProjectile(world.ComponentManager, position, data.GetData("Velocity", Vector3.Up * 10 + MathFunctions.RandVector3Box(-10, 10, 0, 0, -10, 10)), data.GetData <Body>("Target", null))); RegisterEntity("Snowball", (position, data) => new SnowballProjectile(world.ComponentManager, position, data.GetData("Velocity", Vector3.Up * 10 + MathFunctions.RandVector3Box(-10, 10, 0, 0, -10, 10)), data.GetData <Body>("Target", null))); RegisterEntity("Grave", (position, data) => new Grave(world.ComponentManager, position)); RegisterEntity("Coins", (position, data) => new CoinPileFixture(world.ComponentManager, position)); }