This commit is contained in:
Paul 2021-07-25 17:33:55 +02:00
commit 43086ea1eb
553 changed files with 20250 additions and 0 deletions

305
scripts/gravitation/gui.lua Normal file
View file

@ -0,0 +1,305 @@
require('scripts/gravitation/gr_black_hole_script')
local mod_gui = require("mod-gui")
local gr_gui = {}
function gr_gui.add_black_hole_gui(e,update)
local player = nil
local id = nil
local active = true
local total = nil
local stabilizer = nil
local power_gen = 0
local matter_consumption = 0
local stable = 0
local totalmatter = 0
if update then
player = e
id = global.black_hole.gui.id
if global.black_hole.base[id] then
active = global.black_hole.base[id].active
local entity = global.black_hole.base[id].entity
local inv = entity.get_inventory(defines.inventory.chest)
total = inv.get_item_count() - inv.get_item_count("gr_materials_stabilizer_item")
stabilizer = inv.get_item_count("gr_materials_stabilizer_item")
if global.black_hole.base[id].energy then
local energy = global.black_hole.base[id].energy
power_gen = global.black_hole.energy[energy].power_gen
matter_consumption = global.black_hole.energy[energy].matter_consumption
stable = global.black_hole.energy[energy].stable
totalmatter = global.black_hole.energy[energy].total
end
end
else
player = game.get_player(e["player_index"])
id = e["entity"].unit_number
if global.black_hole.base[id] then
active = global.black_hole.base[id].active
local entity = global.black_hole.base[id].entity
local inv = entity.get_inventory(defines.inventory.chest)
total = inv.get_item_count() - inv.get_item_count("gr_materials_stabilizer_item")
stabilizer = inv.get_item_count("gr_materials_stabilizer_item")
if global.black_hole.base[id].energy then
local energy = global.black_hole.base[id].energy
power_gen = global.black_hole.energy[energy].power_gen
matter_consumption = global.black_hole.energy[energy].matter_consumption
stable = global.black_hole.energy[energy].stable
totalmatter = global.black_hole.energy[energy].total
end
end
end
--====================================
--destroy and clear
--====================================
if player.gui.left["main248kblackholeframe"] then
player.gui.left["main248kblackholeframe"].destroy()
global.black_hole.gui = {}
return
end
if global.black_hole then
if global.black_hole.base then
if not global.black_hole.base[id] then
if player.gui.left["main248kblackholeframe"] then
player.gui.left["main248kblackholeframe"].destroy()
global.black_hole.gui = {}
return
else
return
end
end
end
end
local main248kblackholeframe = player.gui.left.add({
type = "frame",
name = "main248kblackholeframe",
caption = "Black hole generator: "
})
main248kblackholeframe.style.minimal_height = 10
main248kblackholeframe.style.minimal_width = 10
main248kblackholeframe.style.maximal_width = 320
local main248kblackholecontentframe = main248kblackholeframe.add({
type = "frame",
name = "main248kblackholecontentframe",
direction = "vertical",
style = "inside_shallow_frame_with_padding"
})
local main248kblackholeonframe = main248kblackholecontentframe.add({
type = "frame",
name = "main248kblackholeonframe",
caption = "Status ",
direction = "horizontal",
style = "bordered_frame"
})
--local main248kblackholeontextfield = main248kblackholeonframe.add({
-- type = "textfield",
-- name = "main248kblackholeontextfield",
-- numeric = "true",
-- text = channel
--})
--main248kblackholeontextfield.style.maximal_width = 30
local main248kblackholeonbutton = nil
if active == false then
main248kblackholeonbutton = main248kblackholeonframe.add({
type = "button",
name = "main248kblackholeonbutton",
caption = "Start",
style = "confirm_button"
})
else
main248kblackholeonbutton = main248kblackholeonframe.add({
type = "button",
name = "main248kblackholeonbutton",
caption = "Stop",
style = "red_confirm_button"
})
end
local main248kblackholestabilizerframe = main248kblackholecontentframe.add({
type = "frame",
name = "main248kblackholestabilizerframe",
caption = "Core stabilizers: ",
direction = "horizontal",
style = "bordered_frame"
})
local main248kblackholestabilizerbar = main248kblackholestabilizerframe.add({
type = "progressbar",
name = "main248kblackholestatstabilizerbar",
--caption = "Core stabilizers: ",
value = stabilizer/100,
direction = "horizontal",
style = "electric_satisfaction_in_description_progressbar"
})
local main248kblackholetotalframe = main248kblackholecontentframe.add({
type = "frame",
name = "main248kblackholetotalframe",
caption = "Consumable matter: ",
direction = "horizontal",
style = "bordered_frame"
})
local main248kblackholetotalbar = nil
if active == false then
main248kblackholetotalbar = main248kblackholetotalframe.add({
type = "progressbar",
name = "main248kblackholetotalbar",
--caption = "Consumable matter: ",
value = total/1000,
direction = "horizontal",
style = "electric_satisfaction_in_description_progressbar"
})
else
main248kblackholetotalbar = main248kblackholetotalframe.add({
type = "progressbar",
name = "main248kblackholetotalbar",
--caption = "Consumable matter: ",
value = totalmatter/10000,
direction = "horizontal",
style = "electric_satisfaction_in_description_progressbar"
})
end
local main248kblackholestableframe = main248kblackholecontentframe.add({
type = "frame",
name = "main248kblackholestableframe",
caption = "Reactor stability: ",
direction = "horizontal",
style = "bordered_frame"
})
local main248kblackholestablebar = main248kblackholestableframe.add({
type = "progressbar",
name = "main248kblackholestablebar",
--caption = "Consumable matter: ",
value = stable/100,
direction = "horizontal",
style = "electric_satisfaction_statistics_progressbar"
})
local main248kblackholeconsumptionframe = main248kblackholecontentframe.add({
type = "frame",
name = "main248kblackholeconsumptionframe",
caption = "Matter consumption: ",
direction = "horizontal",
style = "bordered_frame"
})
local main248kblackholeconsumptionbar = main248kblackholeconsumptionframe.add({
type = "progressbar",
name = "main248kblackholeconsumptionbar",
--caption = "Consumable matter: ",
value = matter_consumption/100,
direction = "horizontal",
style = "production_progressbar"
})
local main248kblackholepowerframe = main248kblackholecontentframe.add({
type = "frame",
name = "main248kblackholepowerframe",
caption = "Power gen. rate: ",
direction = "horizontal",
style = "bordered_frame"
})
local main248kblackholepowerbar = main248kblackholepowerframe.add({
type = "progressbar",
name = "main248kblackholepowerbar",
--caption = "Consumable matter: ",
value = power_gen/19000000000,
direction = "horizontal",
style = "production_progressbar"
})
global.black_hole.gui.frame = main248kblackholeframe
global.black_hole.gui.id = id
global.black_hole.gui.active = active
end
--=================================================================================
--on click
--=================================================================================
function gr_gui.on_change(e)
local player = game.get_player(e["player_index"])
if e["element"] then
if e["element"].valid then
local element = e["element"].name
if element == "main248kblackholeonbutton" then
if global.black_hole then
if global.black_hole.gui then
if not global.black_hole.gui.active then
if global.black_hole.gui.id then
local id = global.black_hole.gui.id
if global.black_hole.base then
if global.black_hole.base[id] then
if global.black_hole.base[id].entity then
if can_make_black_hole_energy(global.black_hole.base[id].entity) then
make_black_hole_energy(global.black_hole.base[id].entity)
gr_gui.update_main()
return
end
end
end
end
end
end
if global.black_hole.gui.active then
if global.black_hole.gui.id then
local id = global.black_hole.gui.id
if global.black_hole.base then
if global.black_hole.base[id] then
if global.black_hole.base[id].entity then
if global.black_hole.base[id].active then
if global.black_hole.base[id].energy then
local energy_unit = global.black_hole.base[id].energy
local energy_entity = global.black_hole.energy[energy_unit].entity
unregister_black_hole_energy(energy_entity)
energy_entity.destroy()
global.black_hole.counter = 0
gr_gui.update_main()
return
end
end
end
end
end
end
end
end
end
end
end
end
end
--=================================================================================
--update
--=================================================================================
function gr_gui.update_main()
for i,v in pairs(game.players) do
if game.players[i].gui.left["main248kblackholeframe"] then
game.players[i].gui.left["main248kblackholeframe"].destroy()
gr_gui.add_black_hole_gui(game.players[i],true)
end
end
end
return gr_gui