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(); }
protected virtual void RequestIngredients() { ResourceDirector.RequestIngredients(Description.ProductionInformation.Ingredients.ResourceTypes.ToArray()); }