1
0
mirror of https://github.com/Refactorio/RedMew.git synced 2024-12-12 10:04:40 +02:00

Fixed uranium decon. Added commands all-tech, hax, pool, meltdown

This commit is contained in:
Valansch 2018-02-26 16:57:47 +01:00
parent 43a0b0b1a5
commit 14a6dae5e3
3 changed files with 38 additions and 9 deletions

View File

@ -23,6 +23,7 @@ local function mark_if_depleted(drill)
end end
local function on_resource_depleted(event) local function on_resource_depleted(event)
if event.entity.name == "uranium-ore" then return nil end
local area = {{event.entity.position.x-1, event.entity.position.y-1}, {event.entity.position.x+1, event.entity.position.y + 1}} local area = {{event.entity.position.x-1, event.entity.position.y-1}, {event.entity.position.x+1, event.entity.position.y + 1}}
local drills = event.entity.surface.find_entities_filtered{area = area, type="mining-drill"} local drills = event.entity.surface.find_entities_filtered{area = area, type="mining-drill"}
for _,drill in pairs(drills) do for _,drill in pairs(drills) do

View File

@ -94,7 +94,7 @@ local function walkabout(cmd)
return return
end end
local chunks = {} local chunks = {}
for chunk in player.surface.get_chunks() do for chunk in player.surface.get_chunks() do
table.insert(chunks, chunk) table.insert(chunks, chunk)
end end
@ -102,9 +102,9 @@ local function walkabout(cmd)
if not chunk then if not chunk then
return return
end end
local pos = {x=chunk.x * 32, y=chunk.y * 32} local pos = {x=chunk.x * 32, y=chunk.y * 32}
local non_colliding_pos = player.surface.find_non_colliding_position("player", pos, 100, 1) local non_colliding_pos = player.surface.find_non_colliding_position("player", pos, 100, 1)
if non_colliding_pos then if non_colliding_pos then
game.print(player_name .. " went on a walkabout, to find himself.") game.print(player_name .. " went on a walkabout, to find himself.")
Task.set_timeout(duration, "custom_commands_return_player", {player = player, force = player.force, position = {x = player.position.x, y = player.position.y}}) Task.set_timeout(duration, "custom_commands_return_player", {player = player, force = player.force, position = {x = player.position.x, y = player.position.y}})
@ -113,7 +113,7 @@ local function walkabout(cmd)
player.teleport(non_colliding_pos) player.teleport(non_colliding_pos)
player.force = "enemy" player.force = "enemy"
global.walking[player_name:lower()] = true global.walking[player_name:lower()] = true
else else
player_print("Walkabout failed: count find non colliding position") player_print("Walkabout failed: count find non colliding position")
end end
end end
@ -435,6 +435,29 @@ local function zoom(cmd)
end end
end end
local function pool()
if game.player and game.player.admin then
local t = {} p = game.player.position
for x = p.x - 3, p.x + 3 do
for y = p.y + 2, p.y + 7 do
table.insert(t, {name="water", position={x,y}})
end
end
game.player.surface.set_tiles(t)
game.player.surface.create_entity{name = "fish", position = {p.x + 0.5, p.y + 5}}
end
end
local function reactor_toggle()
if not game.player or game.player.admin then
global.reactors_enabled = not global.reactors_enabled
if global.reactors_enabled then
game.print("Reactor meltdown activated.")
else
game.print("Reactor meltdown deactivated.")
end
end
end
commands.add_command("kill", "Will kill you.", kill) commands.add_command("kill", "Will kill you.", kill)
commands.add_command("tpplayer", "<player> - Teleports you to the player. (Admins and moderators)", teleport_player) commands.add_command("tpplayer", "<player> - Teleports you to the player. (Admins and moderators)", teleport_player)
commands.add_command("invoke", "<player> - Teleports the player to you. (Admins and moderators)", invoke) commands.add_command("invoke", "<player> - Teleports the player to you. (Admins and moderators)", invoke)
@ -455,3 +478,7 @@ commands.add_command("forcetoggle", "Toggles the players force between player an
commands.add_command("tempban", "<player> <minutes> Temporarily bans a player (Admins and moderators)", tempban) commands.add_command("tempban", "<player> <minutes> Temporarily bans a player (Admins and moderators)", tempban)
commands.add_command("spyshot", "<player> Sends a screenshot of player to discord. (If a host is online. If no host is online, you can become one yourself. Ask on discord :))", spyshot) commands.add_command("spyshot", "<player> Sends a screenshot of player to discord. (If a host is online. If no host is online, you can become one yourself. Ask on discord :))", spyshot)
commands.add_command("zoom", "<number> Sets your zoom.", zoom) commands.add_command("zoom", "<number> Sets your zoom.", zoom)
commands.add_command("all-tech", "researches all technologies", function() if game.player and game.player.admin then game.player.force.research_all_technologies() end end)
commands.add_command("hax", "Toggles your hax", function() if game.player and game.player.admin then game.player.cheat_mode = not game.player.cheat_mode end end)
commands.add_command("pool", "Spawns a pool", pool)
commands.add_command("meltdown", "Toggles if reactors blow up", reactor_toggle)

View File

@ -19,7 +19,7 @@ local function entity_destroyed(event)
end end
function spawn_wasteland(surface, position) function spawn_wasteland(surface, position)
local positions = { local positions = {
{0, 0}, {0, 0},
{0, 12}, {0, 12},
{0, -12}, {0, -12},
@ -88,10 +88,10 @@ local function check_wastelands()
for index,wl in pairs(global.wastelands) do for index,wl in pairs(global.wastelands) do
local age = game.tick - wl.creation_time local age = game.tick - wl.creation_time
wl.last_checked = wl.last_checked or 0 wl.last_checked = wl.last_checked or 0
if (game.tick - wl.last_checked) > 899 then if (game.tick - wl.last_checked) > 899 then
wl.last_checked = game.tick wl.last_checked = game.tick
spawn_wasteland(game.surfaces[wl.surface_id], wl.position) spawn_wasteland(game.surfaces[wl.surface_id], wl.position)
if age > wasteland_duration_seconds * 60 - 1 then if age > wasteland_duration_seconds * 60 - 1 then
global.wastelands[index] = nil global.wastelands[index] = nil
reactors = game.surfaces[wl.surface_id].find_entities_filtered{position = wl.position, name = "nuclear-reactor"} reactors = game.surfaces[wl.surface_id].find_entities_filtered{position = wl.position, name = "nuclear-reactor"}
if reactors[1] then reactors[1].destroy() end if reactors[1] then reactors[1].destroy() end
@ -100,8 +100,9 @@ local function check_wastelands()
end end
end end
global.reactors_enabled = true
local function on_tick() local function on_tick()
if (game.tick + 7) % 60 == 0 then if global.reactors_enabled then
check_wastelands() check_wastelands()
check_reactors() check_reactors()
end end
@ -113,7 +114,7 @@ local function entity_build(event)
end end
end end
Event.register(defines.events.on_tick, on_tick) script.on_nth_tick(67, on_tick)
Event.register(defines.events.on_player_mined_entity, entity_destroyed) Event.register(defines.events.on_player_mined_entity, entity_destroyed)
Event.register(defines.events.on_robot_mined_entity, entity_destroyed) Event.register(defines.events.on_robot_mined_entity, entity_destroyed)
Event.register(defines.events.on_entity_died, entity_destroyed) Event.register(defines.events.on_entity_died, entity_destroyed)