mirror of
https://github.com/Refactorio/RedMew.git
synced 2025-09-16 09:16:22 +02:00
Merge pull request #464 from plague006/utils
Overhaul utils and add minor functionality
This commit is contained in:
18
control.lua
18
control.lua
@@ -1,10 +1,8 @@
|
||||
-- Libraries. Removing these will likely lead to game crashes
|
||||
require 'config'
|
||||
require 'utils.utils'
|
||||
require 'utils.list_utils'
|
||||
-- Omitting the math library is a very bad idea
|
||||
require 'utils.math'
|
||||
|
||||
require 'map_gen.shared.perlin_noise'
|
||||
-- Map layout and config dictate the map you play and the settings in it
|
||||
require 'config'
|
||||
require 'map_layout'
|
||||
|
||||
-- Specific to RedMew hosts, can be disabled safely if not hosting on RedMew servers
|
||||
@@ -13,14 +11,14 @@ require 'features.server_commands'
|
||||
|
||||
-- Library modules which, if missing, will cause other feature modules to fail
|
||||
require 'features.base_data'
|
||||
--require 'features.follow' -- Nothing currently uses anything inside follow
|
||||
require 'features.player_create'
|
||||
require 'features.user_groups'
|
||||
|
||||
-- Feature modules, each can be disabled
|
||||
-- Feature modules, each can be disabled safely
|
||||
require 'features.autodeconstruct'
|
||||
require 'features.chat_triggers'
|
||||
require 'features.corpse_util'
|
||||
require 'features.custom_commands'
|
||||
require 'features.donator_messages'
|
||||
require 'features.train_saviour'
|
||||
require 'features.fish_market'
|
||||
@@ -31,11 +29,9 @@ require 'features.reactor_meltdown'
|
||||
require 'features.train_station_names'
|
||||
require 'features.walkabout'
|
||||
|
||||
-- Contains various commands for users and admins alike
|
||||
require 'features.custom_commands'
|
||||
|
||||
-- GUIs the order determines the order they appear from left to right.
|
||||
-- These can be safely disabled. Some map presets will add GUI modules themselves.
|
||||
-- These can be safely disabled if you want less GUI items.
|
||||
-- Some map presets will add GUI modules themselves.
|
||||
require 'features.gui.info'
|
||||
require 'features.gui.player_list'
|
||||
require 'features.gui.poll'
|
||||
|
@@ -1,5 +1,5 @@
|
||||
local Event = require 'utils.event'
|
||||
local Utils = require 'utils.utils'
|
||||
local Utils = require 'utils.core'
|
||||
local Game = require 'utils.game'
|
||||
|
||||
global.original_last_users_by_ent_pos = {}
|
||||
|
@@ -1,7 +1,7 @@
|
||||
--Author: Valansch
|
||||
|
||||
local Event = require 'utils.event'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
local Task = require 'utils.Task'
|
||||
|
||||
local function is_depleted(drill, entity)
|
||||
|
@@ -2,7 +2,7 @@
|
||||
|
||||
local Game = require 'utils.game'
|
||||
local Event = require 'utils.event'
|
||||
require 'utils.list_utils'
|
||||
require 'utils.table'
|
||||
local Hodor = require 'resources.hodor_messages'
|
||||
|
||||
local prefix = '## - '
|
||||
|
@@ -1,7 +1,7 @@
|
||||
local Event = require 'utils.event'
|
||||
local Global = require 'utils.global'
|
||||
local Task = require 'utils.Task'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
local Game = require 'utils.game'
|
||||
|
||||
local player_corpses = {}
|
||||
|
@@ -1,8 +1,8 @@
|
||||
local Task = require 'utils.Task'
|
||||
local Event = require 'utils.event'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
local UserGroups = require 'features.user_groups'
|
||||
local Utils = require 'utils.utils'
|
||||
local Utils = require 'utils.core'
|
||||
local Game = require 'utils.game'
|
||||
local Report = require 'features.report'
|
||||
|
||||
|
@@ -17,16 +17,15 @@ make pet faster
|
||||
make pet follow you moar
|
||||
--]]
|
||||
local Event = require 'utils.event'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
local Task = require 'utils.Task'
|
||||
local PlayerStats = require 'features.player_stats'
|
||||
local Game = require 'utils.game'
|
||||
local Utils = require 'utils.utils'
|
||||
local Utils = require 'utils.core'
|
||||
|
||||
local Market_items = require 'resources.market_items'
|
||||
local market_item = Market_items.market_item
|
||||
local fish_market_bonus_message = require 'resources.fish_messages'
|
||||
local total_fish_market_bonus_messages = #fish_market_bonus_message
|
||||
|
||||
local function spawn_market(cmd)
|
||||
local player = game.player
|
||||
@@ -77,7 +76,7 @@ local function fish_earned(event, amount)
|
||||
|
||||
if fish % 70 == 0 then
|
||||
if player and player.valid then
|
||||
local message = fish_market_bonus_message[math.random(total_fish_market_bonus_messages)]
|
||||
local message = table.get_random(fish_market_bonus_message, true)
|
||||
player.print(message)
|
||||
end
|
||||
end
|
||||
|
@@ -1,6 +1,6 @@
|
||||
global.follows = {}
|
||||
global.follows.n_entries = 0
|
||||
local Utils = require 'utils.utils'
|
||||
local Utils = require 'utils.core'
|
||||
local Game = require 'utils.game'
|
||||
|
||||
local function get_direction(follower, target)
|
||||
|
@@ -1,4 +1,4 @@
|
||||
local Utils = require 'utils.utils'
|
||||
local Utils = require 'utils.core'
|
||||
local Event = require 'utils.event'
|
||||
local Game = require 'utils.game'
|
||||
|
||||
|
@@ -1,7 +1,7 @@
|
||||
-- Soft mod version of Blueprint Flipper and Turner https://mods.factorio.com/mods/Marthen/Blueprint_Flip_Turn
|
||||
|
||||
local Event = require 'utils.event'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
local Gui = require 'utils.gui'
|
||||
local Game = require 'utils.game'
|
||||
|
||||
|
@@ -4,7 +4,7 @@ local Gui = require 'utils.gui'
|
||||
local Donators = require 'resources.donators'
|
||||
local UserGroups = require 'features.user_groups'
|
||||
local PlayerStats = require 'features.player_stats'
|
||||
local Utils = require 'utils.utils'
|
||||
local Utils = require 'utils.core'
|
||||
local Report = require 'features.report'
|
||||
local Game = require 'utils.game'
|
||||
|
||||
@@ -715,7 +715,7 @@ Gui.on_click(
|
||||
local count = (player_pokes[poke_player_index] or 0) + 1
|
||||
player_pokes[poke_player_index] = count
|
||||
|
||||
local poke_str = poke_messages[math.random(#poke_messages)]
|
||||
local poke_str = table.get_random(poke_messages, true)
|
||||
local message = table.concat({'>> ', player.name, ' has poked ', poke_player.name, ' with ', poke_str, ' <<'})
|
||||
|
||||
for _, p in ipairs(game.connected_players) do
|
||||
|
@@ -4,7 +4,7 @@ local Event = require 'utils.event'
|
||||
local UserGroups = require 'features.user_groups'
|
||||
local Game = require 'utils.game'
|
||||
local math = require 'utils.math'
|
||||
local Utils = require 'utils.utils'
|
||||
local Utils = require 'utils.core'
|
||||
local Server = require 'features.server'
|
||||
|
||||
local default_poll_duration = 300 * 60 -- in ticks
|
||||
|
@@ -1,5 +1,5 @@
|
||||
local Gui = require 'utils.gui'
|
||||
local Utils = require 'utils.utils'
|
||||
local Utils = require 'utils.core'
|
||||
local Game = require 'utils.game'
|
||||
|
||||
local close_name = Gui.uid_name()
|
||||
|
@@ -3,7 +3,7 @@ local Gui = require 'utils.gui'
|
||||
local Global = require 'utils.global'
|
||||
local UserGroups = require 'features.user_groups'
|
||||
local Game = require 'utils.game'
|
||||
local Utils = require 'utils.utils'
|
||||
local Utils = require 'utils.core'
|
||||
|
||||
local deafult_verb = 'expanded'
|
||||
|
||||
|
@@ -2,7 +2,7 @@ local Event = require 'utils.event'
|
||||
local Gui = require 'utils.gui'
|
||||
local Global = require 'utils.global'
|
||||
local UserGroups = require 'features.user_groups'
|
||||
local Utils = require 'utils.utils'
|
||||
local Utils = require 'utils.core'
|
||||
local Game = require 'utils.game'
|
||||
local math = require 'utils.math'
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
local Event = require 'utils.event'
|
||||
local UserGroups = require 'features.user_groups'
|
||||
local Utils = require 'utils.utils'
|
||||
local Utils = require 'utils.core'
|
||||
local Game = require 'utils.game'
|
||||
|
||||
local function allowed_to_nuke(player)
|
||||
|
@@ -1,7 +1,7 @@
|
||||
local Module = {}
|
||||
|
||||
local Gui = require('utils.gui')
|
||||
local Utils = require('utils.utils')
|
||||
local Utils = require('utils.core')
|
||||
local Game = require 'utils.game'
|
||||
|
||||
local report_frame_name = Gui.uid_name()
|
||||
|
@@ -1,6 +1,6 @@
|
||||
--- See documentation at https://github.com/Refactorio/RedMew/pull/469
|
||||
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local Public = {}
|
||||
|
||||
@@ -198,7 +198,7 @@ end
|
||||
-- @param callback_token<token>
|
||||
-- @usage
|
||||
-- local Server = require 'features.server'
|
||||
-- local Token = require 'utils.global_token'
|
||||
-- local Token = require 'utils.token'
|
||||
--
|
||||
-- local callback =
|
||||
-- Token.register(
|
||||
@@ -238,7 +238,7 @@ end
|
||||
-- @param callback_token<token>
|
||||
-- @usage
|
||||
-- local Server = require 'features.server'
|
||||
-- local Token = require 'utils.global_token'
|
||||
-- local Token = require 'utils.token'
|
||||
--
|
||||
-- local callback =
|
||||
-- Token.register(
|
||||
|
@@ -1,6 +1,6 @@
|
||||
local Poll = require 'features.gui.poll'
|
||||
local UserGroups = require 'features.user_groups'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
local Server = require 'features.server'
|
||||
|
||||
--- This module is for the web server to call functions and raise events.
|
||||
|
@@ -1,5 +1,4 @@
|
||||
local Event = require 'utils.event'
|
||||
local Game = require 'utils.game'
|
||||
|
||||
local function player_built_entity(event)
|
||||
local entity = event.created_entity
|
||||
@@ -10,8 +9,7 @@ local function player_built_entity(event)
|
||||
if entity.name == 'train-stop' then
|
||||
local y = math.random(1, 3)
|
||||
if y ~= 1 then
|
||||
local x = math.random(1, #game.players)
|
||||
local player = Game.get_player_by_index(x)
|
||||
local player = table.get_random(game.players, true)
|
||||
event.created_entity.backer_name = player.name
|
||||
end
|
||||
end
|
||||
|
@@ -1,9 +1,9 @@
|
||||
local Event = require 'utils.event'
|
||||
local Utils = require 'utils.utils'
|
||||
local Utils = require 'utils.core'
|
||||
local Server = require 'features.server'
|
||||
local Donators = require 'resources.donators'
|
||||
local Game = require 'utils.game'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
global.regulars = {}
|
||||
global.donators = Donators.donators
|
||||
|
@@ -1,8 +1,8 @@
|
||||
local Task = require 'utils.Task'
|
||||
local Game = require 'utils.game'
|
||||
local Event = require 'utils.event'
|
||||
local Token = require 'utils.global_token'
|
||||
local Utils = require 'utils.utils'
|
||||
local Token = require 'utils.token'
|
||||
local Utils = require 'utils.core'
|
||||
|
||||
global.walking = {}
|
||||
global.walking_storage = {}
|
||||
|
@@ -1,9 +1,9 @@
|
||||
local Event = require 'utils.event'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
local Task = require 'utils.Task'
|
||||
local PlayerStats = require 'features.player_stats'
|
||||
local Game = require 'utils.game'
|
||||
local Utils = require 'utils.utils'
|
||||
local Utils = require 'utils.core'
|
||||
|
||||
local market_items = require 'resources.market_items'
|
||||
|
||||
|
@@ -5,7 +5,7 @@
|
||||
-- dependencies
|
||||
local Event = require 'utils.event'
|
||||
local Global = require 'utils.global'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
local Task = require 'utils.Task'
|
||||
local AlienEvolutionProgress = require 'map_gen.Diggy.AlienEvolutionProgress'
|
||||
local Debug = require 'map_gen.Diggy.Debug'
|
||||
|
@@ -12,7 +12,7 @@ local Perlin = require 'map_gen.shared.perlin_noise'
|
||||
local random = math.random
|
||||
local ceil = math.ceil
|
||||
local Gui = require 'utils.gui'
|
||||
local utils = require 'utils.utils'
|
||||
local utils = require 'utils.core'
|
||||
|
||||
-- this
|
||||
local ArtefactHunting = {}
|
||||
|
@@ -2,14 +2,14 @@
|
||||
Provides the ability to collapse caves when digging.
|
||||
]]
|
||||
-- dependencies
|
||||
require 'utils.list_utils'
|
||||
require 'utils.table'
|
||||
|
||||
local Event = require 'utils.event'
|
||||
local Template = require 'map_gen.Diggy.Template'
|
||||
local ScoreTable = require 'map_gen.Diggy.ScoreTable'
|
||||
local Debug = require 'map_gen.Diggy.Debug'
|
||||
local Task = require 'utils.Task'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
local Global = require 'utils.global'
|
||||
local Game = require 'utils.game'
|
||||
local insert = table.insert
|
||||
@@ -149,7 +149,7 @@ end
|
||||
local on_collapse_timeout_finished = Token.register(collapse)
|
||||
|
||||
local function spawn_cracking_sound_text(surface, position)
|
||||
local text = config.cracking_sounds[random(1, #config.cracking_sounds)]
|
||||
local text = table.get_random(config.cracking_sounds, true)
|
||||
|
||||
local color = {
|
||||
r = 1,
|
||||
|
@@ -7,7 +7,7 @@ local Debug = require 'map_gen.Diggy.Debug'
|
||||
local Retailer = require 'features.retailer'
|
||||
local Gui = require 'utils.gui'
|
||||
local force_control = require 'features.force_control'
|
||||
local utils = require 'utils.utils'
|
||||
local utils = require 'utils.core'
|
||||
local format = string.format
|
||||
local string_format = string.format
|
||||
local floor = math.floor
|
||||
|
@@ -8,7 +8,7 @@ local Perlin = require 'map_gen.shared.perlin_noise'
|
||||
local Event = require 'utils.event'
|
||||
local Debug = require'map_gen.Diggy.Debug'
|
||||
local Task = require 'utils.Task'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
local raise_event = script.raise_event
|
||||
|
||||
-- this
|
||||
|
@@ -3,7 +3,7 @@
|
||||
]]
|
||||
-- dependencies
|
||||
local Event = require 'utils.event'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
local Template = require 'map_gen.Diggy.Template'
|
||||
local Debug = require 'map_gen.Diggy.Debug'
|
||||
local Retailer = require 'features.retailer'
|
||||
|
@@ -4,8 +4,8 @@ local Debug = require 'map_gen.Diggy.Debug'
|
||||
local ScenarioInfo = require 'features.gui.info'
|
||||
local Event = require 'utils.event'
|
||||
|
||||
require 'utils.list_utils'
|
||||
require 'utils.utils'
|
||||
require 'utils.table'
|
||||
require 'utils.core'
|
||||
|
||||
-- this
|
||||
local Scenario = {}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
-- dependencies
|
||||
local Task = require 'utils.Task'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
local Debug = require 'map_gen.Diggy.Debug'
|
||||
local insert = table.insert
|
||||
local min = math.min
|
||||
|
@@ -2,7 +2,7 @@
|
||||
-- !! ATTENTION !!
|
||||
-- Use water only in starting area as map setting!!!
|
||||
local perlin = require 'map_gen.shared.perlin_noise'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local wreck_item_pool = {
|
||||
{name = 'iron-gear-wheel', count = 32},
|
||||
|
@@ -1,5 +1,4 @@
|
||||
local perlin = require 'map_gen.shared.perlin_noise'
|
||||
local Task = require 'utils.Task'
|
||||
local Event = require 'utils.event'
|
||||
|
||||
local block_size = 1 -- in tiles
|
||||
|
@@ -2,6 +2,7 @@ local Event = require 'utils.event'
|
||||
local Game = require 'utils.game'
|
||||
|
||||
local drivers_group = 'Drivers'
|
||||
local directions = defines.direction
|
||||
|
||||
local function transfer_body(player)
|
||||
-- Remove the player from their character and place them in a car.
|
||||
@@ -10,7 +11,7 @@ local function transfer_body(player)
|
||||
local pos = force.get_spawn_position(surface)
|
||||
|
||||
-- Choose a random direction for the car to face
|
||||
local dir = math.random(0, 7)
|
||||
local dir = table.get_random(directions, true)
|
||||
|
||||
-- Remove the players' character
|
||||
if player.character then
|
||||
|
@@ -1,5 +1,5 @@
|
||||
local Event = require 'utils.event'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
local Gui = require 'utils.gui'
|
||||
local Task = require 'utils.Task'
|
||||
local Global = require 'utils.global'
|
||||
|
@@ -1,4 +1,4 @@
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local item_pool = {
|
||||
{name = 'firearm-magazine', count = 200, weight = 1250},
|
||||
|
@@ -1,8 +1,8 @@
|
||||
require 'utils.list_utils'
|
||||
require 'utils.table'
|
||||
local Game = require 'utils.game'
|
||||
local Event = require 'utils.event'
|
||||
local naming_words = require 'resources.naming_words'
|
||||
local Utils = require('utils.utils')
|
||||
local Utils = require('utils.core')
|
||||
global.actual_name = {}
|
||||
global.silly_names = {}
|
||||
global.silly_names.count = 0
|
||||
@@ -16,9 +16,9 @@ local name_combinations = #naming_words.adverbs * #naming_words.adjectives * #na
|
||||
-- @returns name as a string
|
||||
local function create_name(words_table)
|
||||
local adverb, adjective, noun
|
||||
adverb = table.get_random(words_table.adverbs)
|
||||
adjective = table.get_random(words_table.adjectives)
|
||||
noun = table.get_random(words_table.nouns)
|
||||
adverb = table.get_random(words_table.adverbs, true)
|
||||
adjective = table.get_random(words_table.adjectives, true)
|
||||
noun = table.get_random(words_table.nouns, true)
|
||||
return adverb .. '_' .. adjective .. '_' .. noun
|
||||
end
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
local Event = require 'utils.event'
|
||||
local Game = require 'utils.game'
|
||||
local Utils = require 'utils.utils'
|
||||
local Utils = require 'utils.core'
|
||||
local Module = {}
|
||||
|
||||
global.player_spawns = {} -- player_index to spawn_name
|
||||
|
@@ -1,6 +1,6 @@
|
||||
-- adds some wrecked items around the map, good for MP, reduces total resources pulled from factory, and adds incentive to push out
|
||||
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local wreck_item_pool = {
|
||||
{name = 'iron-gear-wheel', count = 32},
|
||||
@@ -44,14 +44,14 @@ local callback =
|
||||
function(entity)
|
||||
entity.health = math.random(entity.health)
|
||||
|
||||
entity.insert(wreck_item_pool[math.random(#wreck_item_pool)])
|
||||
entity.insert(wreck_item_pool[math.random(#wreck_item_pool)])
|
||||
entity.insert(wreck_item_pool[math.random(#wreck_item_pool)])
|
||||
entity.insert(wreck_item_pool[table.get_random(wreck_item_pool, true)])
|
||||
entity.insert(wreck_item_pool[table.get_random(wreck_item_pool, true)])
|
||||
entity.insert(wreck_item_pool[table.get_random(wreck_item_pool, true)])
|
||||
end
|
||||
)
|
||||
|
||||
return function(x, y, world)
|
||||
local ship = entity_list[math.random(#entity_list)]
|
||||
local ship = table.get_random(entity_list, true)
|
||||
|
||||
if math.random(ship.chance) ~= 1 then
|
||||
return nil
|
||||
|
@@ -3,7 +3,7 @@
|
||||
require("rso_config")
|
||||
require("util")
|
||||
require("rso_resource_config")
|
||||
local Utils = require "utils.utils"
|
||||
local Utils = require "utils.core"
|
||||
local Game = require 'utils.game'
|
||||
local math = require 'utils.math'
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
local Event = require 'utils.event'
|
||||
local Task = require 'utils.Task'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
local Global = require 'utils.global'
|
||||
|
||||
local no_coin_entity = {}
|
||||
|
@@ -1,5 +1,5 @@
|
||||
local Random = require 'map_gen.shared.random'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
local Global = require 'utils.global'
|
||||
local Event = require 'utils.event'
|
||||
local Task = require 'utils.Task'
|
||||
|
@@ -1,5 +1,5 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local loot = {
|
||||
{weight = 10},
|
||||
|
@@ -1,5 +1,5 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local loot = {
|
||||
{weight = 10},
|
||||
|
@@ -1,6 +1,6 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local loot = {
|
||||
{weight = 10},
|
||||
|
@@ -1,5 +1,5 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local loot = {
|
||||
{weight = 5},
|
||||
|
@@ -1,5 +1,5 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local loot = {
|
||||
{weight = 5},
|
||||
|
@@ -1,5 +1,5 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local loot = {
|
||||
{weight = 5},
|
||||
|
@@ -1,5 +1,5 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local loot = {
|
||||
{weight = 5},
|
||||
|
@@ -1,5 +1,5 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local loot = {
|
||||
{weight = 10},
|
||||
|
@@ -1,5 +1,5 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local loot = {
|
||||
{weight = 10},
|
||||
|
@@ -1,5 +1,5 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local loot = {
|
||||
{weight = 10},
|
||||
|
@@ -1,5 +1,5 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local loot = {
|
||||
{weight = 5},
|
||||
|
@@ -1,5 +1,5 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local loot = {
|
||||
{weight = 5},
|
||||
|
@@ -1,5 +1,5 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local loot = {
|
||||
{weight = 10},
|
||||
|
@@ -1,5 +1,5 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local loot = {
|
||||
{weight = 10},
|
||||
|
@@ -1,6 +1,6 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local loot = {
|
||||
{weight = 10},
|
||||
|
@@ -1,5 +1,5 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local loot = {
|
||||
{weight = 5},
|
||||
|
@@ -1,5 +1,5 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local loot = {
|
||||
{weight = 5},
|
||||
|
@@ -1,5 +1,5 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local loot = {
|
||||
{weight = 5},
|
||||
|
@@ -1,5 +1,5 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local loot = {
|
||||
{weight = 5},
|
||||
|
@@ -1,5 +1,5 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local loot = {
|
||||
{weight = 10},
|
||||
|
@@ -1,5 +1,5 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local loot = {
|
||||
{weight = 10},
|
||||
|
@@ -1,5 +1,5 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local loot = {
|
||||
{weight = 10},
|
||||
|
@@ -1,5 +1,5 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local loot = {
|
||||
{weight = 5},
|
||||
|
@@ -1,5 +1,5 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local loot = {
|
||||
{weight = 5},
|
||||
|
@@ -1,5 +1,5 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local loot = {
|
||||
{weight = 10},
|
||||
|
@@ -1,5 +1,5 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local loot = {
|
||||
{weight = 10},
|
||||
|
@@ -1,6 +1,6 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local loot = {
|
||||
{weight = 10},
|
||||
|
@@ -1,5 +1,5 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local loot = {
|
||||
{weight = 5},
|
||||
|
@@ -1,5 +1,5 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local loot = {
|
||||
{weight = 5},
|
||||
|
@@ -1,5 +1,5 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local loot = {
|
||||
{weight = 10},
|
||||
|
@@ -1,5 +1,5 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local loot = {
|
||||
{weight = 5},
|
||||
|
@@ -1,5 +1,5 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local loot = {
|
||||
{weight = 10},
|
||||
|
@@ -1,5 +1,5 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local loot = {
|
||||
{weight = 10},
|
||||
|
@@ -1,5 +1,5 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local loot = {
|
||||
{weight = 10},
|
||||
|
@@ -1,5 +1,5 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local loot = {
|
||||
{weight = 5},
|
||||
|
@@ -1,5 +1,5 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local loot = {
|
||||
{weight = 5},
|
||||
|
@@ -1,7 +1,7 @@
|
||||
local b = require 'map_gen.shared.builders'
|
||||
local Random = require 'map_gen.shared.random'
|
||||
local Perlin = require 'map_gen.shared.perlin_noise'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
local Global = require 'utils.global'
|
||||
local Event = require 'utils.event'
|
||||
local degrees = require "utils.math".degrees
|
||||
|
@@ -1,5 +1,5 @@
|
||||
local Task = require 'utils.Task'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
local Event = require 'utils.event'
|
||||
|
||||
local insert = table.insert
|
||||
|
@@ -1,4 +1,4 @@
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
local Event = require 'utils.event'
|
||||
|
||||
local insert = table.insert
|
||||
|
@@ -1,4 +1,4 @@
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local Builders = {}
|
||||
|
||||
|
@@ -5,9 +5,9 @@
|
||||
-- ======================================================= --
|
||||
|
||||
local Queue = require 'utils.Queue'
|
||||
local PriorityQueue = require 'utils.PriorityQueue'
|
||||
local PriorityQueue = require 'utils.priority_queue'
|
||||
local Event = require 'utils.event'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local Task = {}
|
||||
|
||||
|
@@ -1,16 +1,22 @@
|
||||
local Module = {}
|
||||
local Game = require 'utils.game'
|
||||
local prefix = '## - '
|
||||
local minutes_to_ticks = 60 * 60
|
||||
local hours_to_ticks = 60 * 60 * 60
|
||||
local ticks_to_minutes = 1 / minutes_to_ticks
|
||||
local ticks_to_hours = 1 / hours_to_ticks
|
||||
|
||||
--- Measures distance between pos1 and pos2
|
||||
Module.distance = function(pos1, pos2)
|
||||
local dx = pos2.x - pos1.x
|
||||
local dy = pos2.y - pos1.y
|
||||
return math.sqrt(dx * dx + dy * dy)
|
||||
end
|
||||
|
||||
--- Takes msg and prints it to all players except provided player
|
||||
Module.print_except = function(msg, player)
|
||||
for _, p in pairs(game.players) do
|
||||
if p.connected and p ~= player then
|
||||
for _, p in pairs(game.connected_players) do
|
||||
if p ~= player then
|
||||
p.print(msg)
|
||||
end
|
||||
end
|
||||
@@ -93,10 +99,7 @@ Module.ternary = function(c, t, f)
|
||||
end
|
||||
end
|
||||
|
||||
local minutes_to_ticks = 60 * 60
|
||||
local hours_to_ticks = 60 * 60 * 60
|
||||
local ticks_to_minutes = 1 / minutes_to_ticks
|
||||
local ticks_to_hours = 1 / hours_to_ticks
|
||||
--- Takes a time in ticks and returns a string with the time in format "x hour(s) x minute(s)"
|
||||
Module.format_time = function(ticks)
|
||||
local result = {}
|
||||
|
||||
@@ -123,15 +126,15 @@ Module.format_time = function(ticks)
|
||||
end
|
||||
|
||||
--- Prints a message letting the player know they cannot run a command
|
||||
-- @param1 name of the command
|
||||
-- @param name string name of the command
|
||||
Module.cant_run = function(name)
|
||||
Game.player_print("Can't run command (" .. name .. ') - insufficient permission.')
|
||||
end
|
||||
|
||||
--- Logs the use of a command and its user
|
||||
-- @param1 takes a string with the actor's name (usually acquired by calling get_actor)
|
||||
-- @param2 the command's name as table element
|
||||
-- @param3 the command's parameters as a table element (optional)
|
||||
-- @param actor string with the actor's name (usually acquired by calling get_actor)
|
||||
-- @param command the command's name as table element
|
||||
-- @param parameters the command's parameters as a table (optional)
|
||||
Module.log_command = function(actor, command, parameters)
|
||||
local action = table.concat {'[Admin-Command] ', actor, ' used: ', command}
|
||||
if parameters then
|
||||
@@ -145,4 +148,17 @@ Module.comma_value = function(n) -- credit http://richard.warburton.it
|
||||
return left .. (num:reverse():gsub('(%d%d%d)', '%1,'):reverse()) .. right
|
||||
end
|
||||
|
||||
--- Asserts the argument is one of type arg_types
|
||||
-- @param arg the variable to check
|
||||
-- @param arg_types the type as a table of sings
|
||||
-- @return boolean
|
||||
Module.verify_mult_types = function(arg, arg_types)
|
||||
for _, arg_type in pairs(arg_types) do
|
||||
if type(arg) == arg_type then
|
||||
return true
|
||||
end
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
return Module
|
@@ -85,7 +85,7 @@ function Event.on_nth_tick(tick, handler)
|
||||
end
|
||||
end
|
||||
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
global.event_tokens = {}
|
||||
|
||||
function Event.add_removable(event_name, token)
|
||||
|
@@ -1,5 +1,5 @@
|
||||
local Event = require 'utils.event'
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
|
||||
local Global = {}
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
local Token = require 'utils.global_token'
|
||||
local Token = require 'utils.token'
|
||||
local Event = require 'utils.event'
|
||||
local Game = require 'utils.game'
|
||||
|
||||
|
@@ -1,17 +1,7 @@
|
||||
-- Functions that perform actions on tables
|
||||
|
||||
local function assert_argument_valid(a, arg_type)
|
||||
arg_type = arg_type or 'table'
|
||||
if type(a) ~= arg_type then
|
||||
error("bad argument #1 to '" .. debug.getinfo(2, 'n').name .. "' (table expected, got " .. type(a) .. ')', 3)
|
||||
end
|
||||
end
|
||||
|
||||
--- Removes a specific element from a table
|
||||
--- Searches a table to remove a specific element without an index
|
||||
-- @param t table to search
|
||||
-- @param element to search for
|
||||
table.remove_element = function(t, element)
|
||||
assert_argument_valid(t)
|
||||
for k, v in pairs(t) do
|
||||
if v == element then
|
||||
table.remove(t, k)
|
||||
@@ -20,9 +10,10 @@ table.remove_element = function(t, element)
|
||||
end
|
||||
end
|
||||
|
||||
--- Adds the contents of table t2 to table t1
|
||||
-- @param t1 table to insert into
|
||||
-- @param t2 table to insert from
|
||||
table.add_all = function(t1, t2)
|
||||
assert_argument_valid(t1)
|
||||
assert_argument_valid(t2)
|
||||
for k, v in pairs(t2) do
|
||||
if tonumber(k) then
|
||||
table.insert(t1, v)
|
||||
@@ -32,21 +23,11 @@ table.add_all = function(t1, t2)
|
||||
end
|
||||
end
|
||||
|
||||
table.size = function(t)
|
||||
assert_argument_valid(t)
|
||||
local size = 0
|
||||
for _ in pairs(t) do
|
||||
size = size + 1
|
||||
end
|
||||
return size
|
||||
end
|
||||
|
||||
--- Checks if a table contains an element
|
||||
-- @param t table to search
|
||||
-- @param e element to search for
|
||||
-- @returns the index of an element or -1
|
||||
table.index_of = function(t, e)
|
||||
assert_argument_valid(t)
|
||||
local i = 1
|
||||
for _, v in pairs(t) do
|
||||
if v == e then
|
||||
@@ -62,13 +43,14 @@ end
|
||||
-- @param e element to search for
|
||||
-- @returns true or false
|
||||
table.contains = function(t, e)
|
||||
assert_argument_valid(t)
|
||||
return table.index_of(t, e) > -1
|
||||
end
|
||||
|
||||
--- Adds an element into a specific index position while shuffling the rest down
|
||||
-- @param t table to add into
|
||||
-- @param index the position in the table to add to
|
||||
-- @param element to add
|
||||
table.set = function(t, index, element)
|
||||
assert_argument_valid(t)
|
||||
assert_argument_valid(index, 'number')
|
||||
local i = 1
|
||||
for k in pairs(t) do
|
||||
if i == index then
|
||||
@@ -80,22 +62,21 @@ table.set = function(t, index, element)
|
||||
error('Index out of bounds', 2)
|
||||
end
|
||||
|
||||
table.get = function(t, index)
|
||||
assert_argument_valid(t)
|
||||
assert_argument_valid(index, 'number')
|
||||
local i = 1
|
||||
for k in pairs(t) do
|
||||
if i == index then
|
||||
return t[k]
|
||||
end
|
||||
i = i + 1
|
||||
end
|
||||
error('Index out of bounds', 2)
|
||||
end
|
||||
|
||||
--- Chooses a random entry from a table
|
||||
table.get_random = function(this_table)
|
||||
return this_table[math.random(#this_table)]
|
||||
--@param t table to select an element from
|
||||
--@param sorted boolean to indicate whether the table is sorted by numerical index or not
|
||||
--@return a random element of table t
|
||||
table.get_random = function(t, sorted)
|
||||
if sorted then
|
||||
return t[math.random(#t)]
|
||||
end
|
||||
local target_index = math.random(1, table_size(t))
|
||||
local count = 1
|
||||
for _, v in pairs(t) do
|
||||
if target_index == count then
|
||||
return t[v]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--- Chooses a random entry from a weighted table
|
||||
@@ -140,8 +121,6 @@ end
|
||||
table.binary_search =
|
||||
function(t, target)
|
||||
--For some reason bit32.bnot doesn't return negative numbers so I'm using ~x = -1 - x instead.
|
||||
assert_argument_valid(t)
|
||||
assert_argument_valid(target, 'number')
|
||||
|
||||
local lower = 1
|
||||
local upper = #t
|
Reference in New Issue
Block a user