--[[
	Returns a new BaseValueStore, with a table that has constants as keys, and with another table as value, which holds the 
	value, and optional max/min amount. Should there  not be starting data for a variable, it will default to 0. Can also connect 
	to a changed event, which fires whenever a value changes, along with the value name, and new value.
]]

function BaseValueStore:_init(startingData)
	self._data = {}

	for name, valueData in pairs(startingData) do
		self._data[name] = {}

		self._data[name].value = valueData.value or 0
		self._data[name].max = valueData.max or nil
		self._data[name].min = valueData.min or nil
	end

	self._changedBindable = Instance.new("BindableEvent")
	self.changed = self._changedBindable.Event
end
