You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

79 lines
2.8 KiB

--luacheck: no global
require("stdlib.event.event")
require("stdlib.config.config")
local QS = Config.new(QS or (MOD and MOD.config and MOD.config.quickstart) or {})
if remote.interfaces["quickstart-script"] then
if game then game.print("Existing quickstart script - "..remote.call("quickstart-script", "creative_mode_quickstart_registered_to")) end
return remote.call("quickstart-script", "registered_to")
end
local qs_interface = {}
qs_interface.creative_mode_quickstart_registerd_to = function()
game.print(QS.get("mod_name", "not-set"))
return QS.get("mod_name", "not-set")
end
qs_interface.registered_to = function()
return (MOD and MOD.name) or QS.get("mod_name", "not-set")
end
remote.add_interface("quickstart-script", qs_interface)
local Area=require("stdlib.area.area")
--local quickstart = {}
quickstart = {}
--quickstart.map = require("test")
function quickstart.on_player_created(event)
if #game.players == 1 then
local player = game.players[event.player_index]
if QS.get("clear_items", false) then
player.clear_items_inside()
end
local simple_stacks = QS.get("stacks", {})
for _, item in pairs(simple_stacks) do
if game.item_prototypes[item] then
player.insert(item)
end
end
if QS.get("power_armor", true) then
--Put on power armor, install equipment
local inv = player.get_inventory(defines.inventory.player_armor)
inv.insert("power-armor-mk2")
local armor = inv[1].grid
armor.put{name="fusion-reactor-equipment"}
armor.put{name="personal-roboport-equipment"}
end
local surface = player.surface
local area = QS.get("area_box", {{-100, -100}, {100, 100}})
if QS.get("disable_rso_starting", false) and remote.interfaces["RSO"] and remote.interfaces["RSO"]["disableStartingArea"] then
remote.call("RSO", "disableStartingArea")
end
if QS.get("disable_rso_chunk", false) and remote.interfaces["RSO"] and remote.interfaces["RSO"]["disableChunkHandler"] then
remote.call("RSO", "disableChunkHandler")
end
if QS.get("destroy_everything", true) then
for _, entity in pairs(surface.find_entities(area)) do
if entity.name ~= "player" then
entity.destroy()
end
end
end
if QS.get("floor_tile", true) then
local tiles = {}
for x, y in Area.spiral_iterate(area) do
tiles[#tiles+1]={name=QS.get("floor_tile", "concrete"), position={x=x, y=y}}
end
surface.set_tiles(tiles, true)
--surface.set_tiles(quickstart.map, true)
end
end
end
Event.register(defines.events.on_player_created, quickstart.on_player_created)
return quickstart