public sealed override void Update(float dt) { base.Update(dt); if (!ResourcesRequested) { ResourcesRequested = true; ResourceDirector.RequestIngredients(BuildingDescription.ConstructionInformation.ResourceTypes.ToArray()); } if (!IsConstructing) { return; } PassedConstructionTime += dt; Progress = PassedConstructionTime / BuildingDescription.ConstructionInformation.ConstructionTime; if (PassedConstructionTime >= BuildingDescription.ConstructionInformation.ConstructionTime) { PassedConstructionTime = 0; IsConstructing = false; Building building = new Building(Position, World, BuildingDescription); World.StructureManager.RemoveStructure(this); World.StructureManager.CreateStrucuture(building); ConstructionCompleted?.Invoke(this); } OnRequiresRedraw(); }
public App() { BetaFileImportBuilder betaFileImportBuilder = new BetaFileImportBuilder(); ResourceDirector resourceDirector = new ResourceDirector(betaFileImportBuilder); resourceDirector.loadTextResources(); helpTextHashTable = resourceDirector.getHashTable(); BetaPinBuilder builder = new BetaPinBuilder(); CustonPinSetDirector director = new CustonPinSetDirector(builder); InitializeComponent(); Device.SetFlags(new[] { "Shapes_Experimental", "MediaElement_Experimental" }); director.makePins(); director.makePositions(); pins = director.getPins(); positions = director.getPositions(); //pins = InitializePins(); //tracks = initTracksFromAzureDB(); MainPage = new MainFlyout(); }
protected virtual void OnProductionCompleted() { World.GlobalResourceManager.Knowledge += Description.ProductionInformation.Products.Knowledge; World.GlobalResourceManager.EnvironmentResource += Description.ProductionInformation.Products.EnvironmentResource; var resourceTypeSources = Description.ProductionInformation.Products.ResourceTypes.ToArray(); if (resourceTypeSources.Any()) { ResourceDirector.ProvideResources(resourceTypeSources); } else { ResourceDirector_AllProvisionsLeft(ResourceDirector); } }
private void StartConstructing(ResourceDirector arg1, ResourceType[] arg2) { World.GlobalResourceManager.Enqueue(new EnergyPackage(BuildingDescription.ConstructionInformation.EnvironmentResource.Energy, e => IsConstructing = true)); }
private void ResourceDirector_AllProvisionsLeft(ResourceDirector obj) { CheckAndStartProduction(); }
private void ResourceDirector_AllIngredientsArrived(ResourceDirector arg1, ResourceType[] arg2) { CheckAndStartProduction(); }
protected virtual void RequestIngredients() { ResourceDirector.RequestIngredients(Description.ProductionInformation.Ingredients.ResourceTypes.ToArray()); }