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