diff options
| author | Vanessa Dannenberg <vanessa.e.dannenberg@gmail.com> | 2018-08-03 09:31:05 -0400 | 
|---|---|---|
| committer | Vanessa Dannenberg <vanessa.e.dannenberg@gmail.com> | 2018-08-03 09:31:05 -0400 | 
| commit | 2fa93b219eadfcdcf8f1d472aad046fc62d5b99d (patch) | |
| tree | cff2e96e78cd89aa965976553d2ff8989b5a02b5 /pipeworks/wielder.lua | |
| parent | 76594f4bd5f825eaf1245965e2c0933bec47320d (diff) | |
| download | dreambuilder_modpack-2fa93b219eadfcdcf8f1d472aad046fc62d5b99d.tar dreambuilder_modpack-2fa93b219eadfcdcf8f1d472aad046fc62d5b99d.tar.gz dreambuilder_modpack-2fa93b219eadfcdcf8f1d472aad046fc62d5b99d.tar.bz2 dreambuilder_modpack-2fa93b219eadfcdcf8f1d472aad046fc62d5b99d.tar.xz dreambuilder_modpack-2fa93b219eadfcdcf8f1d472aad046fc62d5b99d.zip | |
update castles, cottages, digistuff, gloopblocks, locks,
maptools, mesecons, pipeworks, technic, unified inventory,
unified dyes, and xban2
Diffstat (limited to 'pipeworks/wielder.lua')
| -rw-r--r-- | pipeworks/wielder.lua | 91 | 
1 files changed, 19 insertions, 72 deletions
| diff --git a/pipeworks/wielder.lua b/pipeworks/wielder.lua index eb7931f..98f1ef0 100644 --- a/pipeworks/wielder.lua +++ b/pipeworks/wielder.lua @@ -53,11 +53,10 @@ local function wielder_on(data, wielder_pos, wielder_node)  	local wielder_meta = minetest.get_meta(wielder_pos)  	local inv = wielder_meta:get_inventory()  	local wield_inv_name = data.wield_inv_name -	local wieldindex, wieldstack +	local wieldindex  	for i, stack in ipairs(inv:get_list(wield_inv_name)) do  		if not stack:is_empty() then  			wieldindex = i -			wieldstack = stack  			break  		end  	end @@ -66,7 +65,6 @@ local function wielder_on(data, wielder_pos, wielder_node)  		wield_inv_name = data.ghost_inv_name  		inv:set_stack(wield_inv_name, 1, ItemStack(data.ghost_tool))  		wieldindex = 1 -		wieldstack = inv:get_stack(wield_inv_name, 1)  	end  	local dir = minetest.facedir_to_dir(wielder_node.param2)  	-- under/above is currently intentionally left switched @@ -98,73 +96,20 @@ local function wielder_on(data, wielder_pos, wielder_node)  		yaw = 0  		pitch = math.pi/2  	end -	local virtplayer = { -		get_inventory_formspec = delay(wielder_meta:get_string("formspec")), -		get_look_dir = delay(vector.multiply(dir, -1)), -		get_look_pitch = delay(pitch), -		get_look_yaw = delay(yaw), -		get_look_horizontal = delay(yaw), -		get_look_vertical = delay(pitch), -		get_player_control = delay({ jump=false, right=false, left=false, LMB=false, RMB=false, sneak=data.sneak, aux1=false, down=false, up=false }), -		get_player_control_bits = delay(data.sneak and 64 or 0), -		get_player_name = delay(data.masquerade_as_owner and wielder_meta:get_string("owner") or ":pipeworks:"..minetest.pos_to_string(wielder_pos)), -		is_player = delay(true), -		is_fake_player = true, -		set_inventory_formspec = delay(), -		getpos = delay(vector.subtract(wielder_pos, assumed_eye_pos)), -		get_hp = delay(20), -		get_inventory = delay(inv), -		get_wielded_item = delay(wieldstack), -		get_wield_index = delay(wieldindex), -		get_wield_list = delay(wield_inv_name), -		moveto = delay(), -		punch = delay(), -		remove = delay(), -		right_click = delay(), -		setpos = delay(), -		set_hp = delay(), -		set_properties = delay(), -		set_wielded_item = function(self, item) -			wieldstack = item -			inv:set_stack(wield_inv_name, wieldindex, item) -		end, -		set_animation = delay(), -		set_attach = delay(), -		set_detach = delay(), -		set_bone_position = delay(), -		hud_change = delay(), -		get_breath = delay(11), -		-- TODO "implement" all these -		-- set_armor_groups -		-- get_armor_groups -		-- get_animation -		-- get_attach -		-- get_bone_position -		-- get_properties -		-- get_player_velocity -		-- set_look_pitch -		-- set_look_yaw -		-- set_breath -		-- set_physics_override -		-- get_physics_override -		-- hud_add -		-- hud_remove -		-- hud_get -		-- hud_set_flags -		-- hud_get_flags -		-- hud_set_hotbar_itemcount -		-- hud_get_hotbar_itemcount -		-- hud_set_hotbar_image -		-- hud_get_hotbar_image -		-- hud_set_hotbar_selected_image -		-- hud_get_hotbar_selected_image -		-- hud_replace_builtin -		-- set_sky -		-- get_sky -		-- override_day_night_ratio -		-- get_day_night_ratio -		-- set_local_animation -	} +	local virtplayer = pipeworks.create_fake_player({ +		name = data.masquerade_as_owner and wielder_meta:get_string("owner") +			or ":pipeworks:" .. minetest.pos_to_string(wielder_pos), +		formspec = wielder_meta:get_string("formspec"), +		look_dir = vector.multiply(dir, -1), +		look_pitch = pitch, +		look_yaw = yaw, +		sneak = data.sneak, +		position = vector.subtract(wielder_pos, assumed_eye_pos), +		inventory = inv, +		wield_index = wieldindex, +		wield_list = wield_inv_name +	}) +  	local pointed_thing = { type="node", under=under_pos, above=above_pos }  	data.act(virtplayer, pointed_thing)  	if data.eject_drops then @@ -258,7 +203,7 @@ local function register_wielder(data)  			end,  			after_place_node = function (pos, placer)  				pipeworks.scan_for_tube_objects(pos) -				local placer_pos = placer:getpos() +				local placer_pos = placer:get_pos()  				if placer_pos and placer:is_player() then placer_pos = vector.add(placer_pos, assumed_eye_pos) end  				if placer_pos then  					local dir = vector.subtract(pos, placer_pos) @@ -495,7 +440,9 @@ if pipeworks.enable_dispenser then  		sneak = true,  		act = function(virtplayer, pointed_thing)  			local wieldstack = virtplayer:get_wielded_item() -			virtplayer:set_wielded_item((minetest.registered_items[wieldstack:get_name()] or {on_drop=minetest.item_drop}).on_drop(wieldstack, virtplayer, virtplayer:getpos()) or wieldstack) +			virtplayer:set_wielded_item((minetest.registered_items[wieldstack:get_name()] or +				{on_drop=minetest.item_drop}).on_drop(wieldstack, virtplayer, virtplayer:get_pos()) or +				wieldstack)  		end,  		eject_drops = false,  	}) | 
