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); } }
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; } }); }
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); } }