diff --git a/mods/3d_armor/3d_armor/api.lua b/mods/3d_armor/3d_armor/api.lua index 996ec6d7..dbca4f9d 100644 --- a/mods/3d_armor/3d_armor/api.lua +++ b/mods/3d_armor/3d_armor/api.lua @@ -638,17 +638,19 @@ end armor.get_valid_player = function(self, player, msg) msg = msg or "" if not player then - minetest.log("warning", S("3d_armor: Player reference is nil @1", msg)) + minetest.log("warning", ("3d_armor%s: Player reference is nil"):format(msg)) return end local name = player:get_player_name() if not name then - minetest.log("warning", S("3d_armor: Player name is nil @1", msg)) + minetest.log("warning", ("3d_armor%s: Player name is nil"):format(msg)) return end local inv = minetest.get_inventory({type="detached", name=name.."_armor"}) if not inv then - minetest.log("warning", S("3d_armor: Detached armor inventory is nil @1", msg)) + -- This check may fail when called inside `on_joinplayer` + -- in that case, the armor will be initialized/updated later on + minetest.log("warning", ("3d_armor%s: Detached armor inventory is nil"):format(msg)) return end return name, inv diff --git a/mods/3d_armor/3d_armor/init.lua b/mods/3d_armor/3d_armor/init.lua index 049b6fd2..bb84364a 100644 --- a/mods/3d_armor/3d_armor/init.lua +++ b/mods/3d_armor/3d_armor/init.lua @@ -331,6 +331,7 @@ minetest.register_on_joinplayer(function(player) local player_name = player:get_player_name() minetest.after(0, function() + -- TODO: Added in 7566ecc - What's the prupose? local pplayer = minetest.get_player_by_name(player_name) if pplayer and init_player_armor(pplayer) == false then pending_players[pplayer] = 0 diff --git a/mods/advtrains/advtrains/atc.lua b/mods/advtrains/advtrains/atc.lua index 4f8b937f..64cdceca 100644 --- a/mods/advtrains/advtrains/atc.lua +++ b/mods/advtrains/advtrains/atc.lua @@ -174,12 +174,16 @@ function atc.get_atc_controller_formspec(pos, meta) local formspec="size[8,6]" -- "dropdown[0,0;3;mode;static,mesecon,digiline;"..mode.."]" if mode<3 then - formspec=formspec.."field[0.5,1.5;7,1;command;"..attrans("Command")..";"..minetest.formspec_escape(command).."]" + formspec=formspec + .."style[command;font=mono]" + .."field[0.8,1.5;7,1;command;"..attrans("Command")..";"..minetest.formspec_escape(command).."]" if tonumber(mode)==2 then - formspec=formspec.."field[0.5,3;7,1;command_on;"..attrans("Command (on)")..";"..minetest.formspec_escape(command_on).."]" + formspec=formspec + .."style[command_on;font=mono]" + .."field[0.8,3;7,1;command_on;"..attrans("Command (on)")..";"..minetest.formspec_escape(command_on).."]" end else - formspec=formspec.."field[0.5,1.5;7,1;channel;"..attrans("Digiline channel")..";"..minetest.formspec_escape(channel).."]" + formspec=formspec.."field[0.8,1.5;7,1;channel;"..attrans("Digiline channel")..";"..minetest.formspec_escape(channel).."]" end return formspec.."button_exit[0.5,4.5;7,1;save;"..attrans("Save").."]" end diff --git a/mods/advtrains/advtrains/signals.lua b/mods/advtrains/advtrains/signals.lua index 59612cd4..5fb1d1b3 100644 --- a/mods/advtrains/advtrains/signals.lua +++ b/mods/advtrains/advtrains/signals.lua @@ -73,7 +73,9 @@ for r,f in pairs({on={as="off", ls="green", als="red"}, off={as="on", ls="red", rules=advtrains.meseconrules, ["action_"..f.as] = function (pos, node) advtrains.ndb.swap_node(pos, {name = "advtrains:retrosignal_"..f.as..rotation, param2 = node.param2}, true) - advtrains.interlocking.signal_on_aspect_changed(pos) + if advtrains.interlocking then + advtrains.interlocking.signal_on_aspect_changed(pos) + end end }}, on_rightclick=function(pos, node, player) @@ -85,7 +87,9 @@ for r,f in pairs({on={as="off", ls="green", als="red"}, off={as="on", ls="red", advtrains.interlocking.show_ip_form(pos, pname) elseif advtrains.check_turnout_signal_protection(pos, player:get_player_name()) then advtrains.ndb.swap_node(pos, {name = "advtrains:retrosignal_"..f.as..rotation, param2 = node.param2}, true) - advtrains.interlocking.signal_on_aspect_changed(pos) + if advtrains.interlocking then + advtrains.interlocking.signal_on_aspect_changed(pos) + end end end, -- new signal API @@ -134,7 +138,9 @@ for r,f in pairs({on={as="off", ls="green", als="red"}, off={as="on", ls="red", rules=advtrains.meseconrules, ["action_"..f.as] = function (pos, node) advtrains.setstate(pos, f.als, node) - advtrains.interlocking.signal_on_aspect_changed(pos) + if advtrains.interlocking then + advtrains.interlocking.signal_on_aspect_changed(pos) + end end }}, on_rightclick=function(pos, node, player) @@ -146,7 +152,9 @@ for r,f in pairs({on={as="off", ls="green", als="red"}, off={as="on", ls="red", advtrains.interlocking.show_ip_form(pos, pname) elseif advtrains.check_turnout_signal_protection(pos, player:get_player_name()) then advtrains.setstate(pos, f.als, node) - advtrains.interlocking.signal_on_aspect_changed(pos) + if advtrains.interlocking then + advtrains.interlocking.signal_on_aspect_changed(pos) + end end end, -- new signal API @@ -206,6 +214,9 @@ for r,f in pairs({on={as="off", ls="green", als="red"}, off={as="on", ls="red", rules = mrules_wallsignal, ["action_"..f.as] = function (pos, node) advtrains.setstate(pos, f.als, node) + if advtrains.interlocking then + advtrains.interlocking.signal_on_aspect_changed(pos) + end end }}, on_rightclick=function(pos, node, player) @@ -217,6 +228,9 @@ for r,f in pairs({on={as="off", ls="green", als="red"}, off={as="on", ls="red", advtrains.interlocking.show_ip_form(pos, pname) elseif advtrains.check_turnout_signal_protection(pos, player:get_player_name()) then advtrains.setstate(pos, f.als, node) + if advtrains.interlocking then + advtrains.interlocking.signal_on_aspect_changed(pos) + end end end, -- new signal API diff --git a/mods/advtrains/advtrains_interlocking/route_ui.lua b/mods/advtrains/advtrains_interlocking/route_ui.lua index 64e45ee3..1999941a 100644 --- a/mods/advtrains/advtrains_interlocking/route_ui.lua +++ b/mods/advtrains/advtrains_interlocking/route_ui.lua @@ -25,8 +25,8 @@ function atil.show_route_edit_form(pname, sigd, routeid) if not route then return end local form = "size[9,10]label[0.5,0.2;Route overview]" - form = form.."field[0.8,1.2;5.2,1;name;Route name;"..minetest.formspec_escape(route.name).."]" - form = form.."button[5.5,0.9;1,1;setname;Set]" + form = form.."field[0.8,1.2;6.5,1;name;Route name;"..minetest.formspec_escape(route.name).."]" + form = form.."button[7.0,0.9;1.5,1;setname;Set]" -- construct textlist for route information local tab = {} @@ -80,15 +80,16 @@ function atil.show_route_edit_form(pname, sigd, routeid) itab("Route ends on dead-end") end - form = form.."textlist[0.5,2;7,4;rtelog;"..table.concat(tab, ",").."]" + form = form.."textlist[0.5,2;7.75,3.9;rtelog;"..table.concat(tab, ",").."]" - form = form.."button[0.5,6;2,1;back;<<< Back to signal]" - form = form.."button[3.5,6;2,1;aspect;Signal Aspect]" - form = form.."button[5.5,6;2,1;delete;Delete Route]" + form = form.."button[0.5,6;3,1;back;<<< Back to signal]" + form = form.."button[4.5,6;2,1;aspect;Signal Aspect]" + form = form.."button[6.5,6;2,1;delete;Delete Route]" --atdebug(route.ars) - form = form.."textarea[1,7.3;5.2,3;ars;ARS Rule List;"..atil.ars_to_text(route.ars).."]" - form = form.."button[6,7.7;1,1;savears;Save]" + form = form.."style[ars;font=mono]" + form = form.."textarea[0.8,7.3;5,3;ars;ARS Rule List;"..atil.ars_to_text(route.ars).."]" + form = form.."button[5.5,7.23;3,1;savears;Save ARS List]" minetest.show_formspec(pname, "at_il_routeedit_"..minetest.pos_to_string(sigd.p).."_"..sigd.s.."_"..routeid, form) diff --git a/mods/advtrains/advtrains_line_automation/stoprail.lua b/mods/advtrains/advtrains_line_automation/stoprail.lua index 9c1470a8..55a4785a 100644 --- a/mods/advtrains/advtrains_line_automation/stoprail.lua +++ b/mods/advtrains/advtrains_line_automation/stoprail.lua @@ -50,19 +50,18 @@ local function show_stoprailform(pos, player) end local form = "size[8,7]" - form = form.."field[0.5,0.5;7,1;stn;"..attrans("Station Code")..";"..minetest.formspec_escape(stdata.stn).."]" - form = form.."field[0.5,1.5;7,1;stnname;"..attrans("Station Name")..";"..minetest.formspec_escape(stnname).."]" - form = form.."field[0.5,2.5;1.5,1;ddelay;"..attrans("Door Delay")..";"..minetest.formspec_escape(stdata.ddelay).."]" - form = form.."field[2,2.5;2,1;speed;"..attrans("Departure Speed")..";"..minetest.formspec_escape(stdata.speed).."]" - form = form.."checkbox[5,1.75;reverse;"..attrans("Reverse train")..";"..(stdata.reverse and "true" or "false").."]" - form = form.."checkbox[5,2.0;kick;"..attrans("Kick out passengers")..";"..(stdata.kick and "true" or "false").."]" - form = form.."label[0.5,3;Door side:]" - form = form.."dropdown[0.5,3;2;doors;Left,Right,Closed;"..door_dropdown[stdata.doors].."]" - form = form.."field[5,3.5;2,1;track;"..attrans("Track")..";"..minetest.formspec_escape(stdata.track).."]" - form = form.."field[5,4.5;2,1;wait;"..attrans("Stop Time")..";"..stdata.wait.."]" - - form = form.."textarea[0.5,4;4,2;ars;Trains stopping here (ARS rules);"..advtrains.interlocking.ars_to_text(stdata.ars).."]" - + form = form.."style[stn,ars;font=mono]" + form = form.."field[0.8,0.8;2,1;stn;"..attrans("Station Code")..";"..minetest.formspec_escape(stdata.stn).."]" + form = form.."field[2.8,0.8;5,1;stnname;"..attrans("Station Name")..";"..minetest.formspec_escape(stnname).."]" + form = form.."field[0.80,2.0;1.75,1;ddelay;"..attrans("Door Delay")..";"..minetest.formspec_escape(stdata.ddelay).."]" + form = form.."field[2.55,2.0;1.75,1;speed;"..attrans("Dep. Speed")..";"..minetest.formspec_escape(stdata.speed).."]" + form = form.."field[4.30,2.0;1.75,1;track;"..attrans("Track")..";"..minetest.formspec_escape(stdata.track).."]" + form = form.."field[6.05,2.0;1.75,1;wait;"..attrans("Stop Time")..";"..stdata.wait.."]" + form = form.."label[0.5,2.6;"..attrans("Door Side").."]" + form = form.."dropdown[0.51,3.0;2;doors;Left,Right,Closed;"..door_dropdown[stdata.doors].."]" + form = form.."checkbox[3.00,2.7;reverse;"..attrans("Reverse train")..";"..(stdata.reverse and "true" or "false").."]" + form = form.."checkbox[3.00,3.1;kick;"..attrans("Kick out passengers")..";"..(stdata.kick and "true" or "false").."]" + form = form.."textarea[0.8,4.2;7,2;ars;Trains stopping here (ARS rules);"..advtrains.interlocking.ars_to_text(stdata.ars).."]" form = form.."button[0.5,6;7,1;save;"..attrans("Save").."]" minetest.show_formspec(pname, "at_lines_stop_"..pe, form) @@ -89,23 +88,20 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) tmp_checkboxes[pe].reverse = (fields.reverse == "true") end if fields.save then - if fields.stn and stdata.stn ~= fields.stn then - if fields.stn ~= "" then - local stn = advtrains.lines.stations[fields.stn] - if stn then - if (stn.owner == pname or minetest.check_player_privs(pname, "train_admin")) then - stdata.stn = fields.stn - else - minetest.chat_send_player(pname, "Station code '"..fields.stn.."' does already exist and is owned by "..stn.owner) - end - else - advtrains.lines.stations[fields.stn] = {name = fields.stnname, owner = pname} + if fields.stn and stdata.stn ~= fields.stn and fields.stn ~= "" then + local stn = advtrains.lines.stations[fields.stn] + if stn then + if (stn.owner == pname or minetest.check_player_privs(pname, "train_admin")) then stdata.stn = fields.stn + else + minetest.chat_send_player(pname, "Station code '"..fields.stn.."' does already exist and is owned by "..stn.owner) + show_stoprailform(pos,player) + return end + else + advtrains.lines.stations[fields.stn] = {name = fields.stnname, owner = pname} + stdata.stn = fields.stn end - updatemeta(pos) - show_stoprailform(pos, player) - return end local stn = advtrains.lines.stations[stdata.stn] if stn and fields.stnname and fields.stnname ~= stn.name then diff --git a/mods/advtrains/advtrains_luaautomation/active_common.lua b/mods/advtrains/advtrains_luaautomation/active_common.lua index d168badb..9bf83778 100644 --- a/mods/advtrains/advtrains_luaautomation/active_common.lua +++ b/mods/advtrains/advtrains_luaautomation/active_common.lua @@ -41,9 +41,14 @@ function ac.getform(pos, meta_p) sel=#envs_asvalues end end - local form = "size[10,10]dropdown[0,0;3;env;"..table.concat(envs_asvalues, ",")..";"..sel.."]" - .."button[4,0;2,1;save;Save]button[7,0;2,1;cle;Clear local env] textarea[0.2,1;10,10;code;Code;"..minetest.formspec_escape(code).."]" - .."label[0,9.8;"..err.."]" + local form = "size["..atlatc.CODE_FORM_SIZE.."]" + .."style[code;font=mono]" + .."label[0,-0.1;Environment]" + .."dropdown[0,0.3;3;env;"..table.concat(envs_asvalues, ",")..";"..sel.."]" + .."button[5,0.2;2,1;save;Save]" + .."button[7,0.2;3,1;cle;Clear Local Env.]" + .."textarea[0.3,1.5;"..atlatc.CODE_FORM_SIZE..";code;Code;"..minetest.formspec_escape(code).."]" + .."label[0,9.7;"..err.."]" return form end diff --git a/mods/advtrains/advtrains_luaautomation/chatcmds.lua b/mods/advtrains/advtrains_luaautomation/chatcmds.lua index 468698be..b6ffaee7 100644 --- a/mods/advtrains/advtrains_luaautomation/chatcmds.lua +++ b/mods/advtrains/advtrains_luaautomation/chatcmds.lua @@ -1,27 +1,18 @@ --chatcmds.lua --Registers commands to modify the init and step code for LuaAutomation ---position helper. ---punching a node will result in that position being saved and inserted into a text field on the top of init form. -local punchpos={} - -minetest.register_on_punchnode(function(pos, node, player, pointed_thing) - local pname=player:get_player_name() - punchpos[pname]=pos -end) - local function get_init_form(env, pname) local err = env.init_err or "" local code = env.init_code or "" - local ppos=punchpos[pname] - local pp="" - if ppos then - pp="POS"..minetest.pos_to_string(ppos) - end - local form = "size[10,10]button[0,0;2,1;run;Run InitCode]button[2,0;2,1;cls;Clear S]" - .."button[4,0;2,1;save;Save] button[6,0;2,1;del;Delete Env.] field[8.1,0.5;2,1;punchpos;Last punched position;"..pp.."]" - .."textarea[0.2,1;10,10;code;Environment initialization code;"..minetest.formspec_escape(code).."]" - .."label[0,9.8;"..err.."]" + + local form = "size["..atlatc.CODE_FORM_SIZE.."]" + .."style[code;font=mono]" + .."button[0.0,0.2;2.5,1;run;Run Init Code]" + .."button[2.5,0.2;2.5,1;cls;Clear S]" + .."button[5.0,0.2;2.5,1;save;Save]" + .."button[7.5,0.2;2.5,1;del;Delete Env.]" + .."textarea[0.3,1.5;"..atlatc.CODE_FORM_SIZE..";code;Environment initialization code;"..minetest.formspec_escape(code).."]" + .."label[0.0,9.7;"..err.."]" return form end diff --git a/mods/advtrains/advtrains_luaautomation/init.lua b/mods/advtrains/advtrains_luaautomation/init.lua index a54fb253..b6fe464a 100644 --- a/mods/advtrains/advtrains_luaautomation/init.lua +++ b/mods/advtrains/advtrains_luaautomation/init.lua @@ -16,6 +16,9 @@ atlatc = { envs = {}} minetest.register_privilege("atlatc", { description = "Player can place and modify LUA ATC components. Grant with care! Allows to execute bad LUA code.", give_to_singleplayer = false, default= false }) +--Size of code input forms in X,Y notation. Must be at least 10x10 +atlatc.CODE_FORM_SIZE = "15,12" + --assertt helper. error if a variable is not of a type function assertt(var, typ) if type(var)~=typ then diff --git a/mods/cloud_items/car.lua b/mods/cloud_items/car.lua index 08a42d91..870528d6 100644 --- a/mods/cloud_items/car.lua +++ b/mods/cloud_items/car.lua @@ -1,8 +1,12 @@ -- Code from the Vehicle Mash mod (WTFPL license) + +-- Translation support +local S = minetest.get_translator("cloud_items") + local name = "car_cloud" local definition = ... -definition.description = "Cloud car" +definition.description = S("Cloud car") definition.inventory_image = "cloud_items_car_cloud_inventory.png" definition.wield_image = "cloud_items_car_cloud_inventory.png" definition.textures = {"cloud_items_car_cloud.png"} diff --git a/mods/cloud_items/init.lua b/mods/cloud_items/init.lua index c3bec8ab..bd127ed5 100644 --- a/mods/cloud_items/init.lua +++ b/mods/cloud_items/init.lua @@ -528,6 +528,9 @@ local ship_def = { terrain_type = 3, max_speed_forward = 10, max_speed_reverse = 7, + max_speed_upwards = 5, + max_speed_downwards = 3.5, + accel = 4, braking = 5, turn_speed = 6, @@ -549,8 +552,8 @@ local ship_def = { } -- Cloud ship (based on the Vehicle Mash boat) -local boat_enabled = minetest.settings:get_bool("cloud_items.enable_cloud_car") -if boat_enabled or boat_enabled == nil then +local ship_enabled = minetest.settings:get_bool("cloud_items.enable_cloud_ship") +if ship_enabled or ship_enabled == nil then loadfile(minetest.get_modpath(minetest.get_current_modname()) .. "/ship.lua")(table.copy(ship_def)) end @@ -596,7 +599,7 @@ local car_def = { } -- Cloud car (similar from the CAR01 from Vehicle Mash) -local car_enabled = minetest.settings:get_bool("cloud_items.enable_cloud_ship") +local car_enabled = minetest.settings:get_bool("cloud_items.enable_cloud_car") if car_enabled or car_enabled == nil then loadfile(minetest.get_modpath(minetest.get_current_modname()) .. "/car.lua")(table.copy(car_def)) end diff --git a/mods/cloud_items/locale/cloud_items.es.tr b/mods/cloud_items/locale/cloud_items.es.tr index ad074ee4..eec6b79d 100644 --- a/mods/cloud_items/locale/cloud_items.es.tr +++ b/mods/cloud_items/locale/cloud_items.es.tr @@ -28,7 +28,7 @@ Decorative cloud Slab=Losa de Nube decorativa Inner decorative cloud Stair=Escalera interior de Nube decorativa Outer decorative cloud Stair=Escalera exterior de Nube decorativa Cloud Microblock=Microbloque de nube -Cloud Slope= +Cloud Slope=Ladera de nube Cloud Panel=Panel de nube Cloud Stairs=Escalera de nube Decorative cloud Microblock=Microbloque de nube decorativa @@ -37,4 +37,5 @@ Decorative cloud Panel=Barre en nuage decorativa Decorative cloud Stairs=Escalera de nube decorativa Cloud multitool=Multiherramienta de nube Cloud car=Carro de nube +Cloud ship=Nave de nube Cloud Gauntlets=Guanteletes de nube diff --git a/mods/cloud_items/locale/template.txt b/mods/cloud_items/locale/template.txt index c5cf5a20..a398bd1a 100644 --- a/mods/cloud_items/locale/template.txt +++ b/mods/cloud_items/locale/template.txt @@ -37,4 +37,5 @@ Decorative cloud Panel= Decorative cloud Stairs= Cloud multitool= Cloud car= +Cloud ship= Cloud Gauntlets= diff --git a/mods/cloud_items/ship.lua b/mods/cloud_items/ship.lua index f1c79e49..19a096d7 100644 --- a/mods/cloud_items/ship.lua +++ b/mods/cloud_items/ship.lua @@ -1,8 +1,12 @@ -- Code from the Vehicle Mash mod (WTFPL license) + +-- Translation support +local S = minetest.get_translator("cloud_items") + local name = "cloud_ship" local definition = ... -definition.description = "Cloud ship" +definition.description = S("Cloud ship") definition.inventory_image = "cloud_items_cloud_ship_inventory.png" definition.wield_image = "cloud_items_cloud_ship_inventory.png" definition.mesh = "cloud_items_cloud_ship.obj" diff --git a/mods/lib_mount/README.md b/mods/lib_mount/README.md index 73e98600..047bbd75 100644 --- a/mods/lib_mount/README.md +++ b/mods/lib_mount/README.md @@ -1,9 +1,9 @@ -# Library Mount [![Build status](https://github.com/Panquesito7/lib_mount/workflows/build/badge.svg)](https://github.com/Panquesito7/lib_mount/actions) [![License](https://img.shields.io/badge/license-LGPLv2.1%2B-blue.svg)](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html) [![ContentDB](https://content.minetest.net/packages/Panquesito7/lib_mount/shields/downloads/)](https://content.minetest.net/packages/Panquesito7/lib_mount/) +# Library Mount [![Build status](https://github.com/minetest-mods/lib_mount/workflows/build/badge.svg)](https://github.com/minetest-mods/lib_mount/actions) [![License](https://img.shields.io/badge/license-LGPLv2.1%2B-blue.svg)](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html) [![ContentDB](https://content.minetest.net/packages/Panquesito7/lib_mount/shields/downloads/)](https://content.minetest.net/packages/Panquesito7/lib_mount/) Made by [blert2112](https://github.com/blert2112).\ Handed over to [Panquesito7](https://github.com/Panquesito7). -Current version: 1.2 +Current version: 1.3 ## Dependencies @@ -29,11 +29,11 @@ See [`LICENSE.md`](LICENSE.md) for information. ## Installation -- Unzip the archive, rename the folder to `lib_mount` and place it in ../minetest/mods/ +- Unzip the archive, rename the folder to `lib_mount` and place it in `../minetest/mods/`. -- GNU/Linux: If you use a system-wide installation place it in ~/.minetest/mods/. +- GNU/Linux: If you use a system-wide installation, place it in `~/.minetest/mods/`. -- If you only want this to be used in a single world, place the folder in worldmods/ in your world directory. +- If you only want this to be used in a single world, place the folder in `worldmods/` in your world directory. For further information or help, see:\ . diff --git a/mods/lib_mount/init.lua b/mods/lib_mount/init.lua index 8f27efc7..8a6f80bf 100644 --- a/mods/lib_mount/init.lua +++ b/mods/lib_mount/init.lua @@ -278,13 +278,13 @@ function lib_mount.drive(entity, dtime, is_mob, moving_anim, stand_anim, jump_he velo.y = velo.y + (jump_height * 3) + 1 acce_y = acce_y + (acce_y * 3) + 1 end - if can_go_down and can_go_up and can_fly and can_fly == true then + if can_go_up and can_fly and can_fly == true then velo.y = velo.y + 1 acce_y = acce_y + 1 end end if ctrl.sneak then - if can_go_down and can_go_up and can_fly and can_fly == true then + if can_go_down and can_fly and can_fly == true then velo.y = velo.y - 1 acce_y = acce_y - 1 end @@ -317,6 +317,24 @@ function lib_mount.drive(entity, dtime, is_mob, moving_anim, stand_anim, jump_he return end + -- Stop! (upwards and downwards; applies only if `can_fly` is enabled) + if can_fly == true then + local s2 = get_sign(velo.y) + local s3 = get_sign(acce_y) + velo.y = velo.y - 0.02 * s2 + acce_y = acce_y - 0.02 * s3 + if s2 ~= get_sign(velo.y) then + entity.object:set_velocity({x=0, y=0, z=0}) + velo.y = 0 + return + end + if s3 ~= get_sign(acce_y) then + entity.object:set_velocity({x=0, y=0, z=0}) + acce_y = 0 -- luacheck: ignore + return + end + end + -- enforce speed limit forward and reverse local max_spd = entity.max_speed_reverse if get_sign(entity.v) >= 0 then @@ -326,6 +344,25 @@ function lib_mount.drive(entity, dtime, is_mob, moving_anim, stand_anim, jump_he entity.v = entity.v - get_sign(entity.v) end + -- Enforce speed limit when going upwards or downwards (applies only if `can_fly` is enabled) + if can_fly == true then + local max_spd_flying = entity.max_speed_downwards + if get_sign(velo.y) >= 0 or get_sign(acce_y) >= 0 then + max_spd_flying = entity.max_speed_upwards + end + + if math.abs(velo.y) > max_spd_flying then + velo.y = velo.y - get_sign(velo.y) + end + if velo.y > max_spd_flying then -- This check is to prevent exceeding the maximum speed; but the above check also prevents that. + velo.y = velo.y - get_sign(velo.y) + end + + if math.abs(acce_y) > max_spd_flying then + acce_y = acce_y - get_sign(acce_y) + end + end + -- Set position, velocity and acceleration local p = entity.object:get_pos() local new_velo = {x=0, y=0, z=0} @@ -337,6 +374,7 @@ function lib_mount.drive(entity, dtime, is_mob, moving_anim, stand_anim, jump_he if ni == "air" then if can_fly == true then new_acce.y = 0 + acce_y = acce_y - get_sign(acce_y) -- When going down, this will prevent from exceeding the maximum speed. end elseif ni == "liquid" then if entity.terrain_type == 2 or entity.terrain_type == 3 then diff --git a/mods/mobs_animal/kitten.lua b/mods/mobs_animal/kitten.lua index 1f5233a9..04aa6f08 100644 --- a/mods/mobs_animal/kitten.lua +++ b/mods/mobs_animal/kitten.lua @@ -53,8 +53,7 @@ stepheight = 1.1, stoodup_end = 0, }, follow = { - "mobs_animal:rat", "ethereal:fish_raw", "mobs_fish:clownfish", - "mobs_fish:tropical", "xocean:fish_edible" + "mobs:rat", "group:food_fish_raw", "mobs_fish:tropical", "xocean:fish_edible" }, view_range = 8, diff --git a/mods/mobs_animal/penguin.lua b/mods/mobs_animal/penguin.lua index 5b26312e..f4b04ee0 100644 --- a/mods/mobs_animal/penguin.lua +++ b/mods/mobs_animal/penguin.lua @@ -46,7 +46,7 @@ stepheight = 0.6, fly_in = {"default:water_source", "default:water_flowing"}, floats = 0, follow = { - "ethereal:fish_raw", "mobs_fish:clownfish", "mobs_fish:tropical", + "group:food_fish_raw", "mobs_fish:clownfish", "mobs_fish:tropical", "mobs_fish:clownfish_set", "mobs_fish:tropical_set", "xocean:fish_edible" }, view_range = 5, diff --git a/mods/mobs_redo/api.lua b/mods/mobs_redo/api.lua index 6011479e..a3a75c64 100644 --- a/mods/mobs_redo/api.lua +++ b/mods/mobs_redo/api.lua @@ -8,7 +8,7 @@ local use_cmi = minetest.global_exists("cmi") mobs = { mod = "redo", - version = "20210318", + version = "20210323", intllib = S, invis = minetest.global_exists("invisibility") and invisibility or {} } @@ -251,9 +251,17 @@ local check_for = function(look_for, look_inside) for _, str in pairs(look_inside) do if str == look_for then - return true end + + if str:find("group:") then + + local group = str:split(":")[2] + + if minetest.get_item_group(look_for, group) ~= 0 then + return true + end + end end end diff --git a/mods/mobs_redo/api.txt b/mods/mobs_redo/api.txt index 2b3351c3..08214a62 100644 --- a/mods/mobs_redo/api.txt +++ b/mods/mobs_redo/api.txt @@ -76,7 +76,7 @@ functions needed for the mob to work properly which contains the following: 'floats' when set to 1 mob will float in water, 0 has them sink. 'follow' mobs follow player when holding any of the items which appear on this table, the same items can be fed to a mob to tame or - breed e.g. {"farming:wheat", "default:apple"} + breed e.g. {"farming:wheat", "default:apple", "group:fish"} 'reach' is how far the mob can attack player when standing nearby, default is 3 nodes. diff --git a/mods/skinsdb/meta/character_1984.txt b/mods/skinsdb/meta/character_1984.txt new file mode 100644 index 00000000..f3c94808 --- /dev/null +++ b/mods/skinsdb/meta/character_1984.txt @@ -0,0 +1,3 @@ +refi_player +kheftel +CC 0 (1.0) diff --git a/mods/skinsdb/meta/character_1985.txt b/mods/skinsdb/meta/character_1985.txt new file mode 100644 index 00000000..0c4f6825 --- /dev/null +++ b/mods/skinsdb/meta/character_1985.txt @@ -0,0 +1,3 @@ +uvlight_player +Avyukt More +CC BY-SA 4.0 diff --git a/mods/skinsdb/meta/character_1986.txt b/mods/skinsdb/meta/character_1986.txt new file mode 100644 index 00000000..e28746da --- /dev/null +++ b/mods/skinsdb/meta/character_1986.txt @@ -0,0 +1,3 @@ +mcl_player +TenPlus +CC BY-SA 4.0 diff --git a/mods/skinsdb/meta/character_1987.txt b/mods/skinsdb/meta/character_1987.txt new file mode 100644 index 00000000..6db9f686 --- /dev/null +++ b/mods/skinsdb/meta/character_1987.txt @@ -0,0 +1,3 @@ +mcl_player_beard +MirceaKitsune +CC BY-SA 4.0 diff --git a/mods/skinsdb/meta/character_1988.txt b/mods/skinsdb/meta/character_1988.txt new file mode 100644 index 00000000..7e87c9f3 --- /dev/null +++ b/mods/skinsdb/meta/character_1988.txt @@ -0,0 +1,3 @@ +igor +TenPlus1 +CC BY-SA 4.0 diff --git a/mods/skinsdb/meta/character_1989.txt b/mods/skinsdb/meta/character_1989.txt new file mode 100644 index 00000000..4b305af3 --- /dev/null +++ b/mods/skinsdb/meta/character_1989.txt @@ -0,0 +1,3 @@ +ogre +TenPlus1 +CC BY-SA 4.0 diff --git a/mods/skinsdb/meta/character_1990.txt b/mods/skinsdb/meta/character_1990.txt new file mode 100644 index 00000000..e571dd87 --- /dev/null +++ b/mods/skinsdb/meta/character_1990.txt @@ -0,0 +1,3 @@ +green_monster +TenPlus1 +CC BY-SA 4.0 diff --git a/mods/skinsdb/meta/character_1991.txt b/mods/skinsdb/meta/character_1991.txt new file mode 100644 index 00000000..9e428b0f --- /dev/null +++ b/mods/skinsdb/meta/character_1991.txt @@ -0,0 +1,3 @@ +skeleton_disguise +TenPlus1 +CC BY-SA 4.0 diff --git a/mods/skinsdb/meta/character_1992.txt b/mods/skinsdb/meta/character_1992.txt new file mode 100644 index 00000000..ef807252 --- /dev/null +++ b/mods/skinsdb/meta/character_1992.txt @@ -0,0 +1,3 @@ +green_guy +TenPlus1 +CC BY-SA 4.0 diff --git a/mods/skinsdb/meta/character_1993.txt b/mods/skinsdb/meta/character_1993.txt new file mode 100644 index 00000000..8a20defe --- /dev/null +++ b/mods/skinsdb/meta/character_1993.txt @@ -0,0 +1,3 @@ +ogre_orange +TenPlus1 +CC BY-SA 4.0 diff --git a/mods/skinsdb/meta/character_1994.txt b/mods/skinsdb/meta/character_1994.txt new file mode 100644 index 00000000..ebd5e07e --- /dev/null +++ b/mods/skinsdb/meta/character_1994.txt @@ -0,0 +1,3 @@ +Ankou +TenPlus1 +CC BY-SA 4.0 diff --git a/mods/skinsdb/meta/character_1995.txt b/mods/skinsdb/meta/character_1995.txt new file mode 100644 index 00000000..14746a56 --- /dev/null +++ b/mods/skinsdb/meta/character_1995.txt @@ -0,0 +1,3 @@ +Vampire +TenPlus1 +CC BY-SA 4.0 diff --git a/mods/skinsdb/meta/character_1996.txt b/mods/skinsdb/meta/character_1996.txt new file mode 100644 index 00000000..bef690a5 --- /dev/null +++ b/mods/skinsdb/meta/character_1996.txt @@ -0,0 +1,3 @@ +newplanet_player +Jordach +CC BY-SA 3.0 diff --git a/mods/skinsdb/meta/character_1997.txt b/mods/skinsdb/meta/character_1997.txt new file mode 100644 index 00000000..94782fd0 --- /dev/null +++ b/mods/skinsdb/meta/character_1997.txt @@ -0,0 +1,3 @@ +exile_player +Dokimi +CC BY-SA 4.0 diff --git a/mods/skinsdb/meta/character_1998.txt b/mods/skinsdb/meta/character_1998.txt new file mode 100644 index 00000000..741179c9 --- /dev/null +++ b/mods/skinsdb/meta/character_1998.txt @@ -0,0 +1,3 @@ +priest? +sdzen +CC BY-SA 3.0 diff --git a/mods/skinsdb/meta/character_1999.txt b/mods/skinsdb/meta/character_1999.txt new file mode 100644 index 00000000..83d55830 --- /dev/null +++ b/mods/skinsdb/meta/character_1999.txt @@ -0,0 +1,3 @@ +Farmer1 +sdzen +CC BY-SA 3.0 diff --git a/mods/skinsdb/meta/character_2000.txt b/mods/skinsdb/meta/character_2000.txt new file mode 100644 index 00000000..5b6da644 --- /dev/null +++ b/mods/skinsdb/meta/character_2000.txt @@ -0,0 +1,3 @@ +Farmer2 +sdzen +CC BY-SA 3.0 diff --git a/mods/skinsdb/meta/character_2001.txt b/mods/skinsdb/meta/character_2001.txt new file mode 100644 index 00000000..eebf92f3 --- /dev/null +++ b/mods/skinsdb/meta/character_2001.txt @@ -0,0 +1,3 @@ +Farmer3 +sdzen +CC BY-SA 3.0 diff --git a/mods/skinsdb/meta/character_2002.txt b/mods/skinsdb/meta/character_2002.txt new file mode 100644 index 00000000..8662ea08 --- /dev/null +++ b/mods/skinsdb/meta/character_2002.txt @@ -0,0 +1,3 @@ +Farmer4 +sdzen +CC BY-SA 3.0 diff --git a/mods/skinsdb/meta/character_2003.txt b/mods/skinsdb/meta/character_2003.txt new file mode 100644 index 00000000..4da95dab --- /dev/null +++ b/mods/skinsdb/meta/character_2003.txt @@ -0,0 +1,3 @@ +Farmer5 +sdzen +CC BY-SA 3.0 diff --git a/mods/skinsdb/meta/character_2004.txt b/mods/skinsdb/meta/character_2004.txt new file mode 100644 index 00000000..f6b8cdb6 --- /dev/null +++ b/mods/skinsdb/meta/character_2004.txt @@ -0,0 +1,3 @@ +Farmer6 +sdzen +CC BY-SA 3.0 diff --git a/mods/skinsdb/meta/character_2005.txt b/mods/skinsdb/meta/character_2005.txt new file mode 100644 index 00000000..50b89a12 --- /dev/null +++ b/mods/skinsdb/meta/character_2005.txt @@ -0,0 +1,3 @@ +Villager1 +sdzen +CC BY-SA 3.0 diff --git a/mods/skinsdb/meta/character_2006.txt b/mods/skinsdb/meta/character_2006.txt new file mode 100644 index 00000000..28196f25 --- /dev/null +++ b/mods/skinsdb/meta/character_2006.txt @@ -0,0 +1,3 @@ +Villager2 +sdzen +CC BY-SA 3.0 diff --git a/mods/skinsdb/meta/character_2007.txt b/mods/skinsdb/meta/character_2007.txt new file mode 100644 index 00000000..a5e9893b --- /dev/null +++ b/mods/skinsdb/meta/character_2007.txt @@ -0,0 +1,3 @@ +zombie +lucas +CC BY-SA 3.0 diff --git a/mods/skinsdb/meta/character_2008.txt b/mods/skinsdb/meta/character_2008.txt new file mode 100644 index 00000000..94067f09 --- /dev/null +++ b/mods/skinsdb/meta/character_2008.txt @@ -0,0 +1,3 @@ +Villager3 +sdzen +CC BY-SA 3.0 diff --git a/mods/skinsdb/meta/character_2009.txt b/mods/skinsdb/meta/character_2009.txt new file mode 100644 index 00000000..0d7c6bce --- /dev/null +++ b/mods/skinsdb/meta/character_2009.txt @@ -0,0 +1,3 @@ +Villager4 +sdzen +CC BY-SA 3.0 diff --git a/mods/skinsdb/meta/character_2010.txt b/mods/skinsdb/meta/character_2010.txt new file mode 100644 index 00000000..3f1177cf --- /dev/null +++ b/mods/skinsdb/meta/character_2010.txt @@ -0,0 +1,3 @@ +Villager5 +sdzen +CC BY-SA 3.0 diff --git a/mods/skinsdb/meta/character_2011.txt b/mods/skinsdb/meta/character_2011.txt new file mode 100644 index 00000000..554473f7 --- /dev/null +++ b/mods/skinsdb/meta/character_2011.txt @@ -0,0 +1,3 @@ +Villager6 +sdzen +CC BY-SA 3.0 diff --git a/mods/skinsdb/meta/character_2012.txt b/mods/skinsdb/meta/character_2012.txt new file mode 100644 index 00000000..4a80afd6 --- /dev/null +++ b/mods/skinsdb/meta/character_2012.txt @@ -0,0 +1,3 @@ +Farmer7 +sdzen +CC BY-SA 3.0 diff --git a/mods/skinsdb/meta/character_2013.txt b/mods/skinsdb/meta/character_2013.txt new file mode 100644 index 00000000..ae6a97fd --- /dev/null +++ b/mods/skinsdb/meta/character_2013.txt @@ -0,0 +1,3 @@ +Bartender +sdzen +CC BY-SA 3.0 diff --git a/mods/skinsdb/meta/character_2014.txt b/mods/skinsdb/meta/character_2014.txt new file mode 100644 index 00000000..73732bb5 --- /dev/null +++ b/mods/skinsdb/meta/character_2014.txt @@ -0,0 +1,3 @@ +Farmer8 +sdzen +CC BY-SA 3.0 diff --git a/mods/skinsdb/meta/character_2015.txt b/mods/skinsdb/meta/character_2015.txt new file mode 100644 index 00000000..cbc98167 --- /dev/null +++ b/mods/skinsdb/meta/character_2015.txt @@ -0,0 +1,3 @@ +Crowned +sdzen +CC BY-SA 3.0 diff --git a/mods/skinsdb/meta/character_2016.txt b/mods/skinsdb/meta/character_2016.txt new file mode 100644 index 00000000..086d98db --- /dev/null +++ b/mods/skinsdb/meta/character_2016.txt @@ -0,0 +1,3 @@ +woman +sdzen +CC BY-SA 3.0 diff --git a/mods/skinsdb/meta/character_2017.txt b/mods/skinsdb/meta/character_2017.txt new file mode 100644 index 00000000..622be2bd --- /dev/null +++ b/mods/skinsdb/meta/character_2017.txt @@ -0,0 +1,3 @@ +Villager8 +sdzen +CC BY-SA 3.0 diff --git a/mods/skinsdb/meta/character_2018.txt b/mods/skinsdb/meta/character_2018.txt new file mode 100644 index 00000000..2ac21a6d --- /dev/null +++ b/mods/skinsdb/meta/character_2018.txt @@ -0,0 +1,3 @@ +Crowned2 +sdzen +CC BY-SA 3.0 diff --git a/mods/skinsdb/meta/character_2019.txt b/mods/skinsdb/meta/character_2019.txt new file mode 100644 index 00000000..9afd5894 --- /dev/null +++ b/mods/skinsdb/meta/character_2019.txt @@ -0,0 +1,3 @@ +Crowned3 +sdzen +CC BY-SA 3.0 diff --git a/mods/skinsdb/meta/character_2020.txt b/mods/skinsdb/meta/character_2020.txt new file mode 100644 index 00000000..7b7e50f0 --- /dev/null +++ b/mods/skinsdb/meta/character_2020.txt @@ -0,0 +1,3 @@ +Crowned4 +sdzen +CC BY-SA 3.0 diff --git a/mods/skinsdb/meta/character_2021.txt b/mods/skinsdb/meta/character_2021.txt new file mode 100644 index 00000000..fa3cab45 --- /dev/null +++ b/mods/skinsdb/meta/character_2021.txt @@ -0,0 +1,3 @@ +Villager9 +sdzen +CC BY-SA 3.0 diff --git a/mods/skinsdb/meta/character_2022.txt b/mods/skinsdb/meta/character_2022.txt new file mode 100644 index 00000000..231af412 --- /dev/null +++ b/mods/skinsdb/meta/character_2022.txt @@ -0,0 +1,3 @@ +Aurora Mozilla +MT Aurora +CC BY-SA 3.0 diff --git a/mods/skinsdb/textures/character_1984.png b/mods/skinsdb/textures/character_1984.png new file mode 100644 index 00000000..6ee4869f Binary files /dev/null and b/mods/skinsdb/textures/character_1984.png differ diff --git a/mods/skinsdb/textures/character_1985.png b/mods/skinsdb/textures/character_1985.png new file mode 100644 index 00000000..5518c3b0 Binary files /dev/null and b/mods/skinsdb/textures/character_1985.png differ diff --git a/mods/skinsdb/textures/character_1986.png b/mods/skinsdb/textures/character_1986.png new file mode 100644 index 00000000..71f02471 Binary files /dev/null and b/mods/skinsdb/textures/character_1986.png differ diff --git a/mods/skinsdb/textures/character_1987.png b/mods/skinsdb/textures/character_1987.png new file mode 100644 index 00000000..16382f18 Binary files /dev/null and b/mods/skinsdb/textures/character_1987.png differ diff --git a/mods/skinsdb/textures/character_1988.png b/mods/skinsdb/textures/character_1988.png new file mode 100644 index 00000000..0d9f9c01 Binary files /dev/null and b/mods/skinsdb/textures/character_1988.png differ diff --git a/mods/skinsdb/textures/character_1989.png b/mods/skinsdb/textures/character_1989.png new file mode 100644 index 00000000..d5762d59 Binary files /dev/null and b/mods/skinsdb/textures/character_1989.png differ diff --git a/mods/skinsdb/textures/character_1990.png b/mods/skinsdb/textures/character_1990.png new file mode 100644 index 00000000..e9f71787 Binary files /dev/null and b/mods/skinsdb/textures/character_1990.png differ diff --git a/mods/skinsdb/textures/character_1991.png b/mods/skinsdb/textures/character_1991.png new file mode 100644 index 00000000..8897840f Binary files /dev/null and b/mods/skinsdb/textures/character_1991.png differ diff --git a/mods/skinsdb/textures/character_1992.png b/mods/skinsdb/textures/character_1992.png new file mode 100644 index 00000000..e88d1c73 Binary files /dev/null and b/mods/skinsdb/textures/character_1992.png differ diff --git a/mods/skinsdb/textures/character_1993.png b/mods/skinsdb/textures/character_1993.png new file mode 100644 index 00000000..ee1da89b Binary files /dev/null and b/mods/skinsdb/textures/character_1993.png differ diff --git a/mods/skinsdb/textures/character_1994.png b/mods/skinsdb/textures/character_1994.png new file mode 100644 index 00000000..8ff77800 Binary files /dev/null and b/mods/skinsdb/textures/character_1994.png differ diff --git a/mods/skinsdb/textures/character_1995.png b/mods/skinsdb/textures/character_1995.png new file mode 100644 index 00000000..b30259f6 Binary files /dev/null and b/mods/skinsdb/textures/character_1995.png differ diff --git a/mods/skinsdb/textures/character_1996.png b/mods/skinsdb/textures/character_1996.png new file mode 100644 index 00000000..0670a372 Binary files /dev/null and b/mods/skinsdb/textures/character_1996.png differ diff --git a/mods/skinsdb/textures/character_1997.png b/mods/skinsdb/textures/character_1997.png new file mode 100644 index 00000000..ab390721 Binary files /dev/null and b/mods/skinsdb/textures/character_1997.png differ diff --git a/mods/skinsdb/textures/character_1998.png b/mods/skinsdb/textures/character_1998.png new file mode 100644 index 00000000..4d3aa9c4 Binary files /dev/null and b/mods/skinsdb/textures/character_1998.png differ diff --git a/mods/skinsdb/textures/character_1999.png b/mods/skinsdb/textures/character_1999.png new file mode 100644 index 00000000..de67edd4 Binary files /dev/null and b/mods/skinsdb/textures/character_1999.png differ diff --git a/mods/skinsdb/textures/character_2000.png b/mods/skinsdb/textures/character_2000.png new file mode 100644 index 00000000..91ec6388 Binary files /dev/null and b/mods/skinsdb/textures/character_2000.png differ diff --git a/mods/skinsdb/textures/character_2001.png b/mods/skinsdb/textures/character_2001.png new file mode 100644 index 00000000..1927e216 Binary files /dev/null and b/mods/skinsdb/textures/character_2001.png differ diff --git a/mods/skinsdb/textures/character_2002.png b/mods/skinsdb/textures/character_2002.png new file mode 100644 index 00000000..2e777b72 Binary files /dev/null and b/mods/skinsdb/textures/character_2002.png differ diff --git a/mods/skinsdb/textures/character_2003.png b/mods/skinsdb/textures/character_2003.png new file mode 100644 index 00000000..961b94f9 Binary files /dev/null and b/mods/skinsdb/textures/character_2003.png differ diff --git a/mods/skinsdb/textures/character_2004.png b/mods/skinsdb/textures/character_2004.png new file mode 100644 index 00000000..ac2408ad Binary files /dev/null and b/mods/skinsdb/textures/character_2004.png differ diff --git a/mods/skinsdb/textures/character_2005.png b/mods/skinsdb/textures/character_2005.png new file mode 100644 index 00000000..82bffbff Binary files /dev/null and b/mods/skinsdb/textures/character_2005.png differ diff --git a/mods/skinsdb/textures/character_2006.png b/mods/skinsdb/textures/character_2006.png new file mode 100644 index 00000000..04821c84 Binary files /dev/null and b/mods/skinsdb/textures/character_2006.png differ diff --git a/mods/skinsdb/textures/character_2007.png b/mods/skinsdb/textures/character_2007.png new file mode 100644 index 00000000..67932acd Binary files /dev/null and b/mods/skinsdb/textures/character_2007.png differ diff --git a/mods/skinsdb/textures/character_2008.png b/mods/skinsdb/textures/character_2008.png new file mode 100644 index 00000000..95f4ff80 Binary files /dev/null and b/mods/skinsdb/textures/character_2008.png differ diff --git a/mods/skinsdb/textures/character_2009.png b/mods/skinsdb/textures/character_2009.png new file mode 100644 index 00000000..10e7db0f Binary files /dev/null and b/mods/skinsdb/textures/character_2009.png differ diff --git a/mods/skinsdb/textures/character_2010.png b/mods/skinsdb/textures/character_2010.png new file mode 100644 index 00000000..c3e25480 Binary files /dev/null and b/mods/skinsdb/textures/character_2010.png differ diff --git a/mods/skinsdb/textures/character_2011.png b/mods/skinsdb/textures/character_2011.png new file mode 100644 index 00000000..ddc5856e Binary files /dev/null and b/mods/skinsdb/textures/character_2011.png differ diff --git a/mods/skinsdb/textures/character_2012.png b/mods/skinsdb/textures/character_2012.png new file mode 100644 index 00000000..84f2a826 Binary files /dev/null and b/mods/skinsdb/textures/character_2012.png differ diff --git a/mods/skinsdb/textures/character_2013.png b/mods/skinsdb/textures/character_2013.png new file mode 100644 index 00000000..20d17e2b Binary files /dev/null and b/mods/skinsdb/textures/character_2013.png differ diff --git a/mods/skinsdb/textures/character_2014.png b/mods/skinsdb/textures/character_2014.png new file mode 100644 index 00000000..008490c6 Binary files /dev/null and b/mods/skinsdb/textures/character_2014.png differ diff --git a/mods/skinsdb/textures/character_2015.png b/mods/skinsdb/textures/character_2015.png new file mode 100644 index 00000000..e427131a Binary files /dev/null and b/mods/skinsdb/textures/character_2015.png differ diff --git a/mods/skinsdb/textures/character_2016.png b/mods/skinsdb/textures/character_2016.png new file mode 100644 index 00000000..00d50548 Binary files /dev/null and b/mods/skinsdb/textures/character_2016.png differ diff --git a/mods/skinsdb/textures/character_2017.png b/mods/skinsdb/textures/character_2017.png new file mode 100644 index 00000000..971549a7 Binary files /dev/null and b/mods/skinsdb/textures/character_2017.png differ diff --git a/mods/skinsdb/textures/character_2018.png b/mods/skinsdb/textures/character_2018.png new file mode 100644 index 00000000..3d73fb90 Binary files /dev/null and b/mods/skinsdb/textures/character_2018.png differ diff --git a/mods/skinsdb/textures/character_2019.png b/mods/skinsdb/textures/character_2019.png new file mode 100644 index 00000000..8eee68de Binary files /dev/null and b/mods/skinsdb/textures/character_2019.png differ diff --git a/mods/skinsdb/textures/character_2020.png b/mods/skinsdb/textures/character_2020.png new file mode 100644 index 00000000..fcadff76 Binary files /dev/null and b/mods/skinsdb/textures/character_2020.png differ diff --git a/mods/skinsdb/textures/character_2021.png b/mods/skinsdb/textures/character_2021.png new file mode 100644 index 00000000..2a1210b0 Binary files /dev/null and b/mods/skinsdb/textures/character_2021.png differ diff --git a/mods/skinsdb/textures/character_2022.png b/mods/skinsdb/textures/character_2022.png new file mode 100644 index 00000000..01806481 Binary files /dev/null and b/mods/skinsdb/textures/character_2022.png differ diff --git a/mods/stained_glass/init.lua b/mods/stained_glass/init.lua index 1de7b270..b3ffd4ec 100644 --- a/mods/stained_glass/init.lua +++ b/mods/stained_glass/init.lua @@ -52,7 +52,7 @@ minetest.register_node("stained_glass:stained_glass", { paramtype2 = "color", palette = "unifieddyes_palette_extended.png", sunlight_propagates = true, - use_texture_alpha = true, + use_texture_alpha = "blend", light_source = myglow, is_ground_content = true, walkable = true, @@ -78,7 +78,7 @@ minetest.register_node("stained_glass:stained_trap_glass", { paramtype2 = "color", palette = "unifieddyes_palette_extended.png", sunlight_propagates = true, - use_texture_alpha = true, + use_texture_alpha = "blend", light_source = myglow, is_ground_content = true, walkable = false, diff --git a/mods/vehicle_mash/framework.lua b/mods/vehicle_mash/framework.lua index 38be829b..062ef496 100644 --- a/mods/vehicle_mash/framework.lua +++ b/mods/vehicle_mash/framework.lua @@ -7,8 +7,8 @@ function vehicle_mash.register_vehicle(name, def) terrain_type = def.terrain_type, collisionbox = def.collisionbox, can_fly = def.can_fly, - can_go_down = def.can_go_down, - can_go_up = def.can_go_up, + can_go_down = def.can_go_down, -- Applies only when `can_fly` is enabled + can_go_up = def.can_go_up, -- Applies only when `can_fly` is enabled player_rotation = def.player_rotation, driver_attach_at = def.driver_attach_at, driver_eye_offset = def.driver_eye_offset, @@ -33,8 +33,12 @@ function vehicle_mash.register_vehicle(name, def) tiles = def.tiles, visual_size = def.visual_size, stepheight = def.stepheight, + max_speed_forward = def.max_speed_forward, max_speed_reverse = def.max_speed_reverse, + max_speed_upwards = def.max_speed_upwards, -- Applies only when `can_fly` is enabled + max_speed_downwards = def.max_speed_downwards, -- Applies only when `can_fly` is enabled + accel = def.accel, braking = def.braking, turn_spd = def.turn_speed, diff --git a/mods/vehicle_mash/template.lua b/mods/vehicle_mash/template.lua index 4e8023d6..1cc8cf66 100644 --- a/mods/vehicle_mash/template.lua +++ b/mods/vehicle_mash/template.lua @@ -1,16 +1,30 @@ local name = "car_template" -- mod name of vehicle local definition = { + terrain_type = 1, -- 0 = air, 1 = land, 2 = liquid, 3 = land + liquid description = "Template car", -- name as seen in inventory collisionbox = {0, 0, 0, 0, 0, 0}, -- back, bottom, starboard, front, top, port onplace_position_adj = 0, -- adjust placement position up/down - is_boat = false, -- does vehicle travel on water? + enable_crash = true, -- whether to destroy the vehicle when going too fast and crashes with a block or not + can_fly = false, -- if enabled, the specified vehicle will be able to fly around + can_go_down = false, -- applies only when `can_fly` is enabled + can_go_up = false, -- applies only when `can_fly` is enabled player_rotation = {x=0,y=0,z=0}, -- rotate player so they sit facing the correct direction driver_attach_at = {x=0,y=0,z=0}, -- attach the driver at driver_eye_offset = {x=0, y=0, z=0}, -- offset for first person driver view - number_of_passengers = 0, -- testing: 0 for none, do not increase at this time! - passenger_attach_at = {x=0,y=0,z=0}, -- attach the passenger, if applicable, at - passenger_eye_offset = {x=0, y=0, z=0}, -- offset for first person passenger view + number_of_passengers = 0, -- maximum number of passengers. Can have 3 passengers maximum + passenger_attach_at = {x=0,y=0,z=0}, -- attach the 1st passenger, if applicable, at the specified positions + passenger_eye_offset = {x=0, y=0, z=0}, -- offset for the 1st passenger in first-person view + passenger_detach_pos_offset = {x=0,y=0,z=0}, -- offset for the 1st passenger when they leave the vehicle + + passenger2_attach_at = {x=0,y=0,z=0}, -- attach the 2nd passenger, if applicable, at the specified positions + passenger2_eye_offset = {x=0,y=0,z=0}, -- offset for the 2nd passenger in first-person view + passenger2_detach_pos_offset = {x=0,y=0,z=0}, -- offset for the 2nd passenger when they leave the vehicle + + passenger3_attach_at = {x=0,y=0,z=0}, -- attach the 3rd passenger, if applicable, at the specified positions + passenger3_eye_offset = {x=0,y=0,z=0}, -- offset for the 3rd passenger in first-person view + passenger3_detach_pos_offset = {x=0,y=0,z=0}, -- offset for the 3rd passenger when they leave the vehicle + inventory_image = "filename.png", -- image to use in inventory wield_image = "filename.png", -- image to use in hand wield_scale = {x=1, y=1, z=1}, -- @@ -21,10 +35,12 @@ local definition = { stepheight = 0, -- what can the vehicle climb over?, 0.6 = climb slabs, 1.1 = climb nodes max_speed_forward = 10, -- vehicle maximum forward speed max_speed_reverse = 5, -- vehicle maximum reverse speed + max_speed_upwards = 5, -- vehicle maximum upwards speed (applies only if `can_fly` is enabled) + max_speed_downwards = 3.5, -- vehicle maximum downwards speed (applies only if `can_fly` is enabled) accel = 1, -- how fast vehicle accelerates braking = 2, -- how fast can the vehicle stop turn_speed = 2, -- how quick can the vehicle turn - drop_on_destroy = "", -- what gets dropped when vehicle is destroyed + drop_on_destroy = {""}, -- what gets dropped when vehicle is destroyed recipe = {} -- crafting recipe }