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

12 Commits

Author SHA1 Message Date
896a1935a6 fix crash when placing old-named signs in non-wall position
(just needed more aliases to cover all the mounting options)
2019-10-12 11:22:28 -04:00
b862bf944a replace missing glass sign inv textures 2019-10-03 14:19:02 -04:00
d57d8e87b1 glass signs aren't supposed to be "locked"
also, fix textures on "sticks" on back of yard model
2019-09-26 14:26:03 -04:00
9da5a40bef add plastic sign (white) 2019-09-26 14:25:30 -04:00
d35bc1e515 Adapt to changes in signs_lib API
Requires signs_lib commit 38362152 (2019-09-25) or later

Use custom pole mount images for glass signs
Use custom model for yard version of glass signs
Move wooden yard sign back to signs_lib
2019-09-26 00:51:30 -04:00
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
19 changed files with 141 additions and 263 deletions

View File

@ -136,3 +136,48 @@ 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", "" }
},
})
minetest.register_craft( {
output = "basic_signs:sign_wall_plastic 3",
recipe = {
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" },
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" },
{ "", "default:steel_ingot", "" }
},
})

182
init.lua
View File

@ -9,57 +9,93 @@ dofile(basic_signs.path .. "/crafting.lua")
local S, NS = dofile(basic_signs.path .. "/intllib.lua")
basic_signs.gettext = S
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
if minetest.is_protected(pointed_thing.under, playername) then
minetest.record_protection_violation(pointed_thing.under, playername)
return itemstack
end
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)
end
if not creative.is_enabled_for(playername) then
itemstack:take_item()
end
return itemstack
end
minetest.override_item("default:sign_wall_wood", {
after_place_node = basic_signs.determine_sign_type
})
signs_lib.register_sign("basic_signs:sign_wall_locked", {
description = S("Locked Sign"),
tiles = {
"basic_signs_sign_wall_locked.png",
"signs_lib_sign_wall_steel_edges.png",
"signs_lib_sign_wall_steel_edges.png"
},
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,
allow_yard = true,
})
signs_lib.register_sign("basic_signs:sign_wall_glass", {
description = S("Glass Sign"),
yard_mesh = "signs_lib_standard_sign_yard_two_sticks.obj",
tiles = {
{ name = "basic_signs_sign_wall_glass.png", backface_culling = true},
"basic_signs_sign_wall_glass_edges.png",
"basic_signs_pole_mount_glass.png",
nil,
"default_steel_block.png" -- the sticks on back of the yard sign model
},
inventory_image = "basic_signs_sign_wall_glass_inv.png",
default_color = "c",
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,
allow_yard = true,
use_texture_alpha = true,
})
signs_lib.register_sign("basic_signs:sign_wall_obsidian_glass", {
description = S("Obsidian Glass Sign"),
yard_mesh = "signs_lib_standard_sign_yard_two_sticks.obj",
tiles = {
{ name = "basic_signs_sign_wall_obsidian_glass.png", backface_culling = true},
"basic_signs_sign_wall_obsidian_glass_edges.png",
"basic_signs_pole_mount_obsidian_glass.png",
nil,
"default_steel_block.png" -- the sticks on back of the yard sign model
},
inventory_image = "basic_signs_sign_wall_obsidian_glass_inv.png",
default_color = "c",
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,
allow_yard = true,
use_texture_alpha = true,
})
minetest.register_alias("locked_sign:sign_wall_locked", "basic_signs:sign_wall_locked")
signs_lib.register_sign("basic_signs:sign_wall_plastic", {
description = S("Plastic Sign"),
yard_mesh = "signs_lib_standard_sign_yard_two_sticks.obj",
tiles = {
"basic_signs_sign_wall_plastic.png",
"basic_signs_sign_wall_plastic_edges.png",
"basic_signs_pole_mount_plastic.png",
nil,
"default_steel_block.png" -- the sticks on back of the yard sign model
},
inventory_image = "basic_signs_sign_wall_plastic_inv.png",
default_color = "0",
entity_info = "standard",
sounds = default.node_sound_leaves_defaults(),
groups = {snappy = 3, flammable = 2},
allow_hanging = true,
allow_widefont = true,
allow_onpole = true,
allow_onpole_horizontal = true,
allow_yard = true,
use_texture_alpha = true,
})
-- array : color, translated color, default text color
local sign_colors = {
@ -80,65 +116,39 @@ for i, color in ipairs(sign_colors) do
description = S("Sign (@1, steel)", color[2]),
paramtype2 = "facedir",
selection_box = cbox,
mesh = "signs_lib_standard_wall_sign_facedir.obj",
mesh = "signs_lib_standard_facedir_sign_wall.obj",
tiles = {
"basic_signs_steel_"..color[1]..".png",
"signs_lib_sign_wall_steel_edges.png",
nil,
nil,
"default_steel_block.png"
},
inventory_image = "basic_signs_steel_"..color[1].."_inv.png",
groups = signs_lib.standard_steel_groups,
sounds = signs_lib.standard_steel_sign_sounds,
default_color = color[3],
entity_info = {
mesh = "signs_lib_standard_wall_sign_entity.obj",
mesh = "signs_lib_standard_sign_entity_wall.obj",
yaw = signs_lib.standard_yaw
},
allow_hanging = true,
allow_widefont = true,
allow_onpole = true,
allow_onpole_horizontal = true,
allow_yard = true,
})
minetest.register_alias("basic_signs:sign_wall_steel_"..color[1].."_onpole", "basic_signs:sign_steel_"..color[1].."_onpole")
minetest.register_alias("basic_signs:sign_wall_steel_"..color[1].."_onpole_horiz", "basic_signs:sign_steel_"..color[1].."_onpole_horiz")
minetest.register_alias("basic_signs:sign_wall_steel_"..color[1].."_hanging", "basic_signs:sign_steel_"..color[1].."_hanging")
minetest.register_alias("basic_signs:sign_wall_steel_"..color[1].."_yard", "basic_signs:sign_steel_"..color[1].."_yard")
table.insert(signs_lib.lbm_restore_nodes, "signs:sign_wall_"..color[1])
minetest.register_alias("signs:sign_wall_"..color[1], "basic_signs:sign_wall_steel_"..color[1])
minetest.register_alias("signs:sign_wall_"..color[1], "basic_signs:sign_wall_steel_"..color[1])
minetest.register_alias("signs:sign_"..color[1].."_onpole", "basic_signs:sign_steel_"..color[1].."_onpole")
minetest.register_alias("signs:sign_"..color[1].."_onpole_horiz", "basic_signs:sign_steel_"..color[1].."_onpole_horiz")
minetest.register_alias("signs:sign_"..color[1].."_hanging", "basic_signs:sign_steel_"..color[1].."_hanging")
minetest.register_alias("signs:sign_"..color[1].."_yard", "basic_signs:sign_steel_"..color[1].."_yard")
end
signs_lib.register_sign("basic_signs:yard_sign", {
description = "Wooden yard sign",
paramtype2 = "facedir",
selection_box = signs_lib.make_selection_boxes(35, 34.5, false, 0, -1.25, -19.69, true),
mesh = "basic_signs_yard_sign.obj",
tiles = {
"signs_lib_sign_wall_wooden.png",
"signs_lib_sign_wall_wooden_edges.png",
"default_wood.png"
},
inventory_image = "default_sign_wood.png",
entity_info = {
mesh = "basic_signs_yard_sign_entity.obj",
yaw = signs_lib.standard_yaw
},
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
})
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

View File

@ -1,85 +0,0 @@
# Blender v2.79 (sub 0) OBJ File: 'basic_signs wooden yard sign.blend'
# www.blender.org
o Cube
v 0.437500 -0.250000 -0.000000
v 0.437500 -0.250000 -0.062500
v 0.437500 0.375000 0.000000
v 0.437500 0.375000 -0.062500
v -0.437500 -0.250000 -0.000000
v -0.437500 -0.250000 -0.062500
v -0.437500 0.375000 0.000000
v -0.437500 0.375000 -0.062500
v 0.437500 -0.250000 -0.000000
v 0.437500 -0.250000 -0.062500
v 0.437500 0.375000 0.000000
v 0.437500 0.375000 -0.062500
v -0.437500 -0.250000 -0.000000
v -0.437500 -0.250000 -0.062500
v -0.437500 0.375000 0.000000
v -0.437500 0.375000 -0.062500
v 0.062500 -0.500000 0.000000
v 0.062500 0.250000 0.000000
v 0.062500 -0.500000 0.062500
v 0.062500 0.250000 0.062500
v -0.062500 -0.500000 0.000000
v -0.062500 0.250000 0.000000
v -0.062500 -0.500000 0.062500
v -0.062500 0.250000 0.062500
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 0.000000 0.750000
vt 2.000000 0.750000
vt 2.000000 0.875000
vt 0.000000 0.875000
vt 0.000000 0.125000
vt 2.000000 0.125000
vt 2.000000 0.375000
vt 0.000000 0.375000
vt 2.000000 0.500000
vt 0.000000 0.500000
vt 0.812500 0.875000
vt 0.562500 0.875000
vt 0.562500 1.000000
vt 0.812500 1.000000
vt 0.125000 0.875000
vt 0.375000 0.875000
vt 0.375000 1.000000
vt 0.125000 1.000000
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_default_wood
f 17/19/5 18/20/5 20/21/5 19/22/5
f 19/23/2 20/24/2 24/25/2 23/26/2
f 23/26/6 24/25/6 22/27/6 21/28/6
f 21/28/1 22/27/1 18/20/1 17/19/1
f 19/29/3 23/30/3 21/31/3 17/32/3
f 24/33/4 20/34/4 18/35/4 22/36/4

View File

@ -1,15 +0,0 @@
# Blender v2.79 (sub 0) OBJ File: 'basic_signs wooden yard sign.blend'
# www.blender.org
o Plane
v 0.406250 -0.218750 -0.074219
v -0.406250 -0.218750 -0.074219
v 0.406250 0.343750 -0.074219
v -0.406250 0.343750 -0.074219
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: 772 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 672 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 913 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: 276 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 592 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 305 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 348 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 B