1
0
mirror of https://github.com/mt-mods/basic_signs.git synced 2025-06-28 22:46:04 +02:00

7 Commits

Author SHA1 Message Date
c4f0b331c0 adjust for signs_lib's change of allow_onpole
(explicitly set them to `true`, as signs_lib now defaults to disabled)
2019-09-21 15:58:35 -04:00
2f6943495a allow placing signs on horizontal poles 2019-09-21 15:52:59 -04:00
7f4bf6daf1 Add glass and obsidian glass signs
requires signs_lib commit c66c1b7 or later
(otherwise the entity won't be visible from the back side).
2019-09-19 01:04:59 -04:00
7c235ec779 use signs_lib's wide-font API features where appropriate
move the wide mode for default wood and steel to signs_lib

requires signs_lib commit a5e711d3 or later
2019-09-15 16:16:36 -04:00
9317f1563a add wide font variant of all signs
(with full yard/hanging/pole/wall detection as appropriate)
2019-09-15 03:19:10 -04:00
486423286a allow steel and locked signs to hang from a ceiling 2019-09-15 01:47:29 -04:00
2ccb449550 move hanging wooden sign back to signs_lib
(it's now handled by signs_lib's generic hanging-sign code)
2019-09-15 01:22:49 -04:00
9 changed files with 114 additions and 112 deletions

View File

@ -136,3 +136,40 @@ minetest.register_craft( {
{ "steel:sheet_metal", "steel:sheet_metal", "steel:sheet_metal" }
},
})
minetest.register_craft( {
output = "basic_signs:sign_wall_glass 8",
recipe = {
{ "default:glass", "default:glass", "default:glass" },
{ "default:glass", "default:glass", "default:glass" },
{ "", "default:glass", "" }
},
})
minetest.register_craft( {
output = "basic_signs:sign_wall_obsidian_glass 8",
recipe = {
{ "default:obsidian_glass", "default:obsidian_glass", "default:obsidian_glass" },
{ "default:obsidian_glass", "default:obsidian_glass", "default:obsidian_glass" },
{ "", "default:obsidian_glass", "" }
},
})
minetest.register_craft( {
output = "basic_signs:sign_wall_glass 3",
recipe = {
{ "xpanes:pane_flat", "xpanes:pane_flat", "xpanes:pane_flat" },
{ "xpanes:pane_flat", "xpanes:pane_flat", "xpanes:pane_flat" },
{ "", "xpanes:pane_flat", "" }
},
})
minetest.register_craft( {
output = "basic_signs:sign_wall_obsidian_glass 3",
recipe = {
{ "xpanes:obsidian_pane_flat", "xpanes:obsidian_pane_flat", "xpanes:obsidian_pane_flat" },
{ "xpanes:obsidian_pane_flat", "xpanes:obsidian_pane_flat", "xpanes:obsidian_pane_flat" },
{ "", "xpanes:obsidian_pane_flat", "" }
},
})

112
init.lua
View File

@ -9,7 +9,16 @@ dofile(basic_signs.path .. "/crafting.lua")
local S, NS = dofile(basic_signs.path .. "/intllib.lua")
basic_signs.gettext = S
function basic_signs.check_for_floor(pointed_thing)
if pointed_thing.above.x == pointed_thing.under.x
and pointed_thing.above.z == pointed_thing.under.z
and pointed_thing.above.y > pointed_thing.under.y then
return true
end
end
function basic_signs.determine_sign_type(pos, placer, itemstack, pointed_thing)
local playername = placer:get_player_name()
local pt_name = minetest.get_node(pointed_thing.under).name
local node = minetest.get_node(pos) -- since we're in after-place, this will be the wall sign itself
@ -19,30 +28,37 @@ function basic_signs.determine_sign_type(pos, placer, itemstack, pointed_thing)
return itemstack
end
local newparam2 = minetest.dir_to_facedir(placer:get_look_dir())
if minetest.registered_nodes[pt_name] and
minetest.registered_nodes[pt_name].on_rightclick and
not placer:get_player_control().sneak then
return minetest.registered_nodes[pt_name].on_rightclick(pos, node, placer, itemstack, pointed_thing)
elseif signs_lib.check_for_pole(pos, pointed_thing) then
minetest.swap_node(pos, {name = "default:sign_wall_wood_onpole", param2 = node.param2})
else
local lookdir = placer:get_look_dir()
print(dump(lookdir))
local newparam2 = minetest.dir_to_facedir(lookdir)
if node.param2 == 0 then
minetest.swap_node(pos, {name = "basic_signs:hanging_sign", param2 = newparam2})
elseif node.param2 == 1 then
minetest.swap_node(pos, {name = "basic_signs:yard_sign", param2 = newparam2})
end
signs_lib.update_sign(pos)
minetest.swap_node(pos, {name = "default:sign_wall_wood_onpole", param2 = node.param2})
elseif signs_lib.check_for_horizontal_pole(pos, pointed_thing) then
minetest.swap_node(pos, {name = "default:sign_wall_wood_onpole_horiz", param2 = node.param2})
elseif signs_lib.check_for_ceiling(pointed_thing) then
minetest.swap_node(pos, {name = "default:sign_wall_wood_hanging", param2 = newparam2})
elseif basic_signs.check_for_floor(pointed_thing) then
minetest.swap_node(pos, {name = "basic_signs:yard_sign", param2 = newparam2})
end
signs_lib.update_sign(pos)
if not creative.is_enabled_for(playername) then
itemstack:take_item()
end
return itemstack
end
local def
local wgroups = table.copy(signs_lib.standard_wood_groups)
wgroups.not_in_creative_inventory = 1
local sgroups = table.copy(signs_lib.standard_steel_groups)
sgroups.not_in_creative_inventory = 1
minetest.override_item("default:sign_wall_wood", {
after_place_node = basic_signs.determine_sign_type
})
@ -56,10 +72,53 @@ signs_lib.register_sign("basic_signs:sign_wall_locked", {
inventory_image = "basic_signs_sign_wall_locked_inv.png",
locked = true,
entity_info = "standard",
allow_hanging = true,
allow_widefont = true,
allow_onpole = true,
allow_onpole_horizontal = true
})
signs_lib.register_sign("basic_signs:sign_wall_glass", {
description = S("Glass Sign"),
tiles = {
{ name = "basic_signs_sign_wall_glass.png", backface_culling = true},
"basic_signs_sign_wall_glass_edges.png",
},
inventory_image = "basic_signs_sign_wall_glass_inv.png",
default_color = "c",
locked = true,
entity_info = "standard",
sounds = default.node_sound_glass_defaults(),
groups = {cracky = 3, oddly_breakable_by_hand = 3},
allow_hanging = true,
allow_widefont = true,
allow_onpole = true,
allow_onpole_horizontal = true,
use_texture_alpha = true,
})
signs_lib.register_sign("basic_signs:sign_wall_obsidian_glass", {
description = S("Obsidian Glass Sign"),
tiles = {
{ name = "basic_signs_sign_wall_obsidian_glass.png", backface_culling = true},
"basic_signs_sign_wall_obsidian_glass_edges.png",
},
inventory_image = "basic_signs_sign_wall_obsidian_glass_inv.png",
default_color = "c",
locked = true,
entity_info = "standard",
sounds = default.node_sound_glass_defaults(),
groups = {cracky = 3},
allow_hanging = true,
allow_widefont = true,
allow_onpole = true,
allow_onpole_horizontal = true,
use_texture_alpha = true,
})
minetest.register_alias("locked_sign:sign_wall_locked", "basic_signs:sign_wall_locked")
-- array : color, translated color, default text color
local sign_colors = {
@ -93,6 +152,10 @@ for i, color in ipairs(sign_colors) do
mesh = "signs_lib_standard_wall_sign_entity.obj",
yaw = signs_lib.standard_yaw
},
allow_hanging = true,
allow_widefont = true,
allow_onpole = true,
allow_onpole_horizontal = true
})
table.insert(signs_lib.lbm_restore_nodes, "signs:sign_wall_"..color[1])
@ -114,31 +177,10 @@ signs_lib.register_sign("basic_signs:yard_sign", {
mesh = "basic_signs_yard_sign_entity.obj",
yaw = signs_lib.standard_yaw
},
groups = wgroups,
drop = "default:sign_wall_wood",
allow_onpole = false
})
signs_lib.register_sign("basic_signs:hanging_sign", {
description = "Wooden sign, hanging",
paramtype2 = "facedir",
selection_box = signs_lib.make_selection_boxes(35, 32, false, 0, 3, -18.5, true),
mesh = "basic_signs_hanging_sign.obj",
tiles = {
"signs_lib_sign_wall_wooden.png",
"signs_lib_sign_wall_wooden_edges.png",
"basic_signs_ceiling_hangers.png"
},
inventory_image = "default_sign_wood.png",
entity_info = {
mesh = "basic_signs_hanging_sign_entity.obj",
yaw = signs_lib.standard_yaw
},
drop = "default:sign_wall_wood",
allow_onpole = false
allow_widefont = true
})
table.insert(signs_lib.lbm_restore_nodes, "signs:sign_yard")
table.insert(signs_lib.lbm_restore_nodes, "signs:sign_hanging")
minetest.register_alias("signs:sign_yard", "basic_signs:yard_sign")
minetest.register_alias("signs:sign_hanging", "basic_signs:hanging_sign")

View File

@ -1,62 +0,0 @@
# Blender v2.79 (sub 0) OBJ File: 'basic_signs wooden hanging sign.blend'
# www.blender.org
o Cube
v 0.437500 -0.312500 0.031250
v 0.437500 -0.312500 -0.031250
v 0.437500 0.312500 0.031250
v 0.437500 0.312500 -0.031250
v -0.437500 -0.312500 0.031250
v -0.437500 -0.312500 -0.031250
v -0.437500 0.312500 0.031250
v -0.437500 0.312500 -0.031250
v 0.437500 -0.312500 0.031250
v 0.437500 -0.312500 -0.031250
v 0.437500 0.312500 0.031250
v 0.437500 0.312500 -0.031250
v -0.437500 -0.312500 0.031250
v -0.437500 -0.312500 -0.031250
v -0.437500 0.312500 0.031250
v -0.437500 0.312500 -0.031250
v 0.500000 0.312500 0.000000
v 0.500000 0.500000 0.000000
v -0.500000 0.312500 0.000000
v -0.500000 0.500000 0.000000
vt 0.468750 0.812500
vt 0.031250 0.812500
vt 0.031250 0.187500
vt 0.468750 0.187500
vt 0.531250 0.812500
vt 0.968750 0.812500
vt 0.968750 0.187500
vt 0.531250 0.187500
vt 0.234375 0.000000
vt 0.234375 1.000000
vt 0.015625 1.000000
vt 0.015625 -0.000000
vt 0.609375 -0.000000
vt 0.609375 1.000000
vt 0.390625 1.000000
vt 0.390625 -0.000000
vt 0.765625 0.000000
vt 0.765625 1.000000
vt 1.000000 0.812500
vt 1.000000 1.000000
vt 0.000000 1.000000
vt -0.000000 0.812500
vn 0.0000 0.0000 -1.0000
vn 0.0000 -0.0000 1.0000
vn 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
vn 1.0000 0.0000 0.0000
vn -1.0000 0.0000 0.0000
g Cube_Cube_front-back
s off
f 8/1/1 4/2/1 2/3/1 6/4/1
f 3/5/2 7/6/2 5/7/2 1/8/2
g Cube_Cube_edges
f 13/9/3 14/10/3 10/11/3 9/12/3
f 11/13/4 12/14/4 16/15/4 15/16/4
f 11/13/5 9/17/5 10/18/5 12/14/5
f 13/9/6 15/16/6 16/15/6 14/10/6
g Cube_Cube_hangers
f 19/19/1 20/20/1 18/21/1 17/22/1

View File

@ -1,15 +0,0 @@
# Blender v2.79 (sub 0) OBJ File: 'basic_signs wooden hanging sign.blend'
# www.blender.org
o Plane
v 0.406250 -0.281250 -0.042969
v -0.406250 -0.281250 -0.042969
v 0.406250 0.281250 -0.042969
v -0.406250 0.281250 -0.042969
vt 0.000000 0.000000
vt 1.000000 0.000000
vt 1.000000 1.000000
vt 0.000000 1.000000
vn 0.0000 -0.0000 -1.0000
g Plane_Plane_None
s off
f 1/1/1 2/2/1 4/3/1 3/4/1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 155 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 592 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 B