public void OnNewWorld(IWorldView worldView) { Contract.Requires(worldView != null); this.buildingModel = worldView.Buildings.GetTypedComponents <int>(Buildings.BuildingModelComponent); this.buildingConnections = worldView.Buildings.GetTypedComponents <ISet <int> >(Buildings.ConnectionsComponent); }
public void OnNewWorld(World world) { Contract.Requires(world != null); this.buildingLocation = world.Buildings.GetTypedComponents <Vector>(Buildings.LocationComponent); this.buildingTransportLink = world.Buildings.GetMutableTypedComponents <Vector?>(Buildings.TransportLinkComponent); }
public BuildingLayer(IWorldView worldView) { this.buildingMap = worldView.GetBuildingMapView(); this.buildingVariants = worldView.Buildings.GetTypedComponents <int>(BuildingVariants.Component); this.zoneMap = worldView.GetZoneMapView(); var buildingColor = worldView.Rules.Zones.GetTypedComponents <BuildingColor>(Component); this.buildingColorProvider = (zoneId, buildingId) => buildingColor[zoneId].Invoke(buildingId); }
/// <summary> /// Returns all the components corresponding to the matching predicate. /// </summary> public static IEnumerable <T> GetMatchingComponents <T>(this IReadOnlyTypedComponents <T> typedComponents, Func <T, bool> predicate) { Contract.Requires(typedComponents != null); IEnumerable <int> entitiesIds = typedComponents.GetMatchingEntities(predicate); foreach (int entityId in entitiesIds) { yield return(typedComponents[entityId]); } }
public void OnNewWorld(IWorldView worldView) { Contract.Requires(worldView != null); this.transportGraph = worldView.GetTransportGraph(); this.randomResourceProvider.OnNewWorld(worldView); this.buidlingResourceProductions = worldView.Rules.BuildingModels .GetTypedComponents <BuildingResourceProduction[]>(BuildingModels.BuildingModelResourceProductionComponent); this.path = worldView.CreatePath(); }
public void OnNewWorld(IWorldView worldView) { Contract.Requires(worldView != null); this.random = worldView.Rules.Random; this.producersForResource = new Dictionary <int, RandomAccessSet <Vector> >(); this.consumersForResource = new Dictionary <int, RandomAccessSet <Vector> >(); this.buildingModelsResourceProduction = worldView.Rules.BuildingModels.GetTypedComponents <BuildingResourceProduction[]>( BuildingModels.BuildingModelResourceProductionComponent); this.defaultZoneBuildingModels = worldView.Rules.Zones.GetTypedComponents <int>(Zones.DefaultBuildingModel); this.buildingMap = worldView.GetMapView <int>(MapTypes.Building); this.zoneMap = worldView.GetMapView <int>(MapTypes.Zone); this.zoneMap.RegisterListener(this.OnZoneMapUpdate); worldView.GetMapView <int>(MapTypes.Building).RegisterListener(this.OnBuildingMapUpdate); this.buildingTransportLinkComponent = worldView.Buildings.GetTypedComponents <Vector?>(Buildings.TransportLinkComponent); }
public ZonerBuilder(IWorldView worldView) { this.zones = worldView.Rules.Zones; this.zoneColor = this.zones.GetTypedComponents <Color?>(ZoneLayer.Component); }
/// <summary> /// Returns true if the component corresponding to the given entity id is true. /// </summary> public static bool IsMarked(this IReadOnlyTypedComponents <bool> boolComponents, int entityId) { Contract.Requires(boolComponents != null); return(boolComponents[entityId]); }