From 2ec68d7855e56e13779c651cd7cb5f21fc826636 Mon Sep 17 00:00:00 2001 From: orwell96 Date: Mon, 10 Dec 2018 22:41:02 +0100 Subject: Change get_inventory_formspec API - add invname parameter --- advtrains/wagons.lua | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'advtrains/wagons.lua') diff --git a/advtrains/wagons.lua b/advtrains/wagons.lua index 6baf811..ec8682d 100644 --- a/advtrains/wagons.lua +++ b/advtrains/wagons.lua @@ -1,5 +1,6 @@ --atan2 counts angles clockwise, minetest does counterclockwise + minetest.register_privilege("train_place", { description = "Player can place trains on tracks not owned by player", give_to_singleplayer= false, @@ -14,6 +15,11 @@ minetest.register_privilege("train_operator", { default= true, }); +local function make_inv_name(uid) + return "detached:advtrains_wgn_"..uid +end + + local wagon={ collisionbox = {-0.5,-0.5,-0.5, 0.5,0.5,0.5}, --physical = true, @@ -632,8 +638,8 @@ function wagon:on_rightclick(clicker) if advtrains.player_to_train_mapping[pname] then return end if self.seat_groups then if #self.seats==0 then - if self.has_inventory and self.get_inventory_formspec then - minetest.show_formspec(pname, "advtrains_inv_"..self.unique_id, self:get_inventory_formspec(pname)) + if self.has_inventory and self.get_inventory_formspec and advtrains.check_driving_couple_protection(pname, data.owner, data.whitelist) then + minetest.show_formspec(pname, "advtrains_inv_"..self.unique_id, self:get_inventory_formspec(pname, make_inv_name(self.unique_id))) end return end @@ -757,8 +763,9 @@ end function wagon:show_get_on_form(pname) if not self.initialized then return end if #self.seats==0 then - if self.has_inventory and self.get_inventory_formspec then - minetest.show_formspec(pname, "advtrains_inv_"..self.unique_id, self:get_inventory_formspec(pname)) + + if self.has_inventory and self.get_inventory_formspec and advtrains.check_driving_couple_protection(pname, data.owner, data.whitelist) then + minetest.show_formspec(pname, "advtrains_inv_"..self.unique_id, self:get_inventory_formspec(pname, make_inv_name(self.unique_id))) end return end @@ -998,7 +1005,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if wagon.is_wagon and wagon.initialized and wagon.unique_id==uid then if fields.inv then if wagon.has_inventory and wagon.get_inventory_formspec then - minetest.show_formspec(player:get_player_name(), "advtrains_inv_"..uid, wagon:get_inventory_formspec(player:get_player_name())) + minetest.show_formspec(player:get_player_name(), "advtrains_inv_"..uid, wagon:get_inventory_formspec(player:get_player_name(), make_inv_name(uid))) end elseif fields.seat then local val=minetest.explode_textlist_event(fields.seat) @@ -1068,7 +1075,7 @@ function wagon:seating_from_key_helper(pname, fields, no) end end if fields.inv and self.has_inventory and self.get_inventory_formspec then - minetest.show_formspec(player:get_player_name(), "advtrains_inv_"..self.unique_id, wagon:get_inventory_formspec(player:get_player_name())) + minetest.show_formspec(player:get_player_name(), "advtrains_inv_"..self.unique_id, self:get_inventory_formspec(player:get_player_name(), make_inv_name(self.unique_id))) end if fields.prop and self.owner==pname then self:show_wagon_properties(pname) -- cgit v1.2.3