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);
    }
Example #5
0
 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));
 }