From d2b86222cca679bc38e43741d22436a63dc06d93 Mon Sep 17 00:00:00 2001 From: Cooldude2606 Date: Sat, 16 Dec 2017 17:19:45 +0000 Subject: [PATCH] Added Build In Test Gui --- ExpCore/GuiParts/inputs.lua | 51 ++--------------- ExpCore/GuiParts/test.lua | 105 +++++++++++++++++++++++++++++++++++ ExpCore/GuiParts/toolbar.lua | 3 +- control.lua | 74 +----------------------- 4 files changed, 116 insertions(+), 117 deletions(-) create mode 100644 ExpCore/GuiParts/test.lua diff --git a/ExpCore/GuiParts/inputs.lua b/ExpCore/GuiParts/inputs.lua index ef82bbb2..9ffe8748 100644 --- a/ExpCore/GuiParts/inputs.lua +++ b/ExpCore/GuiParts/inputs.lua @@ -38,11 +38,14 @@ end -- @param root the element you want to add the input to -- @return returns the element that was added function inputs._input:draw(root) - if is_type(self.draw_data.caption,'string') and game.player.gui.is_valid_sprite_path(self.draw_data.caption) then + local player = Game.get_player(root.player_index) + if is_type(self.draw_data.caption,'string') and player.gui.is_valid_sprite_path(self.draw_data.caption) then local data = table.deepcopy(self.draw_data) data.type = 'sprite-button' + data.sprite = data.caption + data.caption = nil return root.add(data) - elseif is_type(self.draw_data.sprite,'string') and game.player.gui.is_valid_sprite_path(self.draw_data.sprite) then + elseif is_type(self.draw_data.sprite,'string') and player.gui.is_valid_sprite_path(self.draw_data.sprite) then local data = table.deepcopy(self.draw_data) data.type = 'sprite-button' return root.add(data) @@ -261,47 +264,5 @@ function inputs.add_text(name,box,text,callback) end return inputs ---[[ -Input Example - --- Basic Button Using Gui.inputs.add -local test = Gui.inputs.add{ - name='test-button', - type='button', - caption='Test' -} -test:on_event(Gui.inputs.events.click,function(event) game.print('test') end) - --- then later in code -local frame = player.gui.top.add{name='test',type='frame'} -test:draw(frame) - --- Mutly Function Button Using Gui.inputs.add_button -Gui.inputs.add_button('test-inputs','Try RMB','alt,ctrl,shift and mouse buttons',{ - { - function(player,mouse,keys) return mouse == defines.mouse_button_type.left and keys.alt end, - function(player,element) player_return('Left: Alt',nil,player) end - }, - { - function(player,mouse,keys) return mouse == defines.mouse_button_type.left and keys.ctrl end, - function(player,element) player_return('Left: Ctrl',nil,player) end - }, - { - function(player,mouse,keys) return mouse == defines.mouse_button_type.left and keys.shift end, - function(player,element) player_return('Left: Shift',nil,player) end - }, - { - function(player,mouse,keys) return mouse == defines.mouse_button_type.right and keys.alt end, - function(player,element) player_return('Right: Alt',nil,player) end - }, - { - function(player,mouse,keys) return mouse == defines.mouse_button_type.right and keys.ctrl end, - function(player,element) player_return('Right: Ctrl',nil,player) end - }, - { - function(player,mouse,keys) return mouse == defines.mouse_button_type.right and keys.shift end, - function(player,element) player_return('Right: Shift',nil,player) end - } -}):on_event('error',function(err) game.print('this is error handliling') end) -]] +-- to see examples look at GuiParts/test.lua diff --git a/ExpCore/GuiParts/test.lua b/ExpCore/GuiParts/test.lua new file mode 100644 index 00000000..5c9584f7 --- /dev/null +++ b/ExpCore/GuiParts/test.lua @@ -0,0 +1,105 @@ +-- this is just testing all the diffrent inputs to open test use /c Gui.test() + +local gui_tset_close = Gui.inputs.add{ + name='gui-test-close', + type='button', + caption='Close Test Gui' +}:on_event('click',function(event) event.element.parent.destroy() end) + +local caption_test = Gui.inputs.add{ + name='text-button', + type='button', + caption='Test' +}:on_event('click',function(event) game.print('test') end) + +local sprite_test = Gui.inputs.add{ + name='sprite-button', + type='button', + sprite='item/lab' +}:on_event('click',function(event) game.print('test') end) + +local input_test = Gui.inputs.add_button('test-inputs','Try RMB','alt,ctrl,shift and mouse buttons',{ + { + function(player,mouse,keys) return mouse == defines.mouse_button_type.left and keys.alt end, + function(player,element) player_return('Left: Alt',nil,player) end + }, + { + function(player,mouse,keys) return mouse == defines.mouse_button_type.left and keys.ctrl end, + function(player,element) player_return('Left: Ctrl',nil,player) end + }, + { + function(player,mouse,keys) return mouse == defines.mouse_button_type.left and keys.shift end, + function(player,element) player_return('Left: Shift',nil,player) end + }, + { + function(player,mouse,keys) return mouse == defines.mouse_button_type.right and keys.alt end, + function(player,element) player_return('Right: Alt',nil,player) end + }, + { + function(player,mouse,keys) return mouse == defines.mouse_button_type.right and keys.ctrl end, + function(player,element) player_return('Right: Ctrl',nil,player) end + }, + { + function(player,mouse,keys) return mouse == defines.mouse_button_type.right and keys.shift end, + function(player,element) player_return('Right: Shift',nil,player) end + } +}):on_event('error',function(err) game.print('this is error handliling') end) + +local elem_test = Gui.inputs.add_elem_button('test-elem','item','Testing Elems',function(player,element,elem) + player_return(elem.type..' '..elem.value,nil,player) +end) + +local check_test = Gui.inputs.add_checkbox('test-check',false,'Cheat Mode',function(parent) + return game.players[parent.player_index].cheat_mode +end,function(player,element) + player.cheat_mode = true +end,function(player,element) + player.cheat_mode = false +end) + +local radio_test = Gui.inputs.add_checkbox('test-radio',true,'Kill Self',function(parent) + return game.players[parent.player_index].in_combat +end,function(player,element) + if player.character then player.character.die() end + Gui.inputs.reset_radio(element.parent['test-radio-reset']) +end) + +local radio_test_reset = Gui.inputs.add_checkbox('test-radio-reset',true,'Reset Kill Self',function(parent) + return false +end,function(player,element) + Gui.inputs.reset_radio(element.parent['test-radio']) +end) + +local text_test = Gui.inputs.add_text('test-text',false,'default text',function(player,text,element) + player_return(text,nil,player) +end) + +local box_test = Gui.inputs.add_text('test-box',true,'default text but a box',function(player,text,element) + player_return(text,nil,player) +end) + +local function test_gui(event) + if not game.player and not event.player_index then return end + local player = game.player or Game.get_player(event) + if player.gui.top['gui-test'] then player.gui.top['gui-test'].destroy() end + local frame = player.gui.top.add{type='frame',name='gui-test'} + gui_tset_close:draw(frame) + caption_test:draw(frame) + sprite_test:draw(frame) + input_test:draw(frame) + elem_test:draw(frame) + check_test:draw(frame) + radio_test:draw(frame) + radio_test_reset:draw(frame) + text_test:draw(frame) + box_test:draw(frame) +end + +Gui.toolbar.add('open-gui-test','Open Test Gui','Opens the test gui with every input',test_gui) + +return test_gui + + + + + diff --git a/ExpCore/GuiParts/toolbar.lua b/ExpCore/GuiParts/toolbar.lua index a9654991..a1a5cc71 100644 --- a/ExpCore/GuiParts/toolbar.lua +++ b/ExpCore/GuiParts/toolbar.lua @@ -30,7 +30,8 @@ function toolbar.draw(player) local player = Game.get_player(player) if not player then return end local toolbar_frame = mod_gui.get_button_flow(player) - toolbar_frame.clear() + toolbar_frame.clear() + if not Gui._get_data('toolbar') then return end for name,button in pairs(Gui._get_data('toolbar')) do if is_type(Ranking,'table') and Ranking._presets and Ranking._presets().meta.rank_count > 0 then local rank = Ranking.get_rank(player) diff --git a/control.lua b/control.lua index 3acd3866..8d94b1c5 100644 --- a/control.lua +++ b/control.lua @@ -34,79 +34,11 @@ _G.discord_emit = nil -- un-comment this line if you are not using the json.data -- loads the ExpCore files these are need in order to run the other addons Ranking, Server, Gui = require('/ExpCore/load'){'Ranking','Server','Gui'} +local success,err = pcall(require,'/ExpCore/GuiParts/test') +if success then Gui.test = err end -- this loads the ranks that Ranking uses require('/ExpCore/ranks') -- this loads any edits that are not need in core pcall as file may not be preset pcall(require,'/Addons/playerRanks') -- this makes sure that all the little details are cleaned up -Ranking._auto_edit_ranks() - --- button testing - there are global for a reason -text = Gui.inputs.add{ - name='text-button', - type='button', - caption='Test' -}:on_event(Gui.inputs.events.click,function(event) game.print('test') end) - -sprite = Gui.inputs.add{ - name='sprite-button', - type='button', - caption='item/lab' -}:on_event(Gui.inputs.events.click,function(event) game.print('test') end) - -Gui.toolbar.add('button1','btn1','test btn1',function(event) game.print('test') end) -Gui.toolbar.add('button2','btn2','test btn2',function(event) game.print('test') end) -Gui.toolbar.add('button3','item/lab','test btn3',function(event) game.print('test') end) - -input_test = Gui.inputs.add_button('test-inputs','Try RMB','alt,ctrl,shift and mouse buttons',{ - { - function(player,mouse,keys) return mouse == defines.mouse_button_type.left and keys.alt end, - function(player,element) player_return('Left: Alt',nil,player) end - }, - { - function(player,mouse,keys) return mouse == defines.mouse_button_type.left and keys.ctrl end, - function(player,element) player_return('Left: Ctrl',nil,player) end - }, - { - function(player,mouse,keys) return mouse == defines.mouse_button_type.left and keys.shift end, - function(player,element) player_return('Left: Shift',nil,player) end - }, - { - function(player,mouse,keys) return mouse == defines.mouse_button_type.right and keys.alt end, - function(player,element) player_return('Right: Alt',nil,player) end - }, - { - function(player,mouse,keys) return mouse == defines.mouse_button_type.right and keys.ctrl end, - function(player,element) player_return('Right: Ctrl',nil,player) end - }, - { - function(player,mouse,keys) return mouse == defines.mouse_button_type.right and keys.shift end, - function(player,element) player_return('Right: Shift',nil,player) end - } -}):on_event('error',function(err) game.print('this is error handliling') end) - -elem_test = Gui.inputs.add_elem_button('test-elem','item','Testing Elems',function(player,element,elem) - player_return(elem.type..' '..elem.value,nil,player) -end) - -check_test = Gui.inputs.add_checkbox('test-check',false,'Cheat Mode',function(parent) - return game.players[parent.player_index].cheat_mode -end,function(player,element) - player.cheat_mode = true -end,function(player,element) - player.cheat_mode = false -end) - -radio_test = Gui.inputs.add_checkbox('test-radio',true,'Kill Self',function(parent) - return game.players[parent.player_index].in_combat -end,function(player,element) - if player.character then player.character.die() end -end) - -text_test = Gui.inputs.add_text('test-text',false,'default text',function(player,text,element) - player_return(text,nil,player) -end) - -box_test = Gui.inputs.add_text('test-box',true,'default text but a box',function(player,text,element) - player_return(text,nil,player) -end) \ No newline at end of file +Ranking._auto_edit_ranks() \ No newline at end of file