enemy7's picture
Upload 1553 files
898c672
local mod_gui = require("mod-gui")
local util = require("util")
local version = 1
local on_player_created = function(event)
local player = game.players[event.player_index]
local character = player.character
player.character = nil
if character then
character.destroy()
end
local r = global.chart_distance or 200
player.force.chart(player.surface, {{player.position.x - r, player.position.y - r}, {player.position.x + r, player.position.y + r}})
if not global.skip_intro then
if game.is_multiplayer() then
player.print({"msg-introduction"})
else
game.show_message_dialog{text = {"msg-introduction"}}
end
end
if not global.skip_cheat_menu then
create_technologies_frame(player)
end
end
local starting_items =
{
["wood"] = "100",
["coal"] = "100",
["stone"] = "100",
["iron-plate"] = "400",
["copper-plate"] = "400",
["steel-plate"] = "100",
["iron-gear-wheel"] = "200",
["electronic-circuit"] = "200",
["advanced-circuit"] = "200",
["offshore-pump"] = "20",
["pipe"] = "50",
["boiler"] = "50",
["electric-mining-drill"] = "50",
["steam-engine"] = "10",
["stone-furnace"] = "50",
["transport-belt"] = "200",
["underground-belt"] = "50",
["splitter"] = "20",
["fast-transport-belt"] = "50",
["express-transport-belt"] = "50",
["inserter"] = "50",
["fast-inserter"] = "50",
["long-handed-inserter"] = "50",
["filter-inserter"] = "50",
["small-electric-pole"] = "50",
["assembling-machine-1"] = "50",
["assembling-machine-2"] = "30",
["rail"] = "200",
["train-stop"] = "10",
["rail-signal"] = "50",
["locomotive"] = "5",
["cargo-wagon"] = "10"
}
local on_gui_click = function(event)
local player = game.players[event.player_index]
local gui = event.element
if not (gui and gui.valid) then return end
if gui.name == "button_technologies_researched" then
player.force.research_all_technologies()
gui.parent.destroy()
create_item_frame(player)
return
end
if gui.name == "button_technologies_normal" then
gui.parent.destroy()
create_item_frame(player)
return
end
if gui.name == "button_yes_items" then
util.insert_safe(player, starting_items)
gui.parent.destroy()
create_cheat_frame(player)
return
end
if gui.name =="button_no_items" then
gui.parent.destroy()
create_cheat_frame(player)
return
end
if gui.name == "button_use_cheat_mode" then
player.cheat_mode = true
gui.parent.destroy()
create_day_frame(player)
return
end
if gui.name == "button_no_cheat_mode" then
gui.parent.destroy()
create_day_frame(player)
return
end
if gui.name == "button_yes_day" then
player.surface.always_day = true
gui.parent.destroy()
return
end
if gui.name =="button_no_day" then
gui.parent.destroy()
return
end
end
function create_item_frame(player)
local frame = mod_gui.get_frame_flow(player).add{name = "items_frame", type = "frame", style = mod_gui.frame_style, direction = "horizontal", caption={"msg-give-items"}}
frame.add{type = "button", name="button_yes_items", caption={"button-yes-items"}}
frame.add{type = "button", name="button_no_items", caption={"button-no-items"}}
end
function create_technologies_frame(player)
local frame = mod_gui.get_frame_flow(player).add{name = "technologies_frame", type = "frame", style = mod_gui.frame_style, direction = "horizontal", caption={"msg-ask-technologies"}}
frame.add{type = "button", name = "button_technologies_researched", caption = {"button-technologies-researched"}}
frame.add{type = "button", name = "button_technologies_normal", caption = {"button-technologies-normal"}}
end
function create_cheat_frame(player)
local frame = mod_gui.get_frame_flow(player).add{name = "cheat_frame", type = "frame", style = mod_gui.frame_style, direction = "horizontal", caption={"msg-ask-cheat-mode"}}
frame.add{type = "button", name="button_use_cheat_mode", caption={"button-use-cheat-mode"}}
frame.add{type = "button", name="button_no_cheat_mode", caption={"button-no-cheat-mode"}}
end
function create_day_frame(player)
local frame = mod_gui.get_frame_flow(player).add{name = "day_frame", type = "frame", style = mod_gui.frame_style, direction = "horizontal", caption={"msg-ask-always-day"}}
frame.add{type = "button", name="button_yes_day", caption={"button-yes-day"}}
frame.add{type = "button", name="button_no_day", caption={"button-no-day"}}
end
local sandbox = {}
sandbox.events =
{
[defines.events.on_player_created] = on_player_created,
[defines.events.on_gui_click] = on_gui_click
}
sandbox.on_init = function()
global.version = version
end
sandbox.on_configuration_changed = function(event)
end
sandbox.add_remote_interface = function()
remote.add_interface("sandbox",
{
set_skip_intro = function(bool)
global.skip_intro = bool
end,
set_chart_distance = function(value)
global.chart_distance = tonumber(value) or error("Remote call parameter to sandbox set chart distance must be a number")
end,
set_skip_cheat_menu = function(bool)
global.skip_cheat_menu = bool
end
})
end
return sandbox