aboutsummaryrefslogtreecommitdiff
path: root/src/openvic-simulation/economy/production/ResourceGatheringOperation.hpp
blob: 7528d6d7e91b36a0ad9dc12af54c418c164403c2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#pragma once

#include "openvic-simulation/economy/production/ProductionType.hpp"
#include "openvic-simulation/types/fixed_point/FixedPoint.hpp"
#include "openvic-simulation/utility/Getters.hpp"

namespace OpenVic {
   class ResourceGatheringOperation final {
   private:
      ProductionType const* PROPERTY_RW_ACCESS(production_type, public);
      fixed_point_t PROPERTY(revenue_yesterday);
      fixed_point_t PROPERTY(output_quantity_yesterday);
      fixed_point_t PROPERTY(unsold_quantity_yesterday);
      fixed_point_t PROPERTY(size_multiplier);
      ordered_map<Pop*, Pop::pop_size_t> PROPERTY(employees);

   public:
      ResourceGatheringOperation(
         ProductionType const* new_production_type, fixed_point_t new_size_multiplier, fixed_point_t new_revenue_yesterday,
         fixed_point_t new_output_quantity_yesterday, fixed_point_t new_unsold_quantity_yesterday,
         ordered_map<Pop*, Pop::pop_size_t>&& new_employees
      );
      ResourceGatheringOperation(ProductionType const* new_production_type, fixed_point_t new_size_multiplier);
   };
}