// A plan is something that we could build or buy
// If we try build it, we can return false (it failed), or the instance of what we have built
class Plan {
	validPlan = true
	constructor(data = null) {
		LogWarning("Don't try to plan an empty plan!")
	}
	
	function EstimateCosts() {
		local accountant = AIAccounting();
		local test = AITestMode()
		if (Build(true) == false)
			return false
		return accountant.GetCosts()
	}
	
	function Build(testmode = false) {
	
	}
	
	function getData() {
		return "nothing"
	}
	
	//Cancel the plan (used in testmode)
	function Cancel() {
	
	}
	
	//We should be able to undo the plans (remove rail, sell vehicle), as long as it is only a plan
	function Undo() {
	
	}
}
