forked from MTSR/moreblocks
Fix strange placement behavior for non-default Stairs+ nodes (#168)
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
This commit is contained in:
parent
0c2c3ad4ef
commit
ff7e85094f
@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
|||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
|
- [Fixed strange placement behavior for non-default Stairs+ nodes.](https://github.com/minetest-mods/moreblocks/pull/168)
|
||||||
- [Fixed stairs placement over oddly-shaped nodes.](https://github.com/minetest-mods/moreblocks/pull/166)
|
- [Fixed stairs placement over oddly-shaped nodes.](https://github.com/minetest-mods/moreblocks/pull/166)
|
||||||
|
|
||||||
## [2.1.0] - 2020-12-14
|
## [2.1.0] - 2020-12-14
|
||||||
|
@ -30,16 +30,25 @@ local wall_right_dirmap = {9, 18, 7, 12}
|
|||||||
local wall_left_dirmap = {11, 16, 5, 14}
|
local wall_left_dirmap = {11, 16, 5, 14}
|
||||||
local ceil_dirmap = {20, 23, 22, 21}
|
local ceil_dirmap = {20, 23, 22, 21}
|
||||||
|
|
||||||
|
-- extract the stairsplus category from a node name
|
||||||
|
-- assumes the name is in the form mod_name:category_original_ndoe_name
|
||||||
|
local function name_to_category(name)
|
||||||
|
local colon = name:find(":") or 0
|
||||||
|
colon = colon + 1
|
||||||
|
local under = name:find("_", colon)
|
||||||
|
return name:sub(colon, under)
|
||||||
|
end
|
||||||
|
|
||||||
stairsplus.rotate_node_aux = function(itemstack, placer, pointed_thing)
|
stairsplus.rotate_node_aux = function(itemstack, placer, pointed_thing)
|
||||||
local sneak = placer and placer:get_player_control().sneak
|
local sneak = placer and placer:get_player_control().sneak
|
||||||
local aux = placer and placer:get_player_control().aux1
|
local aux = placer and placer:get_player_control().aux1
|
||||||
|
|
||||||
-- namestring for what we are placing, up to the first _ (exclusive)
|
-- category for what we are placing
|
||||||
local item_prefix = itemstack:get_name():gsub("_.*$", "")
|
local item_prefix = name_to_category(itemstack:get_name())
|
||||||
-- namestring for what we are placing against
|
-- category for what we are placing against
|
||||||
local under = pointed_thing.under
|
local under = pointed_thing.under
|
||||||
local under_node = minetest.get_node(under)
|
local under_node = minetest.get_node(under)
|
||||||
local under_prefix = under_node and under_node.name:gsub("_.*$", "")
|
local under_prefix = under_node and name_to_category(under_node.name)
|
||||||
|
|
||||||
local same_cat = item_prefix == under_prefix
|
local same_cat = item_prefix == under_prefix
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user