local CurrentColors = nil; local DataLoaded = false; local ConfigFile = "CurrentColors.json"; local function SetColorAndSave(side) redstone.setBundledOutput(side,CurrentColors[side]); JsonSaveLoad.Save(ConfigFile,CurrentColors); end local function AddBundledOutputColor(side,newColor) CurrentColors[side] = colors.combine(CurrentColors[side],newColor); SetColorAndSave(side); end local function RemoveBundledOutputColor(side,newColor) CurrentColors[side] = colors.subtract(CurrentColors[side],newColor); SetColorAndSave(side); end local function Init() if DataLoaded == false then DataLoaded = true; if fs.exists(ConfigFile) then CurrentColors = JsonSaveLoad.Load(ConfigFile); else CurrentColors = {up=0 ,down=0 ,left=0 ,right=0 ,front=0 ,back=0}; JsonSaveLoad.Save(ConfigFile,CurrentColors); end for k,v in pairs(CurrentColors) do redstone.setBundledOutput(k,v); end end end function InitalizeColors(side) Init() local self = {}; self.AddColor = function(num) AddBundledOutputColor(side,2^num); end self.RemoveColor = function(num) RemoveBundledOutputColor(side,2^num); end return self; end