Advertisement
Hiranus

ColorManagement

Jun 17th, 2019
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.20 KB | None | 0 0
  1. local CurrentColors = nil;
  2. local DataLoaded = false;
  3. local ConfigFile = "CurrentColors.json";
  4.  
  5. local function SetColorAndSave(side)
  6.   redstone.setBundledOutput(side,CurrentColors[side]);
  7.   JsonSaveLoad.Save(ConfigFile,CurrentColors);
  8. end
  9.  
  10. local function AddBundledOutputColor(side,newColor)
  11.   CurrentColors[side] = colors.combine(CurrentColors[side],newColor);
  12.   SetColorAndSave(side);
  13. end
  14.  
  15. local function RemoveBundledOutputColor(side,newColor)
  16.   CurrentColors[side] = colors.subtract(CurrentColors[side],newColor);
  17.   SetColorAndSave(side);
  18. end
  19.  
  20. local function Init()
  21.   if DataLoaded == false then
  22.     DataLoaded = true;
  23.     if fs.exists(ConfigFile) then
  24.       CurrentColors = JsonSaveLoad.Load(ConfigFile);
  25.     else
  26.       CurrentColors = {up=0 ,down=0 ,left=0 ,right=0 ,front=0 ,back=0};
  27.       JsonSaveLoad.Save(ConfigFile,CurrentColors);
  28.     end
  29.     for k,v in pairs(CurrentColors) do
  30.       redstone.setBundledOutput(k,v);
  31.     end
  32.   end
  33. end
  34.  
  35. function InitalizeColors(side)
  36.   Init()
  37.   local self = {};
  38.   self.AddColor = function(num)
  39.     AddBundledOutputColor(side,2^num);
  40.   end
  41.   self.RemoveColor = function(num)
  42.     RemoveBundledOutputColor(side,2^num);
  43.   end
  44.   return self;
  45. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement