mirror of
https://github.com/PHIDIAS0303/ExpCluster.git
synced 2025-12-27 11:35:22 +09:00
Merge branch 'aperx' into main
This commit is contained in:
5
.gitignore
vendored
5
.gitignore
vendored
@@ -3,3 +3,8 @@ node_modules/
|
|||||||
package-lock.json
|
package-lock.json
|
||||||
pnpm-lock.yaml
|
pnpm-lock.yaml
|
||||||
.vscode
|
.vscode
|
||||||
|
exp_util/node-compile-cache/
|
||||||
|
exp_commands/node-compile-cache/
|
||||||
|
exp_groups/node-compile-cache/
|
||||||
|
exp_legacy/node-compile-cache/
|
||||||
|
exp_scenario/node-compile-cache/
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ force=Invalid Force Name.
|
|||||||
surface=Invalid Surface Name.
|
surface=Invalid Surface Name.
|
||||||
planet=Invalid Planet Name.
|
planet=Invalid Planet Name.
|
||||||
color=Invalid Color Name.
|
color=Invalid Color Name.
|
||||||
|
role=Invalid Role Name.
|
||||||
|
|
||||||
[exp-commands-authorities]
|
[exp-commands-authorities]
|
||||||
character-only=This command can not be used in remote view.
|
character-only=This command can not be used in remote view.
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ force=勢力名稱錯誤。
|
|||||||
surface=地表名稱錯誤。
|
surface=地表名稱錯誤。
|
||||||
planet=星球名稱錯誤。
|
planet=星球名稱錯誤。
|
||||||
color=顏色名稱錯誤。
|
color=顏色名稱錯誤。
|
||||||
|
role=權限組名稱錯誤。
|
||||||
|
|
||||||
[exp-commands-authorities]
|
[exp-commands-authorities]
|
||||||
character-only=該命令不能在遠端視圖中使用。
|
character-only=該命令不能在遠端視圖中使用。
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ force=勢力名稱錯誤。
|
|||||||
surface=地表名稱錯誤。
|
surface=地表名稱錯誤。
|
||||||
planet=星球名稱錯誤。
|
planet=星球名稱錯誤。
|
||||||
color=顏色名稱錯誤。
|
color=顏色名稱錯誤。
|
||||||
|
role=權限組名稱錯誤。
|
||||||
|
|
||||||
[exp-commands-authorities]
|
[exp-commands-authorities]
|
||||||
character-only=該命令不能在遠端視圖中使用。
|
character-only=該命令不能在遠端視圖中使用。
|
||||||
|
|||||||
@@ -13,9 +13,9 @@ return {
|
|||||||
"modules.addons.advanced-start",
|
"modules.addons.advanced-start",
|
||||||
"modules.addons.spawn-area",
|
"modules.addons.spawn-area",
|
||||||
"modules.addons.compilatron",
|
"modules.addons.compilatron",
|
||||||
"modules.addons.scorched-earth",
|
--"modules.addons.scorched-earth",
|
||||||
"modules.addons.pollution-grading",
|
--"modules.addons.pollution-grading",
|
||||||
"modules.addons.station-auto-name",
|
--"modules.addons.station-auto-name",
|
||||||
"modules.addons.discord-alerts",
|
"modules.addons.discord-alerts",
|
||||||
"modules.addons.chat-reply",
|
"modules.addons.chat-reply",
|
||||||
"modules.addons.tree-decon",
|
"modules.addons.tree-decon",
|
||||||
@@ -45,8 +45,8 @@ return {
|
|||||||
|
|
||||||
--- GUI
|
--- GUI
|
||||||
"modules.gui.readme",
|
"modules.gui.readme",
|
||||||
"modules.gui.rocket-info",
|
-- "modules.gui.rocket-info",
|
||||||
"modules.gui.science-info",
|
-- "modules.gui.science-info",
|
||||||
"modules.gui.autofill",
|
"modules.gui.autofill",
|
||||||
"modules.gui.task-list",
|
"modules.gui.task-list",
|
||||||
"modules.gui.warp-list",
|
"modules.gui.warp-list",
|
||||||
@@ -56,7 +56,6 @@ return {
|
|||||||
"modules.gui.vlayer",
|
"modules.gui.vlayer",
|
||||||
"modules.gui.research",
|
"modules.gui.research",
|
||||||
"modules.gui.module",
|
"modules.gui.module",
|
||||||
"modules.gui.landfill",
|
|
||||||
"modules.gui.tool",
|
"modules.gui.tool",
|
||||||
"modules.gui.production",
|
"modules.gui.production",
|
||||||
"modules.gui.playerdata",
|
"modules.gui.playerdata",
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
--- These are called factories because they return another function
|
--- These are called factories because they return another function
|
||||||
-- use these as a simple methods of adding new items
|
-- use these as a simple methods of adding new items
|
||||||
-- they will do most of the work for you
|
-- they will do most of the work for you
|
||||||
-- ['item-name'] = factory(params)
|
-- ["item-name"] = factory(params)
|
||||||
-- luacheck:ignore 212/amount_made 212/items_made 212/player
|
-- luacheck:ignore 212/amount_made 212/items_made 212/player
|
||||||
|
|
||||||
-- Use these to adjust for ticks ie game.tick < 5*minutes
|
-- Use these to adjust for ticks ie game.tick < 5*minutes
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
local seconds, minutes, hours = 60, 3600, 216000
|
local seconds, minutes, hours = 60, 3600, 216000
|
||||||
|
|
||||||
--- Use to make a split point for the number of items given based on time
|
--- Use to make a split point for the number of items given based on time
|
||||||
-- ['stone-furnace']=cutoff_time(5*minutes, 4,0) -- before 5 minutes give four items after 5 minutes give none
|
-- ["stone-furnace"]=cutoff_time(5*minutes, 4,0) -- before 5 minutes give four items after 5 minutes give none
|
||||||
local function cutoff_time(time, before, after)
|
local function cutoff_time(time, before, after)
|
||||||
return function(amount_made, items_made, player)
|
return function(amount_made, items_made, player)
|
||||||
if game.tick < time then
|
if game.tick < time then
|
||||||
@@ -24,7 +24,8 @@ local function cutoff_time(time, before, after)
|
|||||||
end
|
end
|
||||||
|
|
||||||
--- Use to make a split point for the number of items given based on amount made
|
--- Use to make a split point for the number of items given based on amount made
|
||||||
-- ['firearm-magazine']=cutoff_amount_made(100, 10, 0) -- give 10 items until 100 items have been made
|
-- ["firearm-magazine"]=cutoff_amount_made(100, 10, 0) -- give 10 items until 100 items have been made
|
||||||
|
--[[
|
||||||
local function cutoff_amount_made(amount, before, after)
|
local function cutoff_amount_made(amount, before, after)
|
||||||
return function(amount_made, items_made, player)
|
return function(amount_made, items_made, player)
|
||||||
if amount_made < amount then
|
if amount_made < amount then
|
||||||
@@ -34,9 +35,11 @@ local function cutoff_amount_made(amount, before, after)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
]]
|
||||||
|
|
||||||
--- Same as above but will not give any items if x amount has been made of another item, useful for tiers
|
--- Same as above but will not give any items if x amount has been made of another item, useful for tiers
|
||||||
-- ['light-armor']=cutoff_amount_made_unless(5, 0,1,'heavy-armor',5) -- give light armor once 5 have been made unless 5 heavy armor has been made
|
-- ["light-armor"]=cutoff_amount_made_unless(5, 0,1,"heavy-armor",5) -- give light armor once 5 have been made unless 5 heavy armor has been made
|
||||||
|
--[[
|
||||||
local function cutoff_amount_made_unless(amount, before, after, second_item, second_amount)
|
local function cutoff_amount_made_unless(amount, before, after, second_item, second_amount)
|
||||||
return function(amount_made, items_made, player)
|
return function(amount_made, items_made, player)
|
||||||
if items_made(second_item) < second_amount then
|
if items_made(second_item) < second_amount then
|
||||||
@@ -50,9 +53,11 @@ local function cutoff_amount_made_unless(amount, before, after, second_item, sec
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
]]
|
||||||
|
|
||||||
-- Use for mass production items where you want the amount to change based on the amount already made
|
-- Use for mass production items where you want the amount to change based on the amount already made
|
||||||
-- ['iron-plate']=scale_amount_made(5*minutes, 10, 10) -- for first 5 minutes give 10 items then after apply a factor of 10
|
-- ["iron-plate"]=scale_amount_made(5*minutes, 10, 10) -- for first 5 minutes give 10 items then after apply a factor of 10
|
||||||
|
--[[
|
||||||
local function scale_amount_made(amount, before, scalar)
|
local function scale_amount_made(amount, before, scalar)
|
||||||
return function(amount_made, items_made, player)
|
return function(amount_made, items_made, player)
|
||||||
if amount_made < amount then
|
if amount_made < amount then
|
||||||
@@ -62,12 +67,13 @@ local function scale_amount_made(amount, before, scalar)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
]]
|
||||||
|
|
||||||
--[[
|
--[[
|
||||||
Common values
|
Common values
|
||||||
game.tick is the amount of time the game has been on for
|
game.tick is the amount of time the game has been on for
|
||||||
amount_made is the amount of that item which has been made
|
amount_made is the amount of that item which has been made
|
||||||
items_made('item-name') will return the amount of any item made
|
items_made("item-name") will return the amount of any item made
|
||||||
player is the player who just spawned
|
player is the player who just spawned
|
||||||
hours, minutes, seconds are the number of ticks in each unit of time
|
hours, minutes, seconds are the number of ticks in each unit of time
|
||||||
]]
|
]]
|
||||||
@@ -79,33 +85,28 @@ return {
|
|||||||
enemy_expansion = false, --- @setting enemy_expansion a catch all for in case the map settings file fails to load
|
enemy_expansion = false, --- @setting enemy_expansion a catch all for in case the map settings file fails to load
|
||||||
chart_radius = 10 * 32, --- @setting chart_radius the number of tiles that will be charted when the map starts
|
chart_radius = 10 * 32, --- @setting chart_radius the number of tiles that will be charted when the map starts
|
||||||
items = { --- @setting items items and there condition for being given
|
items = { --- @setting items items and there condition for being given
|
||||||
-- ['item-name'] = function(amount_made, production_stats, player) return <Number> end -- 0 means no items given
|
["iron-ore"] = cutoff_time(20 * minutes, 80, 0),
|
||||||
-- Plates
|
["stone"] = cutoff_time(20 * minutes, 20, 0),
|
||||||
["iron-plate"] = scale_amount_made(100, 10, 10),
|
["coal"] = cutoff_time(20 * minutes, 20, 0),
|
||||||
["copper-plate"] = scale_amount_made(100, 0, 8),
|
-- ["burner-mining-drill"]=cutoff_time(20 * minutes, 8, 0),
|
||||||
["steel-plate"] = scale_amount_made(100, 0, 4),
|
-- ["stone-furnace"]=cutoff_time(20 * minutes, 8, 0),
|
||||||
-- Secondary Items
|
["submachine-gun"] = 1,
|
||||||
["electronic-circuit"] = scale_amount_made(1000, 0, 6),
|
["piercing-rounds-magazine"] = 20,
|
||||||
["iron-gear-wheel"] = scale_amount_made(1000, 0, 6),
|
["construction-robot"] = 10,
|
||||||
-- Starting Items
|
["modular-armor"] = 1,
|
||||||
["burner-mining-drill"] = cutoff_time(10 * minutes, 4, 0),
|
["solar-panel-equipment"] = 16,
|
||||||
["stone-furnace"] = cutoff_time(10 * minutes, 4, 0),
|
["belt-immunity-equipment"] = 1,
|
||||||
-- Armor
|
["battery-equipment"] = 2,
|
||||||
["light-armor"] = cutoff_amount_made_unless(5, 0, 1, "heavy-armor", 5),
|
["personal-roboport-equipment"] = 1
|
||||||
["heavy-armor"] = cutoff_amount_made(5, 0, 1),
|
|
||||||
-- Weapon
|
|
||||||
["pistol"] = cutoff_amount_made_unless(0, 1, 1, "submachine-gun", 5),
|
|
||||||
["submachine-gun"] = cutoff_amount_made(5, 0, 1),
|
|
||||||
-- Ammo
|
|
||||||
["firearm-magazine"] = cutoff_amount_made_unless(100, 10, 0, "piercing-rounds-magazine", 100),
|
|
||||||
["piercing-rounds-magazine"] = cutoff_amount_made(100, 0, 10),
|
|
||||||
--[[
|
--[[
|
||||||
['construction-robot'] = 10,
|
["construction-robot"] = 50,
|
||||||
['modular-armor'] = 1,
|
["spidertron"] = 1,
|
||||||
['solar-panel-equipment'] = 16,
|
["spidertron-remote"] = 1,
|
||||||
['belt-immunity-equipment'] = 1,
|
["modular-armor"] = 1,
|
||||||
['battery-equipment'] = 2,
|
["solar-panel-equipment"] = 60,
|
||||||
['personal-roboport-equipment'] = 1
|
["belt-immunity-equipment"] = 1,
|
||||||
|
["battery-equipment"] = 6,
|
||||||
|
["personal-roboport-equipment"] = 5
|
||||||
]]
|
]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ return {
|
|||||||
]]
|
]]
|
||||||
pts = {
|
pts = {
|
||||||
base = 260,
|
base = 260,
|
||||||
|
increase_percentage_per_role_level = 0.03,
|
||||||
|
role_name = "Member",
|
||||||
},
|
},
|
||||||
gui_display_width = {
|
gui_display_width = {
|
||||||
half = 150,
|
half = 150,
|
||||||
@@ -33,7 +35,7 @@ return {
|
|||||||
["chb"] = "character_health_bonus",
|
["chb"] = "character_health_bonus",
|
||||||
["crdb"] = "character_reach_distance_bonus",
|
["crdb"] = "character_reach_distance_bonus",
|
||||||
--[[
|
--[[
|
||||||
['cpdb'] = 'character_item_pickup_distance_bonus'
|
['cpdb'] = 'character_item_pickup_distance_bonus',
|
||||||
]]
|
]]
|
||||||
},
|
},
|
||||||
player_special_bonus_rate = 300,
|
player_special_bonus_rate = 300,
|
||||||
@@ -108,7 +110,7 @@ return {
|
|||||||
scale = 1,
|
scale = 1,
|
||||||
cost_scale = 1,
|
cost_scale = 1,
|
||||||
cost = 1,
|
cost = 1,
|
||||||
is_percentage = false
|
is_percentage = false,
|
||||||
},
|
},
|
||||||
['character_loot_pickup_distance_bonus'] = {
|
['character_loot_pickup_distance_bonus'] = {
|
||||||
value = 0,
|
value = 0,
|
||||||
@@ -116,7 +118,7 @@ return {
|
|||||||
scale = 1,
|
scale = 1,
|
||||||
cost_scale = 1,
|
cost_scale = 1,
|
||||||
cost = 1,
|
cost = 1,
|
||||||
is_percentage = false
|
is_percentage = false,
|
||||||
},
|
},
|
||||||
['character_item_drop_distance_bonus'] = {
|
['character_item_drop_distance_bonus'] = {
|
||||||
value = 0,
|
value = 0,
|
||||||
@@ -124,8 +126,8 @@ return {
|
|||||||
scale = 1,
|
scale = 1,
|
||||||
cost_scale = 1,
|
cost_scale = 1,
|
||||||
cost = 1,
|
cost = 1,
|
||||||
is_percentage = false
|
is_percentage = false,
|
||||||
}
|
},
|
||||||
]]
|
]]
|
||||||
},
|
},
|
||||||
force_bonus = {
|
force_bonus = {
|
||||||
@@ -136,7 +138,7 @@ return {
|
|||||||
scale = 0.5,
|
scale = 0.5,
|
||||||
cost_scale = 1,
|
cost_scale = 1,
|
||||||
cost = 10,
|
cost = 10,
|
||||||
is_percentage = true
|
is_percentage = true,
|
||||||
},
|
},
|
||||||
['character_running_speed_modifier'] = {
|
['character_running_speed_modifier'] = {
|
||||||
value = 0,
|
value = 0,
|
||||||
@@ -144,7 +146,7 @@ return {
|
|||||||
scale = 0.25,
|
scale = 0.25,
|
||||||
cost_scale = 1,
|
cost_scale = 1,
|
||||||
cost = 40,
|
cost = 40,
|
||||||
is_percentage = true
|
is_percentage = true,
|
||||||
},
|
},
|
||||||
['character_crafting_speed_modifier'] = {
|
['character_crafting_speed_modifier'] = {
|
||||||
value = 0,
|
value = 0,
|
||||||
@@ -152,7 +154,7 @@ return {
|
|||||||
scale = 1,
|
scale = 1,
|
||||||
cost_scale = 1,
|
cost_scale = 1,
|
||||||
cost = 4,
|
cost = 4,
|
||||||
is_percentage = true
|
is_percentage = true,
|
||||||
},
|
},
|
||||||
['character_inventory_slots_bonus'] = {
|
['character_inventory_slots_bonus'] = {
|
||||||
value = 0,
|
value = 0,
|
||||||
@@ -160,14 +162,14 @@ return {
|
|||||||
scale = 10,
|
scale = 10,
|
||||||
cost_scale = 100,
|
cost_scale = 100,
|
||||||
cost = 2,
|
cost = 2,
|
||||||
is_percentage = false
|
is_percentage = false,
|
||||||
},
|
},
|
||||||
['character_health_bonus'] = {
|
['character_health_bonus'] = {
|
||||||
value = 0,
|
value = 0,
|
||||||
max = 400,
|
max = 400,
|
||||||
scale = 50,
|
scale = 50,
|
||||||
cost = 4,
|
cost = 4,
|
||||||
is_percentage = false
|
is_percentage = false,
|
||||||
},
|
},
|
||||||
['character_reach_distance_bonus'] = {
|
['character_reach_distance_bonus'] = {
|
||||||
value = 0,
|
value = 0,
|
||||||
@@ -178,8 +180,8 @@ return {
|
|||||||
is_percentage = false,
|
is_percentage = false,
|
||||||
combined_bonus = {
|
combined_bonus = {
|
||||||
'character_resource_reach_distance_bonus',
|
'character_resource_reach_distance_bonus',
|
||||||
'character_build_distance_bonus'
|
'character_build_distance_bonus',
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
['worker_robots_speed_modifier'] = {
|
['worker_robots_speed_modifier'] = {
|
||||||
value = 0,
|
value = 0,
|
||||||
@@ -187,7 +189,7 @@ return {
|
|||||||
scale = 0,
|
scale = 0,
|
||||||
cost_scale = 1,
|
cost_scale = 1,
|
||||||
cost = 1,
|
cost = 1,
|
||||||
is_percentage = false
|
is_percentage = false,
|
||||||
},
|
},
|
||||||
]]
|
]]
|
||||||
["worker_robots_battery_modifier"] = {
|
["worker_robots_battery_modifier"] = {
|
||||||
@@ -221,7 +223,7 @@ return {
|
|||||||
scale = 1,
|
scale = 1,
|
||||||
cost_scale = 1,
|
cost_scale = 1,
|
||||||
cost = 1,
|
cost = 1,
|
||||||
is_percentage = false
|
is_percentage = false,
|
||||||
},
|
},
|
||||||
['character_loot_pickup_distance_bonus'] = {
|
['character_loot_pickup_distance_bonus'] = {
|
||||||
value = 0,
|
value = 0,
|
||||||
@@ -229,7 +231,7 @@ return {
|
|||||||
scale = 1,
|
scale = 1,
|
||||||
cost_scale = 1,
|
cost_scale = 1,
|
||||||
cost = 1,
|
cost = 1,
|
||||||
is_percentage = false
|
is_percentage = false,
|
||||||
},
|
},
|
||||||
['character_item_drop_distance_bonus'] = {
|
['character_item_drop_distance_bonus'] = {
|
||||||
value = 0,
|
value = 0,
|
||||||
@@ -237,7 +239,7 @@ return {
|
|||||||
scale = 1,
|
scale = 1,
|
||||||
cost_scale = 1,
|
cost_scale = 1,
|
||||||
cost = 1,
|
cost = 1,
|
||||||
is_percentage = false
|
is_percentage = false,
|
||||||
},
|
},
|
||||||
['character_trash_slot_count'] = {
|
['character_trash_slot_count'] = {
|
||||||
value = 0,
|
value = 0,
|
||||||
@@ -245,7 +247,7 @@ return {
|
|||||||
scale = 0,
|
scale = 0,
|
||||||
cost_scale = 1,
|
cost_scale = 1,
|
||||||
cost = 1,
|
cost = 1,
|
||||||
is_percentage = false
|
is_percentage = false,
|
||||||
},
|
},
|
||||||
['mining_drill_productivity_bonus'] = {
|
['mining_drill_productivity_bonus'] = {
|
||||||
value = 0,
|
value = 0,
|
||||||
@@ -253,7 +255,7 @@ return {
|
|||||||
scale = 0,
|
scale = 0,
|
||||||
cost_scale = 1,
|
cost_scale = 1,
|
||||||
cost = 1,
|
cost = 1,
|
||||||
is_percentage = false
|
is_percentage = false,
|
||||||
},
|
},
|
||||||
['train_braking_force_bonus'] = {
|
['train_braking_force_bonus'] = {
|
||||||
value = 0,
|
value = 0,
|
||||||
@@ -261,7 +263,7 @@ return {
|
|||||||
scale = 0,
|
scale = 0,
|
||||||
cost_scale = 1,
|
cost_scale = 1,
|
||||||
cost = 1,
|
cost = 1,
|
||||||
is_percentage = false
|
is_percentage = false,
|
||||||
},
|
},
|
||||||
['laboratory_speed_modifier'] = {
|
['laboratory_speed_modifier'] = {
|
||||||
value = 0,
|
value = 0,
|
||||||
@@ -269,7 +271,7 @@ return {
|
|||||||
scale = 0,
|
scale = 0,
|
||||||
cost_scale = 1,
|
cost_scale = 1,
|
||||||
cost = 1,
|
cost = 1,
|
||||||
is_percentage = false
|
is_percentage = false,
|
||||||
},
|
},
|
||||||
['laboratory_productivity_bonus'] = {
|
['laboratory_productivity_bonus'] = {
|
||||||
value = 0,
|
value = 0,
|
||||||
@@ -277,7 +279,7 @@ return {
|
|||||||
scale = 0,
|
scale = 0,
|
||||||
cost_scale = 1,
|
cost_scale = 1,
|
||||||
cost = 1,
|
cost = 1,
|
||||||
is_percentage = false
|
is_percentage = false,
|
||||||
},
|
},
|
||||||
['inserter_stack_size_bonus'] = {
|
['inserter_stack_size_bonus'] = {
|
||||||
value = 0,
|
value = 0,
|
||||||
@@ -285,7 +287,7 @@ return {
|
|||||||
scale = 0,
|
scale = 0,
|
||||||
cost_scale = 1,
|
cost_scale = 1,
|
||||||
cost = 1,
|
cost = 1,
|
||||||
is_percentage = false
|
is_percentage = false,
|
||||||
},
|
},
|
||||||
['stack_inserter_capacity_bonus'] = {
|
['stack_inserter_capacity_bonus'] = {
|
||||||
value = 0,
|
value = 0,
|
||||||
@@ -293,7 +295,7 @@ return {
|
|||||||
scale = 0,
|
scale = 0,
|
||||||
cost_scale = 1,
|
cost_scale = 1,
|
||||||
cost = 1,
|
cost = 1,
|
||||||
is_percentage = false
|
is_percentage = false,
|
||||||
},
|
},
|
||||||
['artillery_range_modifier'] = {
|
['artillery_range_modifier'] = {
|
||||||
value = 0,
|
value = 0,
|
||||||
@@ -301,8 +303,8 @@ return {
|
|||||||
scale = 0,
|
scale = 0,
|
||||||
cost_scale = 1,
|
cost_scale = 1,
|
||||||
cost = 1,
|
cost = 1,
|
||||||
is_percentage = false
|
is_percentage = false,
|
||||||
}
|
},
|
||||||
]]
|
]]
|
||||||
},
|
},
|
||||||
surface_bonus = {
|
surface_bonus = {
|
||||||
@@ -313,8 +315,8 @@ return {
|
|||||||
scale = 1,
|
scale = 1,
|
||||||
cost_scale = 1,
|
cost_scale = 1,
|
||||||
cost = 1,
|
cost = 1,
|
||||||
is_percentage = false
|
is_percentage = false,
|
||||||
}
|
},
|
||||||
]]
|
]]
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,12 +23,9 @@ return {
|
|||||||
allow_command_prefix_for_messages = true, --- @setting allow_command_prefix_for_messages when true any message trigger will print to all player when prefixed
|
allow_command_prefix_for_messages = true, --- @setting allow_command_prefix_for_messages when true any message trigger will print to all player when prefixed
|
||||||
messages = { --- @setting messages will trigger when ever the word is said
|
messages = { --- @setting messages will trigger when ever the word is said
|
||||||
["discord"] = { "info.discord" },
|
["discord"] = { "info.discord" },
|
||||||
["expgaming"] = { "info.website" },
|
["aperx"] = { "info.website" },
|
||||||
["website"] = { "info.website" },
|
["website"] = { "info.website" },
|
||||||
["status"] = { "info.status" },
|
|
||||||
["github"] = { "info.github" },
|
["github"] = { "info.github" },
|
||||||
["patreon"] = { "info.patreon" },
|
|
||||||
["donate"] = { "info.patreon" },
|
|
||||||
["command"] = { "info.custom-commands" },
|
["command"] = { "info.custom-commands" },
|
||||||
["commands"] = { "info.custom-commands" },
|
["commands"] = { "info.custom-commands" },
|
||||||
["softmod"] = { "info.softmod" },
|
["softmod"] = { "info.softmod" },
|
||||||
|
|||||||
@@ -9,15 +9,11 @@ return {
|
|||||||
messages = { --- @setting messages the messages that each one will say, must be same name as its location
|
messages = { --- @setting messages the messages that each one will say, must be same name as its location
|
||||||
["Spawn"] = {
|
["Spawn"] = {
|
||||||
{ "info.website" },
|
{ "info.website" },
|
||||||
{ "info.read-readme" },
|
|
||||||
{ "info.discord" },
|
|
||||||
{ "info.softmod" },
|
|
||||||
{ "info.redmew" },
|
|
||||||
{ "info.custom-commands" },
|
|
||||||
{ "info.status" },
|
|
||||||
{ "info.lhd" },
|
|
||||||
{ "info.github" },
|
{ "info.github" },
|
||||||
{ "info.patreon" },
|
{ "info.read-readme" },
|
||||||
|
{ "info.softmod" },
|
||||||
|
{ "info.custom-commands" },
|
||||||
|
{ "info.lhd" },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,15 +11,16 @@ return {
|
|||||||
player_kicks = true,
|
player_kicks = true,
|
||||||
player_promotes = false,
|
player_promotes = false,
|
||||||
player_jail = true,
|
player_jail = true,
|
||||||
["config"] = true,
|
['config']=false,
|
||||||
["purge"] = true,
|
['purge']=false,
|
||||||
["c"] = true,
|
['c']=false,
|
||||||
["command"] = true,
|
['sc']=false,
|
||||||
["silent-command"] = true,
|
['command']=false,
|
||||||
["measured-command"] = true,
|
['silent-command']=false,
|
||||||
["banlist"] = true,
|
['measured-command']=false,
|
||||||
["permissions"] = true,
|
['banlist']=false,
|
||||||
["editor"] = true,
|
['permissions']=false,
|
||||||
["cheat"] = true,
|
['editor']=false,
|
||||||
["open"] = false,
|
['cheat']=false,
|
||||||
|
['open']=false
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
--- Use this file to add new permission groups to the game;
|
--- Use this file to add new permission groups to the game;
|
||||||
-- start with Permission_Groups.new_group('name');
|
-- start with Permission_Groups.new_group("name");
|
||||||
-- then use either :allow_all() or :disallow_all() to set the default for non specified actions;
|
-- then use either :allow_all() or :disallow_all() to set the default for non specified actions;
|
||||||
-- then use :allow{} and :disallow{} to specify certain actions to allow/disallow
|
-- then use :allow{} and :disallow{} to specify certain actions to allow/disallow
|
||||||
-- @config Permission-Groups
|
-- @config Permission-Groups
|
||||||
@@ -9,6 +9,9 @@ local Groups = require("modules.exp_legacy.expcore.permission_groups") --- @dep
|
|||||||
|
|
||||||
Groups.new_group("Admin")
|
Groups.new_group("Admin")
|
||||||
:allow_all()
|
:allow_all()
|
||||||
|
|
||||||
|
Groups.new_group("Mod")
|
||||||
|
:allow_all()
|
||||||
:disallow{
|
:disallow{
|
||||||
"add_permission_group", -- admin
|
"add_permission_group", -- admin
|
||||||
"delete_permission_group",
|
"delete_permission_group",
|
||||||
@@ -17,11 +20,6 @@ Groups.new_group("Admin")
|
|||||||
"map_editor_action",
|
"map_editor_action",
|
||||||
"toggle_map_editor",
|
"toggle_map_editor",
|
||||||
"change_multiplayer_config",
|
"change_multiplayer_config",
|
||||||
"set_heat_interface_mode",
|
|
||||||
"set_heat_interface_temperature",
|
|
||||||
"set_infinity_container_filter_item",
|
|
||||||
"set_infinity_container_remove_unfiltered_items",
|
|
||||||
"set_infinity_pipe_filter",
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Groups.new_group("Trusted")
|
Groups.new_group("Trusted")
|
||||||
@@ -34,12 +32,12 @@ Groups.new_group("Trusted")
|
|||||||
"map_editor_action",
|
"map_editor_action",
|
||||||
"toggle_map_editor",
|
"toggle_map_editor",
|
||||||
"change_multiplayer_config",
|
"change_multiplayer_config",
|
||||||
"set_heat_interface_mode",
|
"set_heat_interface_mode", -- trusted
|
||||||
"set_heat_interface_temperature",
|
"set_heat_interface_temperature",
|
||||||
"set_infinity_container_filter_item",
|
"set_infinity_container_filter_item",
|
||||||
"set_infinity_container_remove_unfiltered_items",
|
"set_infinity_container_remove_unfiltered_items",
|
||||||
"set_infinity_pipe_filter",
|
"set_infinity_pipe_filter",
|
||||||
"admin_action", -- trusted
|
"admin_action",
|
||||||
}
|
}
|
||||||
|
|
||||||
Groups.new_group("Standard")
|
Groups.new_group("Standard")
|
||||||
@@ -58,10 +56,8 @@ Groups.new_group("Standard")
|
|||||||
"set_infinity_container_remove_unfiltered_items",
|
"set_infinity_container_remove_unfiltered_items",
|
||||||
"set_infinity_pipe_filter",
|
"set_infinity_pipe_filter",
|
||||||
"admin_action", -- trusted
|
"admin_action", -- trusted
|
||||||
|
"delete_space_platform",
|
||||||
"change_programmable_speaker_alert_parameters", -- standard
|
"change_programmable_speaker_alert_parameters", -- standard
|
||||||
"drop_item",
|
|
||||||
"open_new_platform_button_from_rocket_silo",
|
|
||||||
"set_rocket_silo_send_to_orbit_automated_mode",
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Groups.new_group("Guest")
|
Groups.new_group("Guest")
|
||||||
@@ -80,21 +76,24 @@ Groups.new_group("Guest")
|
|||||||
"set_infinity_container_remove_unfiltered_items",
|
"set_infinity_container_remove_unfiltered_items",
|
||||||
"set_infinity_pipe_filter",
|
"set_infinity_pipe_filter",
|
||||||
"admin_action", -- trusted
|
"admin_action", -- trusted
|
||||||
|
"delete_space_platform",
|
||||||
"change_programmable_speaker_alert_parameters", -- standard
|
"change_programmable_speaker_alert_parameters", -- standard
|
||||||
|
"change_programmable_speaker_circuit_parameters", -- guest
|
||||||
|
"change_programmable_speaker_parameters",
|
||||||
"drop_item",
|
"drop_item",
|
||||||
"open_new_platform_button_from_rocket_silo",
|
|
||||||
"set_rocket_silo_send_to_orbit_automated_mode",
|
"set_rocket_silo_send_to_orbit_automated_mode",
|
||||||
"change_programmable_speaker_parameters", -- guest
|
"open_new_platform_button_from_rocket_silo",
|
||||||
|
"instantly_create_space_platform",
|
||||||
|
"cancel_delete_space_platform",
|
||||||
|
"rename_space_platform",
|
||||||
|
-- "launch_rocket",
|
||||||
"change_train_stop_station",
|
"change_train_stop_station",
|
||||||
-- 'deconstruct',
|
-- "deconstruct",
|
||||||
"remove_cables",
|
"remove_cables",
|
||||||
"remove_train_station",
|
"remove_train_station",
|
||||||
"reset_assembling_machine",
|
"reset_assembling_machine",
|
||||||
"rotate_entity",
|
"rotate_entity",
|
||||||
-- 'use_artillery_remote', -- not in 2.0
|
|
||||||
"launch_rocket",
|
|
||||||
"cancel_research",
|
"cancel_research",
|
||||||
-- 'activate_cut', -- not in 2.0
|
|
||||||
"flush_opened_entity_fluid",
|
"flush_opened_entity_fluid",
|
||||||
"flush_opened_entity_specific_fluid",
|
"flush_opened_entity_specific_fluid",
|
||||||
}
|
}
|
||||||
@@ -108,15 +107,15 @@ Groups.new_group("Restricted")
|
|||||||
local trusted_time = 60*60*60*10 -- 10 hour
|
local trusted_time = 60*60*60*10 -- 10 hour
|
||||||
local standard_time = 60*60*60*3 -- 3 hour
|
local standard_time = 60*60*60*3 -- 3 hour
|
||||||
local function assign_group(player)
|
local function assign_group(player)
|
||||||
local current_group_name = player.permission_group and player.permission_group.name or 'None'
|
local current_group_name = player.permission_group and player.permission_group.name or "None"
|
||||||
if player.admin then
|
if player.admin then
|
||||||
Permission_Groups.set_player_group(player,'Admin')
|
Permission_Groups.set_player_group(player,"Admin")
|
||||||
elseif player.online_time > trusted_time or current_group_name == 'Trusted' then
|
elseif player.online_time > trusted_time or current_group_name == "Trusted" then
|
||||||
Permission_Groups.set_player_group(player,'Trusted')
|
Permission_Groups.set_player_group(player,"Trusted")
|
||||||
elseif player.online_time > standard_time or current_group_name == 'Standard' then
|
elseif player.online_time > standard_time or current_group_name == "Standard" then
|
||||||
Permission_Groups.set_player_group(player,'Standard')
|
Permission_Groups.set_player_group(player,"Standard")
|
||||||
else
|
else
|
||||||
Permission_Groups.set_player_group(player,'Guest')
|
Permission_Groups.set_player_group(player,"Guest")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ Roles.new_role("System", "SYS")
|
|||||||
:set_flag("is_spectator")
|
:set_flag("is_spectator")
|
||||||
:set_flag("report-immune")
|
:set_flag("report-immune")
|
||||||
:set_flag("instant-respawn")
|
:set_flag("instant-respawn")
|
||||||
|
:set_flag("deconlog-bypass")
|
||||||
:set_allow_all()
|
:set_allow_all()
|
||||||
|
|
||||||
Roles.new_role("Senior Administrator", "SAdmin")
|
Roles.new_role("Senior Administrator", "SAdmin")
|
||||||
@@ -36,13 +37,9 @@ Roles.new_role("Senior Administrator", "SAdmin")
|
|||||||
:set_flag("is_spectator")
|
:set_flag("is_spectator")
|
||||||
:set_flag("report-immune")
|
:set_flag("report-immune")
|
||||||
:set_flag("instant-respawn")
|
:set_flag("instant-respawn")
|
||||||
|
:set_flag("deconlog-bypass")
|
||||||
:set_parent("Administrator")
|
:set_parent("Administrator")
|
||||||
:allow{
|
:set_allow_all()
|
||||||
"command/_rcon",
|
|
||||||
"command/debug",
|
|
||||||
"command/set-cheat-mode",
|
|
||||||
"command/research-all",
|
|
||||||
}
|
|
||||||
|
|
||||||
Roles.new_role("Administrator", "Admin")
|
Roles.new_role("Administrator", "Admin")
|
||||||
:set_permission_group("Admin")
|
:set_permission_group("Admin")
|
||||||
@@ -51,63 +48,57 @@ Roles.new_role("Administrator", "Admin")
|
|||||||
:set_flag("is_spectator")
|
:set_flag("is_spectator")
|
||||||
:set_flag("report-immune")
|
:set_flag("report-immune")
|
||||||
:set_flag("instant-respawn")
|
:set_flag("instant-respawn")
|
||||||
|
:set_flag("deconlog-bypass")
|
||||||
|
:set_parent("Senior Moderator")
|
||||||
|
:allow{
|
||||||
|
"command/_rcon",
|
||||||
|
"command/debug",
|
||||||
|
"command/set-cheat-mode",
|
||||||
|
"command/research-all"
|
||||||
|
}
|
||||||
|
|
||||||
|
Roles.new_role("Senior Moderator", "SMod")
|
||||||
|
:set_permission_group("Mod")
|
||||||
|
:set_custom_color{ r = 0, g = 170, b = 0 }
|
||||||
|
:set_flag("is_admin")
|
||||||
|
:set_flag("is_system")
|
||||||
|
:set_flag("is_spectator")
|
||||||
|
:set_flag("report-immune")
|
||||||
|
:set_flag("instant-respawn")
|
||||||
|
:set_flag("deconlog-bypass")
|
||||||
:set_parent("Moderator")
|
:set_parent("Moderator")
|
||||||
:allow{
|
:allow{
|
||||||
"gui/warp-list/bypass-proximity",
|
"gui/warp-list/bypass-proximity",
|
||||||
"gui/warp-list/bypass-cooldown",
|
"gui/warp-list/bypass-cooldown",
|
||||||
"command/connect-all",
|
"command/connect-all"
|
||||||
}
|
}
|
||||||
|
|
||||||
Roles.new_role("Moderator", "Mod")
|
Roles.new_role("Moderator", "Mod")
|
||||||
:set_permission_group("Admin")
|
:set_permission_group("Mod")
|
||||||
:set_custom_color{ r = 0, g = 170, b = 0 }
|
:set_custom_color{ r = 0, g = 170, b = 0 }
|
||||||
:set_flag("is_admin")
|
:set_flag("is_admin")
|
||||||
:set_flag("is_spectator")
|
:set_flag("is_spectator")
|
||||||
:set_flag("report-immune")
|
:set_flag("report-immune")
|
||||||
:set_flag("instant-respawn")
|
:set_flag("instant-respawn")
|
||||||
:set_parent("Trainee")
|
:set_flag("deconlog-bypass")
|
||||||
|
:set_parent("Trainee Moderator")
|
||||||
:allow{
|
:allow{
|
||||||
"command/assign-role",
|
|
||||||
"command/unassign-role",
|
|
||||||
"command/repair",
|
|
||||||
"command/kill/always",
|
|
||||||
"command/clear-tag/always",
|
|
||||||
"command/spawn/always",
|
|
||||||
"command/clear-reports",
|
|
||||||
"command/clear-warnings",
|
|
||||||
"command/clear-script-warnings",
|
|
||||||
"command/clear-last-warnings",
|
|
||||||
"command/clear-inventory",
|
|
||||||
"command/kill-enemies",
|
|
||||||
"command/remove-enemies",
|
|
||||||
--'command/bonus',
|
|
||||||
"command/home",
|
|
||||||
"command/set-home",
|
|
||||||
"command/get-home",
|
|
||||||
"command/return",
|
|
||||||
"command/connect-player",
|
|
||||||
"command/set-bot-queue",
|
|
||||||
"command/set-game-speed",
|
|
||||||
"command/set-friendly-fire",
|
|
||||||
"command/set-always-day",
|
|
||||||
"command/set-pollution-enabled",
|
|
||||||
"command/clear-pollution",
|
|
||||||
"gui/rocket-info/toggle-active",
|
|
||||||
"gui/rocket-info/remote_launch",
|
|
||||||
"gui/bonus",
|
|
||||||
"fast-tree-decon",
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Roles.new_role("Trainee", "TrMod")
|
Roles.new_role("Trainee Moderator", "Trainee")
|
||||||
:set_permission_group("Admin")
|
:set_permission_group("Mod")
|
||||||
:set_custom_color{ r = 0, g = 170, b = 0 }
|
:set_custom_color{ r = 0, g = 170, b = 0 }
|
||||||
:set_flag("is_admin")
|
:set_flag("is_admin")
|
||||||
:set_flag("is_spectator")
|
:set_flag("is_spectator")
|
||||||
:set_flag("report-immune")
|
:set_flag("report-immune")
|
||||||
:set_parent("Veteran")
|
:set_flag("instant-respawn")
|
||||||
|
:set_flag("deconlog-bypass")
|
||||||
|
:set_parent("Board Member")
|
||||||
:allow{
|
:allow{
|
||||||
|
"command/assign-role",
|
||||||
|
"command/unassign-role",
|
||||||
"command/admin-chat",
|
"command/admin-chat",
|
||||||
"command/goto",
|
"command/protect-tag",
|
||||||
"command/teleport",
|
"command/teleport",
|
||||||
"command/bring",
|
"command/bring",
|
||||||
"command/create-warning",
|
"command/create-warning",
|
||||||
@@ -115,19 +106,30 @@ Roles.new_role("Trainee", "TrMod")
|
|||||||
"command/get-reports",
|
"command/get-reports",
|
||||||
"command/protect-entity",
|
"command/protect-entity",
|
||||||
"command/protect-area",
|
"command/protect-area",
|
||||||
"command/protect-tag",
|
|
||||||
"command/jail",
|
|
||||||
"command/unjail",
|
|
||||||
"command/kick",
|
"command/kick",
|
||||||
"command/ban",
|
"command/ban",
|
||||||
"command/spectate",
|
|
||||||
"command/follow",
|
|
||||||
"command/search",
|
"command/search",
|
||||||
"command/search-online",
|
"command/search-online",
|
||||||
"command/search-amount",
|
"command/search-amount",
|
||||||
"command/search-recent",
|
"command/search-recent",
|
||||||
"command/clear-blueprints",
|
"command/clear-pollution",
|
||||||
"gui/playerdata",
|
"command/set-pollution-enabled",
|
||||||
|
"command/set-bot-queue",
|
||||||
|
"command/set-game-speed",
|
||||||
|
"command/kill-enemies",
|
||||||
|
"command/remove-enemies",
|
||||||
|
"command/set-friendly-fire",
|
||||||
|
"command/set-always-day",
|
||||||
|
"command/clear-reports",
|
||||||
|
"command/clear-warnings",
|
||||||
|
"command/clear-script-warnings",
|
||||||
|
"command/clear-last-warnings",
|
||||||
|
"command/clear-inventory",
|
||||||
|
"command/connect-player",
|
||||||
|
"command/kill/always",
|
||||||
|
-- "command/clear-tag/always",
|
||||||
|
"command/spawn/always",
|
||||||
|
"gui/playerdata"
|
||||||
}
|
}
|
||||||
|
|
||||||
--- Trusted Roles
|
--- Trusted Roles
|
||||||
@@ -137,81 +139,94 @@ Roles.new_role("Board Member", "Board")
|
|||||||
:set_flag("is_spectator")
|
:set_flag("is_spectator")
|
||||||
:set_flag("report-immune")
|
:set_flag("report-immune")
|
||||||
:set_flag("instant-respawn")
|
:set_flag("instant-respawn")
|
||||||
:set_parent("Sponsor")
|
:set_flag("deconlog-bypass")
|
||||||
:allow{
|
|
||||||
"command/goto",
|
|
||||||
"command/repair",
|
|
||||||
"command/spectate",
|
|
||||||
"command/follow",
|
|
||||||
"gui/playerdata",
|
|
||||||
}
|
|
||||||
|
|
||||||
Roles.new_role("Senior Backer", "Backer")
|
|
||||||
:set_permission_group("Trusted")
|
|
||||||
:set_custom_color{ r = 238, g = 172, b = 44 }
|
|
||||||
:set_flag("is_spectator")
|
|
||||||
:set_flag("report-immune")
|
|
||||||
:set_flag("instant-respawn")
|
|
||||||
:set_parent("Sponsor")
|
|
||||||
:allow{
|
|
||||||
}
|
|
||||||
|
|
||||||
Roles.new_role("Sponsor", "Spon")
|
|
||||||
:set_permission_group("Trusted")
|
|
||||||
:set_custom_color{ r = 238, g = 172, b = 44 }
|
|
||||||
:set_flag("is_spectator")
|
|
||||||
:set_flag("report-immune")
|
|
||||||
:set_flag("instant-respawn")
|
|
||||||
:set_parent("Supporter")
|
:set_parent("Supporter")
|
||||||
:allow{
|
:allow{
|
||||||
"gui/rocket-info/toggle-active",
|
|
||||||
"gui/rocket-info/remote_launch",
|
|
||||||
"gui/bonus",
|
|
||||||
--"command/bonus",
|
|
||||||
"command/home",
|
|
||||||
"command/set-home",
|
|
||||||
"command/get-home",
|
|
||||||
"command/return",
|
|
||||||
"fast-tree-decon",
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Roles.new_role("Supporter", "Sup")
|
Roles.new_role("Supporter", "Sup")
|
||||||
:set_permission_group("Trusted")
|
:set_permission_group("Trusted")
|
||||||
:set_custom_color{ r = 230, g = 99, b = 34 }
|
:set_custom_color{ r = 230, g = 99, b = 34 }
|
||||||
:set_flag("is_spectator")
|
:set_flag("is_spectator")
|
||||||
:set_parent("Veteran")
|
:set_flag("instant-respawn")
|
||||||
|
:set_flag("deconlog-bypass")
|
||||||
|
:set_parent("Partner")
|
||||||
:allow{
|
:allow{
|
||||||
"command/tag-color",
|
|
||||||
"command/jail",
|
|
||||||
"command/unjail",
|
|
||||||
"command/set-join-message",
|
|
||||||
"command/remove-join-message",
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Roles.new_role("Partner", "Part")
|
Roles.new_role("Partner", "Part")
|
||||||
:set_permission_group("Trusted")
|
:set_permission_group("Trusted")
|
||||||
:set_custom_color{ r = 140, g = 120, b = 200 }
|
:set_custom_color{ r = 24, g = 172, b = 188 }
|
||||||
:set_flag("is_spectator")
|
:set_flag("is_spectator")
|
||||||
:set_parent("Veteran")
|
:set_flag("instant-respawn")
|
||||||
|
:set_flag("deconlog-bypass")
|
||||||
|
:set_parent("Senior Member")
|
||||||
:allow{
|
:allow{
|
||||||
"command/jail",
|
|
||||||
"command/unjail",
|
|
||||||
}
|
}
|
||||||
|
|
||||||
local hours10, hours250 = 10 * 216000, 250 * 60
|
Roles.new_role("Senior Member", "SMem")
|
||||||
|
:set_permission_group("Trusted")
|
||||||
|
:set_custom_color{ r = 24, g = 172, b = 188 }
|
||||||
|
:set_flag("is_spectator")
|
||||||
|
:set_flag("deconlog-bypass")
|
||||||
|
:set_flag("instant-respawn")
|
||||||
|
:set_parent("Member")
|
||||||
|
:allow{
|
||||||
|
"command/set-join-message",
|
||||||
|
"command/remove-join-message",
|
||||||
|
"command/goto",
|
||||||
|
"command/jail",
|
||||||
|
"command/unjail",
|
||||||
|
"command/spectate",
|
||||||
|
"command/follow",
|
||||||
|
"command/repair"
|
||||||
|
}
|
||||||
|
|
||||||
|
--- Standard User Roles
|
||||||
|
Roles.new_role("Member", "Mem")
|
||||||
|
:set_permission_group("Trusted")
|
||||||
|
:set_custom_color{ r = 24, g = 172, b = 188 }
|
||||||
|
:set_flag("instant-respawn")
|
||||||
|
:set_flag("deconlog-bypass")
|
||||||
|
:set_parent("Veteran")
|
||||||
|
:allow{
|
||||||
|
"gui/vlayer-edit",
|
||||||
|
"gui/rocket-info/toggle-active",
|
||||||
|
"gui/rocket-info/remote_launch",
|
||||||
|
"gui/tool",
|
||||||
|
-- "command/tag-color",
|
||||||
|
"command/clear-blueprints",
|
||||||
|
--"command/bonus",
|
||||||
|
"gui/bonus",
|
||||||
|
"command/personal-logistic",
|
||||||
|
"command/home",
|
||||||
|
"command/set-home",
|
||||||
|
"command/get-home",
|
||||||
|
"command/return",
|
||||||
|
"fast-tree-decon"
|
||||||
|
}
|
||||||
|
|
||||||
|
local hours6, hours250 = 6 * 216000, 250 * 60
|
||||||
Roles.new_role("Veteran", "Vet")
|
Roles.new_role("Veteran", "Vet")
|
||||||
:set_permission_group("Trusted")
|
:set_permission_group("Trusted")
|
||||||
:set_custom_color{ r = 140, g = 120, b = 200 }
|
:set_custom_color{ r = 140, g = 120, b = 200 }
|
||||||
:set_parent("Member")
|
:set_flag("deconlog-bypass")
|
||||||
|
:set_parent("Regular")
|
||||||
:allow{
|
:allow{
|
||||||
|
"gui/surveillance",
|
||||||
|
"gui/warp-list/add",
|
||||||
|
"gui/warp-list/edit",
|
||||||
"command/chat-bot",
|
"command/chat-bot",
|
||||||
"command/clear-ground-items",
|
"command/clear-ground-items",
|
||||||
"command/clear-blueprints-radius",
|
"command/clear-blueprints-radius",
|
||||||
"command/set-trains-to-automatic",
|
"command/set-trains-to-automatic",
|
||||||
"command/set-auto-research",
|
"command/set-auto-research",
|
||||||
|
"command/lawnmower",
|
||||||
|
"command/waterfill",
|
||||||
|
"command/artillery"
|
||||||
}
|
}
|
||||||
:set_auto_assign_condition(function(player)
|
:set_auto_assign_condition(function(player)
|
||||||
if player.online_time >= hours10 then
|
if player.online_time >= hours6 then
|
||||||
return true
|
return true
|
||||||
else
|
else
|
||||||
local stats = Statistics:get(player, {})
|
local stats = Statistics:get(player, {})
|
||||||
@@ -220,44 +235,25 @@ Roles.new_role("Veteran", "Vet")
|
|||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
--- Standard User Roles
|
local hours1, hours15 = 1 * 216000, 15 * 60
|
||||||
Roles.new_role("Member", "Mem")
|
|
||||||
:set_permission_group("Standard")
|
|
||||||
:set_custom_color{ r = 24, g = 172, b = 188 }
|
|
||||||
:set_flag("deconlog-bypass")
|
|
||||||
:set_parent("Regular")
|
|
||||||
:allow{
|
|
||||||
"gui/task-list/add",
|
|
||||||
"gui/task-list/edit",
|
|
||||||
"gui/warp-list/add",
|
|
||||||
"gui/warp-list/edit",
|
|
||||||
"gui/surveillance",
|
|
||||||
"gui/vlayer-edit",
|
|
||||||
"gui/tool",
|
|
||||||
"command/save-quickbar",
|
|
||||||
"command/vlayer-info",
|
|
||||||
"command/personal-logistic",
|
|
||||||
"command/lawnmower",
|
|
||||||
"command/waterfill",
|
|
||||||
"command/artillery",
|
|
||||||
}
|
|
||||||
|
|
||||||
local hours3, hours15 = 3 * 216000, 15 * 60
|
|
||||||
Roles.new_role("Regular", "Reg")
|
Roles.new_role("Regular", "Reg")
|
||||||
:set_permission_group("Standard")
|
:set_permission_group("Standard")
|
||||||
:set_custom_color{ r = 79, g = 155, b = 163 }
|
:set_custom_color{ r = 79, g = 155, b = 163 }
|
||||||
:set_parent("Guest")
|
:set_parent("Guest")
|
||||||
:allow{
|
:allow{
|
||||||
|
"gui/task-list/add",
|
||||||
|
"gui/task-list/edit",
|
||||||
"command/kill",
|
"command/kill",
|
||||||
"command/rainbow",
|
"command/rainbow",
|
||||||
"command/spawn",
|
"command/spawn",
|
||||||
"command/me",
|
"command/me",
|
||||||
|
"command/vlayer-info",
|
||||||
"standard-decon",
|
"standard-decon",
|
||||||
"bypass-entity-protection",
|
"bypass-entity-protection",
|
||||||
"bypass-nukeprotect",
|
"bypass-nukeprotect"
|
||||||
}
|
}
|
||||||
:set_auto_assign_condition(function(player)
|
:set_auto_assign_condition(function(player)
|
||||||
if player.online_time >= hours3 then
|
if player.online_time >= hours1 then
|
||||||
return true
|
return true
|
||||||
else
|
else
|
||||||
local stats = Statistics:get(player, {})
|
local stats = Statistics:get(player, {})
|
||||||
@@ -271,8 +267,8 @@ local default = Roles.new_role("Guest", "")
|
|||||||
:set_permission_group("Guest")
|
:set_permission_group("Guest")
|
||||||
:set_custom_color{ r = 185, g = 187, b = 160 }
|
:set_custom_color{ r = 185, g = 187, b = 160 }
|
||||||
:allow{
|
:allow{
|
||||||
"command/tag",
|
-- "command/tag",
|
||||||
"command/tag-clear",
|
-- "command/tag-clear",
|
||||||
"command/commands",
|
"command/commands",
|
||||||
"command/get-role",
|
"command/get-role",
|
||||||
"command/locate",
|
"command/locate",
|
||||||
@@ -280,6 +276,7 @@ local default = Roles.new_role("Guest", "")
|
|||||||
"command/ratio",
|
"command/ratio",
|
||||||
"command/server-ups",
|
"command/server-ups",
|
||||||
"command/save-data",
|
"command/save-data",
|
||||||
|
"command/save-quickbar",
|
||||||
"command/data-preference",
|
"command/data-preference",
|
||||||
"command/connect",
|
"command/connect",
|
||||||
"gui/player-list",
|
"gui/player-list",
|
||||||
@@ -292,7 +289,6 @@ local default = Roles.new_role("Guest", "")
|
|||||||
"gui/research",
|
"gui/research",
|
||||||
"gui/autofill",
|
"gui/autofill",
|
||||||
"gui/module",
|
"gui/module",
|
||||||
"gui/landfill",
|
|
||||||
"gui/production",
|
"gui/production",
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -312,57 +308,63 @@ Roles.define_role_order{
|
|||||||
"System", -- Best to keep root at top
|
"System", -- Best to keep root at top
|
||||||
"Senior Administrator",
|
"Senior Administrator",
|
||||||
"Administrator",
|
"Administrator",
|
||||||
|
"Senior Moderator",
|
||||||
"Moderator",
|
"Moderator",
|
||||||
"Trainee",
|
"Trainee Moderator",
|
||||||
"Board Member",
|
"Board Member",
|
||||||
"Senior Backer",
|
|
||||||
"Sponsor",
|
|
||||||
"Supporter",
|
"Supporter",
|
||||||
"Partner",
|
"Partner",
|
||||||
"Veteran",
|
"Senior Member",
|
||||||
"Member",
|
"Member",
|
||||||
|
"Veteran",
|
||||||
"Regular",
|
"Regular",
|
||||||
"Jail",
|
"Jail",
|
||||||
"Guest", -- Default must be last if you want to apply restrictions to other roles
|
"Guest" -- Default must be last if you want to apply restrictions to other roles
|
||||||
}
|
}
|
||||||
|
|
||||||
Roles.override_player_roles{
|
Roles.override_player_roles{
|
||||||
["PHIDIAS0303"] = { "Moderator", "Board Member", "Member" },
|
["PHIDIAS0303"] = { "Senior Administrator" },
|
||||||
["aldldl"] = { "Administrator", "Moderator", "Member" },
|
["majoro"] = { "Trainee Moderator" },
|
||||||
["arty714"] = { "Senior Administrator", "Moderator", "Member" },
|
["konohaScarlet_"] = { "Trainee Moderator" },
|
||||||
["Cooldude2606"] = { "Senior Administrator", "Moderator", "Member" },
|
["hihicome3"] = { "Trainee Moderator" },
|
||||||
["Drahc_pro"] = { "Administrator", "Moderator", "Member" },
|
["Athenaa"] = { "Trainee Moderator" },
|
||||||
["mark9064"] = { "Administrator", "Moderator", "Member" },
|
["rongli"] = { "Trainee Moderator" },
|
||||||
["7h3w1z4rd"] = { "Moderator", "Member" },
|
["JamesJung"] = { "Trainee Moderator" },
|
||||||
["FlipHalfling90"] = { "Moderator", "Member" },
|
["aldldl"] = { "Moderator" },
|
||||||
["hamsterbryan"] = { "Moderator", "Member" },
|
["arty714"] = { "Moderator" },
|
||||||
["HunterOfGames"] = { "Moderator", "Member" },
|
["Cooldude2606"] = { "Moderator" },
|
||||||
["NextIdea"] = { "Moderator", "Member" },
|
["Drahc_pro"] = { "Moderator" },
|
||||||
["TheKernel32"] = { "Moderator", "Member" },
|
["mark9064"] = { "Moderator" },
|
||||||
["TheKernel64"] = { "Moderator", "Member" },
|
["7h3w1z4rd"] = { "Moderator" },
|
||||||
["tovernaar123"] = { "Moderator", "Member" },
|
["FlipHalfling90"] = { "Moderator" },
|
||||||
["UUBlueFire"] = { "Moderator", "Member" },
|
["hamsterbryan"] = { "Moderator" },
|
||||||
["AssemblyStorm"] = { "Moderator", "Member" },
|
["HunterOfGames"] = { "Moderator" },
|
||||||
["banakeg"] = { "Moderator", "Member" },
|
["NextIdea"] = { "Moderator" },
|
||||||
["connormkii"] = { "Moderator", "Member" },
|
["TheKernel32"] = { "Moderator" },
|
||||||
["cydes"] = { "Moderator", "Member" },
|
["TheKernel64"] = { "Moderator" },
|
||||||
["darklich14"] = { "Moderator", "Member" },
|
["tovernaar123"] = { "Moderator" },
|
||||||
["facere"] = { "Moderator", "Member" },
|
["UUBlueFire"] = { "Moderator" },
|
||||||
["freek18"] = { "Moderator", "Member" },
|
["AssemblyStorm"] = { "Moderator" },
|
||||||
["Gizan"] = { "Moderator", "Member" },
|
["banakeg"] = { "Moderator" },
|
||||||
["LoicB"] = { "Moderator", "Member" },
|
["connormkii"] = { "Moderator" },
|
||||||
["M74132"] = { "Moderator", "Member" },
|
["cydes"] = { "Moderator" },
|
||||||
["mafisch3"] = { "Moderator", "Member" },
|
["darklich14"] = { "Moderator" },
|
||||||
["maplesyrup01"] = { "Moderator", "Member" },
|
["facere"] = { "Moderator" },
|
||||||
["ookl"] = { "Moderator", "Member" },
|
["freek18"] = { "Moderator" },
|
||||||
["Phoenix27833"] = { "Moderator", "Member" },
|
["Gizan"] = { "Moderator" },
|
||||||
["porelos"] = { "Moderator", "Member" },
|
["LoicB"] = { "Moderator" },
|
||||||
["Ruuyji"] = { "Moderator", "Member" },
|
["M74132"] = { "Moderator" },
|
||||||
["samy115"] = { "Moderator", "Member" },
|
["mafisch3"] = { "Moderator" },
|
||||||
["SilentLog"] = { "Moderator", "Member" },
|
["maplesyrup01"] = { "Moderator" },
|
||||||
["Tcheko"] = { "Moderator", "Member" },
|
["ookl"] = { "Moderator" },
|
||||||
["thadius856"] = { "Moderator", "Member" },
|
["Phoenix27833"] = { "Moderator" },
|
||||||
["whoami32"] = { "Moderator", "Member" },
|
["porelos"] = { "Moderator" },
|
||||||
["Windbomb"] = { "Moderator", "Member" },
|
["Ruuyji"] = { "Moderator" },
|
||||||
["XenoCyber"] = { "Moderator", "Member" },
|
["samy115"] = { "Moderator" },
|
||||||
|
["SilentLog"] = { "Moderator" },
|
||||||
|
["Tcheko"] = { "Moderator" },
|
||||||
|
["thadius856"] = { "Moderator" },
|
||||||
|
["whoami32"] = { "Moderator" },
|
||||||
|
["Windbomb"] = { "Moderator" },
|
||||||
|
["XenoCyber"] = { "Moderator" }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,2 @@
|
|||||||
return {
|
return {
|
||||||
Cooldude2606 = "Lua lets you set metatables on numbers, did you know that? Cooldude2606 knows this.",
|
|
||||||
samy115 = "Tremble in fear as the banhammer is now here, its owner: samy115",
|
|
||||||
XenoCyber = '"Fire Fire Fire" oops wrong game, have no fear XenoCyber is here',
|
|
||||||
HunterOfGames = "Unable to support HunterOfGames. You must construct additional miners.",
|
|
||||||
ookl = 'ookl says: "Pineapples are amazing, hello everyone!"',
|
|
||||||
arty714 = "Arty\'s Potato made it!",
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,8 +27,4 @@ return {
|
|||||||
},
|
},
|
||||||
ignore_permisison = "bypass-nukeprotect", -- @setting ignore_permisison The permission that nukeprotect will ignore
|
ignore_permisison = "bypass-nukeprotect", -- @setting ignore_permisison The permission that nukeprotect will ignore
|
||||||
ignore_admins = true, -- @setting ignore_admins Ignore admins, true by default. Allows usage outside of the roles module
|
ignore_admins = true, -- @setting ignore_admins Ignore admins, true by default. Allows usage outside of the roles module
|
||||||
disable_nuke_research = false, -- @setting disable_nuke_research Disable the nuke research, true by default
|
|
||||||
disable_nuke_research_names = {
|
|
||||||
["atomic-bomb"] = true,
|
|
||||||
}, -- @setting disable_nuke_research_names The names of the researches to disabled
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -76,17 +76,17 @@ return {
|
|||||||
["space-science-pack"] = 300
|
["space-science-pack"] = 300
|
||||||
},
|
},
|
||||||
["space-age"] = {
|
["space-age"] = {
|
||||||
["logistic-science-pack"] = 2400,
|
["logistic-science-pack"] = 3600,
|
||||||
["military-science-pack"] = 2400,
|
["military-science-pack"] = 3600,
|
||||||
["chemical-science-pack"] = 3000,
|
["chemical-science-pack"] = 4500,
|
||||||
["utility-science-pack"] = 3600,
|
["utility-science-pack"] = 5400,
|
||||||
["production-science-pack"] = 3600,
|
["production-science-pack"] = 5400,
|
||||||
["space-science-pack"] = 3600,
|
["space-science-pack"] = 5400,
|
||||||
["metallurgic-science-pack"] = 4200,
|
["metallurgic-science-pack"] = 6300,
|
||||||
["electromagnetic-science-pack"] = 4200,
|
["electromagnetic-science-pack"] = 6300,
|
||||||
["agricultural-science-pack"] = 4200,
|
["agricultural-science-pack"] = 6300,
|
||||||
["cryogenic-science-pack"] = 4200,
|
["cryogenic-science-pack"] = 6300,
|
||||||
["promethium-science-pack"] = 4800
|
["promethium-science-pack"] = 7200
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
inf_res = {
|
inf_res = {
|
||||||
@@ -159,4 +159,13 @@ return {
|
|||||||
["follower-robot-count-5"] = 5,
|
["follower-robot-count-5"] = 5,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
-- prevent research up to a certain level
|
||||||
|
limit_res = {
|
||||||
|
-- Artillery Range
|
||||||
|
["artillery-shell-range-1"] = 7,
|
||||||
|
-- Artillery Speed
|
||||||
|
["artillery-shell-speed-1"] = 7,
|
||||||
|
-- Atomic Bomb
|
||||||
|
-- ["atomic-bomb"] = 1
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,180 +4,80 @@
|
|||||||
return {
|
return {
|
||||||
spawn_area = { --- @setting spawn_area Settings relating to the whole spawn area
|
spawn_area = { --- @setting spawn_area Settings relating to the whole spawn area
|
||||||
-- Enable predefined patches: 128, else: 32
|
-- Enable predefined patches: 128, else: 32
|
||||||
deconstruction_radius = 20, -- @setting deconstruction_radius All entities within this radius will be removed
|
deconstruction_radius = 12, -- @setting deconstruction_radius All entities within this radius will be removed
|
||||||
tile_radius = 20,
|
deconstruction_tile = 'refined-concrete', --- @setting deconstruction_tile Tile to be placed in the deconstruction radius, use nil for map gen
|
||||||
deconstruction_tile = "concrete", --- @setting deconstruction_tile Tile to be placed in the deconstruction radius, use nil for map gen
|
tile_radius = 14,
|
||||||
landfill_radius = 50, --- @setting pattern_radius All water within this radius will be land filled
|
landfill_radius = 16, --- @setting pattern_radius All water within this radius will be land filled
|
||||||
},
|
},
|
||||||
turrets = { --- @setting turrets Settings relating to adding turrets to spawn
|
turrets = { --- @setting turrets Settings relating to adding turrets to spawn
|
||||||
enabled = true, --- @setting enabled Whether turrets will be added to spawn
|
enabled = true, --- @setting enabled Whether turrets will be added to spawn
|
||||||
ammo_type = "uranium-rounds-magazine", --- @setting ammo_type The ammo type that will be used during refills
|
ammo_type = 'uranium-rounds-magazine', --- @setting ammo_type The ammo type that will be used during refills
|
||||||
refill_time = 60 * 60 * 5, --- @setting refill_time The time in ticks between each refill of the turrets, only change if having lag issues
|
refill_time = 60*60*5, --- @setting refill_time The time in ticks between each refill of the turrets, only change if having lag issues
|
||||||
offset = { x = 0, y = 0 }, --- @setting offset The position offset to apply to turrets
|
offset = {x=0, y=0}, --- @setting offset The position offset to apply to turrets
|
||||||
locations = { --- @setting locations The locations of all turrets, this list can change during runtime
|
locations = { --- @setting locations The locations of all turrets, this list can change during runtime
|
||||||
{ surface = 1, position = { x = -3, y = -3 } },
|
{surface=1, position={x=2, y=2}},
|
||||||
{ surface = 1, position = { x = 3, y = -3 } },
|
{surface=1, position={x=2, y=-2}},
|
||||||
{ surface = 1, position = { x = -3, y = 3 } },
|
{surface=1, position={x=-2, y=2}},
|
||||||
{ surface = 1, position = { x = 3, y = 3 } },
|
{surface=1, position={x=-2, y=-2}},
|
||||||
},
|
}
|
||||||
},
|
},
|
||||||
afk_belts = { --- @setting afk_belts Settings relating to adding afk belts to spawn
|
afk_belts = { --- @setting afk_belts Settings relating to adding afk belts to spawn
|
||||||
enabled = true, --- @setting enabled Whether afk belts will be added to spawn
|
enabled = true, --- @setting enabled Whether afk belts will be added to spawn
|
||||||
belt_type = "transport-belt", --- @setting belt_type The belt to be used as afk belts
|
belt_type = 'transport-belt', --- @setting belt_type The belt to be used as afk belts
|
||||||
protected = true, --- @setting protected Whether belts will be protected from player interaction
|
protected = true, --- @setting protected Whether belts will be protected from player interaction
|
||||||
offset = { x = 0, y = 0 }, --- @setting offset The position offset to apply to afk belts
|
offset = {x=0, y=0}, --- @setting offset The position offset to apply to afk belts
|
||||||
locations = { --- @setting locations The locations to spawn afk belts at, given as the top left position
|
locations={ --- @setting locations The locations to spawn afk belts at, given as the top left position
|
||||||
{ -5, -5 }, { 5, -5 },
|
{4, 4},
|
||||||
{ -5, 5 }, { 5, 5 },
|
{4, -4},
|
||||||
},
|
{-4, 4},
|
||||||
|
{-4, -4}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
water = { --- @setting water Settings relating to adding water to spawn
|
water = { --- @setting water Settings relating to adding water to spawn
|
||||||
enabled = true, --- @setting enabled Whether water tiles will be added to spawn
|
enabled = true, --- @setting enabled Whether water tiles will be added to spawn
|
||||||
water_tile = "water-mud", --- @setting water_tile The tile to be used as the water tile
|
water_tile = 'water-mud', --- @setting water_tile The tile to be used as the water tile
|
||||||
offset = { x = 0, y = 0 }, --- @setting offset The position offset to apply to water tiles
|
offset = {x=0, y=0}, --- @setting offset The position offset to apply to water tiles
|
||||||
locations = { --- @setting locations The location of the water tiles {x,y}
|
locations = { --- @setting locations The location of the water tiles {x,y}
|
||||||
-- Each is a 3x3 with the closest tile to 0,0 removed
|
-- Each is a 3x3 with the closest tile to 0,0 removed
|
||||||
{ 7, 8 }, { 7, 9 }, { 8, 7 }, { 8, 8 }, { 8, 9 }, { 9, 7 }, { 9, 8 }, { 9, 9 }, -- Bottom Right
|
{5, 6}, {5, 7}, {6, 5}, {6, 6}, {6, 7}, {7, 5}, {7, 6}, {7, 7},
|
||||||
{ 7, -9 }, { 7, -10 }, { 8, -8 }, { 8, -9 }, { 8, -10 }, { 9, -8 }, { 9, -9 }, { 9, -10 }, -- Top Right
|
{5, -7}, {5, -8}, {6, -6}, {6, -7}, {6, -8}, {7, -6}, {7, -7}, {7, -8},
|
||||||
{ -8, -9 }, { -8, -10 }, { -9, -8 }, { -9, -9 }, { -9, -10 }, { -10, -8 }, { -10, -9 }, { -10, -10 }, -- Top Left
|
{-6, 6}, {-6, 7}, {-7, 5}, {-7, 6}, {-7, 7}, {-8, 5}, {-8, 6}, {-8, 7},
|
||||||
{ -8, 8 }, { -8, 9 }, { -9, 7 }, { -9, 8 }, { -9, 9 }, { -10, 7 }, { -10, 8 }, { -10, 9 }, -- Bottom Left
|
{-6, -7}, {-6, -8}, {-7, -6}, {-7, -7}, {-7, -8}, {-8, -6}, {-8, -7}, {-8, -8},
|
||||||
},
|
}
|
||||||
},
|
},
|
||||||
entities = { --- @setting entities Settings relating to adding entities to spawn
|
entities = { --- @setting entities Settings relating to adding entities to spawn
|
||||||
enabled = true, --- @setting enabled Whether entities will be added to spawn
|
enabled = true, --- @setting enabled Whether entities will be added to spawn
|
||||||
protected = true, --- @setting protected Whether entities will be protected from player interaction
|
protected = true, --- @setting protected Whether entities will be protected from player interaction
|
||||||
operable = true, --- @setting operable Whether entities can be opened by players, must be true if chests are used
|
operable = true, --- @setting operable Whether entities can be opened by players, must be true if chests are used
|
||||||
offset = { x = 0, y = -2 }, --- @setting offset The position offset to apply to entities
|
offset = {x=0, y=0}, --- @setting offset The position offset to apply to entities
|
||||||
locations = { --- @setting locations The location and names of entities {name,x,y}
|
locations = { --- @setting locations The location and names of entities {name,x,y}
|
||||||
{ "stone-wall", -10, -5 }, { "stone-wall", -10, -4 }, { "stone-wall", -10, -3 }, { "stone-wall", -10, -2 }, { "stone-wall", -10, -1 }, { "stone-wall", -10, 0 }, { "stone-wall", -10, 3 }, { "stone-wall", -10, 4 }, { "stone-wall", -10, 5 },
|
{'steel-chest', 1, 3}, {'steel-chest', 1, 4}, {'steel-chest', 1, 5},
|
||||||
{ "stone-wall", -10, 6 }, { "stone-wall", -10, 7 }, { "stone-wall", -10, 8 }, { "small-lamp", -8, -4 }, { "small-lamp", -8, -1 }, { "iron-chest", -8, 0 }, { "iron-chest", -8, 3 }, { "small-lamp", -8, 4 },
|
{'steel-chest', 3, 1}, {'steel-chest', 4, 1}, {'steel-chest', 5, 1},
|
||||||
{ "small-lamp", -8, 7 }, { "stone-wall", -7, -8 }, { "small-electric-pole", -7, -2 }, { "iron-chest", -7, 0 }, { "iron-chest", -7, 3 }, { "small-electric-pole", -7, 5 }, { "stone-wall", -7, 11 }, { "stone-wall", -6, -8 }, { "small-lamp", -6, -6 },
|
{'steel-chest', 1, -4}, {'steel-chest', 1, -5}, {'steel-chest', 1, -6},
|
||||||
{ "iron-chest", -6, 0 }, { "iron-chest", -6, 3 }, { "small-lamp", -6, 9 }, { "stone-wall", -6, 11 }, { "stone-wall", -5, -8 }, { "small-lamp", -5, -1 }, { "iron-chest", -5, 0 }, { "iron-chest", -5, 3 }, { "small-lamp", -5, 4 }, { "stone-wall", -5, 11 },
|
{'steel-chest', 3, -2}, {'steel-chest', 4, -2}, {'steel-chest', 5, -2},
|
||||||
{ "stone-wall", -4, -8 }, { "small-electric-pole", -4, -5 }, { "iron-chest", -4, 0 }, { "iron-chest", -4, 3 }, { "small-electric-pole", -4, 8 }, { "stone-wall", -4, 11 }, { "stone-wall", -3, -8 }, { "small-lamp", -3, -6 }, { "small-lamp", -3, -3 }, { "small-lamp", -3, 6 },
|
{'steel-chest', -2, 3}, {'steel-chest', -2, 4}, {'steel-chest', -2, 5},
|
||||||
{ "small-lamp", -3, 9 }, { "stone-wall", -3, 11 }, { "stone-wall", -2, -8 }, { "iron-chest", -2, -6 }, { "iron-chest", -2, -5 }, { "iron-chest", -2, -4 }, { "iron-chest", -2, -3 }, { "iron-chest", -2, -2 }, { "iron-chest", -2, 5 }, { "iron-chest", -2, 6 },
|
{'steel-chest', -4, 1}, {'steel-chest', -5, 1}, {'steel-chest', -6, 1},
|
||||||
{ "iron-chest", -2, 7 }, { "iron-chest", -2, 8 }, { "iron-chest", -2, 9 }, { "stone-wall", -2, 11 }, { "stone-wall", 1, -8 }, { "iron-chest", 1, -6 },
|
{'steel-chest', -2, -4}, {'steel-chest', -2, -5}, {'steel-chest', -2, -6},
|
||||||
{ "iron-chest", 1, -5 }, { "iron-chest", 1, -4 }, { "iron-chest", 1, -3 }, { "iron-chest", 1, -2 }, { "iron-chest", 1, 5 }, { "iron-chest", 1, 6 }, { "iron-chest", 1, 7 }, { "iron-chest", 1, 8 }, { "iron-chest", 1, 9 }, { "stone-wall", 1, 11 },
|
{'steel-chest', -4, -2}, {'steel-chest', -5, -2}, {'steel-chest', -6, -2},
|
||||||
{ "stone-wall", 2, -8 }, { "small-lamp", 2, -6 }, { "small-lamp", 2, -3 }, { "small-lamp", 2, 6 }, { "small-lamp", 2, 9 }, { "stone-wall", 2, 11 }, { "stone-wall", 3, -8 }, { "small-electric-pole", 3, -5 }, { "iron-chest", 3, 0 }, { "iron-chest", 3, 3 },
|
{'medium-electric-pole', 2, 3}, {'medium-electric-pole', 2, -4}, {'medium-electric-pole', -3, 3}, {'medium-electric-pole', -3, -4},
|
||||||
{ "small-electric-pole", 3, 8 }, { "stone-wall", 3, 11 }, { "stone-wall", 4, -8 }, { "small-lamp", 4, -1 }, { "iron-chest", 4, 0 }, { "iron-chest", 4, 3 }, { "small-lamp", 4, 4 }, { "stone-wall", 4, 11 }, { "stone-wall", 5, -8 }, { "small-lamp", 5, -6 },
|
{'small-lamp', 2, 4}, {'small-lamp', 2, -5}, {'small-lamp', -3, 4}, {'small-lamp', -3, -5},
|
||||||
{ "iron-chest", 5, 0 }, { "iron-chest", 5, 3 }, { "small-lamp", 5, 9 }, { "stone-wall", 5, 11 }, { "stone-wall", 6, -8 }, { "small-electric-pole", 6, -2 }, { "iron-chest", 6, 0 }, { "iron-chest", 6, 3 }, { "small-electric-pole", 6, 5 }, { "stone-wall", 6, 11 },
|
{'small-lamp', 4, 2}, {'small-lamp', 4, -3}, {'small-lamp', -5, 2}, {'small-lamp', -5, -3},
|
||||||
{ "small-lamp", 7, -4 }, { "small-lamp", 7, -1 }, { "iron-chest", 7, 0 }, { "iron-chest", 7, 3 }, { "small-lamp", 7, 4 }, { "small-lamp", 7, 7 }, { "stone-wall", 9, -5 },
|
{'stone-wall', 1, 7}, {'stone-wall', 2, 7}, {'stone-wall', 3, 7}, {'stone-wall', 4, 7},
|
||||||
{ "stone-wall", 9, -4 }, { "stone-wall", 9, -3 }, { "stone-wall", 9, -2 }, { "stone-wall", 9, -1 }, { "stone-wall", 9, 0 }, { "stone-wall", 9, 3 }, { "stone-wall", 9, 4 }, { "stone-wall", 9, 5 }, { "stone-wall", 9, 6 }, { "stone-wall", 9, 7 },
|
{'stone-wall', 7, 1}, {'stone-wall', 7, 2}, {'stone-wall', 7, 3}, {'stone-wall', 7, 4},
|
||||||
{ "stone-wall", 9, 8 },
|
{'stone-wall', 1, -8}, {'stone-wall', 2, -8}, {'stone-wall', 3, -8}, {'stone-wall', 4, -8},
|
||||||
},
|
{'stone-wall', 7, -2}, {'stone-wall', 7, -3}, {'stone-wall', 7, -4}, {'stone-wall', 7, -5},
|
||||||
|
{'stone-wall', -2, 7}, {'stone-wall', -3, 7}, {'stone-wall', -4, 7}, {'stone-wall', -5, 7},
|
||||||
|
{'stone-wall', -8, 1}, {'stone-wall', -8, 2}, {'stone-wall', -8, 3}, {'stone-wall', -8, 4},
|
||||||
|
{'stone-wall', -2, -8}, {'stone-wall', -3, -8}, {'stone-wall', -4, -8}, {'stone-wall', -5, -8},
|
||||||
|
{'stone-wall', -8, -2}, {'stone-wall', -8, -3}, {'stone-wall', -8, -4}, {'stone-wall', -8, -5},
|
||||||
|
}
|
||||||
},
|
},
|
||||||
pattern = {
|
pattern = {
|
||||||
enabled = true, --- @setting enabled Whether pattern tiles will be added to spawn
|
enabled = false, --- @setting enabled Whether pattern tiles will be added to spawn
|
||||||
pattern_tile = "stone-path", --- @setting pattern_tile The tile to be used for the pattern
|
pattern_tile = 'refined-concrete', --- @setting pattern_tile The tile to be used for the pattern
|
||||||
offset = { x = 0, y = -2 }, --- @setting offset The position offset to apply to pattern tiles
|
offset = {x=0, y=0}, --- @setting offset The position offset to apply to pattern tiles
|
||||||
locations = { --- @setting locations The location of the pattern tiles {x,y}
|
locations = { --- @setting locations The location of the pattern tiles {x,y}
|
||||||
{ -49, -3 }, { -49, -2 }, { -49, 1 }, { -49, 2 }, { -49, 5 }, { -49, 6 }, { -48, -4 }, { -48, -3 }, { -48, -2 }, { -48, 1 }, { -48, 2 }, { -48, 5 }, { -48, 6 }, { -48, 7 }, { -47, -7 }, { -47, -6 }, { -47, -5 }, { -47, -4 }, { -47, -3 }, { -47, -2 }, { -47, 5 }, { -47, 6 }, { -47, 7 }, { -47, 8 }, { -47, 9 }, { -47, 10 }, { -46, -8 }, { -46, -7 }, { -46, -6 }, { -46, -5 },
|
}
|
||||||
{ -46, -4 }, { -46, -3 }, { -46, -2 }, { -46, -1 }, { -46, 4 }, { -46, 5 }, { -46, 6 }, { -46, 7 }, { -46, 8 }, { -46, 9 }, { -46, 10 }, { -46, 11 }, { -45, -17 }, { -45, -16 }, { -45, -15 }, { -45, -14 }, { -45, -13 }, { -45, -12 }, { -45, -9 }, { -45, -8 }, { -45, -7 }, { -45, -2 }, { -45, -1 }, { -45, 0 }, { -45, 1 }, { -45, 2 }, { -45, 3 }, { -45, 4 }, { -45, 5 }, { -45, 10 },
|
|
||||||
{ -45, 11 }, { -45, 12 }, { -45, 15 }, { -45, 16 }, { -45, 17 }, { -45, 18 }, { -45, 19 }, { -45, 20 }, { -44, -18 }, { -44, -17 }, { -44, -16 }, { -44, -15 }, { -44, -14 }, { -44, -13 }, { -44, -12 }, { -44, -9 }, { -44, -8 }, { -44, -1 }, { -44, 0 }, { -44, 1 }, { -44, 2 }, { -44, 3 }, { -44, 4 }, { -44, 11 }, { -44, 12 }, { -44, 15 }, { -44, 16 }, { -44, 17 }, { -44, 18 }, { -44, 19 },
|
|
||||||
{ -44, 20 }, { -44, 21 }, { -43, -19 }, { -43, -18 }, { -43, -17 }, { -43, -1 }, { -43, 0 }, { -43, 1 }, { -43, 2 }, { -43, 3 }, { -43, 4 }, { -43, 20 }, { -43, 21 }, { -43, 22 }, { -42, -19 }, { -42, -18 }, { -42, -1 }, { -42, 0 }, { -42, 1 }, { -42, 2 }, { -42, 3 }, { -42, 4 }, { -42, 21 }, { -42, 22 }, { -41, -25 }, { -41, -24 }, { -41, -19 }, { -41, -18 }, { -41, -13 }, { -41, -12 },
|
|
||||||
{ -41, -11 }, { -41, -10 }, { -41, -5 }, { -41, -4 }, { -41, 7 }, { -41, 8 }, { -41, 13 }, { -41, 14 }, { -41, 15 }, { -41, 16 }, { -41, 21 }, { -41, 22 }, { -41, 27 }, { -41, 28 }, { -40, -26 }, { -40, -25 }, { -40, -24 }, { -40, -20 }, { -40, -19 }, { -40, -18 }, { -40, -13 }, { -40, -12 }, { -40, -11 }, { -40, -10 }, { -40, -5 }, { -40, -4 }, { -40, 7 }, { -40, 8 }, { -40, 13 }, { -40, 14 },
|
|
||||||
{ -40, 15 }, { -40, 16 }, { -40, 21 }, { -40, 22 }, { -40, 23 }, { -40, 27 }, { -40, 28 }, { -40, 29 }, { -39, -27 }, { -39, -26 }, { -39, -25 }, { -39, -24 }, { -39, -21 }, { -39, -20 }, { -39, -19 }, { -39, -13 }, { -39, -12 }, { -39, -5 }, { -39, -4 }, { -39, -3 }, { -39, -2 }, { -39, -1 }, { -39, 0 }, { -39, 1 }, { -39, 2 }, { -39, 3 }, { -39, 4 }, { -39, 5 }, { -39, 6 }, { -39, 7 },
|
|
||||||
{ -39, 8 }, { -39, 15 }, { -39, 16 }, { -39, 22 }, { -39, 23 }, { -39, 24 }, { -39, 27 }, { -39, 28 }, { -39, 29 }, { -39, 30 }, { -38, -27 }, { -38, -26 }, { -38, -25 }, { -38, -24 }, { -38, -21 }, { -38, -20 }, { -38, -13 }, { -38, -12 }, { -38, -5 }, { -38, -4 }, { -38, -3 }, { -38, -2 }, { -38, -1 }, { -38, 0 }, { -38, 1 }, { -38, 2 }, { -38, 3 }, { -38, 4 }, { -38, 5 }, { -38, 6 },
|
|
||||||
{ -38, 7 }, { -38, 8 }, { -38, 15 }, { -38, 16 }, { -38, 23 }, { -38, 24 }, { -38, 27 }, { -38, 28 }, { -38, 29 }, { -38, 30 }, { -37, -17 }, { -37, -16 }, { -37, -13 }, { -37, -12 }, { -37, -11 }, { -37, -10 }, { -37, -4 }, { -37, -3 }, { -37, -2 }, { -37, -1 }, { -37, 0 }, { -37, 3 }, { -37, 4 }, { -37, 5 }, { -37, 6 }, { -37, 7 }, { -37, 13 }, { -37, 14 }, { -37, 15 }, { -37, 16 },
|
|
||||||
{ -37, 19 }, { -37, 20 }, { -36, -17 }, { -36, -16 }, { -36, -13 }, { -36, -12 }, { -36, -11 }, { -36, -10 }, { -36, -9 }, { -36, -3 }, { -36, -2 }, { -36, -1 }, { -36, 0 }, { -36, 3 }, { -36, 4 }, { -36, 5 }, { -36, 6 }, { -36, 12 }, { -36, 13 }, { -36, 14 }, { -36, 15 }, { -36, 16 }, { -36, 19 }, { -36, 20 }, { -35, -29 }, { -35, -28 }, { -35, -23 }, { -35, -22 }, { -35, -17 }, { -35, -16 },
|
|
||||||
{ -35, -12 }, { -35, -11 }, { -35, -10 }, { -35, -9 }, { -35, -8 }, { -35, 11 }, { -35, 12 }, { -35, 13 }, { -35, 14 }, { -35, 15 }, { -35, 19 }, { -35, 20 }, { -35, 25 }, { -35, 26 }, { -35, 31 }, { -35, 32 }, { -34, -30 }, { -34, -29 }, { -34, -28 }, { -34, -23 }, { -34, -22 }, { -34, -17 }, { -34, -16 }, { -34, -15 }, { -34, -11 }, { -34, -10 }, { -34, -9 }, { -34, -8 }, { -34, 11 }, { -34, 12 },
|
|
||||||
{ -34, 13 }, { -34, 14 }, { -34, 18 }, { -34, 19 }, { -34, 20 }, { -34, 25 }, { -34, 26 }, { -34, 31 }, { -34, 32 }, { -34, 33 }, { -33, -31 }, { -33, -30 }, { -33, -29 }, { -33, -28 }, { -33, -23 }, { -33, -22 }, { -33, -16 }, { -33, -15 }, { -33, -14 }, { -33, -5 }, { -33, -4 }, { -33, -1 }, { -33, 0 }, { -33, 3 }, { -33, 4 }, { -33, 7 }, { -33, 8 }, { -33, 17 }, { -33, 18 }, { -33, 19 },
|
|
||||||
{ -33, 25 }, { -33, 26 }, { -33, 31 }, { -33, 32 }, { -33, 33 }, { -33, 34 }, { -32, -32 }, { -32, -31 }, { -32, -30 }, { -32, -29 }, { -32, -28 }, { -32, -27 }, { -32, -23 }, { -32, -22 }, { -32, -21 }, { -32, -15 }, { -32, -14 }, { -32, -6 }, { -32, -5 }, { -32, -4 }, { -32, -1 }, { -32, 0 }, { -32, 3 }, { -32, 4 }, { -32, 7 }, { -32, 8 }, { -32, 9 }, { -32, 17 }, { -32, 18 }, { -32, 24 },
|
|
||||||
{ -32, 25 }, { -32, 26 }, { -32, 30 }, { -32, 31 }, { -32, 32 }, { -32, 33 }, { -32, 34 }, { -32, 35 }, { -31, -33 }, { -31, -32 }, { -31, -31 }, { -31, -30 }, { -31, -29 }, { -31, -28 }, { -31, -27 }, { -31, -26 }, { -31, -22 }, { -31, -21 }, { -31, -20 }, { -31, -19 }, { -31, -18 }, { -31, -11 }, { -31, -10 }, { -31, -9 }, { -31, -8 }, { -31, -7 }, { -31, -6 }, { -31, -5 }, { -31, -1 }, { -31, 0 },
|
|
||||||
{ -31, 1 }, { -31, 2 }, { -31, 3 }, { -31, 4 }, { -31, 8 }, { -31, 9 }, { -31, 10 }, { -31, 11 }, { -31, 12 }, { -31, 13 }, { -31, 14 }, { -31, 21 }, { -31, 22 }, { -31, 23 }, { -31, 24 }, { -31, 25 }, { -31, 29 }, { -31, 30 }, { -31, 31 }, { -31, 32 }, { -31, 33 }, { -31, 34 }, { -31, 35 }, { -31, 36 }, { -30, -33 }, { -30, -32 }, { -30, -31 }, { -30, -30 }, { -30, -29 }, { -30, -28 },
|
|
||||||
{ -30, -27 }, { -30, -26 }, { -30, -21 }, { -30, -20 }, { -30, -19 }, { -30, -18 }, { -30, -11 }, { -30, -10 }, { -30, -9 }, { -30, -8 }, { -30, -7 }, { -30, -6 }, { -30, -1 }, { -30, 0 }, { -30, 1 }, { -30, 2 }, { -30, 3 }, { -30, 4 }, { -30, 9 }, { -30, 10 }, { -30, 11 }, { -30, 12 }, { -30, 13 }, { -30, 14 }, { -30, 21 }, { -30, 22 }, { -30, 23 }, { -30, 24 }, { -30, 29 }, { -30, 30 },
|
|
||||||
{ -30, 31 }, { -30, 32 }, { -30, 33 }, { -30, 34 }, { -30, 35 }, { -30, 36 }, { -29, -37 }, { -29, -36 }, { -29, -30 }, { -29, -29 }, { -29, -28 }, { -29, -27 }, { -29, -26 }, { -29, -15 }, { -29, -14 }, { -29, -10 }, { -29, -9 }, { -29, -8 }, { -29, -7 }, { -29, 10 }, { -29, 11 }, { -29, 12 }, { -29, 13 }, { -29, 17 }, { -29, 18 }, { -29, 29 }, { -29, 30 }, { -29, 31 }, { -29, 32 }, { -29, 33 },
|
|
||||||
{ -29, 39 }, { -29, 40 }, { -28, -38 }, { -28, -37 }, { -28, -36 }, { -28, -29 }, { -28, -28 }, { -28, -27 }, { -28, -26 }, { -28, -16 }, { -28, -15 }, { -28, -14 }, { -28, -9 }, { -28, -8 }, { -28, 11 }, { -28, 12 }, { -28, 17 }, { -28, 18 }, { -28, 19 }, { -28, 29 }, { -28, 30 }, { -28, 31 }, { -28, 32 }, { -28, 39 }, { -28, 40 }, { -28, 41 }, { -27, -39 }, { -27, -38 }, { -27, -37 }, { -27, -36 },
|
|
||||||
{ -27, -23 }, { -27, -22 }, { -27, -19 }, { -27, -18 }, { -27, -17 }, { -27, -16 }, { -27, -15 }, { -27, -5 }, { -27, -4 }, { -27, -1 }, { -27, 0 }, { -27, 1 }, { -27, 2 }, { -27, 3 }, { -27, 4 }, { -27, 7 }, { -27, 8 }, { -27, 18 }, { -27, 19 }, { -27, 20 }, { -27, 21 }, { -27, 22 }, { -27, 25 }, { -27, 26 }, { -27, 39 }, { -27, 40 }, { -27, 41 }, { -27, 42 }, { -26, -39 }, { -26, -38 },
|
|
||||||
{ -26, -37 }, { -26, -36 }, { -26, -24 }, { -26, -23 }, { -26, -22 }, { -26, -19 }, { -26, -18 }, { -26, -17 }, { -26, -16 }, { -26, -6 }, { -26, -5 }, { -26, -4 }, { -26, -1 }, { -26, 0 }, { -26, 1 }, { -26, 2 }, { -26, 3 }, { -26, 4 }, { -26, 7 }, { -26, 8 }, { -26, 9 }, { -26, 19 }, { -26, 20 }, { -26, 21 }, { -26, 22 }, { -26, 25 }, { -26, 26 }, { -26, 27 }, { -26, 39 }, { -26, 40 },
|
|
||||||
{ -26, 41 }, { -26, 42 }, { -25, -33 }, { -25, -32 }, { -25, -31 }, { -25, -30 }, { -25, -25 }, { -25, -24 }, { -25, -23 }, { -25, -22 }, { -25, -19 }, { -25, -18 }, { -25, -17 }, { -25, -9 }, { -25, -8 }, { -25, -7 }, { -25, -6 }, { -25, -5 }, { -25, -4 }, { -25, -1 }, { -25, 0 }, { -25, 1 }, { -25, 2 }, { -25, 3 }, { -25, 4 }, { -25, 7 }, { -25, 8 }, { -25, 9 }, { -25, 10 }, { -25, 11 },
|
|
||||||
{ -25, 12 }, { -25, 20 }, { -25, 21 }, { -25, 22 }, { -25, 25 }, { -25, 26 }, { -25, 27 }, { -25, 28 }, { -25, 33 }, { -25, 34 }, { -25, 35 }, { -25, 36 }, { -24, -33 }, { -24, -32 }, { -24, -31 }, { -24, -30 }, { -24, -29 }, { -24, -25 }, { -24, -24 }, { -24, -23 }, { -24, -22 }, { -24, -19 }, { -24, -18 }, { -24, -9 }, { -24, -8 }, { -24, -7 }, { -24, -6 }, { -24, -5 }, { -24, -4 }, { -24, -1 },
|
|
||||||
{ -24, 0 }, { -24, 1 }, { -24, 2 }, { -24, 3 }, { -24, 4 }, { -24, 7 }, { -24, 8 }, { -24, 9 }, { -24, 10 }, { -24, 11 }, { -24, 12 }, { -24, 21 }, { -24, 22 }, { -24, 25 }, { -24, 26 }, { -24, 27 }, { -24, 28 }, { -24, 32 }, { -24, 33 }, { -24, 34 }, { -24, 35 }, { -24, 36 }, { -23, -37 }, { -23, -36 }, { -23, -30 }, { -23, -29 }, { -23, -28 }, { -23, -19 }, { -23, -18 }, { -23, -15 },
|
|
||||||
{ -23, -14 }, { -23, -9 }, { -23, -8 }, { -23, -7 }, { -23, -6 }, { -23, -5 }, { -23, 0 }, { -23, 1 }, { -23, 2 }, { -23, 3 }, { -23, 8 }, { -23, 9 }, { -23, 10 }, { -23, 11 }, { -23, 12 }, { -23, 17 }, { -23, 18 }, { -23, 21 }, { -23, 22 }, { -23, 31 }, { -23, 32 }, { -23, 33 }, { -23, 39 }, { -23, 40 }, { -22, -38 }, { -22, -37 }, { -22, -36 }, { -22, -29 }, { -22, -28 }, { -22, -19 },
|
|
||||||
{ -22, -18 }, { -22, -15 }, { -22, -14 }, { -22, -13 }, { -22, -9 }, { -22, -8 }, { -22, -7 }, { -22, -6 }, { -22, 1 }, { -22, 2 }, { -22, 9 }, { -22, 10 }, { -22, 11 }, { -22, 12 }, { -22, 16 }, { -22, 17 }, { -22, 18 }, { -22, 21 }, { -22, 22 }, { -22, 31 }, { -22, 32 }, { -22, 39 }, { -22, 40 }, { -22, 41 }, { -21, -41 }, { -21, -40 }, { -21, -39 }, { -21, -38 }, { -21, -37 }, { -21, -29 },
|
|
||||||
{ -21, -28 }, { -21, -25 }, { -21, -24 }, { -21, -23 }, { -21, -22 }, { -21, -21 }, { -21, -20 }, { -21, -19 }, { -21, -18 }, { -21, -15 }, { -21, -14 }, { -21, -13 }, { -21, -12 }, { -21, -3 }, { -21, -2 }, { -21, 5 }, { -21, 6 }, { -21, 15 }, { -21, 16 }, { -21, 17 }, { -21, 18 }, { -21, 21 }, { -21, 22 }, { -21, 23 }, { -21, 24 }, { -21, 25 }, { -21, 26 }, { -21, 27 }, { -21, 28 }, { -21, 31 },
|
|
||||||
{ -21, 32 }, { -21, 40 }, { -21, 41 }, { -21, 42 }, { -21, 43 }, { -21, 44 }, { -20, -42 }, { -20, -41 }, { -20, -40 }, { -20, -39 }, { -20, -38 }, { -20, -29 }, { -20, -28 }, { -20, -25 }, { -20, -24 }, { -20, -23 }, { -20, -22 }, { -20, -21 }, { -20, -20 }, { -20, -19 }, { -20, -18 }, { -20, -15 }, { -20, -14 }, { -20, -13 }, { -20, -12 }, { -20, -3 }, { -20, -2 }, { -20, -1 }, { -20, 4 }, { -20, 5 },
|
|
||||||
{ -20, 6 }, { -20, 15 }, { -20, 16 }, { -20, 17 }, { -20, 18 }, { -20, 21 }, { -20, 22 }, { -20, 23 }, { -20, 24 }, { -20, 25 }, { -20, 26 }, { -20, 27 }, { -20, 28 }, { -20, 31 }, { -20, 32 }, { -20, 41 }, { -20, 42 }, { -20, 43 }, { -20, 44 }, { -20, 45 }, { -19, -43 }, { -19, -42 }, { -19, -41 }, { -19, -35 }, { -19, -34 }, { -19, -33 }, { -19, -32 }, { -19, -25 }, { -19, -24 }, { -19, -23 },
|
|
||||||
{ -19, -15 }, { -19, -14 }, { -19, -13 }, { -19, -9 }, { -19, -8 }, { -19, -7 }, { -19, -6 }, { -19, -2 }, { -19, -1 }, { -19, 0 }, { -19, 1 }, { -19, 2 }, { -19, 3 }, { -19, 4 }, { -19, 5 }, { -19, 9 }, { -19, 10 }, { -19, 11 }, { -19, 12 }, { -19, 16 }, { -19, 17 }, { -19, 18 }, { -19, 26 }, { -19, 27 }, { -19, 28 }, { -19, 35 }, { -19, 36 }, { -19, 37 }, { -19, 38 }, { -19, 44 },
|
|
||||||
{ -19, 45 }, { -19, 46 }, { -18, -43 }, { -18, -42 }, { -18, -35 }, { -18, -34 }, { -18, -33 }, { -18, -32 }, { -18, -31 }, { -18, -26 }, { -18, -25 }, { -18, -24 }, { -18, -15 }, { -18, -14 }, { -18, -10 }, { -18, -9 }, { -18, -8 }, { -18, -7 }, { -18, -6 }, { -18, -1 }, { -18, 0 }, { -18, 1 }, { -18, 2 }, { -18, 3 }, { -18, 4 }, { -18, 9 }, { -18, 10 }, { -18, 11 }, { -18, 12 }, { -18, 13 },
|
|
||||||
{ -18, 17 }, { -18, 18 }, { -18, 27 }, { -18, 28 }, { -18, 29 }, { -18, 34 }, { -18, 35 }, { -18, 36 }, { -18, 37 }, { -18, 38 }, { -18, 45 }, { -18, 46 }, { -17, -43 }, { -17, -42 }, { -17, -32 }, { -17, -31 }, { -17, -30 }, { -17, -27 }, { -17, -26 }, { -17, -25 }, { -17, -21 }, { -17, -20 }, { -17, -19 }, { -17, -18 }, { -17, -17 }, { -17, -16 }, { -17, -15 }, { -17, -14 }, { -17, -11 }, { -17, -10 },
|
|
||||||
{ -17, -9 }, { -17, -8 }, { -17, -7 }, { -17, -6 }, { -17, 0 }, { -17, 1 }, { -17, 2 }, { -17, 3 }, { -17, 9 }, { -17, 10 }, { -17, 11 }, { -17, 12 }, { -17, 13 }, { -17, 14 }, { -17, 17 }, { -17, 18 }, { -17, 19 }, { -17, 20 }, { -17, 21 }, { -17, 22 }, { -17, 23 }, { -17, 24 }, { -17, 28 }, { -17, 29 }, { -17, 30 }, { -17, 33 }, { -17, 34 }, { -17, 35 }, { -17, 45 }, { -17, 46 },
|
|
||||||
{ -16, -43 }, { -16, -42 }, { -16, -31 }, { -16, -30 }, { -16, -27 }, { -16, -26 }, { -16, -21 }, { -16, -20 }, { -16, -19 }, { -16, -18 }, { -16, -17 }, { -16, -16 }, { -16, -15 }, { -16, -14 }, { -16, -11 }, { -16, -10 }, { -16, -9 }, { -16, -8 }, { -16, -7 }, { -16, -6 }, { -16, 1 }, { -16, 2 }, { -16, 9 }, { -16, 10 }, { -16, 11 }, { -16, 12 }, { -16, 13 }, { -16, 14 }, { -16, 17 }, { -16, 18 },
|
|
||||||
{ -16, 19 }, { -16, 20 }, { -16, 21 }, { -16, 22 }, { -16, 23 }, { -16, 24 }, { -16, 29 }, { -16, 30 }, { -16, 33 }, { -16, 34 }, { -16, 45 }, { -16, 46 }, { -15, -43 }, { -15, -42 }, { -15, -39 }, { -15, -38 }, { -15, -37 }, { -15, -36 }, { -15, -35 }, { -15, -34 }, { -15, -20 }, { -15, -19 }, { -15, -18 }, { -15, -17 }, { -15, -10 }, { -15, -9 }, { -15, -8 }, { -15, -7 }, { -15, -3 }, { -15, -2 },
|
|
||||||
{ -15, 1 }, { -15, 2 }, { -15, 5 }, { -15, 6 }, { -15, 10 }, { -15, 11 }, { -15, 12 }, { -15, 13 }, { -15, 20 }, { -15, 21 }, { -15, 22 }, { -15, 23 }, { -15, 37 }, { -15, 38 }, { -15, 39 }, { -15, 40 }, { -15, 41 }, { -15, 42 }, { -15, 45 }, { -15, 46 }, { -14, -43 }, { -14, -42 }, { -14, -39 }, { -14, -38 }, { -14, -37 }, { -14, -36 }, { -14, -35 }, { -14, -34 }, { -14, -33 }, { -14, -19 },
|
|
||||||
{ -14, -18 }, { -14, -9 }, { -14, -8 }, { -14, -4 }, { -14, -3 }, { -14, -2 }, { -14, 1 }, { -14, 2 }, { -14, 5 }, { -14, 6 }, { -14, 7 }, { -14, 11 }, { -14, 12 }, { -14, 21 }, { -14, 22 }, { -14, 36 }, { -14, 37 }, { -14, 38 }, { -14, 39 }, { -14, 40 }, { -14, 41 }, { -14, 42 }, { -14, 45 }, { -14, 46 }, { -13, -39 }, { -13, -38 }, { -13, -35 }, { -13, -34 }, { -13, -33 }, { -13, -32 },
|
|
||||||
{ -13, -29 }, { -13, -28 }, { -13, -15 }, { -13, -14 }, { -13, -5 }, { -13, -4 }, { -13, -3 }, { -13, -2 }, { -13, 5 }, { -13, 6 }, { -13, 7 }, { -13, 8 }, { -13, 17 }, { -13, 18 }, { -13, 31 }, { -13, 32 }, { -13, 35 }, { -13, 36 }, { -13, 37 }, { -13, 38 }, { -13, 41 }, { -13, 42 }, { -12, -39 }, { -12, -38 }, { -12, -35 }, { -12, -34 }, { -12, -33 }, { -12, -32 }, { -12, -29 }, { -12, -28 },
|
|
||||||
{ -12, -27 }, { -12, -16 }, { -12, -15 }, { -12, -14 }, { -12, -13 }, { -12, -5 }, { -12, -4 }, { -12, -3 }, { -12, -2 }, { -12, 5 }, { -12, 6 }, { -12, 7 }, { -12, 8 }, { -12, 16 }, { -12, 17 }, { -12, 18 }, { -12, 19 }, { -12, 30 }, { -12, 31 }, { -12, 32 }, { -12, 35 }, { -12, 36 }, { -12, 37 }, { -12, 38 }, { -12, 41 }, { -12, 42 }, { -11, -43 }, { -11, -42 }, { -11, -34 }, { -11, -33 },
|
|
||||||
{ -11, -32 }, { -11, -29 }, { -11, -28 }, { -11, -27 }, { -11, -26 }, { -11, -23 }, { -11, -22 }, { -11, -21 }, { -11, -20 }, { -11, -17 }, { -11, -16 }, { -11, -15 }, { -11, -14 }, { -11, -13 }, { -11, -12 }, { -11, -9 }, { -11, -8 }, { -11, 1 }, { -11, 2 }, { -11, 11 }, { -11, 12 }, { -11, 15 }, { -11, 16 }, { -11, 17 }, { -11, 18 }, { -11, 19 }, { -11, 20 }, { -11, 23 }, { -11, 24 }, { -11, 25 },
|
|
||||||
{ -11, 26 }, { -11, 29 }, { -11, 30 }, { -11, 31 }, { -11, 32 }, { -11, 35 }, { -11, 36 }, { -11, 37 }, { -11, 45 }, { -11, 46 }, { -10, -44 }, { -10, -43 }, { -10, -42 }, { -10, -33 }, { -10, -32 }, { -10, -29 }, { -10, -28 }, { -10, -27 }, { -10, -26 }, { -10, -23 }, { -10, -22 }, { -10, -21 }, { -10, -20 }, { -10, -17 }, { -10, -16 }, { -10, -15 }, { -10, -14 }, { -10, -13 }, { -10, -12 }, { -10, -9 },
|
|
||||||
{ -10, -8 }, { -10, -7 }, { -10, 0 }, { -10, 1 }, { -10, 2 }, { -10, 3 }, { -10, 10 }, { -10, 11 }, { -10, 12 }, { -10, 15 }, { -10, 16 }, { -10, 17 }, { -10, 18 }, { -10, 19 }, { -10, 20 }, { -10, 23 }, { -10, 24 }, { -10, 25 }, { -10, 26 }, { -10, 29 }, { -10, 30 }, { -10, 31 }, { -10, 32 }, { -10, 35 }, { -10, 36 }, { -10, 45 }, { -10, 46 }, { -10, 47 }, { -9, -45 }, { -9, -44 },
|
|
||||||
{ -9, -43 }, { -9, -29 }, { -9, -28 }, { -9, -27 }, { -9, -23 }, { -9, -22 }, { -9, -21 }, { -9, -20 }, { -9, -17 }, { -9, -16 }, { -9, -15 }, { -9, -14 }, { -9, -13 }, { -9, -8 }, { -9, -7 }, { -9, -6 }, { -9, -5 }, { -9, -1 }, { -9, 0 }, { -9, 1 }, { -9, 2 }, { -9, 3 }, { -9, 4 }, { -9, 8 }, { -9, 9 }, { -9, 10 }, { -9, 11 }, { -9, 16 }, { -9, 17 }, { -9, 18 },
|
|
||||||
{ -9, 19 }, { -9, 20 }, { -9, 23 }, { -9, 24 }, { -9, 25 }, { -9, 26 }, { -9, 30 }, { -9, 31 }, { -9, 32 }, { -9, 46 }, { -9, 47 }, { -9, 48 }, { -8, -45 }, { -8, -44 }, { -8, -30 }, { -8, -29 }, { -8, -28 }, { -8, -24 }, { -8, -23 }, { -8, -22 }, { -8, -21 }, { -8, -20 }, { -8, -17 }, { -8, -16 }, { -8, -15 }, { -8, -14 }, { -8, -7 }, { -8, -6 }, { -8, -5 }, { -8, -4 },
|
|
||||||
{ -8, -1 }, { -8, 0 }, { -8, 1 }, { -8, 2 }, { -8, 3 }, { -8, 4 }, { -8, 7 }, { -8, 8 }, { -8, 9 }, { -8, 10 }, { -8, 17 }, { -8, 18 }, { -8, 19 }, { -8, 20 }, { -8, 23 }, { -8, 24 }, { -8, 25 }, { -8, 26 }, { -8, 27 }, { -8, 31 }, { -8, 32 }, { -8, 33 }, { -8, 47 }, { -8, 48 }, { -7, -45 }, { -7, -44 }, { -7, -39 }, { -7, -38 }, { -7, -37 }, { -7, -36 },
|
|
||||||
{ -7, -31 }, { -7, -30 }, { -7, -29 }, { -7, -25 }, { -7, -24 }, { -7, -23 }, { -7, -22 }, { -7, -21 }, { -7, -11 }, { -7, -10 }, { -7, -7 }, { -7, -6 }, { -7, -5 }, { -7, -4 }, { -7, 7 }, { -7, 8 }, { -7, 9 }, { -7, 10 }, { -7, 13 }, { -7, 14 }, { -7, 24 }, { -7, 25 }, { -7, 26 }, { -7, 27 }, { -7, 28 }, { -7, 32 }, { -7, 33 }, { -7, 34 }, { -7, 39 }, { -7, 40 },
|
|
||||||
{ -7, 41 }, { -7, 42 }, { -7, 47 }, { -7, 48 }, { -6, -46 }, { -6, -45 }, { -6, -44 }, { -6, -39 }, { -6, -38 }, { -6, -37 }, { -6, -36 }, { -6, -35 }, { -6, -31 }, { -6, -30 }, { -6, -25 }, { -6, -24 }, { -6, -23 }, { -6, -22 }, { -6, -12 }, { -6, -11 }, { -6, -10 }, { -6, -6 }, { -6, -5 }, { -6, 8 }, { -6, 9 }, { -6, 13 }, { -6, 14 }, { -6, 15 }, { -6, 25 }, { -6, 26 },
|
|
||||||
{ -6, 27 }, { -6, 28 }, { -6, 33 }, { -6, 34 }, { -6, 38 }, { -6, 39 }, { -6, 40 }, { -6, 41 }, { -6, 42 }, { -6, 47 }, { -6, 48 }, { -6, 49 }, { -5, -47 }, { -5, -46 }, { -5, -45 }, { -5, -44 }, { -5, -37 }, { -5, -36 }, { -5, -35 }, { -5, -34 }, { -5, -19 }, { -5, -18 }, { -5, -13 }, { -5, -12 }, { -5, -11 }, { -5, -10 }, { -5, -1 }, { -5, 0 }, { -5, 1 }, { -5, 2 },
|
|
||||||
{ -5, 3 }, { -5, 4 }, { -5, 13 }, { -5, 14 }, { -5, 15 }, { -5, 16 }, { -5, 21 }, { -5, 22 }, { -5, 37 }, { -5, 38 }, { -5, 39 }, { -5, 40 }, { -5, 47 }, { -5, 48 }, { -5, 49 }, { -5, 50 }, { -4, -47 }, { -4, -46 }, { -4, -45 }, { -4, -44 }, { -4, -43 }, { -4, -37 }, { -4, -36 }, { -4, -35 }, { -4, -34 }, { -4, -19 }, { -4, -18 }, { -4, -17 }, { -4, -13 }, { -4, -12 },
|
|
||||||
{ -4, -11 }, { -4, -10 }, { -4, -2 }, { -4, -1 }, { -4, 0 }, { -4, 1 }, { -4, 2 }, { -4, 3 }, { -4, 4 }, { -4, 5 }, { -4, 13 }, { -4, 14 }, { -4, 15 }, { -4, 16 }, { -4, 20 }, { -4, 21 }, { -4, 22 }, { -4, 37 }, { -4, 38 }, { -4, 39 }, { -4, 40 }, { -4, 46 }, { -4, 47 }, { -4, 48 }, { -4, 49 }, { -4, 50 }, { -3, -44 }, { -3, -43 }, { -3, -42 }, { -3, -41 },
|
|
||||||
{ -3, -40 }, { -3, -37 }, { -3, -36 }, { -3, -35 }, { -3, -34 }, { -3, -31 }, { -3, -30 }, { -3, -29 }, { -3, -28 }, { -3, -25 }, { -3, -24 }, { -3, -23 }, { -3, -22 }, { -3, -18 }, { -3, -17 }, { -3, -16 }, { -3, -7 }, { -3, -6 }, { -3, -3 }, { -3, -2 }, { -3, -1 }, { -3, 0 }, { -3, 3 }, { -3, 4 }, { -3, 5 }, { -3, 6 }, { -3, 9 }, { -3, 10 }, { -3, 19 }, { -3, 20 },
|
|
||||||
{ -3, 21 }, { -3, 25 }, { -3, 26 }, { -3, 27 }, { -3, 28 }, { -3, 31 }, { -3, 32 }, { -3, 33 }, { -3, 34 }, { -3, 37 }, { -3, 38 }, { -3, 39 }, { -3, 40 }, { -3, 43 }, { -3, 44 }, { -3, 45 }, { -3, 46 }, { -3, 47 }, { -2, -43 }, { -2, -42 }, { -2, -41 }, { -2, -40 }, { -2, -37 }, { -2, -36 }, { -2, -35 }, { -2, -34 }, { -2, -31 }, { -2, -30 }, { -2, -29 }, { -2, -28 },
|
|
||||||
{ -2, -25 }, { -2, -24 }, { -2, -23 }, { -2, -22 }, { -2, -21 }, { -2, -17 }, { -2, -16 }, { -2, -15 }, { -2, -8 }, { -2, -7 }, { -2, -6 }, { -2, -3 }, { -2, -2 }, { -2, -1 }, { -2, 0 }, { -2, 3 }, { -2, 4 }, { -2, 5 }, { -2, 6 }, { -2, 9 }, { -2, 10 }, { -2, 11 }, { -2, 18 }, { -2, 19 }, { -2, 20 }, { -2, 24 }, { -2, 25 }, { -2, 26 }, { -2, 27 }, { -2, 28 },
|
|
||||||
{ -2, 31 }, { -2, 32 }, { -2, 33 }, { -2, 34 }, { -2, 37 }, { -2, 38 }, { -2, 39 }, { -2, 40 }, { -2, 43 }, { -2, 44 }, { -2, 45 }, { -2, 46 }, { -1, -47 }, { -1, -46 }, { -1, -43 }, { -1, -42 }, { -1, -41 }, { -1, -40 }, { -1, -37 }, { -1, -36 }, { -1, -29 }, { -1, -28 }, { -1, -25 }, { -1, -24 }, { -1, -23 }, { -1, -22 }, { -1, -21 }, { -1, -20 }, { -1, -17 }, { -1, -16 },
|
|
||||||
{ -1, -15 }, { -1, -14 }, { -1, -13 }, { -1, -12 }, { -1, -9 }, { -1, -8 }, { -1, -7 }, { -1, -6 }, { -1, -3 }, { -1, -2 }, { -1, 5 }, { -1, 6 }, { -1, 9 }, { -1, 10 }, { -1, 11 }, { -1, 12 }, { -1, 15 }, { -1, 16 }, { -1, 17 }, { -1, 18 }, { -1, 19 }, { -1, 20 }, { -1, 23 }, { -1, 24 }, { -1, 25 }, { -1, 26 }, { -1, 27 }, { -1, 28 }, { -1, 31 }, { -1, 32 },
|
|
||||||
{ -1, 39 }, { -1, 40 }, { -1, 43 }, { -1, 44 }, { -1, 45 }, { -1, 46 }, { -1, 49 }, { -1, 50 }, { 0, -47 }, { 0, -46 }, { 0, -43 }, { 0, -42 }, { 0, -41 }, { 0, -40 }, { 0, -37 }, { 0, -36 }, { 0, -29 }, { 0, -28 }, { 0, -25 }, { 0, -24 }, { 0, -23 }, { 0, -22 }, { 0, -21 }, { 0, -20 }, { 0, -17 }, { 0, -16 }, { 0, -15 }, { 0, -14 }, { 0, -13 }, { 0, -12 },
|
|
||||||
{ 0, -9 }, { 0, -8 }, { 0, -7 }, { 0, -6 }, { 0, -3 }, { 0, -2 }, { 0, 5 }, { 0, 6 }, { 0, 9 }, { 0, 10 }, { 0, 11 }, { 0, 12 }, { 0, 15 }, { 0, 16 }, { 0, 17 }, { 0, 18 }, { 0, 19 }, { 0, 20 }, { 0, 23 }, { 0, 24 }, { 0, 25 }, { 0, 26 }, { 0, 27 }, { 0, 28 }, { 0, 31 }, { 0, 32 }, { 0, 39 }, { 0, 40 }, { 0, 43 }, { 0, 44 },
|
|
||||||
{ 0, 45 }, { 0, 46 }, { 0, 49 }, { 0, 50 }, { 1, -43 }, { 1, -42 }, { 1, -41 }, { 1, -40 }, { 1, -37 }, { 1, -36 }, { 1, -35 }, { 1, -34 }, { 1, -31 }, { 1, -30 }, { 1, -29 }, { 1, -28 }, { 1, -25 }, { 1, -24 }, { 1, -23 }, { 1, -22 }, { 1, -21 }, { 1, -17 }, { 1, -16 }, { 1, -15 }, { 1, -8 }, { 1, -7 }, { 1, -6 }, { 1, -3 }, { 1, -2 }, { 1, -1 },
|
|
||||||
{ 1, 0 }, { 1, 3 }, { 1, 4 }, { 1, 5 }, { 1, 6 }, { 1, 9 }, { 1, 10 }, { 1, 11 }, { 1, 18 }, { 1, 19 }, { 1, 20 }, { 1, 24 }, { 1, 25 }, { 1, 26 }, { 1, 27 }, { 1, 28 }, { 1, 31 }, { 1, 32 }, { 1, 33 }, { 1, 34 }, { 1, 37 }, { 1, 38 }, { 1, 39 }, { 1, 40 }, { 1, 43 }, { 1, 44 }, { 1, 45 }, { 1, 46 }, { 2, -44 }, { 2, -43 },
|
|
||||||
{ 2, -42 }, { 2, -41 }, { 2, -40 }, { 2, -37 }, { 2, -36 }, { 2, -35 }, { 2, -34 }, { 2, -31 }, { 2, -30 }, { 2, -29 }, { 2, -28 }, { 2, -25 }, { 2, -24 }, { 2, -23 }, { 2, -22 }, { 2, -18 }, { 2, -17 }, { 2, -16 }, { 2, -7 }, { 2, -6 }, { 2, -3 }, { 2, -2 }, { 2, -1 }, { 2, 0 }, { 2, 3 }, { 2, 4 }, { 2, 5 }, { 2, 6 }, { 2, 9 }, { 2, 10 },
|
|
||||||
{ 2, 19 }, { 2, 20 }, { 2, 21 }, { 2, 25 }, { 2, 26 }, { 2, 27 }, { 2, 28 }, { 2, 31 }, { 2, 32 }, { 2, 33 }, { 2, 34 }, { 2, 37 }, { 2, 38 }, { 2, 39 }, { 2, 40 }, { 2, 43 }, { 2, 44 }, { 2, 45 }, { 2, 46 }, { 2, 47 }, { 3, -47 }, { 3, -46 }, { 3, -45 }, { 3, -44 }, { 3, -43 }, { 3, -37 }, { 3, -36 }, { 3, -35 }, { 3, -34 }, { 3, -19 },
|
|
||||||
{ 3, -18 }, { 3, -17 }, { 3, -13 }, { 3, -12 }, { 3, -11 }, { 3, -10 }, { 3, -2 }, { 3, -1 }, { 3, 0 }, { 3, 1 }, { 3, 2 }, { 3, 3 }, { 3, 4 }, { 3, 5 }, { 3, 13 }, { 3, 14 }, { 3, 15 }, { 3, 16 }, { 3, 20 }, { 3, 21 }, { 3, 22 }, { 3, 37 }, { 3, 38 }, { 3, 39 }, { 3, 40 }, { 3, 46 }, { 3, 47 }, { 3, 48 }, { 3, 49 }, { 3, 50 },
|
|
||||||
{ 4, -47 }, { 4, -46 }, { 4, -45 }, { 4, -44 }, { 4, -37 }, { 4, -36 }, { 4, -35 }, { 4, -34 }, { 4, -19 }, { 4, -18 }, { 4, -13 }, { 4, -12 }, { 4, -11 }, { 4, -10 }, { 4, -1 }, { 4, 0 }, { 4, 1 }, { 4, 2 }, { 4, 3 }, { 4, 4 }, { 4, 13 }, { 4, 14 }, { 4, 15 }, { 4, 16 }, { 4, 21 }, { 4, 22 }, { 4, 37 }, { 4, 38 }, { 4, 39 }, { 4, 40 },
|
|
||||||
{ 4, 47 }, { 4, 48 }, { 4, 49 }, { 4, 50 }, { 5, -46 }, { 5, -45 }, { 5, -44 }, { 5, -39 }, { 5, -38 }, { 5, -37 }, { 5, -36 }, { 5, -35 }, { 5, -31 }, { 5, -30 }, { 5, -25 }, { 5, -24 }, { 5, -23 }, { 5, -22 }, { 5, -12 }, { 5, -11 }, { 5, -10 }, { 5, -6 }, { 5, -5 }, { 5, 8 }, { 5, 9 }, { 5, 13 }, { 5, 14 }, { 5, 15 }, { 5, 25 }, { 5, 26 },
|
|
||||||
{ 5, 27 }, { 5, 28 }, { 5, 33 }, { 5, 34 }, { 5, 38 }, { 5, 39 }, { 5, 40 }, { 5, 41 }, { 5, 42 }, { 5, 47 }, { 5, 48 }, { 5, 49 }, { 6, -45 }, { 6, -44 }, { 6, -39 }, { 6, -38 }, { 6, -37 }, { 6, -36 }, { 6, -31 }, { 6, -30 }, { 6, -29 }, { 6, -25 }, { 6, -24 }, { 6, -23 }, { 6, -22 }, { 6, -21 }, { 6, -11 }, { 6, -10 }, { 6, -7 }, { 6, -6 },
|
|
||||||
{ 6, -5 }, { 6, -4 }, { 6, 7 }, { 6, 8 }, { 6, 9 }, { 6, 10 }, { 6, 13 }, { 6, 14 }, { 6, 24 }, { 6, 25 }, { 6, 26 }, { 6, 27 }, { 6, 28 }, { 6, 32 }, { 6, 33 }, { 6, 34 }, { 6, 39 }, { 6, 40 }, { 6, 41 }, { 6, 42 }, { 6, 47 }, { 6, 48 }, { 7, -45 }, { 7, -44 }, { 7, -30 }, { 7, -29 }, { 7, -28 }, { 7, -24 }, { 7, -23 }, { 7, -22 },
|
|
||||||
{ 7, -21 }, { 7, -20 }, { 7, -17 }, { 7, -16 }, { 7, -15 }, { 7, -14 }, { 7, -7 }, { 7, -6 }, { 7, -5 }, { 7, -4 }, { 7, -1 }, { 7, 0 }, { 7, 1 }, { 7, 2 }, { 7, 3 }, { 7, 4 }, { 7, 7 }, { 7, 8 }, { 7, 9 }, { 7, 10 }, { 7, 17 }, { 7, 18 }, { 7, 19 }, { 7, 20 }, { 7, 23 }, { 7, 24 }, { 7, 25 }, { 7, 26 }, { 7, 27 }, { 7, 31 },
|
|
||||||
{ 7, 32 }, { 7, 33 }, { 7, 47 }, { 7, 48 }, { 8, -45 }, { 8, -44 }, { 8, -43 }, { 8, -29 }, { 8, -28 }, { 8, -27 }, { 8, -23 }, { 8, -22 }, { 8, -21 }, { 8, -20 }, { 8, -17 }, { 8, -16 }, { 8, -15 }, { 8, -14 }, { 8, -13 }, { 8, -8 }, { 8, -7 }, { 8, -6 }, { 8, -5 }, { 8, -1 }, { 8, 0 }, { 8, 1 }, { 8, 2 }, { 8, 3 }, { 8, 4 }, { 8, 8 },
|
|
||||||
{ 8, 9 }, { 8, 10 }, { 8, 11 }, { 8, 16 }, { 8, 17 }, { 8, 18 }, { 8, 19 }, { 8, 20 }, { 8, 23 }, { 8, 24 }, { 8, 25 }, { 8, 26 }, { 8, 30 }, { 8, 31 }, { 8, 32 }, { 8, 46 }, { 8, 47 }, { 8, 48 }, { 9, -44 }, { 9, -43 }, { 9, -42 }, { 9, -33 }, { 9, -32 }, { 9, -29 }, { 9, -28 }, { 9, -27 }, { 9, -26 }, { 9, -23 }, { 9, -22 }, { 9, -21 },
|
|
||||||
{ 9, -20 }, { 9, -17 }, { 9, -16 }, { 9, -15 }, { 9, -14 }, { 9, -13 }, { 9, -12 }, { 9, -9 }, { 9, -8 }, { 9, -7 }, { 9, 0 }, { 9, 1 }, { 9, 2 }, { 9, 3 }, { 9, 10 }, { 9, 11 }, { 9, 12 }, { 9, 15 }, { 9, 16 }, { 9, 17 }, { 9, 18 }, { 9, 19 }, { 9, 20 }, { 9, 23 }, { 9, 24 }, { 9, 25 }, { 9, 26 }, { 9, 29 }, { 9, 30 }, { 9, 31 },
|
|
||||||
{ 9, 32 }, { 9, 35 }, { 9, 36 }, { 9, 45 }, { 9, 46 }, { 9, 47 }, { 10, -43 }, { 10, -42 }, { 10, -34 }, { 10, -33 }, { 10, -32 }, { 10, -29 }, { 10, -28 }, { 10, -27 }, { 10, -26 }, { 10, -23 }, { 10, -22 }, { 10, -21 }, { 10, -20 }, { 10, -17 }, { 10, -16 }, { 10, -15 }, { 10, -14 }, { 10, -13 }, { 10, -12 }, { 10, -9 }, { 10, -8 }, { 10, 1 }, { 10, 2 }, { 10, 11 },
|
|
||||||
{ 10, 12 }, { 10, 15 }, { 10, 16 }, { 10, 17 }, { 10, 18 }, { 10, 19 }, { 10, 20 }, { 10, 23 }, { 10, 24 }, { 10, 25 }, { 10, 26 }, { 10, 29 }, { 10, 30 }, { 10, 31 }, { 10, 32 }, { 10, 35 }, { 10, 36 }, { 10, 37 }, { 10, 45 }, { 10, 46 }, { 11, -39 }, { 11, -38 }, { 11, -35 }, { 11, -34 }, { 11, -33 }, { 11, -32 }, { 11, -29 }, { 11, -28 }, { 11, -27 }, { 11, -16 },
|
|
||||||
{ 11, -15 }, { 11, -14 }, { 11, -13 }, { 11, -5 }, { 11, -4 }, { 11, -3 }, { 11, -2 }, { 11, 5 }, { 11, 6 }, { 11, 7 }, { 11, 8 }, { 11, 16 }, { 11, 17 }, { 11, 18 }, { 11, 19 }, { 11, 30 }, { 11, 31 }, { 11, 32 }, { 11, 35 }, { 11, 36 }, { 11, 37 }, { 11, 38 }, { 11, 41 }, { 11, 42 }, { 12, -39 }, { 12, -38 }, { 12, -35 }, { 12, -34 }, { 12, -33 }, { 12, -32 },
|
|
||||||
{ 12, -29 }, { 12, -28 }, { 12, -15 }, { 12, -14 }, { 12, -5 }, { 12, -4 }, { 12, -3 }, { 12, -2 }, { 12, 5 }, { 12, 6 }, { 12, 7 }, { 12, 8 }, { 12, 17 }, { 12, 18 }, { 12, 31 }, { 12, 32 }, { 12, 35 }, { 12, 36 }, { 12, 37 }, { 12, 38 }, { 12, 41 }, { 12, 42 }, { 13, -43 }, { 13, -42 }, { 13, -39 }, { 13, -38 }, { 13, -37 }, { 13, -36 }, { 13, -35 }, { 13, -34 },
|
|
||||||
{ 13, -33 }, { 13, -19 }, { 13, -18 }, { 13, -9 }, { 13, -8 }, { 13, -4 }, { 13, -3 }, { 13, -2 }, { 13, 1 }, { 13, 2 }, { 13, 5 }, { 13, 6 }, { 13, 7 }, { 13, 11 }, { 13, 12 }, { 13, 21 }, { 13, 22 }, { 13, 36 }, { 13, 37 }, { 13, 38 }, { 13, 39 }, { 13, 40 }, { 13, 41 }, { 13, 42 }, { 13, 45 }, { 13, 46 }, { 14, -43 }, { 14, -42 }, { 14, -39 }, { 14, -38 },
|
|
||||||
{ 14, -37 }, { 14, -36 }, { 14, -35 }, { 14, -34 }, { 14, -20 }, { 14, -19 }, { 14, -18 }, { 14, -17 }, { 14, -10 }, { 14, -9 }, { 14, -8 }, { 14, -7 }, { 14, -3 }, { 14, -2 }, { 14, 1 }, { 14, 2 }, { 14, 5 }, { 14, 6 }, { 14, 10 }, { 14, 11 }, { 14, 12 }, { 14, 13 }, { 14, 20 }, { 14, 21 }, { 14, 22 }, { 14, 23 }, { 14, 37 }, { 14, 38 }, { 14, 39 }, { 14, 40 },
|
|
||||||
{ 14, 41 }, { 14, 42 }, { 14, 45 }, { 14, 46 }, { 15, -43 }, { 15, -42 }, { 15, -31 }, { 15, -30 }, { 15, -27 }, { 15, -26 }, { 15, -21 }, { 15, -20 }, { 15, -19 }, { 15, -18 }, { 15, -17 }, { 15, -16 }, { 15, -15 }, { 15, -14 }, { 15, -11 }, { 15, -10 }, { 15, -9 }, { 15, -8 }, { 15, -7 }, { 15, -6 }, { 15, 1 }, { 15, 2 }, { 15, 9 }, { 15, 10 }, { 15, 11 }, { 15, 12 },
|
|
||||||
{ 15, 13 }, { 15, 14 }, { 15, 17 }, { 15, 18 }, { 15, 19 }, { 15, 20 }, { 15, 21 }, { 15, 22 }, { 15, 23 }, { 15, 24 }, { 15, 29 }, { 15, 30 }, { 15, 33 }, { 15, 34 }, { 15, 45 }, { 15, 46 }, { 16, -43 }, { 16, -42 }, { 16, -32 }, { 16, -31 }, { 16, -30 }, { 16, -27 }, { 16, -26 }, { 16, -25 }, { 16, -21 }, { 16, -20 }, { 16, -19 }, { 16, -18 }, { 16, -17 }, { 16, -16 },
|
|
||||||
{ 16, -15 }, { 16, -14 }, { 16, -11 }, { 16, -10 }, { 16, -9 }, { 16, -8 }, { 16, -7 }, { 16, -6 }, { 16, 0 }, { 16, 1 }, { 16, 2 }, { 16, 3 }, { 16, 9 }, { 16, 10 }, { 16, 11 }, { 16, 12 }, { 16, 13 }, { 16, 14 }, { 16, 17 }, { 16, 18 }, { 16, 19 }, { 16, 20 }, { 16, 21 }, { 16, 22 }, { 16, 23 }, { 16, 24 }, { 16, 28 }, { 16, 29 }, { 16, 30 }, { 16, 33 },
|
|
||||||
{ 16, 34 }, { 16, 35 }, { 16, 45 }, { 16, 46 }, { 17, -43 }, { 17, -42 }, { 17, -35 }, { 17, -34 }, { 17, -33 }, { 17, -32 }, { 17, -31 }, { 17, -26 }, { 17, -25 }, { 17, -24 }, { 17, -15 }, { 17, -14 }, { 17, -10 }, { 17, -9 }, { 17, -8 }, { 17, -7 }, { 17, -6 }, { 17, -1 }, { 17, 0 }, { 17, 1 }, { 17, 2 }, { 17, 3 }, { 17, 4 }, { 17, 9 }, { 17, 10 }, { 17, 11 },
|
|
||||||
{ 17, 12 }, { 17, 13 }, { 17, 17 }, { 17, 18 }, { 17, 27 }, { 17, 28 }, { 17, 29 }, { 17, 34 }, { 17, 35 }, { 17, 36 }, { 17, 37 }, { 17, 38 }, { 17, 45 }, { 17, 46 }, { 18, -43 }, { 18, -42 }, { 18, -41 }, { 18, -35 }, { 18, -34 }, { 18, -33 }, { 18, -32 }, { 18, -25 }, { 18, -24 }, { 18, -23 }, { 18, -15 }, { 18, -14 }, { 18, -13 }, { 18, -9 }, { 18, -8 }, { 18, -7 },
|
|
||||||
{ 18, -6 }, { 18, -2 }, { 18, -1 }, { 18, 0 }, { 18, 1 }, { 18, 2 }, { 18, 3 }, { 18, 4 }, { 18, 5 }, { 18, 9 }, { 18, 10 }, { 18, 11 }, { 18, 12 }, { 18, 16 }, { 18, 17 }, { 18, 18 }, { 18, 26 }, { 18, 27 }, { 18, 28 }, { 18, 35 }, { 18, 36 }, { 18, 37 }, { 18, 38 }, { 18, 44 }, { 18, 45 }, { 18, 46 }, { 19, -42 }, { 19, -41 }, { 19, -40 }, { 19, -39 },
|
|
||||||
{ 19, -38 }, { 19, -29 }, { 19, -28 }, { 19, -25 }, { 19, -24 }, { 19, -23 }, { 19, -22 }, { 19, -21 }, { 19, -20 }, { 19, -19 }, { 19, -18 }, { 19, -15 }, { 19, -14 }, { 19, -13 }, { 19, -12 }, { 19, -3 }, { 19, -2 }, { 19, -1 }, { 19, 4 }, { 19, 5 }, { 19, 6 }, { 19, 15 }, { 19, 16 }, { 19, 17 }, { 19, 18 }, { 19, 21 }, { 19, 22 }, { 19, 23 }, { 19, 24 }, { 19, 25 },
|
|
||||||
{ 19, 26 }, { 19, 27 }, { 19, 28 }, { 19, 31 }, { 19, 32 }, { 19, 41 }, { 19, 42 }, { 19, 43 }, { 19, 44 }, { 19, 45 }, { 20, -41 }, { 20, -40 }, { 20, -39 }, { 20, -38 }, { 20, -37 }, { 20, -29 }, { 20, -28 }, { 20, -25 }, { 20, -24 }, { 20, -23 }, { 20, -22 }, { 20, -21 }, { 20, -20 }, { 20, -19 }, { 20, -18 }, { 20, -15 }, { 20, -14 }, { 20, -13 }, { 20, -12 }, { 20, -3 },
|
|
||||||
{ 20, -2 }, { 20, 5 }, { 20, 6 }, { 20, 15 }, { 20, 16 }, { 20, 17 }, { 20, 18 }, { 20, 21 }, { 20, 22 }, { 20, 23 }, { 20, 24 }, { 20, 25 }, { 20, 26 }, { 20, 27 }, { 20, 28 }, { 20, 31 }, { 20, 32 }, { 20, 40 }, { 20, 41 }, { 20, 42 }, { 20, 43 }, { 20, 44 }, { 21, -38 }, { 21, -37 }, { 21, -36 }, { 21, -29 }, { 21, -28 }, { 21, -19 }, { 21, -18 }, { 21, -15 },
|
|
||||||
{ 21, -14 }, { 21, -13 }, { 21, -9 }, { 21, -8 }, { 21, -7 }, { 21, -6 }, { 21, 1 }, { 21, 2 }, { 21, 9 }, { 21, 10 }, { 21, 11 }, { 21, 12 }, { 21, 16 }, { 21, 17 }, { 21, 18 }, { 21, 21 }, { 21, 22 }, { 21, 31 }, { 21, 32 }, { 21, 39 }, { 21, 40 }, { 21, 41 }, { 22, -37 }, { 22, -36 }, { 22, -30 }, { 22, -29 }, { 22, -28 }, { 22, -19 }, { 22, -18 }, { 22, -15 },
|
|
||||||
{ 22, -14 }, { 22, -9 }, { 22, -8 }, { 22, -7 }, { 22, -6 }, { 22, -5 }, { 22, 0 }, { 22, 1 }, { 22, 2 }, { 22, 3 }, { 22, 8 }, { 22, 9 }, { 22, 10 }, { 22, 11 }, { 22, 12 }, { 22, 17 }, { 22, 18 }, { 22, 21 }, { 22, 22 }, { 22, 31 }, { 22, 32 }, { 22, 33 }, { 22, 39 }, { 22, 40 }, { 23, -33 }, { 23, -32 }, { 23, -31 }, { 23, -30 }, { 23, -29 }, { 23, -25 },
|
|
||||||
{ 23, -24 }, { 23, -23 }, { 23, -22 }, { 23, -19 }, { 23, -18 }, { 23, -9 }, { 23, -8 }, { 23, -7 }, { 23, -6 }, { 23, -5 }, { 23, -4 }, { 23, -1 }, { 23, 0 }, { 23, 1 }, { 23, 2 }, { 23, 3 }, { 23, 4 }, { 23, 7 }, { 23, 8 }, { 23, 9 }, { 23, 10 }, { 23, 11 }, { 23, 12 }, { 23, 21 }, { 23, 22 }, { 23, 25 }, { 23, 26 }, { 23, 27 }, { 23, 28 }, { 23, 32 },
|
|
||||||
{ 23, 33 }, { 23, 34 }, { 23, 35 }, { 23, 36 }, { 24, -33 }, { 24, -32 }, { 24, -31 }, { 24, -30 }, { 24, -25 }, { 24, -24 }, { 24, -23 }, { 24, -22 }, { 24, -19 }, { 24, -18 }, { 24, -17 }, { 24, -9 }, { 24, -8 }, { 24, -7 }, { 24, -6 }, { 24, -5 }, { 24, -4 }, { 24, -1 }, { 24, 0 }, { 24, 1 }, { 24, 2 }, { 24, 3 }, { 24, 4 }, { 24, 7 }, { 24, 8 }, { 24, 9 },
|
|
||||||
{ 24, 10 }, { 24, 11 }, { 24, 12 }, { 24, 20 }, { 24, 21 }, { 24, 22 }, { 24, 25 }, { 24, 26 }, { 24, 27 }, { 24, 28 }, { 24, 33 }, { 24, 34 }, { 24, 35 }, { 24, 36 }, { 25, -39 }, { 25, -38 }, { 25, -37 }, { 25, -36 }, { 25, -24 }, { 25, -23 }, { 25, -22 }, { 25, -19 }, { 25, -18 }, { 25, -17 }, { 25, -16 }, { 25, -6 }, { 25, -5 }, { 25, -4 }, { 25, -1 }, { 25, 0 },
|
|
||||||
{ 25, 1 }, { 25, 2 }, { 25, 3 }, { 25, 4 }, { 25, 7 }, { 25, 8 }, { 25, 9 }, { 25, 19 }, { 25, 20 }, { 25, 21 }, { 25, 22 }, { 25, 25 }, { 25, 26 }, { 25, 27 }, { 25, 39 }, { 25, 40 }, { 25, 41 }, { 25, 42 }, { 26, -39 }, { 26, -38 }, { 26, -37 }, { 26, -36 }, { 26, -23 }, { 26, -22 }, { 26, -19 }, { 26, -18 }, { 26, -17 }, { 26, -16 }, { 26, -15 }, { 26, -5 },
|
|
||||||
{ 26, -4 }, { 26, -1 }, { 26, 0 }, { 26, 1 }, { 26, 2 }, { 26, 3 }, { 26, 4 }, { 26, 7 }, { 26, 8 }, { 26, 18 }, { 26, 19 }, { 26, 20 }, { 26, 21 }, { 26, 22 }, { 26, 25 }, { 26, 26 }, { 26, 39 }, { 26, 40 }, { 26, 41 }, { 26, 42 }, { 27, -38 }, { 27, -37 }, { 27, -36 }, { 27, -29 }, { 27, -28 }, { 27, -27 }, { 27, -26 }, { 27, -16 }, { 27, -15 }, { 27, -14 },
|
|
||||||
{ 27, -9 }, { 27, -8 }, { 27, 11 }, { 27, 12 }, { 27, 17 }, { 27, 18 }, { 27, 19 }, { 27, 29 }, { 27, 30 }, { 27, 31 }, { 27, 32 }, { 27, 39 }, { 27, 40 }, { 27, 41 }, { 28, -37 }, { 28, -36 }, { 28, -30 }, { 28, -29 }, { 28, -28 }, { 28, -27 }, { 28, -26 }, { 28, -15 }, { 28, -14 }, { 28, -10 }, { 28, -9 }, { 28, -8 }, { 28, -7 }, { 28, 10 }, { 28, 11 }, { 28, 12 },
|
|
||||||
{ 28, 13 }, { 28, 17 }, { 28, 18 }, { 28, 29 }, { 28, 30 }, { 28, 31 }, { 28, 32 }, { 28, 33 }, { 28, 39 }, { 28, 40 }, { 29, -33 }, { 29, -32 }, { 29, -31 }, { 29, -30 }, { 29, -29 }, { 29, -28 }, { 29, -27 }, { 29, -26 }, { 29, -21 }, { 29, -20 }, { 29, -19 }, { 29, -18 }, { 29, -11 }, { 29, -10 }, { 29, -9 }, { 29, -8 }, { 29, -7 }, { 29, -6 }, { 29, -1 }, { 29, 0 },
|
|
||||||
{ 29, 1 }, { 29, 2 }, { 29, 3 }, { 29, 4 }, { 29, 9 }, { 29, 10 }, { 29, 11 }, { 29, 12 }, { 29, 13 }, { 29, 14 }, { 29, 21 }, { 29, 22 }, { 29, 23 }, { 29, 24 }, { 29, 29 }, { 29, 30 }, { 29, 31 }, { 29, 32 }, { 29, 33 }, { 29, 34 }, { 29, 35 }, { 29, 36 }, { 30, -33 }, { 30, -32 }, { 30, -31 }, { 30, -30 }, { 30, -29 }, { 30, -28 }, { 30, -27 }, { 30, -26 },
|
|
||||||
{ 30, -22 }, { 30, -21 }, { 30, -20 }, { 30, -19 }, { 30, -18 }, { 30, -11 }, { 30, -10 }, { 30, -9 }, { 30, -8 }, { 30, -7 }, { 30, -6 }, { 30, -5 }, { 30, -1 }, { 30, 0 }, { 30, 1 }, { 30, 2 }, { 30, 3 }, { 30, 4 }, { 30, 8 }, { 30, 9 }, { 30, 10 }, { 30, 11 }, { 30, 12 }, { 30, 13 }, { 30, 14 }, { 30, 21 }, { 30, 22 }, { 30, 23 }, { 30, 24 }, { 30, 25 },
|
|
||||||
{ 30, 29 }, { 30, 30 }, { 30, 31 }, { 30, 32 }, { 30, 33 }, { 30, 34 }, { 30, 35 }, { 30, 36 }, { 31, -32 }, { 31, -31 }, { 31, -30 }, { 31, -29 }, { 31, -28 }, { 31, -27 }, { 31, -23 }, { 31, -22 }, { 31, -21 }, { 31, -15 }, { 31, -14 }, { 31, -6 }, { 31, -5 }, { 31, -4 }, { 31, -1 }, { 31, 0 }, { 31, 3 }, { 31, 4 }, { 31, 7 }, { 31, 8 }, { 31, 9 }, { 31, 17 },
|
|
||||||
{ 31, 18 }, { 31, 24 }, { 31, 25 }, { 31, 26 }, { 31, 30 }, { 31, 31 }, { 31, 32 }, { 31, 33 }, { 31, 34 }, { 31, 35 }, { 32, -31 }, { 32, -30 }, { 32, -29 }, { 32, -28 }, { 32, -23 }, { 32, -22 }, { 32, -16 }, { 32, -15 }, { 32, -14 }, { 32, -5 }, { 32, -4 }, { 32, -1 }, { 32, 0 }, { 32, 3 }, { 32, 4 }, { 32, 7 }, { 32, 8 }, { 32, 17 }, { 32, 18 }, { 32, 19 },
|
|
||||||
{ 32, 25 }, { 32, 26 }, { 32, 31 }, { 32, 32 }, { 32, 33 }, { 32, 34 }, { 33, -30 }, { 33, -29 }, { 33, -28 }, { 33, -23 }, { 33, -22 }, { 33, -17 }, { 33, -16 }, { 33, -15 }, { 33, -11 }, { 33, -10 }, { 33, -9 }, { 33, -8 }, { 33, 11 }, { 33, 12 }, { 33, 13 }, { 33, 14 }, { 33, 18 }, { 33, 19 }, { 33, 20 }, { 33, 25 }, { 33, 26 }, { 33, 31 }, { 33, 32 }, { 33, 33 },
|
|
||||||
{ 34, -29 }, { 34, -28 }, { 34, -23 }, { 34, -22 }, { 34, -17 }, { 34, -16 }, { 34, -12 }, { 34, -11 }, { 34, -10 }, { 34, -9 }, { 34, -8 }, { 34, 11 }, { 34, 12 }, { 34, 13 }, { 34, 14 }, { 34, 15 }, { 34, 19 }, { 34, 20 }, { 34, 25 }, { 34, 26 }, { 34, 31 }, { 34, 32 }, { 35, -17 }, { 35, -16 }, { 35, -13 }, { 35, -12 }, { 35, -11 }, { 35, -10 }, { 35, -9 }, { 35, -3 },
|
|
||||||
{ 35, -2 }, { 35, -1 }, { 35, 0 }, { 35, 3 }, { 35, 4 }, { 35, 5 }, { 35, 6 }, { 35, 12 }, { 35, 13 }, { 35, 14 }, { 35, 15 }, { 35, 16 }, { 35, 19 }, { 35, 20 }, { 36, -17 }, { 36, -16 }, { 36, -13 }, { 36, -12 }, { 36, -11 }, { 36, -10 }, { 36, -4 }, { 36, -3 }, { 36, -2 }, { 36, -1 }, { 36, 0 }, { 36, 3 }, { 36, 4 }, { 36, 5 }, { 36, 6 }, { 36, 7 },
|
|
||||||
{ 36, 13 }, { 36, 14 }, { 36, 15 }, { 36, 16 }, { 36, 19 }, { 36, 20 }, { 37, -27 }, { 37, -26 }, { 37, -25 }, { 37, -24 }, { 37, -21 }, { 37, -20 }, { 37, -13 }, { 37, -12 }, { 37, -5 }, { 37, -4 }, { 37, -3 }, { 37, -2 }, { 37, -1 }, { 37, 0 }, { 37, 1 }, { 37, 2 }, { 37, 3 }, { 37, 4 }, { 37, 5 }, { 37, 6 }, { 37, 7 }, { 37, 8 }, { 37, 15 }, { 37, 16 },
|
|
||||||
{ 37, 23 }, { 37, 24 }, { 37, 27 }, { 37, 28 }, { 37, 29 }, { 37, 30 }, { 38, -27 }, { 38, -26 }, { 38, -25 }, { 38, -24 }, { 38, -21 }, { 38, -20 }, { 38, -19 }, { 38, -13 }, { 38, -12 }, { 38, -5 }, { 38, -4 }, { 38, -3 }, { 38, -2 }, { 38, -1 }, { 38, 0 }, { 38, 1 }, { 38, 2 }, { 38, 3 }, { 38, 4 }, { 38, 5 }, { 38, 6 }, { 38, 7 }, { 38, 8 }, { 38, 15 },
|
|
||||||
{ 38, 16 }, { 38, 22 }, { 38, 23 }, { 38, 24 }, { 38, 27 }, { 38, 28 }, { 38, 29 }, { 38, 30 }, { 39, -26 }, { 39, -25 }, { 39, -24 }, { 39, -20 }, { 39, -19 }, { 39, -18 }, { 39, -13 }, { 39, -12 }, { 39, -11 }, { 39, -10 }, { 39, -5 }, { 39, -4 }, { 39, 7 }, { 39, 8 }, { 39, 13 }, { 39, 14 }, { 39, 15 }, { 39, 16 }, { 39, 21 }, { 39, 22 }, { 39, 23 }, { 39, 27 },
|
|
||||||
{ 39, 28 }, { 39, 29 }, { 40, -25 }, { 40, -24 }, { 40, -19 }, { 40, -18 }, { 40, -13 }, { 40, -12 }, { 40, -11 }, { 40, -10 }, { 40, -5 }, { 40, -4 }, { 40, 7 }, { 40, 8 }, { 40, 13 }, { 40, 14 }, { 40, 15 }, { 40, 16 }, { 40, 21 }, { 40, 22 }, { 40, 27 }, { 40, 28 }, { 41, -19 }, { 41, -18 }, { 41, -1 }, { 41, 0 }, { 41, 1 }, { 41, 2 }, { 41, 3 }, { 41, 4 },
|
|
||||||
{ 41, 21 }, { 41, 22 }, { 42, -19 }, { 42, -18 }, { 42, -17 }, { 42, -1 }, { 42, 0 }, { 42, 1 }, { 42, 2 }, { 42, 3 }, { 42, 4 }, { 42, 20 }, { 42, 21 }, { 42, 22 }, { 43, -18 }, { 43, -17 }, { 43, -16 }, { 43, -15 }, { 43, -14 }, { 43, -13 }, { 43, -12 }, { 43, -9 }, { 43, -8 }, { 43, -1 }, { 43, 0 }, { 43, 1 }, { 43, 2 }, { 43, 3 }, { 43, 4 }, { 43, 11 },
|
|
||||||
{ 43, 12 }, { 43, 15 }, { 43, 16 }, { 43, 17 }, { 43, 18 }, { 43, 19 }, { 43, 20 }, { 43, 21 }, { 44, -17 }, { 44, -16 }, { 44, -15 }, { 44, -14 }, { 44, -13 }, { 44, -12 }, { 44, -9 }, { 44, -8 }, { 44, -7 }, { 44, -2 }, { 44, -1 }, { 44, 0 }, { 44, 1 }, { 44, 2 }, { 44, 3 }, { 44, 4 }, { 44, 5 }, { 44, 10 }, { 44, 11 }, { 44, 12 }, { 44, 15 }, { 44, 16 },
|
|
||||||
{ 44, 17 }, { 44, 18 }, { 44, 19 }, { 44, 20 }, { 45, -8 }, { 45, -7 }, { 45, -6 }, { 45, -5 }, { 45, -4 }, { 45, -3 }, { 45, -2 }, { 45, -1 }, { 45, 4 }, { 45, 5 }, { 45, 6 }, { 45, 7 }, { 45, 8 }, { 45, 9 }, { 45, 10 }, { 45, 11 }, { 46, -7 }, { 46, -6 }, { 46, -5 }, { 46, -4 }, { 46, -3 }, { 46, -2 }, { 46, 5 }, { 46, 6 }, { 46, 7 }, { 46, 8 },
|
|
||||||
{ 46, 9 }, { 46, 10 }, { 47, -4 }, { 47, -3 }, { 47, -2 }, { 47, 1 }, { 47, 2 }, { 47, 5 }, { 47, 6 }, { 47, 7 }, { 48, -3 }, { 48, -2 }, { 48, 1 }, { 48, 2 }, { 48, 5 }, { 48, 6 },
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
resource_tiles = {
|
resource_tiles = {
|
||||||
enabled = false,
|
enabled = false,
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ return {
|
|||||||
|
|
||||||
unlimited_capacity = false, --- @setting unlimited_capacity When true the vlayer has an unlimited energy capacity, accumulators are not required
|
unlimited_capacity = false, --- @setting unlimited_capacity When true the vlayer has an unlimited energy capacity, accumulators are not required
|
||||||
unlimited_surface_area = false, --- @setting unlimited_surface_area When true the vlayer has an unlimited surface area, landfill is not required
|
unlimited_surface_area = false, --- @setting unlimited_surface_area When true the vlayer has an unlimited surface area, landfill is not required
|
||||||
modded_auto_downgrade = false, --- @setting modded_auto_downgrade When true modded items will be converted into their base game equivalent, original items can not be recovered
|
modded_auto_downgrade = true, --- @setting modded_auto_downgrade When true modded items will be converted into their base game equivalent, original items can not be recovered
|
||||||
power_on_space = false, --- @setting power_on_space When true allow on spaceship
|
power_on_space = true, --- @setting power_on_space When true allow on spaceship
|
||||||
power_on_space_research = { --- @setting power_on_space_research the research level needed to use power_on_space
|
power_on_space_research = { --- @setting power_on_space_research the research level needed to use power_on_space
|
||||||
name = "research-productivity",
|
name = "research-productivity",
|
||||||
level = 10
|
level = 10
|
||||||
@@ -29,10 +29,10 @@ return {
|
|||||||
},
|
},
|
||||||
|
|
||||||
interface_limit = { --- @setting interface_limit Sets the limit for the number of vlayer interfaces that can be created
|
interface_limit = { --- @setting interface_limit Sets the limit for the number of vlayer interfaces that can be created
|
||||||
energy = 1, -- >1 allows for disconnected power networks to receive power
|
energy = 100, -- >1 allows for disconnected power networks to receive power
|
||||||
circuit = 20, -- No caveats
|
circuit = 100, -- No caveats
|
||||||
storage_input = 20, -- No caveats
|
storage_input = 100, -- No caveats
|
||||||
storage_output = 1, -- >0 allows for item teleportation (allowed_items only)
|
storage_output = 100, -- >0 allows for item teleportation (allowed_items only)
|
||||||
},
|
},
|
||||||
|
|
||||||
allowed_items = { --- @setting allowed_items List of all items allowed in vlayer storage and their properties
|
allowed_items = { --- @setting allowed_items List of all items allowed in vlayer storage and their properties
|
||||||
@@ -73,22 +73,22 @@ return {
|
|||||||
required_area = 0,
|
required_area = 0,
|
||||||
surface_area = 0,
|
surface_area = 0,
|
||||||
fuel_value = 4, -- MJ
|
fuel_value = 4, -- MJ
|
||||||
power = false, -- turn all coal to power to reduce trash
|
power = true, -- turn all coal to power to reduce trash
|
||||||
},
|
},
|
||||||
["solid-fuel"] = {
|
["solid-fuel"] = {
|
||||||
starting_value = 0,
|
starting_value = 0,
|
||||||
required_area = 0,
|
required_area = 0,
|
||||||
surface_area = 0,
|
surface_area = 0,
|
||||||
fuel_value = 12, -- MJ
|
fuel_value = 12, -- MJ
|
||||||
power = false, -- turn all solid fuel to power to reduce trash
|
power = true, -- turn all solid fuel to power to reduce trash
|
||||||
},
|
},
|
||||||
["rocket-fuel"] = {
|
["rocket-fuel"] = {
|
||||||
starting_value = 0,
|
starting_value = 0,
|
||||||
required_area = 0,
|
required_area = 0,
|
||||||
surface_area = 0,
|
surface_area = 0,
|
||||||
fuel_value = 100, -- MJ
|
fuel_value = 100, -- MJ
|
||||||
power = false, -- turn all rocket fuel to power to reduce trash
|
power = true, -- turn all rocket fuel to power to reduce trash
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
modded_items = { --- @setting modded_items List of all modded items allowed in vlayer storage and their base game equivalent
|
modded_items = { --- @setting modded_items List of all modded items allowed in vlayer storage and their base game equivalent
|
||||||
|
|||||||
@@ -7,24 +7,19 @@ player-health=__1__
|
|||||||
player-damage=__1__
|
player-damage=__1__
|
||||||
|
|
||||||
[links]
|
[links]
|
||||||
discord=https://discord.explosivegaming.nl
|
website=https://aperx.org
|
||||||
website=https://www.explosivegaming.nl
|
github=https://github.com/PHIDIAS0303/ExpCluster
|
||||||
status=https://status.explosivegaming.nl
|
discord=
|
||||||
github=https://github.com/explosivegaming/ExpCluster
|
|
||||||
patreon=https://www.patreon.com/ExpGaming
|
|
||||||
|
|
||||||
[info]
|
[info]
|
||||||
players-online=There are __1__ players online
|
players-online=There are __1__ players online
|
||||||
total-map-time=This map has been on for __1__
|
total-map-time=This map has been on for __1__
|
||||||
discord=Join us on our discord at: https://discord.explosivegaming.nl
|
website=Please visit our website at: https://aperx.org
|
||||||
website=Please visit our website at: https://www.explosivegaming.nl
|
github=Want to help improve our server with some extra features? Help us at: https://github.com/PHIDIAS0303/ExpCluster
|
||||||
status=Want to check if out servers are down? Visit: https://status.explosivegaming.nl
|
discord=
|
||||||
github=Want to help improve our server with some extra features? Help us at: https://github.com/explosivegaming/ExpCluster
|
|
||||||
patreon=Consider supporting our server at: https://www.patreon.com/ExpGaming
|
|
||||||
custom-commands=We use custom commands, such as /tag and /me, use /chelp for more info.
|
custom-commands=We use custom commands, such as /tag and /me, use /chelp for more info.
|
||||||
read-readme=Make sure you have read the information gui (It can be found through the info mark on the top left)
|
read-readme=Make sure you have read the information gui (It can be found through the info mark on the top left)
|
||||||
softmod=We run a softmod on our servers. A softmod is a custom scenario that runs on this server, an example is the player list.
|
softmod=We run a softmod on our servers. A softmod is a custom scenario that runs on this server, an example is the player list.
|
||||||
redmew=We don't talk about redmew here; they beat us to 1000 members ;-;
|
|
||||||
lhd=All trains must be LHD! This is a long standing rule on our servers, please respect this.
|
lhd=All trains must be LHD! This is a long standing rule on our servers, please respect this.
|
||||||
|
|
||||||
[warnings]
|
[warnings]
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
description-add=Sets / Gets your custom join message.
|
description-add=Sets / Gets your custom join message.
|
||||||
description-remove=Removes you custom join message.
|
description-remove=Removes you custom join message.
|
||||||
arg-message=Your custom join message.
|
arg-message=Your custom join message.
|
||||||
greet=[color=0,1,0] Welcome to explosive gaming community server! If you like the server join our discord: __1__ [/color]
|
greet=[color=0,1,0] Welcome to APERX gaming community server! __1__[/color]
|
||||||
message-set=Your join message has been updated.
|
message-set=Your join message has been updated.
|
||||||
message-get=Your join message is: __1__
|
message-get=Your join message is: __1__
|
||||||
message-cleared=Your join message has been cleared.
|
message-cleared=Your join message has been cleared.
|
||||||
|
|||||||
@@ -21,4 +21,4 @@ preference-value-tooltip=Change by using /set-preference
|
|||||||
preference-All=All data will be saved
|
preference-All=All data will be saved
|
||||||
preference-Statistics=Only statistics, settings, and required data will be saved
|
preference-Statistics=Only statistics, settings, and required data will be saved
|
||||||
preference-Settings=Only settings and required data will be saved
|
preference-Settings=Only settings and required data will be saved
|
||||||
preference-Required=Only required data will be saved
|
preference-Required=Only required data will be saved
|
||||||
|
|||||||
@@ -133,8 +133,8 @@ goto-edit=Edit warp icon
|
|||||||
[readme]
|
[readme]
|
||||||
main-tooltip=Infomation
|
main-tooltip=Infomation
|
||||||
welcome-tab=Welcome
|
welcome-tab=Welcome
|
||||||
welcome-tooltip=Welcome to Explosive Gaming
|
welcome-tooltip=Welcome to APERX
|
||||||
welcome-general=Welcome to Explosive Gaming; we host many factorio servers. While you are here, we ask you to follow our rules. You can find these in the tab above. You can also find our custom commands and links to our other servers. This map has been online for __2__.\nPlease note that our servers reset periodically, the next reset is: __1__
|
welcome-general=Welcome to APERX; we host many factorio servers. While you are here, we ask you to follow our rules. You can find these in the tab above. You can also find our custom commands and links to our other servers. This map has been online for __2__.\nPlease note that our servers reset periodically, the next reset is: __1__
|
||||||
welcome-roles=We run a custom role system to help protect the work of others. As a result you may not be able to use your deconstruction planner yet or drop item on the groud. Roles also give you access to some custom features such as adding tasks to our task list or making new warp points.\nYou have been assigned the roles: __1__
|
welcome-roles=We run a custom role system to help protect the work of others. As a result you may not be able to use your deconstruction planner yet or drop item on the groud. Roles also give you access to some custom features such as adding tasks to our task list or making new warp points.\nYou have been assigned the roles: __1__
|
||||||
welcome-chat=Chatting can be difficult for new players because it’s different than other games! It’s very simple, the button you need to press is the “GRAVE/TILDE” key (which is located under the “ESC key”) - If you would like to change the key, go to your Controls tab in options.\nThe setting you need to change is “Toggle chat (and Lua console)” you currently have it set to "__CONTROL__toggle-console__"
|
welcome-chat=Chatting can be difficult for new players because it’s different than other games! It’s very simple, the button you need to press is the “GRAVE/TILDE” key (which is located under the “ESC key”) - If you would like to change the key, go to your Controls tab in options.\nThe setting you need to change is “Toggle chat (and Lua console)” you currently have it set to "__CONTROL__toggle-console__"
|
||||||
rules-tab=Rules
|
rules-tab=Rules
|
||||||
@@ -162,22 +162,18 @@ servers-tab=Servers
|
|||||||
servers-tooltip=Links to our other servers and sites
|
servers-tooltip=Links to our other servers and sites
|
||||||
servers-general=This is only one of our servers for factorio, we host many of others as well. Below you can find details about all the servers that we host as well as links to our external services such as discord or github.
|
servers-general=This is only one of our servers for factorio, we host many of others as well. Below you can find details about all the servers that we host as well as links to our external services such as discord or github.
|
||||||
servers-factorio=Factorio Servers
|
servers-factorio=Factorio Servers
|
||||||
servers-1=S1 Public
|
servers-1=S1
|
||||||
servers-d1=This is our 48 hour reset server.
|
servers-d1=This server resets regularly.
|
||||||
servers-2=S2 Off
|
servers-2=S2
|
||||||
servers-d2=This server is closed.
|
servers-d2=This server resets regularly.
|
||||||
servers-3=S3 Weekly
|
servers-3=S3
|
||||||
servers-d3=This is our weekly reset server.
|
servers-d3=This server resets regularly.
|
||||||
servers-4=S4 Monthly
|
servers-5=S5
|
||||||
servers-d4=This is our monthly reset server.
|
servers-d5=This server is only for members. Check discord for more details.
|
||||||
servers-5=S5 Modded
|
servers-6=S6
|
||||||
servers-d5=This is our modded server, see discord for details.
|
servers-d6=This server is only for members. Check discord for more details.
|
||||||
servers-6=S6 Donator
|
servers-8=S8
|
||||||
servers-d6=This is our donator only server, online when requested.
|
servers-d8=This server is only for event and others. Check discord for more details.
|
||||||
servers-7=S7 Event
|
|
||||||
servers-d7=This is our event server, we try to run events at least once per week.
|
|
||||||
servers-8=S8 T̷-̶s̶-̴:̷
|
|
||||||
servers-d8=N̵o̴ ̶o̷-̶e̵ ̴k̸n̷-̶w̵s̸ ̴w̷h̷a̶-̶ ̷h̴a̴p̷p̴e̷n̷s̸ ̷o̶n̴ ̷t̶h̴-̶s̶ ̷s̷e̶r̸v̸e̴r̷,̶ ̸i̸t̴ ̷m̶-̸g̴h̶t̷ ̸n̸-̶t̵ ̷e̴v̸e̸n̶t̷ ̵-̷x̴i̵s̶t̸.̸
|
|
||||||
servers-connect-Offline=Server is currently offline
|
servers-connect-Offline=Server is currently offline
|
||||||
servers-connect-Current=This is your current server
|
servers-connect-Current=This is your current server
|
||||||
servers-connect-Version=Server is on a different version: __1__
|
servers-connect-Version=Server is on a different version: __1__
|
||||||
@@ -190,9 +186,8 @@ backers-tab=Backers
|
|||||||
backers-tooltip=People who have helped make our server
|
backers-tooltip=People who have helped make our server
|
||||||
backers-general=We would like to thank all our staff and backers who have helped our community grow. Our staff have helped to keep our servers safe from trolls and a fun place to play. Our backers have helped us to cover our running costs and provide a great community for us all to enjoy together.
|
backers-general=We would like to thank all our staff and backers who have helped our community grow. Our staff have helped to keep our servers safe from trolls and a fun place to play. Our backers have helped us to cover our running costs and provide a great community for us all to enjoy together.
|
||||||
backers-management=Administrators
|
backers-management=Administrators
|
||||||
backers-board=Board Members and Senior Backers
|
|
||||||
backers-staff=Staff Members
|
backers-staff=Staff Members
|
||||||
backers-backers=Sponsors and Supporters
|
backers-backers=Board Members, Supporters, and Partners
|
||||||
backers-active=Active Players
|
backers-active=Active Players
|
||||||
data-tab=Data
|
data-tab=Data
|
||||||
data-tooltip=All of your stored player data
|
data-tooltip=All of your stored player data
|
||||||
|
|||||||
@@ -7,24 +7,19 @@ player-health=__1__
|
|||||||
player-damage=__1__
|
player-damage=__1__
|
||||||
|
|
||||||
[links]
|
[links]
|
||||||
discord=https://discord.explosivegaming.nl
|
website=https://aperx.org
|
||||||
website=https://www.explosivegaming.nl
|
github=https://github.com/PHIDIAS0303/ExpCluster
|
||||||
status=https://status.explosivegaming.nl
|
discord=
|
||||||
github=https://github.com/explosivegaming/ExpCluster
|
|
||||||
patreon=https://www.patreon.com/ExpGaming
|
|
||||||
|
|
||||||
[info]
|
[info]
|
||||||
players-online=現在有 __1__ 人在線
|
players-online=現在有 __1__ 人在線
|
||||||
total-map-time=地圖時間為 __1__
|
total-map-time=地圖時間為 __1__
|
||||||
discord=加入社群: https://discord.explosivegaming.nl
|
website=訪問網站: https://aperx.org
|
||||||
website=訪問網站: https://www.explosivegaming.nl
|
github=增加功能或回報錯誤: https://github.com/PHIDIAS0303/ExpCluster
|
||||||
status=伺服器狀態: https://status.explosivegaming.nl
|
discord=
|
||||||
github=增加功能或回報錯誤: https://github.com/explosivegaming/ExpCluster
|
|
||||||
patreon=支持我們: https://www.patreon.com/ExpGaming
|
|
||||||
custom-commands=這裹使用了自制指令,如 /tag 和 /me。可使用 /chelp 查看更多。
|
custom-commands=這裹使用了自制指令,如 /tag 和 /me。可使用 /chelp 查看更多。
|
||||||
read-readme=確保你已閱讀相關資訊。按左上 i 圖標可再次查看。
|
read-readme=確保你已閱讀相關資訊。按左上 i 圖標可再次查看。
|
||||||
softmod=這裹用了自設情境,是一種軟裝模組。
|
softmod=這裹用了自設情境,是一種軟裝模組。
|
||||||
redmew=
|
|
||||||
lhd=列車必須是左則通行。這是本服務器長久以來的規則。
|
lhd=列車必須是左則通行。這是本服務器長久以來的規則。
|
||||||
|
|
||||||
[warnings]
|
[warnings]
|
||||||
@@ -43,7 +38,7 @@ reply=[Chat Bot] __1__
|
|||||||
disallow=你沒有權限使用這個指令。
|
disallow=你沒有權限使用這個指令。
|
||||||
players-online=現在有 __1__ 人上線。
|
players-online=現在有 __1__ 人上線。
|
||||||
players=本地圖現在有 __1__ 人曾上線。
|
players=本地圖現在有 __1__ 人曾上線。
|
||||||
not-real-dev=Cooldude2606 只是本場境的開發者
|
not-real-dev=
|
||||||
softmod=這裹用了自設情境。
|
softmod=這裹用了自設情境。
|
||||||
blame=責怪 __1__ 吧。
|
blame=責怪 __1__ 吧。
|
||||||
afk=看看 __1__, 他已掛機 __2__ 。
|
afk=看看 __1__, 他已掛機 __2__ 。
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
description-add=設定 / 取得你的加入信息。
|
description-add=設定 / 取得你的加入信息。
|
||||||
description-remove=移除你的加入信息。
|
description-remove=移除你的加入信息。
|
||||||
arg-message=你的加入信息。
|
arg-message=你的加入信息。
|
||||||
greet=[color=0,1,0] 歡迎來到 EXP 的服務器! 若果你喜歡本服務器可加入 DISCORD: __1__ [/color]
|
greet=[color=0,1,0] 歡迎來到 APERX 的服務器! __1__[/color]
|
||||||
message-set=你的加入信息已更新。
|
message-set=你的加入信息已更新。
|
||||||
message-get=你的加入信息為: __1__
|
message-get=你的加入信息為: __1__
|
||||||
message-cleared=你的加入信息已清除。
|
message-cleared=你的加入信息已清除。
|
||||||
|
|||||||
@@ -133,8 +133,8 @@ goto-edit=修改傳送陣圖案
|
|||||||
[readme]
|
[readme]
|
||||||
main-tooltip=資訊
|
main-tooltip=資訊
|
||||||
welcome-tab=歡迎
|
welcome-tab=歡迎
|
||||||
welcome-tooltip=歡迎來到 Explosive Gaming
|
welcome-tooltip=歡迎來到 APERX
|
||||||
welcome-general=歡迎來到 Explosive Gaming; 你在這裏的時候要遵守規則。 你可以在左上方的介面找到更多資訊。 地圖時間 __2__。\n下次地圖重設: __1__
|
welcome-general=歡迎來到 APERX; 你在這裏的時候要遵守規則。 你可以在左上方的介面找到更多資訊。 地圖時間 __2__。\n下次地圖重設: __1__
|
||||||
welcome-roles=我們有自訂的身份組來保護其他用戶。 所以你有機會不能使用拆除規劃器或掉東西。 身份組給予你各種權限\n你有以下身份組: __1__
|
welcome-roles=我們有自訂的身份組來保護其他用戶。 所以你有機會不能使用拆除規劃器或掉東西。 身份組給予你各種權限\n你有以下身份組: __1__
|
||||||
welcome-chat=你可以使用 「重音符/抑音符」 鍵 (ESC 鍵 下方) - 你也可以在選項中修改按鍵。\n你目前設定為 「__CONTROL__toggle-console__」
|
welcome-chat=你可以使用 「重音符/抑音符」 鍵 (ESC 鍵 下方) - 你也可以在選項中修改按鍵。\n你目前設定為 「__CONTROL__toggle-console__」
|
||||||
rules-tab=規則
|
rules-tab=規則
|
||||||
@@ -162,22 +162,18 @@ servers-tab=伺服器
|
|||||||
servers-tooltip=到其他伺服器及網站的連結
|
servers-tooltip=到其他伺服器及網站的連結
|
||||||
servers-general=這是其中一個伺服器。你可以在下方找到其他同樣是由我們運行的伺服器資料。
|
servers-general=這是其中一個伺服器。你可以在下方找到其他同樣是由我們運行的伺服器資料。
|
||||||
servers-factorio=異星工廠伺服器
|
servers-factorio=異星工廠伺服器
|
||||||
servers-1=S1 公共
|
servers-1=S1
|
||||||
servers-d1=這個服務器每兩日重設。
|
servers-d1=這個服務器定期重設。
|
||||||
servers-2=S2 -
|
servers-2=S2
|
||||||
servers-d2=這個服務器沒在營運。
|
servers-d2=這個服務器定期重設。
|
||||||
servers-3=S3 周
|
servers-3=S3
|
||||||
servers-d3=這個服務器每週重設。
|
servers-d3=這個服務器定期重設。
|
||||||
servers-4=S4 月
|
servers-5=S5
|
||||||
servers-d4=這個服務器每月重設。
|
servers-d5=這個服務器只為會員運行,可在 Discord 中得到更多資訊。
|
||||||
servers-5=S5 模組
|
servers-6=S6
|
||||||
servers-d5=這個服務器運行模組,可在 Discord 中得到更多資訊。
|
servers-d6=這個服務器只為會員運行,可在 Discord 中得到更多資訊。
|
||||||
servers-6=S6 Donator
|
servers-8=S8
|
||||||
servers-d6=這個服務器為支持者運行,可在 Discord 中得到更多資訊。
|
servers-d8=這個服務器只在活動和其他時運行,可在 Discord 中得到更多資訊。
|
||||||
servers-7=S7 項目
|
|
||||||
servers-d7=這個服務器只在有項目期間運行。
|
|
||||||
servers-8=S8 T̷-̶s̶-̴:̷
|
|
||||||
servers-d8=N̵o̴ ̶o̷-̶e̵ ̴k̸n̷-̶w̵s̸ ̴w̷h̷a̶-̶ ̷h̴a̴p̷p̴e̷n̷s̸ ̷o̶n̴ ̷t̶h̴-̶s̶ ̷s̷e̶r̸v̸e̴r̷,̶ ̸i̸t̴ ̷m̶-̸g̴h̶t̷ ̸n̸-̶t̵ ̷e̴v̸e̸n̶t̷ ̵-̷x̴i̵s̶t̸。̸
|
|
||||||
servers-connect-Offline=該服務器目前沒有在運行
|
servers-connect-Offline=該服務器目前沒有在運行
|
||||||
servers-connect-Current=你目前所在的伺服器
|
servers-connect-Current=你目前所在的伺服器
|
||||||
servers-connect-Version=該服務器運行不同的遊戲版本: __1__
|
servers-connect-Version=該服務器運行不同的遊戲版本: __1__
|
||||||
@@ -189,10 +185,9 @@ servers-open-in-browser=可在你的瀏覽器中打開
|
|||||||
backers-tab=支持者
|
backers-tab=支持者
|
||||||
backers-tooltip=支持者
|
backers-tooltip=支持者
|
||||||
backers-general=他們為服務器運行提供了不少幫助。
|
backers-general=他們為服務器運行提供了不少幫助。
|
||||||
backers-management=系統管理員
|
backers-management=管理員
|
||||||
backers-board=議員
|
|
||||||
backers-staff=職員
|
backers-staff=職員
|
||||||
backers-backers=支持者
|
backers-backers=議員,支持者,和夥伴
|
||||||
backers-active=活躍玩家
|
backers-active=活躍玩家
|
||||||
data-tab=資料
|
data-tab=資料
|
||||||
data-tooltip=所有已存資料
|
data-tooltip=所有已存資料
|
||||||
@@ -356,4 +351,3 @@ research=研究
|
|||||||
research-tooltip=啟用自動研究
|
research-tooltip=啟用自動研究
|
||||||
spawn=傳送出生
|
spawn=傳送出生
|
||||||
spawn-tooltip=傳送到出生點
|
spawn-tooltip=傳送到出生點
|
||||||
|
|
||||||
|
|||||||
@@ -7,24 +7,19 @@ player-health=__1__
|
|||||||
player-damage=__1__
|
player-damage=__1__
|
||||||
|
|
||||||
[links]
|
[links]
|
||||||
discord=https://discord.explosivegaming.nl
|
website=https://aperx.org
|
||||||
website=https://www.explosivegaming.nl
|
github=https://github.com/PHIDIAS0303/ExpCluster
|
||||||
status=https://status.explosivegaming.nl
|
discord=
|
||||||
github=https://github.com/explosivegaming/ExpCluster
|
|
||||||
patreon=https://www.patreon.com/ExpGaming
|
|
||||||
|
|
||||||
[info]
|
[info]
|
||||||
players-online=現在有 __1__ 人在線
|
players-online=現在有 __1__ 人在線
|
||||||
total-map-time=地圖時間為 __1__
|
total-map-time=地圖時間為 __1__
|
||||||
discord=加入社群: https://discord.explosivegaming.nl
|
website=訪問網站: https://aperx.org
|
||||||
website=訪問網站: https://www.explosivegaming.nl
|
github=增加功能或回報錯誤: https://github.com/PHIDIAS0303/ExpCluster
|
||||||
status=伺服器狀態: https://status.explosivegaming.nl
|
discord=
|
||||||
github=增加功能或回報錯誤: https://github.com/explosivegaming/ExpCluster
|
|
||||||
patreon=支持我們: https://www.patreon.com/ExpGaming
|
|
||||||
custom-commands=這裹使用了自制指令,如 /tag 和 /me。可使用 /chelp 查看更多。
|
custom-commands=這裹使用了自制指令,如 /tag 和 /me。可使用 /chelp 查看更多。
|
||||||
read-readme=確保你已閱讀相關資訊。按左上 i 圖標可再次查看。
|
read-readme=確保你已閱讀相關資訊。按左上 i 圖標可再次查看。
|
||||||
softmod=這裹用了自設情境,是一種軟裝模組。
|
softmod=這裹用了自設情境,是一種軟裝模組。
|
||||||
redmew=
|
|
||||||
lhd=列車必須是左則通行。這是本服務器長久以來的規則。
|
lhd=列車必須是左則通行。這是本服務器長久以來的規則。
|
||||||
|
|
||||||
[warnings]
|
[warnings]
|
||||||
@@ -43,7 +38,7 @@ reply=[Chat Bot] __1__
|
|||||||
disallow=你沒有權限使用這個指令。
|
disallow=你沒有權限使用這個指令。
|
||||||
players-online=現在有 __1__ 人上線。
|
players-online=現在有 __1__ 人上線。
|
||||||
players=本地圖現在有 __1__ 人曾上線。
|
players=本地圖現在有 __1__ 人曾上線。
|
||||||
not-real-dev=Cooldude2606 只是本場境的開發者
|
not-real-dev=
|
||||||
softmod=這裹用了自設情境。
|
softmod=這裹用了自設情境。
|
||||||
blame=責怪 __1__ 吧。
|
blame=責怪 __1__ 吧。
|
||||||
afk=看看 __1__, 他已掛機 __2__ 。
|
afk=看看 __1__, 他已掛機 __2__ 。
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
description-add=設定 / 取得你的加入信息。
|
description-add=設定 / 取得你的加入信息。
|
||||||
description-remove=移除你的加入信息。
|
description-remove=移除你的加入信息。
|
||||||
arg-message=你的加入信息。
|
arg-message=你的加入信息。
|
||||||
greet=[color=0,1,0] 歡迎來到 EXP 的服務器! 若果你喜歡本服務器可加入 DISCORD: __1__ [/color]
|
greet=[color=0,1,0] 歡迎來到 APERX 的服務器! __1__[/color]
|
||||||
message-set=你的加入信息已更新。
|
message-set=你的加入信息已更新。
|
||||||
message-get=你的加入信息為: __1__
|
message-get=你的加入信息為: __1__
|
||||||
message-cleared=你的加入信息已清除。
|
message-cleared=你的加入信息已清除。
|
||||||
|
|||||||
@@ -133,8 +133,8 @@ goto-edit=修改傳送陣圖案
|
|||||||
[readme]
|
[readme]
|
||||||
main-tooltip=資訊
|
main-tooltip=資訊
|
||||||
welcome-tab=歡迎
|
welcome-tab=歡迎
|
||||||
welcome-tooltip=歡迎來到 Explosive Gaming
|
welcome-tooltip=歡迎來到 APERX
|
||||||
welcome-general=歡迎來到 Explosive Gaming; 你在這裏的時候要遵守規則。 你可以在左上方的介面找到更多資訊。 地圖時間 __2__。\n下次地圖重設: __1__
|
welcome-general=歡迎來到 APERX; 你在這裏的時候要遵守規則。 你可以在左上方的介面找到更多資訊。 地圖時間 __2__。\n下次地圖重設: __1__
|
||||||
welcome-roles=我們有自訂的身份組來保護其他用戶。 所以你有機會不能使用拆除規劃器或掉東西。 身份組給予你各種權限\n你有以下身份組: __1__
|
welcome-roles=我們有自訂的身份組來保護其他用戶。 所以你有機會不能使用拆除規劃器或掉東西。 身份組給予你各種權限\n你有以下身份組: __1__
|
||||||
welcome-chat=你可以使用 「重音符/抑音符」 鍵 (ESC 鍵 下方) - 你也可以在選項中修改按鍵。\n你目前設定為 「__CONTROL__toggle-console__」
|
welcome-chat=你可以使用 「重音符/抑音符」 鍵 (ESC 鍵 下方) - 你也可以在選項中修改按鍵。\n你目前設定為 「__CONTROL__toggle-console__」
|
||||||
rules-tab=規則
|
rules-tab=規則
|
||||||
@@ -162,22 +162,18 @@ servers-tab=伺服器
|
|||||||
servers-tooltip=到其他伺服器及網站的連結
|
servers-tooltip=到其他伺服器及網站的連結
|
||||||
servers-general=這是其中一個伺服器。你可以在下方找到其他同樣是由我們運行的伺服器資料。
|
servers-general=這是其中一個伺服器。你可以在下方找到其他同樣是由我們運行的伺服器資料。
|
||||||
servers-factorio=異星工廠伺服器
|
servers-factorio=異星工廠伺服器
|
||||||
servers-1=S1 公共
|
servers-1=S1
|
||||||
servers-d1=這個服務器每兩日重設。
|
servers-d1=這個服務器定期重設。
|
||||||
servers-2=S2 -
|
servers-2=S2
|
||||||
servers-d2=這個服務器沒在營運。
|
servers-d2=這個服務器定期重設。
|
||||||
servers-3=S3 周
|
servers-3=S3
|
||||||
servers-d3=這個服務器每週重設。
|
servers-d3=這個服務器定期重設。
|
||||||
servers-4=S4 月
|
servers-5=S5
|
||||||
servers-d4=這個服務器每月重設。
|
servers-d5=這個服務器只為會員運行,可在 Discord 中得到更多資訊。
|
||||||
servers-5=S5 模組
|
servers-6=S6
|
||||||
servers-d5=這個服務器運行模組,可在 Discord 中得到更多資訊。
|
servers-d6=這個服務器只為會員運行,可在 Discord 中得到更多資訊。
|
||||||
servers-6=S6 Donator
|
servers-8=S8
|
||||||
servers-d6=這個服務器為支持者運行,可在 Discord 中得到更多資訊。
|
servers-d8=這個服務器只在活動和其他時運行,可在 Discord 中得到更多資訊。
|
||||||
servers-7=S7 項目
|
|
||||||
servers-d7=這個服務器只在有項目期間運行。
|
|
||||||
servers-8=S8 T̷-̶s̶-̴:̷
|
|
||||||
servers-d8=N̵o̴ ̶o̷-̶e̵ ̴k̸n̷-̶w̵s̸ ̴w̷h̷a̶-̶ ̷h̴a̴p̷p̴e̷n̷s̸ ̷o̶n̴ ̷t̶h̴-̶s̶ ̷s̷e̶r̸v̸e̴r̷,̶ ̸i̸t̴ ̷m̶-̸g̴h̶t̷ ̸n̸-̶t̵ ̷e̴v̸e̸n̶t̷ ̵-̷x̴i̵s̶t̸。̸
|
|
||||||
servers-connect-Offline=該服務器目前沒有在運行
|
servers-connect-Offline=該服務器目前沒有在運行
|
||||||
servers-connect-Current=你目前所在的伺服器
|
servers-connect-Current=你目前所在的伺服器
|
||||||
servers-connect-Version=該服務器運行不同的遊戲版本: __1__
|
servers-connect-Version=該服務器運行不同的遊戲版本: __1__
|
||||||
@@ -189,10 +185,9 @@ servers-open-in-browser=可在你的瀏覽器中打開
|
|||||||
backers-tab=支持者
|
backers-tab=支持者
|
||||||
backers-tooltip=支持者
|
backers-tooltip=支持者
|
||||||
backers-general=他們為服務器運行提供了不少幫助。
|
backers-general=他們為服務器運行提供了不少幫助。
|
||||||
backers-management=系統管理員
|
backers-management=管理員
|
||||||
backers-board=議員
|
|
||||||
backers-staff=職員
|
backers-staff=職員
|
||||||
backers-backers=支持者
|
backers-backers=議員,支持者,和夥伴
|
||||||
backers-active=活躍玩家
|
backers-active=活躍玩家
|
||||||
data-tab=資料
|
data-tab=資料
|
||||||
data-tooltip=所有已存資料
|
data-tooltip=所有已存資料
|
||||||
@@ -294,7 +289,7 @@ control-type-energy=電力
|
|||||||
control-type-circuit=回路
|
control-type-circuit=回路
|
||||||
control-type-storage-input=放入箱
|
control-type-storage-input=放入箱
|
||||||
control-type-storage-output=提取箱
|
control-type-storage-output=提取箱
|
||||||
power-on-space-research=你要研究 [technology=__1__] 在 __2__ 級 才可使用太空平台 vlayer 功能。
|
power-on-space-research=你要研究 [technology=__1__] 在 __2__ 級才可使用太空平台 vlayer 功能。
|
||||||
enter=現在進入 vlayer 區域選擇
|
enter=現在進入 vlayer 區域選擇
|
||||||
exit=已進入 vlayer 區域選擇
|
exit=已進入 vlayer 區域選擇
|
||||||
|
|
||||||
|
|||||||
@@ -30,9 +30,9 @@ Event.on_nth_tick(config.update_time, function()
|
|||||||
-- Check for active players
|
-- Check for active players
|
||||||
for _, player in ipairs(game.connected_players) do
|
for _, player in ipairs(game.connected_players) do
|
||||||
if player.afk_time < config.afk_time
|
if player.afk_time < config.afk_time
|
||||||
or config.admin_as_active and player.admin
|
or (config.active_role and Roles.get_player_highest_role(player).index >= Roles.get_role_from_any(config.active_role).index)
|
||||||
or config.trust_as_active and player.online_time > config.trust_time
|
or (config.admin_as_active and player.admin)
|
||||||
or config.active_role and (Roles.get_player_highest_role(player).index >= Roles.get_role_from_any(config.active_role).index) then
|
or (config.trust_as_active and player.online_time > config.trust_time) then
|
||||||
-- Active player was found
|
-- Active player was found
|
||||||
primitives.last_active = game.tick
|
primitives.last_active = game.tick
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ local speech_bubble_async =
|
|||||||
local function circle_messages()
|
local function circle_messages()
|
||||||
for name, ent in pairs(Public.compilatrons) do
|
for name, ent in pairs(Public.compilatrons) do
|
||||||
if not ent.valid then
|
if not ent.valid then
|
||||||
Public.spawn_compilatron(game.players[1].surface, name)
|
Public.spawn_compilatron(game.surfaces[1] or game.players[1].surface, name)
|
||||||
end
|
end
|
||||||
local current_message = Public.current_messages[name]
|
local current_message = Public.current_messages[name]
|
||||||
local msg_number
|
local msg_number
|
||||||
@@ -94,9 +94,9 @@ end
|
|||||||
-- @tparam string location the location tag that is in the config file
|
-- @tparam string location the location tag that is in the config file
|
||||||
function Public.spawn_compilatron(surface, location)
|
function Public.spawn_compilatron(surface, location)
|
||||||
local position = locations[location]
|
local position = locations[location]
|
||||||
local pos = surface.find_non_colliding_position("small-biter", position, 1.5, 0.5)
|
local pos = surface.find_non_colliding_position("behemoth-biter", position, 1.5, 0.5)
|
||||||
if pos then
|
if pos then
|
||||||
local compi = surface.create_entity{ name = "small-biter", position = pos, force = game.forces.neutral }
|
local compi = surface.create_entity{ name = "behemoth-biter", position = pos, force = game.forces.neutral }
|
||||||
Public.add_compilatron(compi, location)
|
Public.add_compilatron(compi, location)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -73,10 +73,10 @@ Event.add(defines.events.on_player_died, function(event)
|
|||||||
inventory = inventory,
|
inventory = inventory,
|
||||||
surface = corpse.surface,
|
surface = corpse.surface,
|
||||||
position = corpse.position,
|
position = corpse.position,
|
||||||
name = "iron-chest",
|
name = "steel-chest",
|
||||||
allow_creation = true,
|
allow_creation = true,
|
||||||
}
|
}
|
||||||
|
|
||||||
corpse.destroy()
|
corpse.destroy()
|
||||||
corpse = chest
|
corpse = chest
|
||||||
end
|
end
|
||||||
@@ -155,7 +155,7 @@ if config.auto_collect_bodies then
|
|||||||
ExpUtil.transfer_inventory_to_surface{
|
ExpUtil.transfer_inventory_to_surface{
|
||||||
inventory = inventory,
|
inventory = inventory,
|
||||||
surface = corpse.surface,
|
surface = corpse.surface,
|
||||||
name = "iron-chest",
|
name = "steel-chest",
|
||||||
allow_creation = true,
|
allow_creation = true,
|
||||||
}
|
}
|
||||||
end)
|
end)
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ local function clear_items(event)
|
|||||||
ExpUtil.transfer_inventory_to_surface{
|
ExpUtil.transfer_inventory_to_surface{
|
||||||
inventory = inventory,
|
inventory = inventory,
|
||||||
surface = game.surfaces[1],
|
surface = game.surfaces[1],
|
||||||
name = "iron-chest",
|
name = "steel-chest",
|
||||||
allow_creation = true,
|
allow_creation = true,
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ local function check_entity(entity)
|
|||||||
end
|
end
|
||||||
|
|
||||||
if not entity.minable then
|
if not entity.minable then
|
||||||
-- if it is minable
|
-- if it is not minable
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -115,9 +115,7 @@ local function miner_check(entity)
|
|||||||
if config.fluid and entity.fluidbox and #entity.fluidbox > 0 then
|
if config.fluid and entity.fluidbox and #entity.fluidbox > 0 then
|
||||||
-- if require fluid to mine
|
-- if require fluid to mine
|
||||||
table.insert(pipe_build, { x = 0, y = 0 })
|
table.insert(pipe_build, { x = 0, y = 0 })
|
||||||
|
local r = er + 1
|
||||||
local half = math.floor(entity.get_radius())
|
|
||||||
local r = 1 + er
|
|
||||||
|
|
||||||
local entities = es.find_entities_filtered{ area = { { ep.x - r, ep.y - r }, { ep.x + r, ep.y + r } }, type = { "mining-drill", "pipe", "pipe-to-ground" } }
|
local entities = es.find_entities_filtered{ area = { { ep.x - r, ep.y - r }, { ep.x + r, ep.y + r } }, type = { "mining-drill", "pipe", "pipe-to-ground" } }
|
||||||
local entities_t = es.find_entities_filtered{ area = { { ep.x - r, ep.y - r }, { ep.x + r, ep.y + r } }, ghost_type = { "pipe", "pipe-to-ground" } }
|
local entities_t = es.find_entities_filtered{ area = { { ep.x - r, ep.y - r }, { ep.x + r, ep.y + r } }, ghost_type = { "pipe", "pipe-to-ground" } }
|
||||||
@@ -126,19 +124,19 @@ local function miner_check(entity)
|
|||||||
|
|
||||||
for _, e in pairs(entities) do
|
for _, e in pairs(entities) do
|
||||||
if (e.position.x > ep.x) and (e.position.y == ep.y) then
|
if (e.position.x > ep.x) and (e.position.y == ep.y) then
|
||||||
for h = 1, half do
|
for h = 1, er do
|
||||||
table.insert(pipe_build, { x = h, y = 0 })
|
table.insert(pipe_build, { x = h, y = 0 })
|
||||||
end
|
end
|
||||||
elseif (e.position.x < ep.x) and (e.position.y == ep.y) then
|
elseif (e.position.x < ep.x) and (e.position.y == ep.y) then
|
||||||
for h = 1, half do
|
for h = 1, er do
|
||||||
table.insert(pipe_build, { x = -h, y = 0 })
|
table.insert(pipe_build, { x = -h, y = 0 })
|
||||||
end
|
end
|
||||||
elseif (e.position.x == ep.x) and (e.position.y > ep.y) then
|
elseif (e.position.x == ep.x) and (e.position.y > ep.y) then
|
||||||
for h = 1, half do
|
for h = 1, er do
|
||||||
table.insert(pipe_build, { x = 0, y = h })
|
table.insert(pipe_build, { x = 0, y = h })
|
||||||
end
|
end
|
||||||
elseif (e.position.x == ep.x) and (e.position.y < ep.y) then
|
elseif (e.position.x == ep.x) and (e.position.y < ep.y) then
|
||||||
for h = 1, half do
|
for h = 1, er do
|
||||||
table.insert(pipe_build, { x = 0, y = -h })
|
table.insert(pipe_build, { x = 0, y = -h })
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -161,27 +159,27 @@ Event.add(defines.events.on_resource_depleted, function(event)
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
local entities = event.entity.surface.find_entities_filtered{ area = { { event.entity.position.x - 1, event.entity.position.y - 1 }, { event.entity.position.x + 1, event.entity.position.y + 1 } }, type = "mining-drill" }
|
local resource = event.entity
|
||||||
|
local drills = resource.surface.find_entities_filtered{ area = { { event.entity.position.x - 1, event.entity.position.y - 1 }, { event.entity.position.x + 1, event.entity.position.y + 1 } }, type = "mining-drill" }
|
||||||
|
|
||||||
if #entities == 0 then
|
for _, entity in pairs(drills) do
|
||||||
return
|
local radius = entity.prototype.mining_drill_radius
|
||||||
end
|
local dx = math.abs(entity.position.x - resource.position.x)
|
||||||
|
local dy = math.abs(entity.position.y - resource.position.y)
|
||||||
for _, entity in pairs(entities) do
|
if dx <= radius and dy <= radius then
|
||||||
if ((math.abs(entity.position.x - event.entity.position.x) < entity.prototype.mining_drill_radius) and (math.abs(entity.position.y - event.entity.position.y) < entity.prototype.mining_drill_radius)) then
|
|
||||||
miner_check(entity)
|
miner_check(entity)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
Event.on_nth_tick(10, function(event)
|
Event.on_nth_tick(10, function(event)
|
||||||
for k, q in pairs(miner_data.queue) do
|
for i = #miner_data.queue, 1, -1 do
|
||||||
|
local q = miner_data.queue[i]
|
||||||
if not q.e or not q.e.valid then
|
if not q.e or not q.e.valid then
|
||||||
table.remove(miner_data.queue, k)
|
table.remove(miner_data.queue, i)
|
||||||
break
|
|
||||||
elseif event.tick >= q.t then
|
elseif event.tick >= q.t then
|
||||||
q.e.order_deconstruction(q.e.force)
|
q.e.order_deconstruction(q.e.force)
|
||||||
table.remove(miner_data.queue, k)
|
table.remove(miner_data.queue, i)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ local function check_items(player, type)
|
|||||||
items = items,
|
items = items,
|
||||||
surface = game.planets.nauvis.surface,
|
surface = game.planets.nauvis.surface,
|
||||||
allow_creation = true,
|
allow_creation = true,
|
||||||
name = "iron-chest",
|
name = "steel-chest",
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -43,12 +43,3 @@ for _, inventory in ipairs(config.inventories) do
|
|||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if config.disable_nuke_research then
|
|
||||||
Event.add(defines.events.on_research_started, function(event)
|
|
||||||
local name = event.research.name
|
|
||||||
if config.disable_nuke_research_names[name] then
|
|
||||||
event.research.force.cancel_current_research()
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
end
|
|
||||||
|
|||||||
@@ -20,23 +20,6 @@ for _, turret in ipairs(turrets) do
|
|||||||
turret.position = apply_offset(turret.position, config.turrets.offset)
|
turret.position = apply_offset(turret.position, config.turrets.offset)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Get or create the force used for entities in spawn
|
|
||||||
local function get_spawn_force()
|
|
||||||
local force = game.forces["spawn"]
|
|
||||||
|
|
||||||
if force and force.valid then
|
|
||||||
return force
|
|
||||||
end
|
|
||||||
|
|
||||||
force = game.create_force("spawn")
|
|
||||||
force.set_cease_fire("player", true)
|
|
||||||
-- force.set_friend('player', true)
|
|
||||||
game.forces["player"].set_cease_fire("spawn", true)
|
|
||||||
-- game.forces['player'].set_friend('spawn', true)
|
|
||||||
|
|
||||||
return force
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Protects an entity
|
-- Protects an entity
|
||||||
-- and sets its force to the spawn force
|
-- and sets its force to the spawn force
|
||||||
local function protect_entity(entity, set_force)
|
local function protect_entity(entity, set_force)
|
||||||
@@ -47,7 +30,7 @@ local function protect_entity(entity, set_force)
|
|||||||
entity.operable = false
|
entity.operable = false
|
||||||
|
|
||||||
if set_force then
|
if set_force then
|
||||||
entity.force = get_spawn_force()
|
entity.force = game.forces["neutral"]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -61,7 +44,7 @@ local function spawn_turrets()
|
|||||||
|
|
||||||
-- Makes a new turret if it is not found
|
-- Makes a new turret if it is not found
|
||||||
if not turret or not turret.valid then
|
if not turret or not turret.valid then
|
||||||
turret = surface.create_entity{ name = "gun-turret", position = pos, force = "spawn" }
|
turret = surface.create_entity{ name = "gun-turret", position = pos, force = "neutral" }
|
||||||
if not turret then return end
|
if not turret then return end
|
||||||
protect_entity(turret)
|
protect_entity(turret)
|
||||||
end
|
end
|
||||||
@@ -131,7 +114,13 @@ local function spawn_entities(surface, position)
|
|||||||
protect_entity(entity)
|
protect_entity(entity)
|
||||||
end
|
end
|
||||||
|
|
||||||
entity.operable = config.entities.operable
|
if entity then
|
||||||
|
entity.operable = config.entities.operable
|
||||||
|
|
||||||
|
if entity.name == "small-lamp" then
|
||||||
|
entity.always_on = true
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -228,7 +217,11 @@ Event.add(defines.events.on_player_created, function(event)
|
|||||||
local player = game.players[event.player_index]
|
local player = game.players[event.player_index]
|
||||||
local p = { x = 0, y = 0 }
|
local p = { x = 0, y = 0 }
|
||||||
local s = player.physical_surface
|
local s = player.physical_surface
|
||||||
get_spawn_force()
|
game.forces["neutral"].set_cease_fire("player", true)
|
||||||
|
game.forces["player"].set_cease_fire("neutral", true)
|
||||||
|
game.forces["neutral"].set_ammo_damage_modifier("bullet", 1)
|
||||||
|
game.forces["neutral"].set_gun_speed_modifier("bullet", 1)
|
||||||
|
game.forces["neutral"].set_turret_attack_modifier("gun-turret", 1)
|
||||||
spawn_area(s, p)
|
spawn_area(s, p)
|
||||||
if config.pattern.enabled then spawn_pattern(s, p) end
|
if config.pattern.enabled then spawn_pattern(s, p) end
|
||||||
if config.water.enabled then spawn_water(s, p) end
|
if config.water.enabled then spawn_water(s, p) end
|
||||||
|
|||||||
@@ -340,9 +340,9 @@ function vlayer.create_input_interface(surface, position, circuit, last_user)
|
|||||||
end
|
end
|
||||||
|
|
||||||
if circuit then
|
if circuit then
|
||||||
for k, _ in pairs(circuit) do
|
for k, _ in pairs({ defines.wire_connector_id.circuit_red, defines.wire_connector_id.circuit_green }) do
|
||||||
for _, v in pairs(circuit[k]) do
|
for _, v in pairs(circuit.get_wire_connector{ wire_connector_id = k, or_create = false }.real_connections) do
|
||||||
interface.connect_neighbour{ wire = defines.wire_type[k], target_entity = v }
|
interface.connect_to{ target = v.target }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -418,9 +418,9 @@ function vlayer.create_output_interface(surface, position, circuit, last_user)
|
|||||||
end
|
end
|
||||||
|
|
||||||
if circuit then
|
if circuit then
|
||||||
for k, _ in pairs(circuit) do
|
for k, _ in pairs({ defines.wire_connector_id.circuit_red, defines.wire_connector_id.circuit_green }) do
|
||||||
for _, v in pairs(circuit[k]) do
|
for _, v in pairs(circuit.get_wire_connector{ wire_connector_id = k, or_create = false }.real_connections) do
|
||||||
interface.connect_neighbour{ wire = defines.wire_type[k], target_entity = v }
|
interface.connect_to{ target = v.target }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -555,9 +555,9 @@ function vlayer.create_circuit_interface(surface, position, circuit, last_user)
|
|||||||
end
|
end
|
||||||
|
|
||||||
if circuit then
|
if circuit then
|
||||||
for k, _ in pairs(circuit) do
|
for k, _ in pairs({ defines.wire_connector_id.circuit_red, defines.wire_connector_id.circuit_green }) do
|
||||||
for _, v in pairs(circuit[k]) do
|
for _, v in pairs(circuit.get_wire_connector{ wire_connector_id = k, or_create = false }.real_connections) do
|
||||||
interface.connect_neighbour{ wire = defines.wire_type[k], target_entity = v }
|
interface.connect_to{ target = v.target }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -189,6 +189,10 @@ function Warps.make_warp_area(warp_id)
|
|||||||
if entity.type == "electric-pole" then
|
if entity.type == "electric-pole" then
|
||||||
warp.electric_pole = entity
|
warp.electric_pole = entity
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if entity.name == "small-lamp" then
|
||||||
|
entity.always_on = true
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -4,13 +4,23 @@
|
|||||||
]]
|
]]
|
||||||
|
|
||||||
local Gui = require("modules/exp_gui")
|
local Gui = require("modules/exp_gui")
|
||||||
|
local Storage = require("modules/exp_util/storage")
|
||||||
local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event
|
local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event
|
||||||
local Roles = require("modules.exp_legacy.expcore.roles") --- @dep expcore.roles
|
local Roles = require("modules.exp_legacy.expcore.roles") --- @dep expcore.roles
|
||||||
local config = require("modules.exp_legacy.config.bonus") --- @dep config.bonus
|
local config = require("modules.exp_legacy.config.bonus") --- @dep config.bonus
|
||||||
local vlayer = require("modules.exp_legacy.modules.control.vlayer")
|
local vlayer = require("modules.exp_legacy.modules.control.vlayer")
|
||||||
local format_number = require("util").format_number --- @dep util
|
local format_number = require("util").format_number --- @dep util
|
||||||
|
|
||||||
local bonus_container
|
local bonus_container
|
||||||
|
|
||||||
|
local bonus_data = {
|
||||||
|
score_limit = {}
|
||||||
|
}
|
||||||
|
|
||||||
|
Storage.register(bonus_data, function(tbl)
|
||||||
|
bonus_data = tbl
|
||||||
|
end)
|
||||||
|
|
||||||
--- @param player LuaPlayer
|
--- @param player LuaPlayer
|
||||||
--- @param container LuaGuiElement?
|
--- @param container LuaGuiElement?
|
||||||
--- @return number
|
--- @return number
|
||||||
@@ -101,9 +111,13 @@ local function apply_periodic_bonus(player)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function bonus_score_limit_calc(player)
|
||||||
|
return math.floor(config.pts.base * (1 + config.pts.increase_percentage_per_role_level * (Roles.get_role_by_name(config.pts.role_name).index - Roles.get_player_highest_role(player).index)))
|
||||||
|
end
|
||||||
|
|
||||||
--- Control label for the bonus points available
|
--- Control label for the bonus points available
|
||||||
-- @element bonus_gui_control_pts_a
|
-- @element bonus_gui_control_pts
|
||||||
local bonus_gui_control_pts_a = Gui.element("bonus_gui_control_pts_a")
|
local bonus_gui_control_pts = Gui.element("bonus_gui_control_pts")
|
||||||
:draw{
|
:draw{
|
||||||
type = "label",
|
type = "label",
|
||||||
name = Gui.property_from_name,
|
name = Gui.property_from_name,
|
||||||
@@ -113,58 +127,16 @@ local bonus_gui_control_pts_a = Gui.element("bonus_gui_control_pts_a")
|
|||||||
width = config.gui_display_width["half"],
|
width = config.gui_display_width["half"],
|
||||||
}
|
}
|
||||||
|
|
||||||
local bonus_gui_control_pts_a_count = Gui.element("bonus_gui_control_pts_a_count")
|
local bonus_gui_control_pts_count = Gui.element("bonus_gui_control_pts_count")
|
||||||
:draw{
|
:draw{
|
||||||
type = "label",
|
type = "progressbar",
|
||||||
name = Gui.property_from_name,
|
name = Gui.property_from_name,
|
||||||
caption = config.pts.base,
|
caption = "0 / 0",
|
||||||
style = "heading_2_label",
|
value = 0,
|
||||||
}:style{
|
style = "electric_satisfaction_statistics_progressbar",
|
||||||
width = config.gui_display_width["half"],
|
|
||||||
}
|
|
||||||
|
|
||||||
--- Control label for the bonus points needed
|
|
||||||
-- @element bonus_gui_control_pts_n
|
|
||||||
local bonus_gui_control_pts_n = Gui.element("bonus_gui_control_pts_n")
|
|
||||||
:draw{
|
|
||||||
type = "label",
|
|
||||||
name = Gui.property_from_name,
|
|
||||||
caption = { "bonus.control-pts-n" },
|
|
||||||
style = "heading_2_label",
|
|
||||||
}:style{
|
|
||||||
width = config.gui_display_width["half"],
|
|
||||||
}
|
|
||||||
|
|
||||||
local bonus_gui_control_pts_n_count = Gui.element("bonus_gui_control_pts_n_count")
|
|
||||||
:draw{
|
|
||||||
type = "label",
|
|
||||||
name = Gui.property_from_name,
|
|
||||||
caption = "0",
|
|
||||||
style = "heading_2_label",
|
|
||||||
}:style{
|
|
||||||
width = config.gui_display_width["half"],
|
|
||||||
}
|
|
||||||
|
|
||||||
--- Control label for the bonus points remaining
|
|
||||||
-- @element bonus_gui_control_pts_r
|
|
||||||
local bonus_gui_control_pts_r = Gui.element("bonus_gui_control_pts_r")
|
|
||||||
:draw{
|
|
||||||
type = "label",
|
|
||||||
name = Gui.property_from_name,
|
|
||||||
caption = { "bonus.control-pts-r" },
|
|
||||||
style = "heading_2_label",
|
|
||||||
}:style{
|
|
||||||
width = config.gui_display_width["half"],
|
|
||||||
}
|
|
||||||
|
|
||||||
local bonus_gui_control_pts_r_count = Gui.element("bonus_gui_control_pts_r_count")
|
|
||||||
:draw{
|
|
||||||
type = "label",
|
|
||||||
name = Gui.property_from_name,
|
|
||||||
caption = "0",
|
|
||||||
style = "heading_2_label",
|
|
||||||
}:style{
|
}:style{
|
||||||
width = config.gui_display_width["half"],
|
width = config.gui_display_width["half"],
|
||||||
|
font = "heading-2",
|
||||||
}
|
}
|
||||||
|
|
||||||
--- A button used for pts calculations
|
--- A button used for pts calculations
|
||||||
@@ -183,21 +155,16 @@ local bonus_gui_control_reset = Gui.element("bonus_gui_control_reset")
|
|||||||
for k, v in pairs(config.conversion) do
|
for k, v in pairs(config.conversion) do
|
||||||
local s = "bonus_display_" .. k .. "_slider"
|
local s = "bonus_display_" .. k .. "_slider"
|
||||||
disp[s].slider_value = config.player_bonus[v].value
|
disp[s].slider_value = config.player_bonus[v].value
|
||||||
|
disp[disp[s].tags.counter].caption = (config.player_bonus[v].is_percentage and (format_number(disp[s].slider_value * 100, false) .. " %")) or format_number(disp[s].slider_value, false)
|
||||||
if config.player_bonus[v].is_percentage then
|
|
||||||
disp[disp[s].tags.counter].caption = format_number(disp[s].slider_value * 100, false) .. " %"
|
|
||||||
else
|
|
||||||
disp[disp[s].tags.counter].caption = format_number(disp[s].slider_value, false)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local slider = disp["bonus_display_personal_battery_recharge_slider"]
|
local slider = disp["bonus_display_personal_battery_recharge_slider"]
|
||||||
slider.slider_value = config.player_special_bonus["personal_battery_recharge"].value
|
slider.slider_value = config.player_special_bonus["personal_battery_recharge"].value
|
||||||
disp[slider.tags.counter].caption = format_number(slider.slider_value, false)
|
disp[slider.tags.counter].caption = format_number(slider.slider_value, false)
|
||||||
|
|
||||||
local r = bonus_gui_pts_needed(player)
|
local n = bonus_gui_pts_needed(player)
|
||||||
element.parent[bonus_gui_control_pts_n_count.name].caption = r
|
element.parent[bonus_gui_control_pts_count.name].caption = n .. " / " .. bonus_data.score_limit[player]
|
||||||
element.parent[bonus_gui_control_pts_r_count.name].caption = tonumber(element.parent[bonus_gui_control_pts_a_count.name].caption) - r
|
element.parent[bonus_gui_control_pts_count.name].value = n / bonus_data.score_limit[player]
|
||||||
end)
|
end)
|
||||||
|
|
||||||
--- A button used for pts apply
|
--- A button used for pts apply
|
||||||
@@ -211,11 +178,10 @@ local bonus_gui_control_apply = Gui.element("bonus_gui_control_apply")
|
|||||||
width = config.gui_display_width["half"],
|
width = config.gui_display_width["half"],
|
||||||
}:on_click(function(def, player, element)
|
}:on_click(function(def, player, element)
|
||||||
local n = bonus_gui_pts_needed(player)
|
local n = bonus_gui_pts_needed(player)
|
||||||
element.parent[bonus_gui_control_pts_n_count.name].caption = n
|
element.parent[bonus_gui_control_pts_count.name].caption = n .. " / " .. bonus_data.score_limit[player]
|
||||||
local r = tonumber(element.parent[bonus_gui_control_pts_a_count.name].caption) - n
|
element.parent[bonus_gui_control_pts_count.name].value = n / bonus_data.score_limit[player]
|
||||||
element.parent[bonus_gui_control_pts_r_count.name].caption = r
|
|
||||||
|
|
||||||
if r >= 0 then
|
if n <= bonus_data.score_limit[player] then
|
||||||
apply_bonus(player)
|
apply_bonus(player)
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
@@ -227,15 +193,8 @@ local bonus_control_set = Gui.element("bonus_control_set")
|
|||||||
local bonus_set = parent.add{ type = "flow", direction = "vertical", name = name }
|
local bonus_set = parent.add{ type = "flow", direction = "vertical", name = name }
|
||||||
local disp = Gui.elements.scroll_table(bonus_set, config.gui_display_width["half"] * 2, 2, "disp")
|
local disp = Gui.elements.scroll_table(bonus_set, config.gui_display_width["half"] * 2, 2, "disp")
|
||||||
|
|
||||||
bonus_gui_control_pts_a(disp)
|
bonus_gui_control_pts(disp)
|
||||||
bonus_gui_control_pts_a_count(disp)
|
bonus_gui_control_pts_count(disp)
|
||||||
|
|
||||||
bonus_gui_control_pts_n(disp)
|
|
||||||
bonus_gui_control_pts_n_count(disp)
|
|
||||||
|
|
||||||
bonus_gui_control_pts_r(disp)
|
|
||||||
bonus_gui_control_pts_r_count(disp)
|
|
||||||
|
|
||||||
bonus_gui_control_reset(disp)
|
bonus_gui_control_reset(disp)
|
||||||
bonus_gui_control_apply(disp)
|
bonus_gui_control_apply(disp)
|
||||||
|
|
||||||
@@ -254,14 +213,6 @@ local bonus_gui_slider = Gui.element("bonus_gui_slider")
|
|||||||
}
|
}
|
||||||
label.style.width = config.gui_display_width["label"]
|
label.style.width = config.gui_display_width["label"]
|
||||||
|
|
||||||
local value = bonus.value
|
|
||||||
|
|
||||||
if bonus.is_percentage then
|
|
||||||
value = format_number(value * 100, false) .. " %"
|
|
||||||
else
|
|
||||||
value = format_number(value, false)
|
|
||||||
end
|
|
||||||
|
|
||||||
local slider = parent.add{
|
local slider = parent.add{
|
||||||
type = "slider",
|
type = "slider",
|
||||||
name = name .. "_slider",
|
name = name .. "_slider",
|
||||||
@@ -281,7 +232,7 @@ local bonus_gui_slider = Gui.element("bonus_gui_slider")
|
|||||||
local count = parent.add{
|
local count = parent.add{
|
||||||
type = "label",
|
type = "label",
|
||||||
name = name .. "_count",
|
name = name .. "_count",
|
||||||
caption = value,
|
caption = (bonus.is_percentage and format_number(bonus.value * 100, false) .. " %") or format_number(bonus.value, false),
|
||||||
style = "heading_2_label",
|
style = "heading_2_label",
|
||||||
}
|
}
|
||||||
count.style.width = config.gui_display_width["count"]
|
count.style.width = config.gui_display_width["count"]
|
||||||
@@ -289,17 +240,12 @@ local bonus_gui_slider = Gui.element("bonus_gui_slider")
|
|||||||
return slider
|
return slider
|
||||||
end)
|
end)
|
||||||
:on_value_changed(function(def, player, element)
|
:on_value_changed(function(def, player, element)
|
||||||
if element.tags.is_percentage then
|
element.parent[element.tags.counter].caption = (element.tags.is_percentage and format_number(element.slider_value * 100, false) .. " %") or format_number(element.slider_value, false)
|
||||||
element.parent[element.tags.counter].caption = format_number(element.slider_value * 100, false) .. " %"
|
|
||||||
else
|
|
||||||
element.parent[element.tags.counter].caption = format_number(element.slider_value, false)
|
|
||||||
end
|
|
||||||
|
|
||||||
local r = bonus_gui_pts_needed(player)
|
|
||||||
local container = Gui.get_left_element(bonus_container, player)
|
local container = Gui.get_left_element(bonus_container, player)
|
||||||
local disp = container.frame["bonus_st_1"].disp.table
|
local disp = container.frame["bonus_st_1"].disp.table
|
||||||
disp[bonus_gui_control_pts_n_count.name].caption = r
|
local n = bonus_gui_pts_needed(player)
|
||||||
disp[bonus_gui_control_pts_r_count.name].caption = tonumber(disp[bonus_gui_control_pts_a_count.name].caption) - r
|
disp[bonus_gui_control_pts_count.name].caption = n .. " / " .. bonus_data.score_limit[player]
|
||||||
|
disp[bonus_gui_control_pts_count.name].value = n / bonus_data.score_limit[player]
|
||||||
end)
|
end)
|
||||||
|
|
||||||
--- A vertical flow containing all the bonus data
|
--- A vertical flow containing all the bonus data
|
||||||
@@ -313,8 +259,7 @@ local bonus_data_set = Gui.element("bonus_data_set")
|
|||||||
bonus_gui_slider(disp, "bonus_display_" .. k, { "bonus.display-" .. k }, { "bonus.display-" .. k .. "-tooltip" }, config.player_bonus[v])
|
bonus_gui_slider(disp, "bonus_display_" .. k, { "bonus.display-" .. k }, { "bonus.display-" .. k .. "-tooltip" }, config.player_bonus[v])
|
||||||
end
|
end
|
||||||
|
|
||||||
bonus_gui_slider(disp, "bonus_display_personal_battery_recharge", { "bonus.display-personal-battery-recharge" }, { "bonus.display-personal-battery-recharge-tooltip" },
|
bonus_gui_slider(disp, "bonus_display_personal_battery_recharge", { "bonus.display-personal-battery-recharge" }, { "bonus.display-personal-battery-recharge-tooltip" }, config.player_special_bonus["personal_battery_recharge"])
|
||||||
config.player_special_bonus["personal_battery_recharge"])
|
|
||||||
|
|
||||||
return bonus_set
|
return bonus_set
|
||||||
end)
|
end)
|
||||||
@@ -331,9 +276,9 @@ bonus_container = Gui.element("bonus_container")
|
|||||||
|
|
||||||
local disp = container["bonus_st_1"].disp.table
|
local disp = container["bonus_st_1"].disp.table
|
||||||
local n = bonus_gui_pts_needed(player, container.parent)
|
local n = bonus_gui_pts_needed(player, container.parent)
|
||||||
disp[bonus_gui_control_pts_n_count.name].caption = n
|
bonus_data.score_limit[player] = bonus_score_limit_calc(player)
|
||||||
local r = tonumber(disp[bonus_gui_control_pts_a_count.name].caption) - n
|
disp[bonus_gui_control_pts_count.name].caption = n .. " / " .. bonus_data.score_limit[player]
|
||||||
disp[bonus_gui_control_pts_r_count.name].caption = r
|
disp[bonus_gui_control_pts_count.name].value = n / bonus_data.score_limit[player]
|
||||||
|
|
||||||
return container.parent
|
return container.parent
|
||||||
end)
|
end)
|
||||||
@@ -365,11 +310,16 @@ Event.add(defines.events.on_player_created, function(event)
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
Event.add(Roles.events.on_role_assigned, function(event)
|
Event.add(Roles.events.on_role_assigned, function(event)
|
||||||
apply_bonus(game.players[event.player_index])
|
local player = game.players[event.player_index]
|
||||||
|
bonus_data[player] = config.pts.base
|
||||||
|
bonus_data.score_limit[player] = bonus_score_limit_calc(player)
|
||||||
|
apply_bonus(player)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
Event.add(Roles.events.on_role_unassigned, function(event)
|
Event.add(Roles.events.on_role_unassigned, function(event)
|
||||||
apply_bonus(game.players[event.player_index])
|
local player = game.players[event.player_index]
|
||||||
|
bonus_data.score_limit[player] = bonus_score_limit_calc(player)
|
||||||
|
apply_bonus(player)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
--- When a player respawns re-apply bonus
|
--- When a player respawns re-apply bonus
|
||||||
@@ -378,11 +328,10 @@ Event.add(defines.events.on_player_respawned, function(event)
|
|||||||
local container = Gui.get_left_element(bonus_container, player)
|
local container = Gui.get_left_element(bonus_container, player)
|
||||||
local disp = container.frame["bonus_st_1"].disp.table
|
local disp = container.frame["bonus_st_1"].disp.table
|
||||||
local n = bonus_gui_pts_needed(player)
|
local n = bonus_gui_pts_needed(player)
|
||||||
disp[bonus_gui_control_pts_n_count.name].caption = n
|
disp[bonus_gui_control_pts_count.name].caption = n .. " / " .. bonus_data.score_limit[player]
|
||||||
local r = tonumber(disp[bonus_gui_control_pts_a_count.name].caption) - n
|
disp[bonus_gui_control_pts_count.name].value = n / bonus_data.score_limit[player]
|
||||||
disp[bonus_gui_control_pts_r_count.name].caption = r
|
|
||||||
|
|
||||||
if r >= 0 then
|
if n <= bonus_data.score_limit[player] then
|
||||||
apply_bonus(player)
|
apply_bonus(player)
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
@@ -390,7 +339,6 @@ end)
|
|||||||
--- When a player dies allow them to have instant respawn
|
--- When a player dies allow them to have instant respawn
|
||||||
Event.add(defines.events.on_player_died, function(event)
|
Event.add(defines.events.on_player_died, function(event)
|
||||||
local player = game.players[event.player_index]
|
local player = game.players[event.player_index]
|
||||||
|
|
||||||
if Roles.player_has_flag(player, "instant-respawn") then
|
if Roles.player_has_flag(player, "instant-respawn") then
|
||||||
player.ticks_to_respawn = 120
|
player.ticks_to_respawn = 120
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,191 +0,0 @@
|
|||||||
--[[-- Gui Module - Landfill
|
|
||||||
- Landfill blueprint
|
|
||||||
@gui Landfill
|
|
||||||
@alias landfill_container
|
|
||||||
]]
|
|
||||||
|
|
||||||
local Gui = require("modules/exp_gui")
|
|
||||||
local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event
|
|
||||||
local Roles = require("modules.exp_legacy.expcore.roles") --- @dep expcore.roles
|
|
||||||
|
|
||||||
local rolling_stocks = {}
|
|
||||||
|
|
||||||
local function landfill_init()
|
|
||||||
for name, _ in pairs(prototypes.get_entity_filtered{ { filter = "rolling-stock" } }) do
|
|
||||||
rolling_stocks[name] = true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local function rotate_bounding_box(box)
|
|
||||||
return {
|
|
||||||
left_top = {
|
|
||||||
x = -box.right_bottom.y,
|
|
||||||
y = box.left_top.x,
|
|
||||||
},
|
|
||||||
right_bottom = {
|
|
||||||
x = -box.left_top.y,
|
|
||||||
y = box.right_bottom.x,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
local function curve_flip_lr(oc)
|
|
||||||
local nc = table.deepcopy(oc)
|
|
||||||
|
|
||||||
for r = 1, 8 do
|
|
||||||
for c = 1, 8 do
|
|
||||||
nc[r][c] = oc[r][9 - c]
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
return nc
|
|
||||||
end
|
|
||||||
|
|
||||||
local function curve_flip_d(oc)
|
|
||||||
local nc = table.deepcopy(oc)
|
|
||||||
|
|
||||||
for r = 1, 8 do
|
|
||||||
for c = 1, 8 do
|
|
||||||
nc[r][c] = oc[c][r]
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
return nc
|
|
||||||
end
|
|
||||||
|
|
||||||
local curves = {}
|
|
||||||
|
|
||||||
curves[1] = {
|
|
||||||
{ 0, 0, 0, 0, 0, 1, 0, 0 },
|
|
||||||
{ 0, 0, 0, 0, 1, 1, 1, 0 },
|
|
||||||
{ 0, 0, 0, 1, 1, 1, 1, 0 },
|
|
||||||
{ 0, 0, 0, 1, 1, 1, 0, 0 },
|
|
||||||
{ 0, 0, 1, 1, 1, 0, 0, 0 },
|
|
||||||
{ 0, 0, 1, 1, 1, 0, 0, 0 },
|
|
||||||
{ 0, 0, 1, 1, 0, 0, 0, 0 },
|
|
||||||
{ 0, 0, 1, 1, 0, 0, 0, 0 },
|
|
||||||
}
|
|
||||||
curves[6] = curve_flip_d(curves[1])
|
|
||||||
curves[3] = curve_flip_lr(curves[6])
|
|
||||||
curves[4] = curve_flip_d(curves[3])
|
|
||||||
curves[5] = curve_flip_lr(curves[4])
|
|
||||||
curves[2] = curve_flip_d(curves[5])
|
|
||||||
curves[7] = curve_flip_lr(curves[2])
|
|
||||||
curves[8] = curve_flip_d(curves[7])
|
|
||||||
|
|
||||||
local curve_n = {}
|
|
||||||
|
|
||||||
for i, map in ipairs(curves) do
|
|
||||||
curve_n[i] = {}
|
|
||||||
local index = 1
|
|
||||||
|
|
||||||
for r = 1, 8 do
|
|
||||||
for c = 1, 8 do
|
|
||||||
if map[r][c] == 1 then
|
|
||||||
curve_n[i][index] = {
|
|
||||||
["x"] = c - 5,
|
|
||||||
["y"] = r - 5,
|
|
||||||
}
|
|
||||||
|
|
||||||
index = index + 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
--- @param blueprint LuaItemStack
|
|
||||||
--- @return table
|
|
||||||
local function landfill_gui_add_landfill(blueprint)
|
|
||||||
local entities = assert(blueprint.get_blueprint_entities())
|
|
||||||
local tile_index = 0
|
|
||||||
local new_tiles = {}
|
|
||||||
|
|
||||||
for _, ent in pairs(entities) do
|
|
||||||
-- vehicle
|
|
||||||
if not (rolling_stocks[ent.name] or ent.name == "offshore-pump") then
|
|
||||||
-- curved rail, special
|
|
||||||
if ent.name ~= "curved-rail" then
|
|
||||||
local proto = prototypes.entity[ent.name]
|
|
||||||
local box = proto.collision_box or proto.selection_box
|
|
||||||
|
|
||||||
if proto.collision_mask["ground-tile"] == nil then
|
|
||||||
if ent.direction then
|
|
||||||
if ent.direction ~= defines.direction.north then
|
|
||||||
box = rotate_bounding_box(box)
|
|
||||||
|
|
||||||
if ent.direction ~= defines.direction.east then
|
|
||||||
box = rotate_bounding_box(box)
|
|
||||||
|
|
||||||
if ent.direction ~= defines.direction.south then
|
|
||||||
box = rotate_bounding_box(box)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
for y = math.floor(ent.position.y + box.left_top.y), math.floor(ent.position.y + box.right_bottom.y), 1 do
|
|
||||||
for x = math.floor(ent.position.x + box.left_top.x), math.floor(ent.position.x + box.right_bottom.x), 1 do
|
|
||||||
tile_index = tile_index + 1
|
|
||||||
new_tiles[tile_index] = {
|
|
||||||
name = "landfill",
|
|
||||||
position = { x, y },
|
|
||||||
}
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- curved rail
|
|
||||||
else
|
|
||||||
local curve_mask = curve_n[ent.direction or 8]
|
|
||||||
|
|
||||||
for m = 1, #curve_mask do
|
|
||||||
new_tiles[tile_index + 1] = {
|
|
||||||
name = "landfill",
|
|
||||||
position = { curve_mask[m].x + ent.position.x, curve_mask[m].y + ent.position.y },
|
|
||||||
}
|
|
||||||
|
|
||||||
tile_index = tile_index + 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local old_tiles = blueprint.get_blueprint_tiles()
|
|
||||||
|
|
||||||
if old_tiles then
|
|
||||||
for _, old_tile in pairs(old_tiles) do
|
|
||||||
new_tiles[tile_index + 1] = {
|
|
||||||
name = "landfill",
|
|
||||||
position = { old_tile.position.x, old_tile.position.y },
|
|
||||||
}
|
|
||||||
|
|
||||||
tile_index = tile_index + 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
return { tiles = new_tiles }
|
|
||||||
end
|
|
||||||
|
|
||||||
--- Add the toolbar button
|
|
||||||
Gui.toolbar.create_button{
|
|
||||||
name = "landfill",
|
|
||||||
sprite = "item/landfill",
|
|
||||||
tooltip = { "landfill.main-tooltip" },
|
|
||||||
visible = function(player, element)
|
|
||||||
return Roles.player_allowed(player, "gui/landfill")
|
|
||||||
end
|
|
||||||
}:on_click(function(def, player, element)
|
|
||||||
if player.cursor_stack and player.cursor_stack.valid_for_read then
|
|
||||||
if player.cursor_stack.type == "blueprint" and player.cursor_stack.is_blueprint_setup() then
|
|
||||||
local modified = landfill_gui_add_landfill(player.cursor_stack)
|
|
||||||
|
|
||||||
if modified and next(modified.tiles) then
|
|
||||||
player.cursor_stack.set_blueprint_tiles(modified.tiles)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
else
|
|
||||||
player.print{ "landfill.cursor-none" }
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
Event.add(defines.events.on_player_joined_game, landfill_init)
|
|
||||||
@@ -113,7 +113,7 @@ local welcome_time_format = ExpUtil.format_time_factory_locale{ format = "long",
|
|||||||
--- Content area for the welcome tab
|
--- Content area for the welcome tab
|
||||||
define_tab({ "readme.welcome-tab" }, { "readme.welcome-tooltip" }, Gui.element("readme_welcome")
|
define_tab({ "readme.welcome-tab" }, { "readme.welcome-tooltip" }, Gui.element("readme_welcome")
|
||||||
:draw(function(_, parent)
|
:draw(function(_, parent)
|
||||||
local server_details = { name = "ExpGaming S0 - Local", welcome = "Failed to load description: disconnected from external api.", reset_time = "Non Set", branch = "Unknown" }
|
local server_details = { name = "APERX S0 - Local", welcome = "Failed to load description: disconnected from external api.", reset_time = "Non Set", branch = "Unknown" }
|
||||||
if External.valid() then server_details = External.get_current_server() end
|
if External.valid() then server_details = External.get_current_server() end
|
||||||
local container = parent.add{ type = "flow", direction = "vertical" }
|
local container = parent.add{ type = "flow", direction = "vertical" }
|
||||||
local player = Gui.get_player(parent)
|
local player = Gui.get_player(parent)
|
||||||
@@ -223,7 +223,7 @@ define_tab({ "readme.servers-tab" }, { "readme.servers-tooltip" }, Gui.element("
|
|||||||
end
|
end
|
||||||
else
|
else
|
||||||
local factorio_servers = title_table(scroll_pane, 225, { "readme.servers-factorio" }, 2)
|
local factorio_servers = title_table(scroll_pane, 225, { "readme.servers-factorio" }, 2)
|
||||||
for i = 1, 8 do
|
for _, i in pairs{ 1, 2, 3, 5, 6, 8 } do
|
||||||
Gui.elements.centered_label(factorio_servers, 110, { "readme.servers-" .. i })
|
Gui.elements.centered_label(factorio_servers, 110, { "readme.servers-" .. i })
|
||||||
Gui.elements.centered_label(factorio_servers, 460, { "readme.servers-d" .. i })
|
Gui.elements.centered_label(factorio_servers, 460, { "readme.servers-d" .. i })
|
||||||
end
|
end
|
||||||
@@ -231,7 +231,7 @@ define_tab({ "readme.servers-tab" }, { "readme.servers-tooltip" }, Gui.element("
|
|||||||
|
|
||||||
-- Add the external links
|
-- Add the external links
|
||||||
local external_links = title_table(scroll_pane, 235, { "readme.servers-external" }, 2)
|
local external_links = title_table(scroll_pane, 235, { "readme.servers-external" }, 2)
|
||||||
for _, key in ipairs{ "discord", "website", "patreon", "status", "github" } do
|
for _, key in ipairs{ "website", "github" } do
|
||||||
local upper_key = key:gsub("^%l", string.upper)
|
local upper_key = key:gsub("^%l", string.upper)
|
||||||
Gui.elements.centered_label(external_links, 110, upper_key)
|
Gui.elements.centered_label(external_links, 110, upper_key)
|
||||||
Gui.elements.centered_label(external_links, 460, { "links." .. key }, { "readme.servers-open-in-browser" })
|
Gui.elements.centered_label(external_links, 460, { "links." .. key }, { "readme.servers-open-in-browser" })
|
||||||
@@ -255,10 +255,10 @@ define_tab({ "readme.backers-tab" }, { "readme.backers-tooltip" }, Gui.element("
|
|||||||
local done = {}
|
local done = {}
|
||||||
local groups = {
|
local groups = {
|
||||||
{ _roles = { "Senior Administrator", "Administrator" }, _title = { "readme.backers-management" }, _width = 230 },
|
{ _roles = { "Senior Administrator", "Administrator" }, _title = { "readme.backers-management" }, _width = 230 },
|
||||||
{ _roles = { "Board Member", "Senior Backer" }, _title = { "readme.backers-board" }, _width = 145 }, -- change role to board
|
{ _roles = { "Senior Moderator", "Moderator", "Trainee Moderator" }, _title = { "readme.backers-staff" }, _width = 230 },
|
||||||
{ _roles = { "Sponsor", "Supporter" }, _title = { "readme.backers-backers" }, _width = 196 }, -- change to backer
|
{ _roles = { "Board Member", "Supporter", "Partner" }, _title = { "readme.backers-backers" }, _width = 230 }, -- change role to board
|
||||||
{ _roles = { "Moderator", "Trainee" }, _title = { "readme.backers-staff" }, _width = 235 },
|
{ _roles = { "Veteran" }, _title = { "readme.backers-active" }, _width = 230 },
|
||||||
{ _roles = {}, _time = 3 * 3600 * 60, _title = { "readme.backers-active" }, _width = 235 },
|
-- _time = 3 * 3600 * 60
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Fill by player roles
|
-- Fill by player roles
|
||||||
|
|||||||
@@ -20,9 +20,9 @@ Storage.register(research, function(tbl)
|
|||||||
research = tbl
|
research = tbl
|
||||||
end)
|
end)
|
||||||
|
|
||||||
for i = 1, #config.mod_set_lookup do
|
for _, mod_name in ipairs(config.mod_set_lookup) do
|
||||||
if script.active_mods[config.mod_set_lookup[i]] then
|
if script.active_mods[mod_name] then
|
||||||
config.mod_set = config.mod_set_lookup[i]
|
config.mod_set = mod_name
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -31,10 +31,9 @@ local research_time_format = ExpUtil.format_time_factory{ format = "clock", hour
|
|||||||
local empty_time = research_time_format(nil)
|
local empty_time = research_time_format(nil)
|
||||||
|
|
||||||
local font_color = {
|
local font_color = {
|
||||||
-- positive
|
["neutral"] = { r = 1, g = 1, b = 1 },
|
||||||
[1] = { r = 0.3, g = 1, b = 0.3 },
|
["positive"] = { r = 0.3, g = 1, b = 0.3 },
|
||||||
-- negative
|
["negative"] = { r = 1, g = 0.3, b = 0.3 },
|
||||||
[2] = { r = 1, g = 0.3, b = 0.3 },
|
|
||||||
}
|
}
|
||||||
|
|
||||||
local res = {
|
local res = {
|
||||||
@@ -64,36 +63,24 @@ end
|
|||||||
local function research_add_log()
|
local function research_add_log()
|
||||||
local result_data = {}
|
local result_data = {}
|
||||||
|
|
||||||
for i = 1, #research.time, 1 do
|
for i = 1, #research.time do
|
||||||
result_data[res["disp"][i]["raw_name"]] = research.time[i]
|
result_data[res["disp"][i]["raw_name"]] = research.time[i]
|
||||||
end
|
end
|
||||||
|
|
||||||
write_file(config.file_name, table_to_json(result_data) .. "\n", true, 0)
|
write_file(config.file_name, table_to_json(result_data) .. "\n", true, 0)
|
||||||
end
|
end
|
||||||
|
|
||||||
local function research_res_n(res_)
|
local function research_res_n()
|
||||||
local res_n = 1
|
local current = #res.disp + 1
|
||||||
|
|
||||||
for k, _ in pairs(res_) do
|
for i = 1, #res.disp do
|
||||||
if research.time[k] == 0 then
|
if research.time[i] == 0 then
|
||||||
res_n = k - 1
|
current = i
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if research.time[#res_] and research.time[#res_] > 0 then
|
return math.clamp(current - 3, 1, math.max(1, #res.disp - 7))
|
||||||
if res_n == 1 then
|
|
||||||
res_n = #res_
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if res_n < 3 then
|
|
||||||
res_n = 3
|
|
||||||
elseif res_n > (#research.time - 5) then
|
|
||||||
res_n = #research.time - 5
|
|
||||||
end
|
|
||||||
|
|
||||||
return res_n
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local function research_notification(event)
|
local function research_notification(event)
|
||||||
@@ -105,70 +92,61 @@ local function research_notification(event)
|
|||||||
end
|
end
|
||||||
|
|
||||||
if config.bonus_inventory.enabled then
|
if config.bonus_inventory.enabled then
|
||||||
if (event.research.level - 1) <= math.ceil(config.bonus_inventory.limit / config.bonus_inventory.rate) then
|
event.research.force[config.bonus_inventory.name] = math.max((event.research.level - 1) * config.bonus_inventory.rate, config.bonus_inventory.limit)
|
||||||
event.research.force[config.bonus_inventory.name] = math.max((event.research.level - 1) * config.bonus_inventory.rate, config.bonus_inventory.limit)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
if config.pollution_ageing_by_research then
|
if config.pollution_ageing_by_research then
|
||||||
game.map_settings.pollution.ageing = math.min(10, event.research.level / 5)
|
game.map_settings.pollution.ageing = math.min(10, event.research.level / 5)
|
||||||
end
|
end
|
||||||
else
|
end
|
||||||
if not (event.by_script) then
|
|
||||||
game.print{ "research.inf", research_time_format(game.tick), event.research.name, event.research.level - 1 }
|
if not (event.by_script) then
|
||||||
end
|
game.print{ "research.inf", research_time_format(game.tick), event.research.name, event.research.level - 1 }
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
if not (event.by_script) then
|
if not (event.by_script) then
|
||||||
game.print{ "research.msg", research_time_format(game.tick), event.research.name }
|
game.print{ "research.msg", research_time_format(game.tick), event.research.name }
|
||||||
end
|
end
|
||||||
|
|
||||||
if config.bonus_inventory.enabled then
|
if config.bonus_inventory.enabled and (event.research.name == "mining-productivity-1" or event.research.name == "mining-productivity-2" or event.research.name == "mining-productivity-3") then
|
||||||
if event.research.name == "mining-productivity-1" or event.research.name == "mining-productivity-2" or event.research.name == "mining-productivity-3" then
|
event.research.force[config.bonus_inventory.name] = event.research.level * config.bonus_inventory.rate
|
||||||
event.research.force[config.bonus_inventory.name] = event.research.level * config.bonus_inventory.rate
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local function research_gui_update()
|
local function research_gui_update()
|
||||||
local res_disp = {}
|
local res_disp = {}
|
||||||
local res_n = research_res_n(res["disp"])
|
local res_n = research_res_n()
|
||||||
|
|
||||||
for i = 1, 8, 1 do
|
for i = 1, 8 do
|
||||||
res_disp[i] = {
|
local res_i = res_n + i - 1
|
||||||
["name"] = "",
|
local entry = res.disp[res_i] or {}
|
||||||
["target"] = "",
|
local data = {
|
||||||
["attempt"] = "",
|
name = "",
|
||||||
["difference"] = "",
|
target = "",
|
||||||
["difference_color"] = font_color[1],
|
attempt = "",
|
||||||
|
difference = "",
|
||||||
|
color = font_color["positive"]
|
||||||
}
|
}
|
||||||
|
|
||||||
local res_i = res_n + i - 3
|
if entry.raw_name then
|
||||||
|
assert(prototypes.technology[entry.raw_name], "Invalid Research: " .. tostring(entry.raw_name))
|
||||||
if res["disp"][res_i] then
|
data.name = { "research.res-name", entry.raw_name, prototypes.technology[entry.raw_name].localised_name }
|
||||||
local raw_name = res["disp"][res_i]["raw_name"]
|
data.target = entry.target_disp
|
||||||
local proto = assert(prototypes.technology[raw_name], "Invalid Research: " .. tostring(raw_name))
|
|
||||||
res_disp[i]["name"] = { "research.res-name", raw_name, proto.localised_name }
|
|
||||||
|
|
||||||
if research.time[res_i] == 0 then
|
if research.time[res_i] == 0 then
|
||||||
res_disp[i]["target"] = res["disp"][res_i].target_disp
|
data.attempt = empty_time
|
||||||
res_disp[i]["attempt"] = empty_time
|
data.difference = empty_time
|
||||||
res_disp[i]["difference"] = empty_time
|
|
||||||
res_disp[i]["difference_color"] = font_color[1]
|
|
||||||
else
|
|
||||||
res_disp[i]["target"] = res["disp"][res_i].target_disp
|
|
||||||
res_disp[i]["attempt"] = research_time_format(research.time[res_i])
|
|
||||||
|
|
||||||
if research.time[res_i] < res["disp"][res_i].target then
|
else
|
||||||
res_disp[i]["difference"] = "-" .. research_time_format(res["disp"][res_i].target - research.time[res_i])
|
data.attempt = research_time_format(research.time[res_i])
|
||||||
res_disp[i]["difference_color"] = font_color[1]
|
local diff = research.time[res_i] - entry.target
|
||||||
else
|
data.difference = (diff < 0 and "-" or "") .. research_time_format(math.abs(diff))
|
||||||
res_disp[i]["difference"] = research_time_format(research.time[res_i] - res["disp"][res_i].target)
|
data.color = (diff < 0 and font_color["positive"]) or font_color["negative"]
|
||||||
res_disp[i]["difference_color"] = font_color[2]
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
res_disp[i] = data
|
||||||
end
|
end
|
||||||
|
|
||||||
return res_disp
|
return res_disp
|
||||||
@@ -200,42 +178,19 @@ local research_clock_set = Gui.element("research_clock_set")
|
|||||||
-- @element research_data_group
|
-- @element research_data_group
|
||||||
local research_data_group = Gui.element("research_data_group")
|
local research_data_group = Gui.element("research_data_group")
|
||||||
:draw(function(_def, parent, i)
|
:draw(function(_def, parent, i)
|
||||||
local name = parent.add{
|
local labels = { "name", "target", "attempt", "difference" }
|
||||||
type = "label",
|
|
||||||
name = "research_" .. i .. "_name",
|
|
||||||
caption = "",
|
|
||||||
style = "heading_2_label",
|
|
||||||
}
|
|
||||||
name.style.width = 180
|
|
||||||
name.style.horizontal_align = "left"
|
|
||||||
|
|
||||||
local target = parent.add{
|
for _, label in ipairs(labels) do
|
||||||
type = "label",
|
local elem = parent.add{
|
||||||
name = "research_" .. i .. "_target",
|
type = "label",
|
||||||
caption = "",
|
name = "research_" .. i .. "_" .. label,
|
||||||
style = "heading_2_label",
|
caption = "",
|
||||||
}
|
style = "heading_2_label"
|
||||||
target.style.width = 70
|
}
|
||||||
target.style.horizontal_align = "right"
|
elem.style.minimal_width = (label == "name" and 180) or 70
|
||||||
|
elem.style.horizontal_align = (label == "name" and "left") or "right"
|
||||||
local attempt = parent.add{
|
elem.style.font_color = (label == "difference" and font_color["positive"]) or font_color["neutral"]
|
||||||
type = "label",
|
end
|
||||||
name = "research_" .. i .. "_attempt",
|
|
||||||
caption = "",
|
|
||||||
style = "heading_2_label",
|
|
||||||
}
|
|
||||||
attempt.style.width = 70
|
|
||||||
attempt.style.horizontal_align = "right"
|
|
||||||
|
|
||||||
local difference = parent.add{
|
|
||||||
type = "label",
|
|
||||||
name = "research_" .. i .. "_difference",
|
|
||||||
caption = "",
|
|
||||||
style = "heading_2_label",
|
|
||||||
}
|
|
||||||
difference.style.width = 70
|
|
||||||
difference.style.horizontal_align = "right"
|
|
||||||
difference.style.font_color = font_color[1]
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
--- A vertical flow containing the data
|
--- A vertical flow containing the data
|
||||||
@@ -251,17 +206,16 @@ local research_data_set = Gui.element("research_data_set")
|
|||||||
disp["research_0_target"].caption = { "research.target" }
|
disp["research_0_target"].caption = { "research.target" }
|
||||||
disp["research_0_attempt"].caption = { "research.attempt" }
|
disp["research_0_attempt"].caption = { "research.attempt" }
|
||||||
disp["research_0_difference"].caption = { "research.difference" }
|
disp["research_0_difference"].caption = { "research.difference" }
|
||||||
|
disp["research_0_difference"].style.font_color = font_color["neutral"]
|
||||||
|
|
||||||
for i = 1, 8, 1 do
|
for i = 1, 8 do
|
||||||
research_data_group(disp, i)
|
research_data_group(disp, i)
|
||||||
|
|
||||||
local research_name_i = "research_" .. i
|
local research_name_i = "research_" .. i
|
||||||
|
|
||||||
disp[research_name_i .. "_name"].caption = res_disp[i]["name"]
|
disp[research_name_i .. "_name"].caption = res_disp[i]["name"]
|
||||||
disp[research_name_i .. "_target"].caption = res_disp[i]["target"]
|
disp[research_name_i .. "_target"].caption = res_disp[i]["target"]
|
||||||
disp[research_name_i .. "_attempt"].caption = res_disp[i]["attempt"]
|
disp[research_name_i .. "_attempt"].caption = res_disp[i]["attempt"]
|
||||||
disp[research_name_i .. "_difference"].caption = res_disp[i]["difference"]
|
disp[research_name_i .. "_difference"].caption = res_disp[i]["difference"]
|
||||||
disp[research_name_i .. "_difference"].style.font_color = res_disp[i]["difference_color"]
|
disp[research_name_i .. "_difference"].style.font_color = res_disp[i]["color"]
|
||||||
end
|
end
|
||||||
|
|
||||||
return research_set
|
return research_set
|
||||||
@@ -291,32 +245,50 @@ Gui.toolbar.create_button{
|
|||||||
|
|
||||||
Event.add(defines.events.on_research_finished, function(event)
|
Event.add(defines.events.on_research_finished, function(event)
|
||||||
research_notification(event)
|
research_notification(event)
|
||||||
|
local research_name = event.research.name
|
||||||
|
|
||||||
if res["lookup_name"][event.research.name] == nil then
|
if not res["lookup_name"][research_name] then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
local n_i = res["lookup_name"][event.research.name]
|
research.time[res.lookup_name[research_name]] = game.tick
|
||||||
research.time[n_i] = game.tick
|
|
||||||
|
|
||||||
local res_disp = research_gui_update()
|
local res_disp = research_gui_update()
|
||||||
|
|
||||||
for _, player in pairs(game.connected_players) do
|
for _, player in pairs(game.connected_players) do
|
||||||
local container = Gui.get_left_element(research_container, player)
|
if Roles.player_allowed(player, "gui/research") then
|
||||||
local disp = container.frame["research_st_2"].disp.table
|
local container = Gui.get_left_element(research_container, player)
|
||||||
|
local disp = container.frame["research_st_2"].disp.table
|
||||||
|
|
||||||
for i = 1, 8, 1 do
|
for i = 1, 8 do
|
||||||
local research_name_i = "research_" .. i
|
local research_name_i = "research_" .. i
|
||||||
|
disp[research_name_i .. "_name"].caption = res_disp[i]["name"]
|
||||||
disp[research_name_i .. "_name"].caption = res_disp[i]["name"]
|
disp[research_name_i .. "_target"].caption = res_disp[i]["target"]
|
||||||
disp[research_name_i .. "_target"].caption = res_disp[i]["target"]
|
disp[research_name_i .. "_attempt"].caption = res_disp[i]["attempt"]
|
||||||
disp[research_name_i .. "_attempt"].caption = res_disp[i]["attempt"]
|
disp[research_name_i .. "_difference"].caption = res_disp[i]["difference"]
|
||||||
disp[research_name_i .. "_difference"].caption = res_disp[i]["difference"]
|
disp[research_name_i .. "_difference"].style.font_color = res_disp[i]["color"]
|
||||||
disp[research_name_i .. "_difference"].style.font_color = res_disp[i]["difference_color"]
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
Event.add(defines.events.on_research_started, function(event)
|
||||||
|
if config.limit_res[event.research.name] and event.research.level > config.limit_res[event.research.name] then
|
||||||
|
event.research.enabled = false
|
||||||
|
event.research.visible_when_disabled = true
|
||||||
|
local rq = event.research.force.research_queue
|
||||||
|
|
||||||
|
for i = #rq, 1, -1 do
|
||||||
|
if rq[i] == event.research.name then
|
||||||
|
table.remove(rq, i)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
event.research.force.cancel_current_research()
|
||||||
|
event.research.force.research_queue = rq
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
Event.on_nth_tick(60, function()
|
Event.on_nth_tick(60, function()
|
||||||
local current_time = research_time_format(game.tick)
|
local current_time = research_time_format(game.tick)
|
||||||
|
|
||||||
|
|||||||
@@ -34,7 +34,8 @@ local server_ups = Gui.element("server_ups")
|
|||||||
UsesServerUps:on_load(function(player_name, visible)
|
UsesServerUps:on_load(function(player_name, visible)
|
||||||
local player = game.players[player_name]
|
local player = game.players[player_name]
|
||||||
local label = player.gui.screen[server_ups.name]
|
local label = player.gui.screen[server_ups.name]
|
||||||
--- @diagnostic disable-next-line undefined-field
|
|
||||||
|
--- @diagnostic disable-next-line undefined-field
|
||||||
if not External.valid() or not storage.ext.var.server_ups then visible = false end
|
if not External.valid() or not storage.ext.var.server_ups then visible = false end
|
||||||
label.visible = visible
|
label.visible = visible
|
||||||
end)
|
end)
|
||||||
|
|||||||
@@ -492,7 +492,7 @@ local function role_update_event(event)
|
|||||||
local disp = container.frame["vlayer_st_2"].disp.table
|
local disp = container.frame["vlayer_st_2"].disp.table
|
||||||
disp[vlayer_gui_control_build.name].visible = visible
|
disp[vlayer_gui_control_build.name].visible = visible
|
||||||
disp[vlayer_gui_control_remove.name].visible = visible
|
disp[vlayer_gui_control_remove.name].visible = visible
|
||||||
end
|
end
|
||||||
|
|
||||||
Event.add(Roles.events.on_role_assigned, role_update_event)
|
Event.add(Roles.events.on_role_assigned, role_update_event)
|
||||||
Event.add(Roles.events.on_role_unassigned, role_update_event)
|
Event.add(Roles.events.on_role_unassigned, role_update_event)
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ Commands.new("lawnmower", { "exp-commands_lawnmower.description" })
|
|||||||
:register(function(player, range)
|
:register(function(player, range)
|
||||||
--- @cast range number
|
--- @cast range number
|
||||||
local surface = player.surface
|
local surface = player.surface
|
||||||
|
|
||||||
-- Intentionally left as player.position to allow use in remote view
|
-- Intentionally left as player.position to allow use in remote view
|
||||||
local entities = surface.find_entities_filtered{ position = player.position, radius = range, type = "corpse" }
|
local entities = surface.find_entities_filtered{ position = player.position, radius = range, type = "corpse" }
|
||||||
for _, entity in pairs(entities) do
|
for _, entity in pairs(entities) do
|
||||||
@@ -18,7 +18,7 @@ Commands.new("lawnmower", { "exp-commands_lawnmower.description" })
|
|||||||
entity.destroy()
|
entity.destroy()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local replace_tiles = {}
|
local replace_tiles = {}
|
||||||
local tiles = surface.find_tiles_filtered{ position = player.position, radius = range, name = { "nuclear-ground" } }
|
local tiles = surface.find_tiles_filtered{ position = player.position, radius = range, name = { "nuclear-ground" } }
|
||||||
for i, tile in pairs(tiles) do
|
for i, tile in pairs(tiles) do
|
||||||
|
|||||||
@@ -33,10 +33,12 @@ Selection.on_selection(SelectionName, function(event)
|
|||||||
local player = game.players[event.player_index]
|
local player = game.players[event.player_index]
|
||||||
local surface = event.surface
|
local surface = event.surface
|
||||||
|
|
||||||
|
--[[
|
||||||
if surface.planet and surface.planet ~= game.planets.nauvis then
|
if surface.planet and surface.planet ~= game.planets.nauvis then
|
||||||
player.print({ "exp-commands_waterfill.nauvis-only" }, Commands.print_settings.error)
|
player.print({ "exp-commands_waterfill.nauvis-only" }, Commands.print_settings.error)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
]]
|
||||||
|
|
||||||
local area_size = (area.right_bottom.x - area.left_top.x) * (area.right_bottom.y - area.left_top.y)
|
local area_size = (area.right_bottom.x - area.left_top.x) * (area.right_bottom.y - area.left_top.y)
|
||||||
if area_size > 1000 then
|
if area_size > 1000 then
|
||||||
|
|||||||
Reference in New Issue
Block a user