mirror of
https://github.com/fluxionary/minetest-book_runner.git
synced 2025-03-15 04:11:25 +00:00
fmod and normalization
This commit is contained in:
parent
51451c97c8
commit
fa75b5751a
4 changed files with 652 additions and 51 deletions
646
.luacheckrc
646
.luacheckrc
|
@ -5,24 +5,642 @@ max_line_length = 120
|
||||||
stds.minetest = {
|
stds.minetest = {
|
||||||
read_globals = {
|
read_globals = {
|
||||||
"DIR_DELIM",
|
"DIR_DELIM",
|
||||||
"core",
|
|
||||||
"dump",
|
"dump",
|
||||||
"vector",
|
"dump2",
|
||||||
"nodeupdate",
|
|
||||||
"VoxelManip",
|
math = {
|
||||||
"VoxelArea",
|
fields = {
|
||||||
"PseudoRandom",
|
abs = {},
|
||||||
"ItemStack",
|
acos = {},
|
||||||
"default",
|
asin = {},
|
||||||
"table",
|
atan = {},
|
||||||
"math",
|
atan2 = {},
|
||||||
"string",
|
ceil = {},
|
||||||
|
cos = {},
|
||||||
|
cosh = {},
|
||||||
|
deg = {},
|
||||||
|
exp = {},
|
||||||
|
factorial = {},
|
||||||
|
floor = {},
|
||||||
|
fmod = {},
|
||||||
|
frexp = {},
|
||||||
|
huge = {},
|
||||||
|
hypot = {},
|
||||||
|
ldexp = {},
|
||||||
|
log = {},
|
||||||
|
log10 = {},
|
||||||
|
max = {},
|
||||||
|
min = {},
|
||||||
|
modf = {},
|
||||||
|
pi = {},
|
||||||
|
pow = {},
|
||||||
|
rad = {},
|
||||||
|
random = {},
|
||||||
|
randomseed = {},
|
||||||
|
round = {},
|
||||||
|
sign = {},
|
||||||
|
sin = {},
|
||||||
|
sinh = {},
|
||||||
|
sqrt = {},
|
||||||
|
tan = {},
|
||||||
|
tanh = {},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
table = {
|
||||||
|
fields = {
|
||||||
|
copy = {},
|
||||||
|
concat = {},
|
||||||
|
foreach = {},
|
||||||
|
foreachi = {},
|
||||||
|
getn = {},
|
||||||
|
indexof = {},
|
||||||
|
insert = {},
|
||||||
|
insert_all = {},
|
||||||
|
key_value_swap = {},
|
||||||
|
maxn = {},
|
||||||
|
move = {},
|
||||||
|
remove = {},
|
||||||
|
shuffle = {},
|
||||||
|
sort = {},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
string = {
|
||||||
|
fields = {
|
||||||
|
byte = {},
|
||||||
|
char = {},
|
||||||
|
dump = {},
|
||||||
|
find = {},
|
||||||
|
format = {},
|
||||||
|
gmatch = {},
|
||||||
|
len = {},
|
||||||
|
lower = {},
|
||||||
|
match = {},
|
||||||
|
rep = {},
|
||||||
|
reverse = {},
|
||||||
|
split = {},
|
||||||
|
sub = {},
|
||||||
|
trim = {},
|
||||||
|
upper = {},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
vector = {
|
||||||
|
fields = {
|
||||||
|
add = {},
|
||||||
|
angle = {},
|
||||||
|
apply = {},
|
||||||
|
check = {},
|
||||||
|
combine = {},
|
||||||
|
copy = {},
|
||||||
|
cross = {},
|
||||||
|
dir_to_rotation = {},
|
||||||
|
direction = {},
|
||||||
|
distance = {},
|
||||||
|
divide = {},
|
||||||
|
dot = {},
|
||||||
|
equals = {},
|
||||||
|
floor = {},
|
||||||
|
from_string = {},
|
||||||
|
length = {},
|
||||||
|
metatable = {},
|
||||||
|
multiply = {},
|
||||||
|
new = {},
|
||||||
|
normalize = {},
|
||||||
|
offset = {},
|
||||||
|
rotate = {},
|
||||||
|
rotate_around_axis = {},
|
||||||
|
round = {},
|
||||||
|
sort = {},
|
||||||
|
subtract = {},
|
||||||
|
to_string = {},
|
||||||
|
zero = {},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
ItemStack = {
|
||||||
|
fields = {
|
||||||
|
add_item = {},
|
||||||
|
add_wear = {},
|
||||||
|
add_wear_by_uses = {},
|
||||||
|
clear = {},
|
||||||
|
get_count = {},
|
||||||
|
get_definition = {},
|
||||||
|
get_description = {},
|
||||||
|
get_free_space = {},
|
||||||
|
get_meta = {},
|
||||||
|
get_metadata = {},
|
||||||
|
get_name = {},
|
||||||
|
get_short_description = {},
|
||||||
|
get_stack_max = {},
|
||||||
|
get_tool_capabilities = {},
|
||||||
|
get_wear = {},
|
||||||
|
is_empty = {},
|
||||||
|
is_known = {},
|
||||||
|
item_fits = {},
|
||||||
|
peek_item = {},
|
||||||
|
replace = {},
|
||||||
|
set_count = {},
|
||||||
|
set_metadata = {},
|
||||||
|
set_name = {},
|
||||||
|
set_wear = {},
|
||||||
|
take_item = {},
|
||||||
|
to_string = {},
|
||||||
|
to_table = {},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
PerlinNoise = {
|
||||||
|
fields = {
|
||||||
|
get_2d = {},
|
||||||
|
get_3d = {},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
PerlinNoiseMap = {
|
||||||
|
fields = {
|
||||||
|
calc_2d_map = {},
|
||||||
|
calc_3d_map = {},
|
||||||
|
get_2d_map = {},
|
||||||
|
get_2d_map_flat = {},
|
||||||
|
get_3d_map = {},
|
||||||
|
get_3d_map_flat = {},
|
||||||
|
get_map_slice = {},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
PseudoRandom = {
|
||||||
|
fields = {
|
||||||
|
next = {},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
PcgRandom = {
|
||||||
|
fields = {
|
||||||
|
next = {},
|
||||||
|
rand_normal_dist = {},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
SecureRandom = {
|
||||||
|
fields = {
|
||||||
|
next_bytes = {},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Settings = {
|
||||||
|
fields = {
|
||||||
|
get = {},
|
||||||
|
get_bool = {},
|
||||||
|
get_flags = {},
|
||||||
|
get_names = {},
|
||||||
|
get_np_group = {},
|
||||||
|
remove = {},
|
||||||
|
set = {},
|
||||||
|
set_bool = {},
|
||||||
|
set_np_group = {},
|
||||||
|
to_table = {},
|
||||||
|
write = {},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
VoxelArea = {
|
||||||
|
fields = {
|
||||||
|
MaxEdge = {},
|
||||||
|
MinEdge = {},
|
||||||
|
contains = {},
|
||||||
|
containsi = {},
|
||||||
|
containsp = {},
|
||||||
|
getExtent = {},
|
||||||
|
getVolume = {},
|
||||||
|
index = {},
|
||||||
|
indexp = {},
|
||||||
|
iter = {},
|
||||||
|
iterp = {},
|
||||||
|
new = {},
|
||||||
|
position = {},
|
||||||
|
ystride = {},
|
||||||
|
zstride = {},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
VoxelManip = {
|
||||||
|
fields = {
|
||||||
|
calc_lighting = {},
|
||||||
|
get_data = {},
|
||||||
|
get_emerged_area = {},
|
||||||
|
get_light_data = {},
|
||||||
|
get_node_at = {},
|
||||||
|
get_param2_data = {},
|
||||||
|
read_from_map = {},
|
||||||
|
set_data = {},
|
||||||
|
set_light_data = {},
|
||||||
|
set_lighting = {},
|
||||||
|
set_node_at = {},
|
||||||
|
set_param2_data = {},
|
||||||
|
update_liquids = {},
|
||||||
|
update_map = {},
|
||||||
|
was_modified = {},
|
||||||
|
write_to_map = {},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
minetest = {
|
minetest = {
|
||||||
fields = {
|
fields = {
|
||||||
chat_send_player = {read_only = false},
|
CONTENT_AIR = {},
|
||||||
|
CONTENT_IGNORE = {},
|
||||||
|
CONTENT_UNKNOWN = {},
|
||||||
|
EMERGE_CANCELLED = {},
|
||||||
|
EMERGE_ERRORED = {},
|
||||||
|
EMERGE_FROM_DISK = {},
|
||||||
|
EMERGE_FROM_MEMORY = {},
|
||||||
|
EMERGE_GENERATED = {},
|
||||||
|
LIGHT_MAX = {},
|
||||||
|
MAP_BLOCKSIZE = {},
|
||||||
|
PLAYER_MAX_BREATH_DEFAULT = {},
|
||||||
|
PLAYER_MAX_HP_DEFAULT = {},
|
||||||
|
add_entity = {},
|
||||||
|
add_item = {},
|
||||||
|
add_node = {},
|
||||||
|
add_node_level = {},
|
||||||
|
add_particle = {},
|
||||||
|
add_particlespawner = {},
|
||||||
|
after = {},
|
||||||
|
async_event_handler = {},
|
||||||
|
async_jobs = {},
|
||||||
|
auth_reload = {},
|
||||||
|
ban_player = {},
|
||||||
|
builtin_auth_handler = {},
|
||||||
|
bulk_set_node = {},
|
||||||
|
calculate_knockback = {},
|
||||||
|
callback_origins = {},
|
||||||
|
cancel_shutdown_requests = {},
|
||||||
|
chat_send_all = {},
|
||||||
|
chat_send_player = {},
|
||||||
|
chatcommands = {},
|
||||||
|
check_for_falling = {},
|
||||||
|
check_password_entry = {},
|
||||||
|
check_player_privs = {},
|
||||||
|
check_single_for_falling = {},
|
||||||
|
clear_craft = {},
|
||||||
|
clear_objects = {},
|
||||||
|
clear_registered_biomes = {},
|
||||||
|
clear_registered_decorations = {},
|
||||||
|
clear_registered_ores = {},
|
||||||
|
clear_registered_schematics = {},
|
||||||
|
close_formspec = {},
|
||||||
|
colorize = {},
|
||||||
|
colorspec_to_bytes = {},
|
||||||
|
colorspec_to_colorstring = {},
|
||||||
|
compare_block_status = {},
|
||||||
|
compress = {},
|
||||||
|
cpdir = {},
|
||||||
|
craft_predict = {},
|
||||||
|
craftitemdef_default = {},
|
||||||
|
create_detached_inventory = {},
|
||||||
|
create_detached_inventory_raw = {},
|
||||||
|
create_schematic = {},
|
||||||
|
debug = {},
|
||||||
|
decode_base64 = {},
|
||||||
|
decompress = {},
|
||||||
|
delete_area = {},
|
||||||
|
delete_particlespawner = {},
|
||||||
|
deserialize = {},
|
||||||
|
detached_inventories = {},
|
||||||
|
dig_node = {},
|
||||||
|
dir_to_facedir = {},
|
||||||
|
dir_to_wallmounted = {},
|
||||||
|
dir_to_yaw = {},
|
||||||
|
disconnect_player = {},
|
||||||
|
do_async_callback = {},
|
||||||
|
do_item_eat = {},
|
||||||
|
dynamic_add_media = {},
|
||||||
|
dynamic_media_callbacks = {},
|
||||||
|
emerge_area = {},
|
||||||
|
encode_base64 = {},
|
||||||
|
encode_png = {},
|
||||||
|
env = {},
|
||||||
|
explode_scrollbar_event = {},
|
||||||
|
explode_table_event = {},
|
||||||
|
explode_textlist_event = {},
|
||||||
|
facedir_to_dir = {},
|
||||||
|
features = {},
|
||||||
|
find_node_near = {},
|
||||||
|
find_nodes_in_area = {},
|
||||||
|
find_nodes_in_area_under_air = {},
|
||||||
|
find_nodes_with_meta = {},
|
||||||
|
find_path = {},
|
||||||
|
fix_light = {},
|
||||||
|
forceload_block = {},
|
||||||
|
forceload_free_block = {},
|
||||||
|
format_chat_message = {},
|
||||||
|
formspec_escape = {},
|
||||||
|
generate_decorations = {},
|
||||||
|
generate_ores = {},
|
||||||
|
get_all_craft_recipes = {},
|
||||||
|
get_artificial_light = {},
|
||||||
|
get_auth_handler = {},
|
||||||
|
get_background_escape_sequence = {},
|
||||||
|
get_ban_description = {},
|
||||||
|
get_ban_list = {},
|
||||||
|
get_biome_data = {},
|
||||||
|
get_biome_id = {},
|
||||||
|
get_biome_name = {},
|
||||||
|
get_builtin_path = {},
|
||||||
|
get_color_escape_sequence = {},
|
||||||
|
get_connected_players = {},
|
||||||
|
get_content_id = {},
|
||||||
|
get_craft_recipe = {},
|
||||||
|
get_craft_result = {},
|
||||||
|
get_current_modname = {},
|
||||||
|
get_day_count = {},
|
||||||
|
get_decoration_id = {},
|
||||||
|
get_dig_params = {},
|
||||||
|
get_dir_list = {},
|
||||||
|
get_gametime = {},
|
||||||
|
get_gen_notify = {},
|
||||||
|
get_heat = {},
|
||||||
|
get_hit_params = {},
|
||||||
|
get_humidity = {},
|
||||||
|
get_inventory = {},
|
||||||
|
get_item_group = {},
|
||||||
|
get_last_run_mod = {},
|
||||||
|
get_mapgen_object = {},
|
||||||
|
get_mapgen_params = {},
|
||||||
|
get_mapgen_setting = {},
|
||||||
|
get_mapgen_setting_noiseparams = {},
|
||||||
|
get_meta = {},
|
||||||
|
get_mod_storage = {},
|
||||||
|
get_modnames = {},
|
||||||
|
get_modpath = {},
|
||||||
|
get_name_from_content_id = {},
|
||||||
|
get_natural_light = {},
|
||||||
|
get_node = {},
|
||||||
|
get_node_drops = {},
|
||||||
|
get_node_group = {},
|
||||||
|
get_node_level = {},
|
||||||
|
get_node_light = {},
|
||||||
|
get_node_max_level = {},
|
||||||
|
get_node_or_nil = {},
|
||||||
|
get_node_timer = {},
|
||||||
|
get_noiseparams = {},
|
||||||
|
get_objects_in_area = {},
|
||||||
|
get_objects_inside_radius = {},
|
||||||
|
get_password_hash = {},
|
||||||
|
get_perlin = {},
|
||||||
|
get_perlin_map = {},
|
||||||
|
get_player_by_name = {},
|
||||||
|
get_player_information = {},
|
||||||
|
get_player_ip = {},
|
||||||
|
get_player_privs = {},
|
||||||
|
get_player_radius_area = {},
|
||||||
|
get_pointed_thing_position = {},
|
||||||
|
get_position_from_hash = {},
|
||||||
|
get_server_max_lag = {},
|
||||||
|
get_server_status = {},
|
||||||
|
get_server_uptime = {},
|
||||||
|
get_spawn_level = {},
|
||||||
|
get_timeofday = {},
|
||||||
|
get_tool_wear_after_use = {},
|
||||||
|
get_translated_string = {},
|
||||||
|
get_translator = {},
|
||||||
|
get_us_time = {},
|
||||||
|
get_user_path = {},
|
||||||
|
get_version = {},
|
||||||
|
get_voxel_manip = {},
|
||||||
|
get_worldpath = {},
|
||||||
|
global_exists = {},
|
||||||
|
handle_async = {},
|
||||||
|
handle_node_drops = {},
|
||||||
|
has_feature = {},
|
||||||
|
hash_node_position = {},
|
||||||
|
hud_replace_builtin = {},
|
||||||
|
inventorycube = {},
|
||||||
|
is_area_protected = {},
|
||||||
|
is_colored_paramtype = {},
|
||||||
|
is_creative_enabled = {},
|
||||||
|
is_nan = {},
|
||||||
|
is_player = {},
|
||||||
|
is_protected = {},
|
||||||
|
is_singleplayer = {},
|
||||||
|
is_yes = {},
|
||||||
|
item_drop = {},
|
||||||
|
item_eat = {},
|
||||||
|
item_place = {},
|
||||||
|
item_place_node = {},
|
||||||
|
item_place_object = {},
|
||||||
|
item_secondary_use = {},
|
||||||
|
itemstring_with_color = {},
|
||||||
|
itemstring_with_palette = {},
|
||||||
|
kick_player = {},
|
||||||
|
line_of_sight = {},
|
||||||
|
load_area = {},
|
||||||
|
log = {},
|
||||||
|
luaentities = {},
|
||||||
|
mkdir = {},
|
||||||
|
mod_channel_join = {},
|
||||||
|
mvdir = {},
|
||||||
|
node_dig = {},
|
||||||
|
node_punch = {},
|
||||||
|
nodedef_default = {},
|
||||||
|
noneitemdef_default = {},
|
||||||
|
notify_authentication_modified = {},
|
||||||
|
object_refs = {},
|
||||||
|
on_craft = {},
|
||||||
|
override_chatcommand = {},
|
||||||
|
override_item = {},
|
||||||
|
parse_coordinates = {},
|
||||||
|
parse_json = {},
|
||||||
|
parse_relative_number = {},
|
||||||
|
place_node = {},
|
||||||
|
place_schematic = {},
|
||||||
|
place_schematic_on_vmanip = {},
|
||||||
|
player_exists = {},
|
||||||
|
pointed_thing_to_face_pos = {},
|
||||||
|
pos_to_string = {},
|
||||||
|
print = {},
|
||||||
|
privs_to_string = {},
|
||||||
|
punch_node = {},
|
||||||
|
raillike_group = {},
|
||||||
|
raycast = {},
|
||||||
|
read_schematic = {},
|
||||||
|
record_protection_violation = {},
|
||||||
|
register_abm = {},
|
||||||
|
register_alias = {},
|
||||||
|
register_alias_force = {},
|
||||||
|
register_allow_player_inventory_action = {},
|
||||||
|
register_async_dofile = {},
|
||||||
|
register_authentication_handler = {},
|
||||||
|
register_biome = {},
|
||||||
|
register_can_bypass_userlimit = {},
|
||||||
|
register_chatcommand = {},
|
||||||
|
register_craft = {},
|
||||||
|
register_craft_predict = {},
|
||||||
|
register_craftitem = {},
|
||||||
|
register_decoration = {},
|
||||||
|
register_entity = {},
|
||||||
|
register_globalstep = {},
|
||||||
|
register_item = {},
|
||||||
|
register_lbm = {},
|
||||||
|
register_node = {},
|
||||||
|
register_on_auth_fail = {},
|
||||||
|
register_on_authplayer = {},
|
||||||
|
register_on_chat_message = {},
|
||||||
|
register_on_chatcommand = {},
|
||||||
|
register_on_cheat = {},
|
||||||
|
register_on_craft = {},
|
||||||
|
register_on_dieplayer = {},
|
||||||
|
register_on_dignode = {},
|
||||||
|
register_on_generated = {},
|
||||||
|
register_on_item_eat = {},
|
||||||
|
register_on_joinplayer = {},
|
||||||
|
register_on_leaveplayer = {},
|
||||||
|
register_on_liquid_transformed = {},
|
||||||
|
register_on_mapgen_init = {},
|
||||||
|
register_on_modchannel_message = {},
|
||||||
|
register_on_mods_loaded = {},
|
||||||
|
register_on_newplayer = {},
|
||||||
|
register_on_placenode = {},
|
||||||
|
register_on_player_hpchange = {},
|
||||||
|
register_on_player_inventory_action = {},
|
||||||
|
register_on_player_receive_fields = {},
|
||||||
|
register_on_prejoinplayer = {},
|
||||||
|
register_on_priv_grant = {},
|
||||||
|
register_on_priv_revoke = {},
|
||||||
|
register_on_protection_violation = {},
|
||||||
|
register_on_punchnode = {},
|
||||||
|
register_on_punchplayer = {},
|
||||||
|
register_on_respawnplayer = {},
|
||||||
|
register_on_rightclickplayer = {},
|
||||||
|
register_on_shutdown = {},
|
||||||
|
register_ore = {},
|
||||||
|
register_playerevent = {},
|
||||||
|
register_privilege = {},
|
||||||
|
register_schematic = {},
|
||||||
|
register_tool = {},
|
||||||
|
registered_abms = {other_fields = true},
|
||||||
|
registered_aliases = {other_fields = true},
|
||||||
|
registered_allow_player_inventory_actions = {other_fields = true},
|
||||||
|
registered_biomes = {other_fields = true},
|
||||||
|
registered_can_bypass_userlimit = {other_fields = true},
|
||||||
|
registered_chatcommands = {other_fields = true},
|
||||||
|
registered_craft_predicts = {other_fields = true},
|
||||||
|
registered_craftitems = {other_fields = true},
|
||||||
|
registered_decorations = {other_fields = true},
|
||||||
|
registered_entities = {other_fields = true},
|
||||||
|
registered_globalsteps = {other_fields = true},
|
||||||
|
registered_items = {other_fields = true},
|
||||||
|
registered_lbms = {other_fields = true},
|
||||||
|
registered_nodes = {other_fields = true},
|
||||||
|
registered_on_authplayers = {other_fields = true},
|
||||||
|
registered_on_chat_messages = {other_fields = true},
|
||||||
|
registered_on_chatcommands = {other_fields = true},
|
||||||
|
registered_on_cheats = {other_fields = true},
|
||||||
|
registered_on_crafts = {other_fields = true},
|
||||||
|
registered_on_dieplayers = {other_fields = true},
|
||||||
|
registered_on_dignodes = {other_fields = true},
|
||||||
|
registered_on_generateds = {other_fields = true},
|
||||||
|
registered_on_item_eats = {other_fields = true},
|
||||||
|
registered_on_joinplayers = {other_fields = true},
|
||||||
|
registered_on_leaveplayers = {other_fields = true},
|
||||||
|
registered_on_liquid_transformed = {other_fields = true},
|
||||||
|
registered_on_modchannel_message = {other_fields = true},
|
||||||
|
registered_on_mods_loaded = {other_fields = true},
|
||||||
|
registered_on_newplayers = {other_fields = true},
|
||||||
|
registered_on_placenodes = {other_fields = true},
|
||||||
|
registered_on_player_hpchange = {other_fields = true},
|
||||||
|
registered_on_player_hpchanges = {other_fields = true},
|
||||||
|
registered_on_player_inventory_actions = {other_fields = true},
|
||||||
|
registered_on_player_receive_fields = {other_fields = true},
|
||||||
|
registered_on_prejoinplayers = {other_fields = true},
|
||||||
|
registered_on_priv_grant = {other_fields = true},
|
||||||
|
registered_on_priv_revoke = {other_fields = true},
|
||||||
|
registered_on_protection_violation = {other_fields = true},
|
||||||
|
registered_on_punchnodes = {other_fields = true},
|
||||||
|
registered_on_punchplayers = {other_fields = true},
|
||||||
|
registered_on_respawnplayers = {other_fields = true},
|
||||||
|
registered_on_rightclickplayers = {other_fields = true},
|
||||||
|
registered_on_shutdown = {other_fields = true},
|
||||||
|
registered_ores = {other_fields = true},
|
||||||
|
registered_playerevents = {other_fields = true},
|
||||||
|
registered_privileges = {other_fields = true},
|
||||||
|
registered_tools = {other_fields = true},
|
||||||
|
remove_detached_inventory = {},
|
||||||
|
remove_detached_inventory_raw = {},
|
||||||
|
remove_node = {},
|
||||||
|
remove_player = {},
|
||||||
|
remove_player_auth = {},
|
||||||
|
request_http_api = {},
|
||||||
|
request_insecure_environment = {},
|
||||||
|
request_shutdown = {},
|
||||||
|
rgba = {},
|
||||||
|
rmdir = {},
|
||||||
|
rollback_get_last_node_actor = {},
|
||||||
|
rollback_get_node_actions = {},
|
||||||
|
rollback_punch_callbacks = {},
|
||||||
|
rollback_revert_actions_by = {},
|
||||||
|
rotate_and_place = {},
|
||||||
|
rotate_node = {},
|
||||||
|
run_callbacks = {},
|
||||||
|
run_priv_callbacks = {},
|
||||||
|
safe_file_write = {},
|
||||||
|
send_join_message = {},
|
||||||
|
send_leave_message = {},
|
||||||
|
serialize = {},
|
||||||
|
serialize_roundtrip = {},
|
||||||
|
serialize_schematic = {},
|
||||||
|
set_gen_notify = {},
|
||||||
|
set_last_run_mod = {},
|
||||||
|
set_mapgen_params = {},
|
||||||
|
set_mapgen_setting = {},
|
||||||
|
set_mapgen_setting_noiseparams = {},
|
||||||
|
set_node = {},
|
||||||
|
set_node_level = {},
|
||||||
|
set_noiseparams = {},
|
||||||
|
set_player_password = {},
|
||||||
|
set_player_privs = {},
|
||||||
|
set_timeofday = {},
|
||||||
|
setting_get = {},
|
||||||
|
setting_get_pos = {},
|
||||||
|
setting_getbool = {},
|
||||||
|
setting_save = {},
|
||||||
|
setting_set = {},
|
||||||
|
setting_setbool = {},
|
||||||
|
settings = {
|
||||||
|
fields = {
|
||||||
|
get = {},
|
||||||
|
get_bool = {},
|
||||||
|
get_np_group = {},
|
||||||
|
get_flags = {},
|
||||||
|
set = {},
|
||||||
|
set_bool = {},
|
||||||
|
set_np_group = {},
|
||||||
|
remove = {},
|
||||||
|
get_names = {},
|
||||||
|
write = {},
|
||||||
|
to_table = {},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
sha1 = {},
|
||||||
|
show_formspec = {},
|
||||||
|
show_general_help_formspec = {},
|
||||||
|
show_privs_help_formspec = {},
|
||||||
|
sound_fade = {},
|
||||||
|
sound_play = {},
|
||||||
|
sound_stop = {},
|
||||||
|
spawn_falling_node = {},
|
||||||
|
spawn_item = {},
|
||||||
|
spawn_tree = {},
|
||||||
|
string_to_area = {},
|
||||||
|
string_to_pos = {},
|
||||||
|
string_to_privs = {},
|
||||||
|
strip_background_colors = {},
|
||||||
|
strip_colors = {},
|
||||||
|
strip_foreground_colors = {},
|
||||||
|
strip_param2_color = {},
|
||||||
|
swap_node = {},
|
||||||
|
tooldef_default = {},
|
||||||
|
transforming_liquid_add = {},
|
||||||
|
translate = {},
|
||||||
|
unban_player_or_ip = {},
|
||||||
|
unregister_biome = {},
|
||||||
|
unregister_chatcommand = {},
|
||||||
|
unregister_item = {},
|
||||||
|
wallmounted_to_dir = {},
|
||||||
|
wrap_text = {},
|
||||||
|
write_json = {},
|
||||||
|
yaw_to_dir = {},
|
||||||
},
|
},
|
||||||
other_fields = true,
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,6 +650,8 @@ stds.book_runner = {
|
||||||
"book_runner",
|
"book_runner",
|
||||||
},
|
},
|
||||||
read_globals = {
|
read_globals = {
|
||||||
|
"default",
|
||||||
|
"fmod",
|
||||||
"futil",
|
"futil",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
16
command.lua
16
command.lua
|
@ -1,3 +1,7 @@
|
||||||
|
local strip_colors = minetest.strip_colors
|
||||||
|
|
||||||
|
local strip_translation = futil.strip_translation
|
||||||
|
|
||||||
local S = default.get_translator
|
local S = default.get_translator
|
||||||
|
|
||||||
minetest.register_chatcommand("run_in_book", {
|
minetest.register_chatcommand("run_in_book", {
|
||||||
|
@ -33,22 +37,24 @@ minetest.register_chatcommand("run_in_book", {
|
||||||
return false, ("you lack privileges to run %s"):format(command)
|
return false, ("you lack privileges to run %s"):format(command)
|
||||||
end
|
end
|
||||||
|
|
||||||
local old_chat_send_player = minetest.chat_send_player
|
local orig_chat_send_player = minetest.chat_send_player
|
||||||
local received_messages = {}
|
local received_messages = {}
|
||||||
|
-- luacheck: push globals minetest.chat_send_player
|
||||||
function minetest.chat_send_player(name2, message)
|
function minetest.chat_send_player(name2, message)
|
||||||
if name == name2 then
|
if name == name2 then
|
||||||
table.insert(received_messages, minetest.strip_colors(futil.strip_translation(message)))
|
table.insert(received_messages, strip_colors(strip_translation(message)))
|
||||||
else
|
else
|
||||||
old_chat_send_player(name2, message)
|
orig_chat_send_player(name2, message)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local _, status = command_def.func(name, args)
|
local _, status = command_def.func(name, args)
|
||||||
if status and status ~= "" then
|
if status and status ~= "" then
|
||||||
table.insert(received_messages, minetest.strip_colors(futil.strip_translation(status)))
|
table.insert(received_messages, strip_colors(strip_translation(status)))
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.chat_send_player = old_chat_send_player
|
minetest.chat_send_player = orig_chat_send_player
|
||||||
|
-- luacheck: pop
|
||||||
|
|
||||||
local text = table.concat(received_messages, "\n")
|
local text = table.concat(received_messages, "\n")
|
||||||
local written_book = ItemStack("default:book_written")
|
local written_book = ItemStack("default:book_written")
|
||||||
|
|
30
init.lua
30
init.lua
|
@ -1,31 +1,5 @@
|
||||||
local modname = minetest.get_current_modname()
|
futil.check_version({ year = 2022, month = 10, day = 24 })
|
||||||
local modpath = minetest.get_modpath(modname)
|
|
||||||
local S = minetest.get_translator(modname)
|
|
||||||
|
|
||||||
assert(
|
book_runner = fmod.create()
|
||||||
type(futil.version) == "number" and futil.version >= os.time({ year = 2022, month = 10, day = 24 }),
|
|
||||||
"please update futil"
|
|
||||||
)
|
|
||||||
|
|
||||||
book_runner = {
|
|
||||||
author = "flux",
|
|
||||||
license = "AGPL_v3",
|
|
||||||
version = os.time({ year = 2022, month = 9, day = 30 }),
|
|
||||||
fork = "flux",
|
|
||||||
|
|
||||||
modname = modname,
|
|
||||||
modpath = modpath,
|
|
||||||
S = S,
|
|
||||||
|
|
||||||
has = {},
|
|
||||||
|
|
||||||
log = function(level, messagefmt, ...)
|
|
||||||
return minetest.log(level, ("[%s] %s"):format(modname, messagefmt:format(...)))
|
|
||||||
end,
|
|
||||||
|
|
||||||
dofile = function(...)
|
|
||||||
return dofile(table.concat({ modpath, ... }, DIR_DELIM) .. ".lua")
|
|
||||||
end,
|
|
||||||
}
|
|
||||||
|
|
||||||
book_runner.dofile("command")
|
book_runner.dofile("command")
|
||||||
|
|
11
mod.conf
11
mod.conf
|
@ -2,8 +2,9 @@ name = book_runner
|
||||||
title = book runner
|
title = book runner
|
||||||
description = run a command and put the output in a book
|
description = run a command and put the output in a book
|
||||||
url = https://content.minetest.net/packages/rheo/book_runner/
|
url = https://content.minetest.net/packages/rheo/book_runner/
|
||||||
author = flux
|
author = fluxionary
|
||||||
license = AGPL_v3+
|
license = AGPL-3.0-or-later
|
||||||
version = 2022-10-26
|
media_license = CC-BY-SA-4.0
|
||||||
min_minetest_version = 5.6.0
|
version = 2022-11-27
|
||||||
depends = default, futil
|
min_minetest_version = 5.6.1
|
||||||
|
depends = default, fmod, futil
|
||||||
|
|
Loading…
Add table
Reference in a new issue