diff options
author | Vanessa Dannenberg <vanessa.e.dannenberg@gmail.com> | 2018-08-22 22:28:28 -0400 |
---|---|---|
committer | Vanessa Dannenberg <vanessa.e.dannenberg@gmail.com> | 2018-08-22 22:28:28 -0400 |
commit | 9c9457e1f50ebdd943695a4cce6b88fa552370f3 (patch) | |
tree | 4f6002b266179e0dd1639affffd4f09a18dfcad5 /castle_gates/gate_functions.lua | |
parent | 3c47f229fcbdb7cad28bacbc579516bf3ecf6c03 (diff) | |
download | dreambuilder_modpack-9c9457e1f50ebdd943695a4cce6b88fa552370f3.tar dreambuilder_modpack-9c9457e1f50ebdd943695a4cce6b88fa552370f3.tar.gz dreambuilder_modpack-9c9457e1f50ebdd943695a4cce6b88fa552370f3.tar.bz2 dreambuilder_modpack-9c9457e1f50ebdd943695a4cce6b88fa552370f3.tar.xz dreambuilder_modpack-9c9457e1f50ebdd943695a4cce6b88fa552370f3.zip |
update castles modpack, blox, bobblocks, coloredwood, technic,
gloopblocks, homedecor, ilights, led marquee, plasticbox, solidcolor,
stained_glass, unified bricks, and unified dyes
In most of these, the update is to shift over to the new "old" coloring
paradigm in Unified Dyes. See its forum thread for details.
Diffstat (limited to 'castle_gates/gate_functions.lua')
-rw-r--r-- | castle_gates/gate_functions.lua | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/castle_gates/gate_functions.lua b/castle_gates/gate_functions.lua index 5d1e6b7..4a3c7f7 100644 --- a/castle_gates/gate_functions.lua +++ b/castle_gates/gate_functions.lua @@ -153,9 +153,9 @@ local get_door_layout = function(pos, facedir, player) local test_node_def = minetest.registered_nodes[test_node.name] can_slide_to:set_pos(test_pos, test_node_def.buildable_to == true) - if test_node_def.paramtype2 == "facedir" then -- prospective door nodes need to be of type facedir + if test_node_def.paramtype2 == "facedir" then local test_node_dirs = get_dirs(test_node.param2) - local coplanar = vector.equals(test_node_dirs.back, door.directions.back) -- the "back" vector needs to point in the same direction as the rest of the door + local coplanar = vector.equals(test_node_dirs.back, door.directions.back) if castle_gate_group_value == nil and test_node_def.groups.castle_gate ~= nil then castle_gate_group_value = test_node_def.groups.castle_gate -- read the group value from the first gate node encountered @@ -163,18 +163,17 @@ local get_door_layout = function(pos, facedir, player) if coplanar and test_node_def.groups.castle_gate == castle_gate_group_value then local entry = {["pos"] = test_pos, ["node"] = test_node} - table.insert(door.all, entry) -- it's definitely a gate node of some sort. - if test_node_def._gate_hinge ~= nil then -- it's a hinge type of node, need to do extra work + table.insert(door.all, entry) + if test_node_def._gate_hinge ~= nil then local axis, placement = interpret_hinge(test_node_def._gate_hinge, test_pos, test_node_dirs) - if door.hinge == nil then -- this is the first hinge we've encountered. + if door.hinge == nil then door.hinge = {axis=axis, placement=placement} - door.directions = test_node_dirs -- force the door as a whole to use the same reference frame as the first hinge - elseif door.hinge.axis ~= axis then -- there was a previous hinge. Do they rotate on the same axis? + elseif door.hinge.axis ~= axis then return nil -- Misaligned hinge axes, door cannot rotate. else local axis_dir = {x=0, y=0, z=0} axis_dir[axis] = 1 - local displacement = vector.normalize(vector.subtract(placement, door.hinge.placement)) -- check if this new hinge is displaced relative to the first hinge on any axis other than the rotation axis + local displacement = vector.normalize(vector.subtract(placement, door.hinge.placement)) if not (vector.equals(displacement, axis_dir) or vector.equals(displacement, vector.multiply(axis_dir, -1))) then return nil -- Misaligned hinge offset, door cannot rotate. end |