Exemplo n.º 1
0
    public static bool TryGetResourceAtHex(Hex pos, ResourceType type, out ResourceSourceAndEntity resource)
    {
        switch (type)
        {
        case ResourceType.FOOD:
            if (FoodResourceSources.TryGetValue(pos, out resource))
            {
                return(true);
            }
            else
            {
                return(false);
            }

        case ResourceType.WOOD:
            if (WoodResourceSources.TryGetValue(pos, out resource))
            {
                return(true);
            }
            else
            {
                return(false);
            }

        case ResourceType.GOLD:
            if (GoldResourceSources.TryGetValue(pos, out resource))
            {
                return(true);
            }
            else
            {
                return(false);
            }

        case ResourceType.STONE:
            if (StoneResourceSources.TryGetValue(pos, out resource))
            {
                return(true);
            }
            else
            {
                return(false);
            }

        default:
            resource = new ResourceSourceAndEntity();
            return(false);
        }
    }
Exemplo n.º 2
0
    protected override void OnUpdate()
    {
        FoodResourceSources.Clear();
        WoodResourceSources.Clear();
        GoldResourceSources.Clear();
        StoneResourceSources.Clear();


        //int count = m_AllResourceSourceQuery.CalculateEntityCount();
        //var allResourcesSources = new Dictionary<Hex, ResourceSource>(count);
        Entities.ForEach((Entity entity, ref ResourceSource res) =>
        {
            Hex resHex       = res.position;
            var resType      = res.resourceType;
            var resAndEntity = new ResourceSourceAndEntity()
            {
                entity = entity, resourceSource = res
            };

            switch (resType)
            {
            case ResourceType.FOOD:
                FoodResourceSources.Add(resHex, resAndEntity);
                break;

            case ResourceType.WOOD:
                WoodResourceSources.Add(resHex, resAndEntity);
                break;

            case ResourceType.GOLD:
                GoldResourceSources.Add(resHex, resAndEntity);
                break;

            case ResourceType.STONE:
                StoneResourceSources.Add(resHex, resAndEntity);
                break;

            default:
                break;
            }
        });
    }
Exemplo n.º 3
0
 public static bool TryGetResourceAtHex(Hex pos, out ResourceSourceAndEntity resource)
 {
     if (GoldResourceSources.TryGetValue(pos, out resource))
     {
         return(true);
     }
     else if (StoneResourceSources.TryGetValue(pos, out resource))
     {
         return(true);
     }
     else if (WoodResourceSources.TryGetValue(pos, out resource))
     {
         return(true);
     }
     else if (FoodResourceSources.TryGetValue(pos, out resource))
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }