private IEnumerable <THerb> GetHerbivores <THerb>(HerbivoreType type) where THerb : HerbivoreBase { return(!m_Herbivores.ContainsKey(type) ? Enumerable.Empty <THerb>() : m_Herbivores[type].Select(hb => (THerb)hb)); }
private void Exterminate(HerbivoreType herbType) { while (m_Herbivores.ContainsKey(herbType) && m_Herbivores[herbType].Count > 0) { KillHerbivore(m_Herbivores[herbType].First()); } }
public GameObject SpawnHerbivore(Vector3 pos, Quaternion rot, HerbivoreType type) { var herb = HerbivoreFactory.InstantiateHerbivore(pos, rot, type); herb.transform.SetParent(transform); NetworkServer.Spawn(herb.gameObject); if (!m_Herbivores.ContainsKey(type)) { m_Herbivores.Add(type, new HashSet <HerbivoreBase>()); } m_Herbivores[type].Add(herb); OctreeManager.Get(OctreeType.Herbivore).Add(herb.transform); return(herb.gameObject); }
private HerbivoreBase InternalInstantiateHerbivore(Vector3 pos, Quaternion rot, HerbivoreType type) { switch (type) { case HerbivoreType.BrushHead: return(Instantiate(BrushHeadPrefab, pos, rot).GetComponent <HerbivoreBase>()); case HerbivoreType.Tortilla: return(Instantiate(TortillaPerfab, pos, rot).GetComponent <HerbivoreBase>()); case HerbivoreType.Herbistar: return(Instantiate(HerbistarPrefab, pos, rot).GetComponent <HerbivoreBase>()); case HerbivoreType.TriHorse: return(Instantiate(TriHorsePrefab, pos, rot).GetComponent <HerbivoreBase>()); case HerbivoreType.DownDown: return(Instantiate(DownDownPrefab, pos, rot).GetComponent <HerbivoreBase>()); } throw new ArgumentException("Unrecognized type: " + type); }
public SpawnableCreatureAttribute(string name, HerbivoreType type, Type spawnPlacerType = null) : this(name, (Enum)type, spawnPlacerType) { }
public static HerbivoreBase InstantiateHerbivore(Vector3 pos, Quaternion rot, HerbivoreType type) { return(Singleton.InternalInstantiateHerbivore(pos, rot, type)); }