1
0
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:
Matthew
2018-11-28 15:39:51 -05:00
committed by GitHub
90 changed files with 161 additions and 173 deletions

View File

@@ -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'

View File

@@ -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 = {}

View File

@@ -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)

View File

@@ -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 = '## - '

View File

@@ -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 = {}

View File

@@ -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'

View File

@@ -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

View File

@@ -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)

View File

@@ -1,4 +1,4 @@
local Utils = require 'utils.utils'
local Utils = require 'utils.core'
local Event = require 'utils.event'
local Game = require 'utils.game'

View File

@@ -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'

View File

@@ -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

View File

@@ -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

View File

@@ -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()

View File

@@ -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'

View File

@@ -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'

View File

@@ -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)

View File

@@ -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()

View File

@@ -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(

View File

@@ -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.

View File

@@ -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

View File

@@ -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

View File

@@ -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 = {}

View File

@@ -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'

View File

@@ -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'

View File

@@ -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 = {}

View File

@@ -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,

View File

@@ -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

View File

@@ -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

View File

@@ -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'

View File

@@ -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 = {}

View File

@@ -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

View File

@@ -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},

View File

@@ -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

View File

@@ -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

View File

@@ -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'

View File

@@ -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},

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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'

View File

@@ -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 = {}

View File

@@ -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'

View File

@@ -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},

View File

@@ -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},

View File

@@ -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},

View File

@@ -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},

View File

@@ -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},

View File

@@ -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},

View File

@@ -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},

View File

@@ -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},

View File

@@ -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},

View File

@@ -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},

View File

@@ -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},

View File

@@ -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},

View File

@@ -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},

View File

@@ -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},

View File

@@ -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},

View File

@@ -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},

View File

@@ -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},

View File

@@ -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},

View File

@@ -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},

View File

@@ -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},

View File

@@ -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},

View File

@@ -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},

View File

@@ -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},

View File

@@ -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},

View File

@@ -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},

View File

@@ -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},

View File

@@ -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},

View File

@@ -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},

View File

@@ -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},

View File

@@ -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},

View File

@@ -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},

View File

@@ -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},

View File

@@ -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},

View File

@@ -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},

View File

@@ -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},

View File

@@ -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},

View File

@@ -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

View File

@@ -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

View File

@@ -1,4 +1,4 @@
local Token = require 'utils.global_token'
local Token = require 'utils.token'
local Event = require 'utils.event'
local insert = table.insert

View File

@@ -1,4 +1,4 @@
local Token = require 'utils.global_token'
local Token = require 'utils.token'
local Builders = {}

View File

@@ -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 = {}

View File

@@ -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

View File

@@ -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)

View File

@@ -1,5 +1,5 @@
local Event = require 'utils.event'
local Token = require 'utils.global_token'
local Token = require 'utils.token'
local Global = {}

View File

@@ -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'

View File

@@ -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