diff --git a/init.lua b/init.lua index e347d97..9d3271d 100644 --- a/init.lua +++ b/init.lua @@ -40,7 +40,7 @@ dofile(minetest.get_modpath("airutils") .. DIR_DELIM .. "light.lua") dofile(minetest.get_modpath("airutils") .. DIR_DELIM .. "physics_lib.lua") dofile(minetest.get_modpath("airutils") .. DIR_DELIM .. "lib_planes" .. DIR_DELIM .. "init.lua") -if player_api and not minetest.settings:get_bool('airutils.disable_uniforms') then +if minetest.get_modpath("player_api") and not minetest.settings:get_bool('airutils.disable_uniforms') then dofile(minetest.get_modpath("airutils") .. DIR_DELIM .. "pilot_skin_manager.lua") end @@ -122,6 +122,7 @@ function airutils.detect_player_api(player) local player_proterties = player:get_properties() --local mesh = "character.b3d" --if player_proterties.mesh == mesh then + if minetest.get_modpath("player_api") then local models = player_api.registered_models local character = models[player_proterties.mesh] --minetest.chat_send_all(dump(character)); @@ -140,7 +141,7 @@ function airutils.detect_player_api(player) return 0 end end - --end + end return 0 end diff --git a/inventory_management.lua b/inventory_management.lua index b5b136a..799906e 100644 --- a/inventory_management.lua +++ b/inventory_management.lua @@ -1,60 +1,72 @@ local storage = minetest.get_mod_storage() airutils.modname = minetest.get_current_modname() +--function to format formspec for mineclone. In case of minetest, just returns an empty string +local function get_itemslot_bg(a, b, c, d) + if not minetest.get_modpath("player_api") then + return mcl_formspec.get_itemslot_bg(a,b,c,d) + end + return "" +end + local function get_formspec_by_size(self, size) - local background = default.gui_bg .. default.gui_bg_img .. default.gui_slots + local background = "" + local hotbar = "" + local is_minetest_game = minetest.get_modpath("player_api") or false + if is_minetest_game then + background = background .. default.gui_bg .. default.gui_bg_img .. default.gui_slots + hotbar = default.get_hotbar_bg(0,4.85) + end local default_inventory_formspecs = { ["2"]="size[8,6]".. background .. - "list[detached:" .. self._inv_id .. ";main;3.0,0;3,1;]" .. - "list[current_player;main;0,2;8,4;]" .. + "list[detached:" .. self._inv_id .. ";main;3.0,0;3,1;]" .. get_itemslot_bg(3.0, 0, 2, 1) .. + "list[current_player;main;0,2;8,4;]" .. get_itemslot_bg(0, 2, 8, 4) .. "listring[]", ["3"]="size[8,6]".. background .. - "list[detached:" .. self._inv_id .. ";main;2.5,0;3,1;]" .. - "list[current_player;main;0,2;8,4;]" .. + "list[detached:" .. self._inv_id .. ";main;2.5,0;3,1;]" .. get_itemslot_bg(2.5, 0, 3, 1) .. + "list[current_player;main;0,2;8,4;]" .. get_itemslot_bg(0, 2, 8, 4) .. "listring[]", ["4"]="size[8,6]".. background .. - "list[detached:" .. self._inv_id .. ";main;2,0;4,1;]" .. - "list[current_player;main;0,2;8,4;]" .. + "list[detached:" .. self._inv_id .. ";main;2,0;4,1;]" .. get_itemslot_bg(2.0, 0, 4, 1) .. + "list[current_player;main;0,2;8,4;]" .. get_itemslot_bg(0, 2, 8, 4) .. "listring[]", ["6"]="size[8,6]".. background .. - "list[detached:" .. self._inv_id .. ";main;1,0;6,1;]".. - "list[current_player;main;0,2;8,4;]" .. + "list[detached:" .. self._inv_id .. ";main;1,0;6,1;]".. get_itemslot_bg(1.0, 0, 6, 1) .. + "list[current_player;main;0,2;8,4;]" .. get_itemslot_bg(0, 2, 8, 4) .. "listring[]", ["8"]="size[8,6]".. background .. - "list[detached:" .. self._inv_id .. ";main;0,0;8,1;]".. - "list[current_player;main;0,2;8,4;]" .. + "list[detached:" .. self._inv_id .. ";main;0,0;8,1;]".. get_itemslot_bg(0, 0, 8, 1) .. + "list[current_player;main;0,2;8,4;]" .. get_itemslot_bg(0, 2, 8, 4) .. "listring[]", ["12"]="size[8,7]".. background .. - "list[detached:" .. self._inv_id .. ";main;1,0;6,2;]".. - "list[current_player;main;0,3;8,4;]" .. + "list[detached:" .. self._inv_id .. ";main;1,0;6,2;]".. get_itemslot_bg(1, 0, 6, 2) .. + "list[current_player;main;0,3;8,4;]" .. get_itemslot_bg(0, 3, 8, 4) .. "listring[]", ["16"]="size[8,7]".. background .. - "list[detached:" .. self._inv_id .. ";main;0,0;8,2;]".. - "list[current_player;main;0,3;8,4;]" .. + "list[detached:" .. self._inv_id .. ";main;0,0;8,2;]".. get_itemslot_bg(0, 0, 8, 2) .. + "list[current_player;main;0,3;8,4;]" .. get_itemslot_bg(0, 3, 8, 4) .. "listring[]", ["24"]="size[8,8]".. background .. - "list[context:" .. self._inv_id .. ";main;0,0;8,3;]".. - "list[current_player;main;0,4;8,4;]" .. + "list[detached:" .. self._inv_id .. ";main;0,0;8,3;]".. get_itemslot_bg(0, 0, 8, 3) .. + "list[current_player;main;0,4;8,4;]" .. get_itemslot_bg(0, 4, 8, 4) .. "listring[]", ["32"]="size[8,9]".. background .. - "list[detached:" .. self._inv_id .. ";main;0,0.3;8,4;]".. - "list[current_player;main;0,4.85;8,1;]".. - "list[current_player;main;0,6.08;8,3;8]".. - "listring[context;main]" .. - "listring[current_player;main]" .. - default.get_hotbar_bg(0,4.85), + "list[detached:" .. self._inv_id .. ";main;0,0.3;8,4;]".. get_itemslot_bg(0, 0.3, 8, 4) .. + "list[current_player;main;0,5;8,4;]".. get_itemslot_bg(0, 5, 8, 4) .. + "listring[]" .. + hotbar, ["50"]="size[10,10]".. background .. - "list[detached:" .. self._inv_id .. ";main;0,0;10,5;]".. - "list[current_player;main;1,6;8,4;]" .. + "list[detached:" .. self._inv_id .. ";main;0,0;10,5;]".. get_itemslot_bg(0, 0, 10, 5) .. + "list[current_player;main;1,6;8,4;]" .. get_itemslot_bg(1, 6, 8, 4) .. "listring[]", } diff --git a/lib_planes/forms.lua b/lib_planes/forms.lua index 323b183..37d4dce 100644 --- a/lib_planes/forms.lua +++ b/lib_planes/forms.lua @@ -223,6 +223,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) local plane_obj = airutils.getPlaneFromPlayer(player) if plane_obj == nil then minetest.close_formspec(name, "lib_planes:adf_main") + minetest.chat_send_player(name, core.colorize('#ff0000', " >>> There is something wrong with the plane...")) return end local ent = plane_obj:get_luaentity() @@ -230,24 +231,29 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if fields.adf then if ent._adf == true then ent._adf = false + minetest.chat_send_player(name, core.colorize('#0000ff', " >>> ADF deactivated.")) else ent._adf = true + minetest.chat_send_player(name, core.colorize('#00ff00', " >>> ADF activated.")) end end if fields.save_adf then if ent._adf_destiny then - if fields.adf_x then - if tonumber(fields.adf_x, 10) ~= nil then + if fields.adf_x and fields.adf_z then + if tonumber(fields.adf_x, 10) ~= nil and tonumber(fields.adf_z, 10) ~= nil then ent._adf_destiny.x = tonumber(fields.adf_x, 10) - end - end - if fields.adf_z then - if tonumber(fields.adf_z, 10) ~= nil then ent._adf_destiny.z = tonumber(fields.adf_z, 10) + minetest.chat_send_player(name, core.colorize('#00ff00', " >>> Destination written successfully.")) + else + minetest.chat_send_player(name, core.colorize('#ff0000', " >>> There is something wrong with the ADF fields values.")) end + else + minetest.chat_send_player(name, core.colorize('#ff0000', " >>> Both ADF fields must be given to complete the operation.")) end end end + else + minetest.chat_send_player(name, core.colorize('#ff0000', " >>> There is something wrong on ADF saving...")) end minetest.close_formspec(name, "lib_planes:adf_main") end diff --git a/lib_planes/utilities.lua b/lib_planes/utilities.lua index f124636..e30cc14 100644 --- a/lib_planes/utilities.lua +++ b/lib_planes/utilities.lua @@ -56,8 +56,13 @@ function airutils.attach(self, player, instructor_mode) end player:set_eye_offset({x = 0, y = eye_y, z = 2}, {x = 0, y = 1, z = -30}) - player_api.player_attached[name] = true - player_api.set_animation(player, "sit") + if minetest.get_modpath("player_api") then + player_api.player_attached[name] = true + player_api.set_animation(player, "sit") + elseif minetest.get_modpath("mcl_player") then + airutils.sit(player) + end + -- make the driver sit minetest.after(1, function() if player then @@ -84,9 +89,14 @@ function airutils.dettachPlayer(self, player) --player:set_physics_override({speed = 1, jump = 1, gravity = 1, sneak = true}) if player then player:set_detach() - player_api.player_attached[name] = nil player:set_eye_offset({x=0,y=0,z=0},{x=0,y=0,z=0}) - player_api.set_animation(player, "stand") + if minetest.get_modpath("player_api") then + player_api.player_attached[name] = nil + player_api.set_animation(player, "stand") + elseif minetest.get_modpath("mcl_player") then + mcl_player.player_attached[name] = nil + mcl_player.player_set_animation(player, "stand") + end end self.driver = nil --remove_physics_override(player, {speed=1,gravity=1,jump=1}) @@ -114,8 +124,13 @@ local function attach_copilot(self, name, player, eye_y) -- attach the driver player:set_attach(self.co_pilot_seat_base, "", {x = 0, y = 0, z = 0}, {x = 0, y = 0, z = 0}) player:set_eye_offset({x = 0, y = eye_y, z = 2}, {x = 0, y = 3, z = -30}) - player_api.player_attached[name] = true - player_api.set_animation(player, "sit") + if minetest.get_modpath("player_api") then + player_api.player_attached[name] = true + player_api.set_animation(player, "sit") + elseif minetest.get_modpath("mcl_player") then + mcl_player.player_attached[name] = true + airutils.sit(player) + end -- make the driver sit minetest.after(1, function() player = minetest.get_player_by_name(name) @@ -170,8 +185,15 @@ function airutils.attach_pax(self, player, is_copilot) self._passengers[i] = name player:set_attach(self._passengers_base[i], "", {x = 0, y = 0, z = 0}, {x = 0, y = 0, z = 0}) player:set_eye_offset({x = 0, y = eye_y, z = 0}, {x = 0, y = 3, z = -30}) - player_api.player_attached[name] = true - player_api.set_animation(player, "sit") + + if minetest.get_modpath("player_api") then + player_api.player_attached[name] = true + player_api.set_animation(player, "sit") + elseif minetest.get_modpath("mcl_player") then + mcl_player.player_attached[name] = true + airutils.sit(player) + end + -- make the driver sit minetest.after(1, function() player = minetest.get_player_by_name(name) @@ -208,8 +230,15 @@ function airutils.dettach_pax(self, player) -- detach the player if player then player:set_detach() - player_api.player_attached[name] = nil - player_api.set_animation(player, "stand") + + if minetest.get_modpath("player_api") then + player_api.player_attached[name] = nil + player_api.set_animation(player, "stand") + elseif minetest.get_modpath("mcl_player") then + mcl_player.player_attached[name] = nil + mcl_player.player_set_animation(player, "stand") + end + player:set_eye_offset({x=0,y=0,z=0},{x=0,y=0,z=0}) --remove_physics_override(player, {speed=1,gravity=1,jump=1}) end @@ -878,7 +907,6 @@ local function do_attach(self, player, slot) --minetest.chat_send_all(self.driver_name) self._passengers[slot] = name player:set_attach(self._passengers_base[slot], "", {x = 0, y = 0, z = 0}, {x = 0, y = 0, z = 0}) - player_api.player_attached[name] = true local eye_y = -4 if airutils.detect_player_api(player) == 1 then @@ -886,7 +914,14 @@ local function do_attach(self, player, slot) end player:set_eye_offset({x = 0, y = eye_y, z = 2}, {x = 0, y = 3, z = -30}) - player_api.set_animation(player, "sit") + if minetest.get_modpath("player_api") then + player_api.player_attached[name] = true + player_api.set_animation(player, "sit") + elseif minetest.get_modpath("mcl_player") then + mcl_player.player_attached[name] = true + airutils.sit(player) + end + -- make the driver sit minetest.after(1, function() player = minetest.get_player_by_name(name)