Compare commits

...

3 Commits

Author SHA1 Message Date
52f10f4aba mods - default,skins,xdecor - provide player_api compatible calls
* made then optional the player_api dependencies or set wrapper for logics
2023-07-13 18:07:01 -05:00
6972d6ebda mods - default - foward compatibilty for default mod on modern engines
* try to adapt due commit 66372e75d9
  so provide alternate usage when up to date engines are detected
  give then `is_area_protected` if any modern engine is availabe,
  otherwise use `intersects_protection` if availabe.. or default one
* more info https://codeberg.org/minenux/minetest-engine-minetest/issues/32
2023-07-13 18:03:25 -05:00
7f06bfc3d2 definition of settings of the game and allowed ones by defaults
* rovide game.conf and minetest.conf files with defualt settings values
2023-07-13 17:30:29 -05:00
7 changed files with 142 additions and 4 deletions

View File

@ -1,3 +1,7 @@
name = subnasa name = subnasa
title = subnasa
author = mckayshirou author = mckayshirou
description = vanilla minetest with some minimal mods description = vanilla minetest with some minimal mods
allowed_mapgens = v7
disabled_settings = !enable_damage, creative_mode
map_persistent = true

103
minetest.conf Normal file
View File

@ -0,0 +1,103 @@
# configuration file for subnasa
## player related configs
enable_pvp = true
creative_mode = false
enable_damage = true
default_privs = interact, shout
basic_privs = interact, shout
only_peaceful_mobs = false
give_initial_stuff = nil
disallow_empty_password = false
unlimited_player_transfer_distance = false
player_transfer_distance = 1000
enable_register_confirmation = false
enable_mod_channels = false
chat_message_format = @name: @message
chat_message_max_size = 100
chat_message_limit_per_10sec = 11.0
chat_message_limit_trigger_kick = 80
#chat_log_level = error
movement_acceleration_default = 4
movement_acceleration_air = 3
movement_acceleration_fast = 15
movement_speed_walk = 5
movement_speed_crouch = 2.35
movement_speed_fast = 25
movement_speed_climb = 3
movement_speed_jump = 5
movement_liquid_fluidity = 0.8
movement_liquid_fluidity_smooth = 0.1
movement_liquid_sink = 10
movement_gravity = 9.81
rspawn.search_radius = 32
rspawn.gen_frequency = 200
rspawn.spawn_block = air
rspawn.cooldown_time = 600
rspawn.min_x = -20000
rspawn.max_x = 20000
rspawn.min_z = -20000
rspawn.max_z = 20000
## server as client related
# name =
# language =
# main_menu_script =
csm_restriction_flags = 1
# csm_restriction_noderange = 0
client_unload_unused_data_timeout = 400
strip_color_codes = false
server_side_occlusion_culling = true
server_map_save_interval = 4
sqlite_synchronous = 1
ignore_world_load_errors = false
## server defaults
enable_protocol_compat = true
strict_protocol_version_checking = false
item_entity_ttl = 1800
map_compression_level_net = 7
kick_msg_shutdown = upsss.. waith/espera/ожидать
kick_msg_crash = upsss.. waith/espera/ожидать ... ... ..
ask_reconnect_on_crash = true
high_precision_fpu = false
num_emerge_threads = 0
disable_anticheat = false
deprecated_lua_api_handling = legacy
## map game world generation
world_start_time = 16999
#fixed_map_seed = # needa special seed to use with large wood sources
mg_name = v7
water_level = 0
max_block_generate_distance = 16
mapgen_limit = 30999
mg_flags = caves,dungeons,light,decorations,biomes,ores
mgv7_spflags = mountains,ridges,floatlands,caverns
# mgv7_mount_zero_level = 0
mgv7_floatland_ymin = 2048
mgv7_floatland_ymax = 10230
mgv7_floatland_taper = 512
mgv7_float_taper_exp = 2.0
mgv7_floatland_density = -0.8
mgv7_floatland_ywater = 700
mgv7_cave_width = 3.01
mgv7_large_cave_depth = -72
# mgv7_small_cave_num_min = 0
# mgv7_small_cave_num_max = 0
# mgv7_large_cave_num_min = 0
# mgv7_large_cave_num_max = 2
mgv7_large_cave_flooded = 0.6
mgv7_cavern_limit = -512
mgv7_cavern_taper = 320
mgv7_cavern_threshold = 0.6
mgv7_dungeon_ymin = -30990
mgv7_dungeon_ymax = 30990
chunksize = 5
dedicated_server_step = 0.099
time_speed = 72
year_days = 365

View File

@ -1,5 +1,8 @@
-- mods/default/functions.lua -- mods/default/functions.lua
-- Check for a volume intersecting protection
local is_50 = minetest.has_feature("object_use_texture_alpha") or nil
-- --
-- Sounds -- Sounds
-- --
@ -488,6 +491,9 @@ minetest.register_abm({
function default.intersects_protection(minp, maxp, player_name, interval) function default.intersects_protection(minp, maxp, player_name, interval)
-- 'interval' is the largest allowed interval for the 3D lattice of checks -- 'interval' is the largest allowed interval for the 3D lattice of checks
if is_50 then
return minetest.is_area_protected(minp, maxp, player_name, interval)
else
-- Compute the optimal float step 'd' for each axis so that all corners and -- Compute the optimal float step 'd' for each axis so that all corners and
-- borders are checked. 'd' will be smaller or equal to 'interval'. -- borders are checked. 'd' will be smaller or equal to 'interval'.
-- Subtracting 1e-4 ensures that the max co-ordinate will be reached by the -- Subtracting 1e-4 ensures that the max co-ordinate will be reached by the
@ -518,6 +524,9 @@ function default.intersects_protection(minp, maxp, player_name, interval)
end end
return false return false
end
end end

View File

@ -23,3 +23,26 @@ LIGHT_MAX = default.LIGHT_MAX
-- Formspecs -- Formspecs
default.gui_suvival_form = default.gui_survival_form default.gui_suvival_form = default.gui_survival_form
default.gui_bg = ""
default.gui_bg_img = ""
-- Players
if minetest.get_modpath("player_api") then
default.registered_player_models = player_api.registered_models
default.player_register_model = player_api.register_model
default.player_attached = player_api.player_attached
default.player_get_animation = player_api.get_animation
default.player_set_model = player_api.set_model
default.player_set_textures = player_api.set_textures
default.player_set_animation = player_api.set_animation
else
player_api = {}
player_api.registered_models = default.registered_player_models
player_api.register_model = default.player_register_model
player_api.player_attached = default.player_attached
player_api.get_animation = default.player_get_animation
player_api.set_model = default.player_set_model
player_api.set_textures = default.player_set_textures
player_api.set_animation = default.player_set_animation
end

View File

@ -13,7 +13,6 @@ local S
if minetest.get_translator ~= nil then if minetest.get_translator ~= nil then
S = minetest.get_translator("skins") S = minetest.get_translator("skins")
is_50 = true
else else
if minetest.get_modpath("intllib") then if minetest.get_modpath("intllib") then
dofile(minetest.get_modpath("intllib").."/init.lua") dofile(minetest.get_modpath("intllib").."/init.lua")

View File

@ -1,4 +1,4 @@
name = skins name = skins
depends = default, player_api depends = default
optional_depends = sfinv, inventory_plus, intllib, unified_inventory optional_depends = sfinv, inventory_plus, intllib, unified_inventory, player_api
description = SKIN manager mod, Simple_Skin modified mod that allow players to set their individual skins. description = SKIN manager mod, Simple_Skin modified mod that allow players to set their individual skins.

View File

@ -29,7 +29,7 @@ function xdecor.sit(pos, node, clicker, pointed_thing)
elseif not default.player_attached[player_name] and node.param2 <= 3 and elseif not default.player_attached[player_name] and node.param2 <= 3 and
not ctrl.sneak and vector.equals(vel, vector.new()) then not ctrl.sneak and vector.equals(vel, vector.new()) then
if p_api then eyey = 0 end if p_api then eyey = 0 end -- our default mod only has wrapper functions not new logic
clicker:set_eye_offset({x = 0, y = eyey, z = 2}, vector.new()) clicker:set_eye_offset({x = 0, y = eyey, z = 2}, vector.new())
clicker:set_physics_override({speed = 0, jump = 0, gravity = 1}) clicker:set_physics_override({speed = 0, jump = 0, gravity = 1})
clicker:set_pos(pos) clicker:set_pos(pos)