private ComponentSource GetComponentSource(Material material, Vector3 position) { var componentSource = new ComponentSource(); var characters = GnomanEmpire.Instance.EntityManager.Entities.Where(x => x.Value.TypeID() == (int)GameEntityType.Character).Select(x => x.Value).Cast <Character>(); switch (material) { case Material.AlpacaHide: case Material.AlpacaBone: case Material.AlpacaFlesh: case Material.AlpacaSkull: var alpaca = characters.FirstOrDefault(x => x.RaceID.ToString() == RaceID.Alpaca.ToString()); if (alpaca == null) { componentSource.Character = Defs.NeutralFaction.SpawnMember(position, Defs.AlpacaDef); componentSource.ShouldDestroy = true; } else { componentSource.Character = alpaca; } break; case Material.BearHide: case Material.BearBone: case Material.BearFlesh: case Material.BearSkull: var bear = characters.FirstOrDefault(x => x.RaceID.ToString() == RaceID.Bear.ToString()); if (bear == null) { componentSource.Character = Defs.WildFaction.SpawnMember(position, Defs.BearDef); componentSource.ShouldDestroy = true; } else { componentSource.Character = bear; } break; case Material.EmuHide: case Material.EmuBone: case Material.EmuFlesh: case Material.EmuSkull: case Material.Egg: var emu = characters.FirstOrDefault(x => x.RaceID.ToString() == RaceID.Emu.ToString()); if (emu == null) { componentSource.Character = Defs.NeutralFaction.SpawnMember(position, Defs.EmuDef); componentSource.ShouldDestroy = true; } else { componentSource.Character = emu; } break; case Material.HoneyBadgerHide: case Material.HoneyBadgerBone: case Material.HoneyBadgerFlesh: case Material.HoneyBadgerSkull: var badger = characters.FirstOrDefault(x => x.RaceID.ToString() == RaceID.HoneyBadger.ToString()); if (badger == null) { componentSource.Character = Defs.WildFaction.SpawnMember(position, Defs.HoneyBadgerDef); componentSource.ShouldDestroy = true; } else { componentSource.Character = badger; } break; case Material.MonitorLizardHide: case Material.MonitorLizardBone: case Material.MonitorLizardFlesh: case Material.MonitorLizardSkull: var lizard = characters.FirstOrDefault(x => x.RaceID.ToString() == RaceID.MonitorLizard.ToString()); if (lizard == null) { componentSource.Character = Defs.WildFaction.SpawnMember(position, Defs.MonitorLizardDef); componentSource.ShouldDestroy = true; } else { componentSource.Character = lizard; } break; case Material.OgreHide: case Material.OgreBone: case Material.OgreFlesh: case Material.OgreSkull: var ogre = characters.FirstOrDefault(x => x.RaceID.ToString() == RaceID.Ogre.ToString()); if (ogre == null) { componentSource.Character = Defs.EnemyFaction.SpawnMember(position, Defs.OgreDef); componentSource.ShouldDestroy = true; } else { componentSource.Character = ogre; } break; case Material.ToughOgreHide: var toughogre = characters.FirstOrDefault(x => x.RaceID.ToString() == RaceID.BlueOgre.ToString()); if (toughogre == null) { componentSource.Character = Defs.EnemyFaction.SpawnMember(position, Defs.ToughOgreDef); componentSource.ShouldDestroy = true; } else { componentSource.Character = toughogre; } break; case Material.YakHide: case Material.YakBone: case Material.YakFlesh: case Material.YakSkull: case Material.Milk: var yak = characters.FirstOrDefault(x => x.RaceID.ToString() == RaceID.Yak.ToString()); if (yak == null) { componentSource.Character = Defs.NeutralFaction.SpawnMember(position, Defs.YakDef); componentSource.ShouldDestroy = true; } else { componentSource.Character = yak; } break; default: return(null); } return(componentSource); }
private ComponentSource GetComponentSource(Material material, Vector3 position) { var componentSource = new ComponentSource(); var characters = GnomanEmpire.Instance.EntityManager.Entities.Where(x => x.Value.TypeID() == (int) GameEntityType.Character).Select(x => x.Value).Cast<Character>(); switch (material) { case Material.AlpacaHide: case Material.AlpacaBone: case Material.AlpacaFlesh: case Material.AlpacaSkull: var alpaca = characters.FirstOrDefault(x => x.RaceID.ToString() == RaceID.Alpaca.ToString()); if (alpaca == null) { componentSource.Character = Defs.NeutralFaction.SpawnMember(position, Defs.AlpacaDef); componentSource.ShouldDestroy = true; } else { componentSource.Character = alpaca; } break; case Material.BearHide: case Material.BearBone: case Material.BearFlesh: case Material.BearSkull: var bear = characters.FirstOrDefault(x => x.RaceID.ToString() == RaceID.Bear.ToString()); if (bear == null) { componentSource.Character = Defs.WildFaction.SpawnMember(position, Defs.BearDef); componentSource.ShouldDestroy = true; } else { componentSource.Character = bear; } break; case Material.EmuHide: case Material.EmuBone: case Material.EmuFlesh: case Material.EmuSkull: case Material.Egg: var emu = characters.FirstOrDefault(x => x.RaceID.ToString() == RaceID.Emu.ToString()); if (emu == null) { componentSource.Character = Defs.NeutralFaction.SpawnMember(position, Defs.EmuDef); componentSource.ShouldDestroy = true; } else { componentSource.Character = emu; } break; case Material.HoneyBadgerHide: case Material.HoneyBadgerBone: case Material.HoneyBadgerFlesh: case Material.HoneyBadgerSkull: var badger = characters.FirstOrDefault(x => x.RaceID.ToString() == RaceID.HoneyBadger.ToString()); if (badger == null) { componentSource.Character = Defs.WildFaction.SpawnMember(position, Defs.HoneyBadgerDef); componentSource.ShouldDestroy = true; } else { componentSource.Character = badger; } break; case Material.MonitorLizardHide: case Material.MonitorLizardBone: case Material.MonitorLizardFlesh: case Material.MonitorLizardSkull: var lizard = characters.FirstOrDefault(x => x.RaceID.ToString() == RaceID.MonitorLizard.ToString()); if (lizard == null) { componentSource.Character = Defs.WildFaction.SpawnMember(position, Defs.MonitorLizardDef); componentSource.ShouldDestroy = true; } else { componentSource.Character = lizard; } break; case Material.OgreHide: case Material.OgreBone: case Material.OgreFlesh: case Material.OgreSkull: var ogre = characters.FirstOrDefault(x => x.RaceID.ToString() == RaceID.Ogre.ToString()); if (ogre == null) { componentSource.Character = Defs.EnemyFaction.SpawnMember(position, Defs.OgreDef); componentSource.ShouldDestroy = true; } else { componentSource.Character = ogre; } break; case Material.ToughOgreHide: var toughogre = characters.FirstOrDefault(x => x.RaceID.ToString() == RaceID.BlueOgre.ToString()); if (toughogre == null) { componentSource.Character = Defs.EnemyFaction.SpawnMember(position, Defs.ToughOgreDef); componentSource.ShouldDestroy = true; } else { componentSource.Character = toughogre; } break; case Material.YakHide: case Material.YakBone: case Material.YakFlesh: case Material.YakSkull: case Material.Milk: var yak = characters.FirstOrDefault(x => x.RaceID.ToString() == RaceID.Yak.ToString()); if (yak == null) { componentSource.Character = Defs.NeutralFaction.SpawnMember(position, Defs.YakDef); componentSource.ShouldDestroy = true; } else { componentSource.Character = yak; } break; default: return null; } return componentSource; }