From 8dd37291fbfe65da902c60ee60095f7740dc18ba Mon Sep 17 00:00:00 2001 From: Cooldude2606 Date: Mon, 1 Jan 2018 02:47:56 +0000 Subject: [PATCH] WIP Task List --- Addons/Guis/tasklist.lua | 120 +++++++++++++++++++++++++++++++++++++++ Addons/load.lua | 1 + Addons/playerRanks.lua | 13 ++++- locale/en/tasklist.cfg | 3 + 4 files changed, 134 insertions(+), 3 deletions(-) create mode 100644 Addons/Guis/tasklist.lua create mode 100644 locale/en/tasklist.cfg diff --git a/Addons/Guis/tasklist.lua b/Addons/Guis/tasklist.lua new file mode 100644 index 00000000..94f41396 --- /dev/null +++ b/Addons/Guis/tasklist.lua @@ -0,0 +1,120 @@ +--[[ + Explosive Gaming + + This file can be used with permission but this and the credit below must remain in the file. +Contact a member of management on our discord to seek permission to use our code. +Any changes that you may make to the code are yours but that does not make the script yours. +Discord: https://discord.gg/r6dC2uK +]] +--Please Only Edit Below This Line----------------------------------------------------------- + +local function _global(reset) + global.addons = not reset and global.addons or {} + global.addons.tasklist = not reset and global.addons.tasklist or {tasks={},_edit={}} + return global.addons.tasklist +end + +local edit = Gui.inputs.add{ + name='tasklist-edit', + type='button', + caption='utility/rename_icon_normal' +}:on_event('click',function(event) + local text_flow = event.element.parent.parent.text_flow + if text_flow.text.type == 'label' then + _global()._edit[event.player_index]._editing[text_flow.parent.name]=true + local text = text_flow.text.caption + text_flow.clear() + local _text = text_flow.add{ + name='text', + type='textfield', + text=text + } + _text.style.width = 100 + event.element.sprite = 'utility/enter' + elseif text_flow.text.type == 'textfield' then + local text = text_flow.text.text + _global()._edit[event.player_index]._editing[text_flow.parent.name]=false + _global()._edit[event.player_index]._tasks[text_flow.parent.name]=text + text_flow.parent.parent.clear() + _draw(text_flow.parent.parent) + end +end) + +local remove = Gui.inputs.add{ + name='tasklist-remove', + type='button', + caption='utility/remove' +} + +local add = Gui.inputs.add{ + name='tasklist-add', + type='button', + caption='add' +} + +local function _draw(frame) + frame.caption = {'tasklist.name'} + local data = _global() + local player = Game.get_player(frame.player_index) + local rank = Ranking.get_rank(player) + for i,task in pairs(_tasks(player)) do + local flow = frame.add{ + name=i-- use parent and children so there dont colidide with each other + type='flow', + direction='horizontal' + } + local text_flow = flow.add{ + name='text_flow', + type='flow', + direction='horizontal' + } + text_flow.add{ + name='text', + type='label', + caption=task + } + local button_flow = flow.add{ + type='flow', + direction='horizontal' + } + if rank:allowed('edit-tasklist') then + edit:draw(button_flow) + remove:draw(button_flow) + add:draw(button_flow) + end + end + if rank:allowed('edit-tasklist') then + if not data._edit[player.index] then data._edit[player.index] = {_edit=false,_tasks={},_editing={}} end + end +end + +local function _tasks(player) + local player = Game.get_player(player) + local data = _global()._edit[player.index] + if not data then return _global().tasks end + local _edit = false + for _,v in pairs(data._editing) do + if v == true then + _edit = true + break + end + end + if data._edit and not _edit then + _global().tasks = table.deepcopy(data._tasks) + data._edit = false + Gui.left.update('tasklist') + elseif not data._edit and _edit then + data.tasks = table.deepcopy(_global()._tasks) + data._edit = true + elseif _edit then return data._tasks + else return _global().tasks + end +end + +Gui.left.add{ + name='tasklist', + caption='utility/not_enough_repair_packs_icon', + tooltip={'tasklist.tooltip'}, + draw=_draw, + open_on_join=true +} \ No newline at end of file diff --git a/Addons/load.lua b/Addons/load.lua index cc87faf3..f7464d26 100644 --- a/Addons/load.lua +++ b/Addons/load.lua @@ -19,5 +19,6 @@ require('Guis/readme') require('Guis/science') require('Guis/rockets') require('Guis/player-list') +require('Guis/tasklist') -- other \ No newline at end of file diff --git a/Addons/playerRanks.lua b/Addons/playerRanks.lua index a0133765..5a9de9ef 100644 --- a/Addons/playerRanks.lua +++ b/Addons/playerRanks.lua @@ -43,19 +43,22 @@ groups['Root']:edit('allow',false,{ ['player-list']=true, ['readme']=true, ['rockets']=true, - ['science']=true + ['science']=true, + ['tasklist']=true }) groups['Admin']:edit('allow',false,{ ['player-list']=true, ['readme']=true, ['rockets']=true, - ['science']=true + ['science']=true, + ['tasklist']=true }) groups['User']:edit('allow',false,{ ['player-list']=true, ['readme']=true, ['rockets']=true, - ['science']=true + ['science']=true, + ['tasklist']=true }) groups['Jail']:edit('allow',false,{ @@ -121,6 +124,10 @@ groups['User']:add_rank{ power=4 } +ranks['Member']:edit('allow',false,{ + ['edit-tasklist']=true +}) + Ranking._base_preset{ ['badgamernl']='Owner', ['arty714']='Community Manager', diff --git a/locale/en/tasklist.cfg b/locale/en/tasklist.cfg new file mode 100644 index 00000000..669a048b --- /dev/null +++ b/locale/en/tasklist.cfg @@ -0,0 +1,3 @@ +[tasklist] +name=Task List +tooltip=What jobs need to be done round the factory.