Compare commits
25 Commits
2021-03-26
...
global-lua
Author | SHA1 | Date | |
---|---|---|---|
f4db7d0fb1 | |||
3ba59dc2d5 | |||
2f0e52f978 | |||
694bfe5fe7 | |||
769e14fd11 | |||
16bcc35ba2 | |||
0c2271fa46 | |||
d68e90f017 | |||
a8fceb249d | |||
21ae9f8c17 | |||
63ad77e242 | |||
32a32fa003 | |||
d9c42344ab | |||
f6f6f3a3c3 | |||
f1dc68ab21 | |||
240c735225 | |||
b6c64c6314 | |||
790c03213d | |||
81e0d4ea7e | |||
9ffe2b7d69 | |||
0268767ac9 | |||
950210a6e3 | |||
c70fb1a1ed | |||
40cd59aa24 | |||
da1f2b1430 |
11
.github/workflows/luacheck.yml
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
|
||||
name: luacheck
|
||||
on: [push, pull_request]
|
||||
jobs:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@master
|
||||
- uses: Roang-zero1/factorio-mod-luacheck@master
|
||||
with:
|
||||
luacheckrc_url: ""
|
38
.luacheckrc
Normal file
@ -0,0 +1,38 @@
|
||||
unused_args = false
|
||||
|
||||
globals = {
|
||||
"homedecor",
|
||||
"homedecor_lighting",
|
||||
"homedecor_windows_and_treatments",
|
||||
"homedecor_roofing",
|
||||
"homedecor_misc",
|
||||
"homedecor_exterior",
|
||||
"homedecor_electrical",
|
||||
"lavalamp",
|
||||
"lrfurn",
|
||||
"signs_lib",
|
||||
|
||||
-- mod-deps
|
||||
"armor"
|
||||
}
|
||||
|
||||
read_globals = {
|
||||
"minetest", "core",
|
||||
"vector", "ItemStack",
|
||||
|
||||
-- Stdlib
|
||||
string = {fields = {"split", "trim"}},
|
||||
table = {fields = {"copy", "getn"}},
|
||||
|
||||
-- mod-deps
|
||||
"default",
|
||||
"unifieddyes",
|
||||
"player_api",
|
||||
"screwdriver",
|
||||
"hopper",
|
||||
"mesecon",
|
||||
"skins",
|
||||
"homedecor_doors_and_gates",
|
||||
"stairsplus",
|
||||
"creative"
|
||||
}
|
19
bower.json
@ -1,19 +0,0 @@
|
||||
{
|
||||
"name": "homedecor_modpack",
|
||||
"description": "This mod adds a whole bunch of new items to Minetest suitable for decorating inside and outside a home.",
|
||||
"keywords": [
|
||||
"building",
|
||||
"cosmetic",
|
||||
"homedecor modpack",
|
||||
"homedecor_modpack"
|
||||
],
|
||||
"homepage": "http://daconcepts.com/vanessa/hobbies/minetest/homedecor-crafting-guide/homedecor-craft-guide.html",
|
||||
"project": "https://github.com/minetest-mods/homedecor_modpack",
|
||||
"forum": "http://forum.minetest.net/viewtopic.php?f=11&t=2041",
|
||||
"screenshots": [
|
||||
"http://daconcepts.com/vanessa/hobbies/minetest/screenshots/homedecor1.png"
|
||||
],
|
||||
"authors": [
|
||||
"VanessaE"
|
||||
]
|
||||
}
|
@ -1,77 +1,48 @@
|
||||
local S = minetest.get_translator("building_blocks")
|
||||
|
||||
local stairs_groups_names = {"cracky","choppy","flammable","crumbly","snappy"}
|
||||
|
||||
local function building_blocks_stairs(nodename, def)
|
||||
minetest.register_node(nodename, def)
|
||||
if minetest.get_modpath("moreblocks") or minetest.get_modpath("stairs") then
|
||||
if minetest.get_modpath("moreblocks") then
|
||||
local mod, name = nodename:match("(.*):(.*)")
|
||||
minetest.register_alias(mod .. ":slab_" .. name, "stairs:slab_" .. name)
|
||||
minetest.register_alias(mod .. ":stair_" .. name, "stairs:stair_" .. name)
|
||||
local stairs_groups = {}
|
||||
for _, groupname in ipairs(stairs_groups_names) do
|
||||
stairs_groups[groupname] = def.groups[groupname]
|
||||
end
|
||||
stairsplus:register_all(mod, name, nodename, def)
|
||||
|
||||
if minetest.get_modpath("moreblocks") then
|
||||
stairsplus:register_all(
|
||||
mod,
|
||||
name,
|
||||
nodename,
|
||||
{
|
||||
description = def.description,
|
||||
tiles = def.tiles,
|
||||
groups = stairs_groups,
|
||||
sounds = def.sounds,
|
||||
}
|
||||
)
|
||||
else
|
||||
stairs.register_stair_and_slab(name,nodename,
|
||||
stairs_groups,
|
||||
def.tiles,
|
||||
def.stair_desc,
|
||||
def.slab_desc,
|
||||
def.sounds
|
||||
--FIXME: Missing descriptions for Inner and Outer stairs
|
||||
-- See https://github.com/minetest/minetest_game/pull/2584
|
||||
)
|
||||
end
|
||||
minetest.register_alias("stairs:slab_" .. name, mod .. ":slab_" .. name)
|
||||
minetest.register_alias("stairs:stair_" .. name, mod .. ":stair_" .. name)
|
||||
minetest.register_alias("stairs:stair_inner_" .. name, mod .. ":stair_" .. name .. "_inner")
|
||||
minetest.register_alias("stairs:stair_outer_" .. name, mod .. ":stair_" .. name .. "_outer")
|
||||
end
|
||||
end
|
||||
|
||||
building_blocks_stairs("building_blocks:grate", {
|
||||
drawtype = "glasslike",
|
||||
description = S("Grate"),
|
||||
stair_desc = S("Grate Stair"),
|
||||
slab = S("Grate Slab"),
|
||||
tiles = {"building_blocks_grate.png"},
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
is_ground_content = true,
|
||||
use_texture_alpha = "clip",
|
||||
groups = {cracky=1},
|
||||
sounds = default.node_sound_metal_defaults(),
|
||||
})
|
||||
building_blocks_stairs("building_blocks:smoothglass", {
|
||||
drawtype = "glasslike",
|
||||
description = S("Streak Free Glass"),
|
||||
stair_desc = S("Streak Free Glass Stair"),
|
||||
slab_desc = S("Streak Free Glass Slab"),
|
||||
tiles = {"building_blocks_sglass.png"},
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
is_ground_content = true,
|
||||
use_texture_alpha = "clip",
|
||||
groups = {snappy=3,cracky=3,oddly_breakable_by_hand=3},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
})
|
||||
building_blocks_stairs("building_blocks:woodglass", {
|
||||
drawtype = "glasslike",
|
||||
description = S("Wood Framed Glass"),
|
||||
stair_desc = S("Wood Framed Glass Stair"),
|
||||
slab_desc = S("Wood Framed Glass Slab"),
|
||||
tiles = {"building_blocks_wglass.png"},
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
is_ground_content = true,
|
||||
use_texture_alpha = "clip",
|
||||
groups = {snappy=3,cracky=3,oddly_breakable_by_hand=3},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
})
|
||||
@ -79,8 +50,6 @@ building_blocks_stairs("building_blocks:woodglass", {
|
||||
building_blocks_stairs("building_blocks:Adobe", {
|
||||
tiles = {"building_blocks_Adobe.png"},
|
||||
description = S("Adobe"),
|
||||
stair_desc = S("Adobe Stair"),
|
||||
slab_desc = S("Adobe Slab"),
|
||||
is_ground_content = true,
|
||||
groups = {crumbly=3},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
@ -88,8 +57,6 @@ building_blocks_stairs("building_blocks:Adobe", {
|
||||
building_blocks_stairs("building_blocks:fakegrass", {
|
||||
tiles = {"default_grass.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"},
|
||||
description = S("Fake Grass"),
|
||||
stair_desc = S("Fake Grass Stair"),
|
||||
slab_desc = S("Fake Grass Slab"),
|
||||
is_ground_content = true,
|
||||
groups = {crumbly=3},
|
||||
sounds = default.node_sound_dirt_defaults({
|
||||
@ -100,8 +67,6 @@ building_blocks_stairs("building_blocks:hardwood", {
|
||||
tiles = {"building_blocks_hardwood.png"},
|
||||
is_ground_content = true,
|
||||
description = S("Hardwood"),
|
||||
stair_desc = S("Hardwood Stair"),
|
||||
slab_desc = S("Hardwood Slab"),
|
||||
groups = {choppy=1,flammable=1},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
})
|
||||
@ -109,15 +74,11 @@ building_blocks_stairs("building_blocks:Roofing", {
|
||||
tiles = {"building_blocks_Roofing.png"},
|
||||
is_ground_content = true,
|
||||
description = S("Roof block"),
|
||||
stair_desc = S("Roof block Stair"),
|
||||
slab_desc = S("Roof block Slab"),
|
||||
groups = {snappy=3},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
building_blocks_stairs("building_blocks:Tar", {
|
||||
description = S("Tar"),
|
||||
stair_desc = S("Tar Stair"),
|
||||
slab_desc = S("Tar Slab"),
|
||||
tiles = {"building_blocks_tar.png"},
|
||||
is_ground_content = true,
|
||||
groups = {crumbly=1, tar_block = 1},
|
||||
@ -125,8 +86,6 @@ building_blocks_stairs("building_blocks:Tar", {
|
||||
})
|
||||
building_blocks_stairs("building_blocks:Marble", {
|
||||
description = S("Marble"),
|
||||
stair_desc = S("Marble Stair"),
|
||||
slab_desc = S("Marble Slab"),
|
||||
tiles = {"building_blocks_marble.png"},
|
||||
is_ground_content = true,
|
||||
groups = {cracky=3, marble = 1},
|
||||
|
@ -179,6 +179,7 @@ minetest.register_node("fake_fire:fancy_fire", {
|
||||
mesh = "fancy_fire.obj",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
use_texture_alpha = "clip",
|
||||
groups = {oddly_breakable_by_hand=3, flammable=0},
|
||||
sunlight_propagates = true,
|
||||
light_source = 13,
|
||||
|
@ -1,2 +1,2 @@
|
||||
name = fake_fire
|
||||
depends = default
|
||||
depends = default, basic_materials
|
||||
|
@ -21,7 +21,7 @@ if minetest.get_modpath("vessels") then
|
||||
},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
use_texture_alpha = true
|
||||
use_texture_alpha = "blend",
|
||||
})
|
||||
|
||||
local sbox = {
|
||||
@ -35,7 +35,7 @@ if minetest.get_modpath("vessels") then
|
||||
tiles = {"homedecor_3d_vessels_shelf_glass.png"},
|
||||
inventory_image = "homedecor_3d_vessels_glass_bottle_inv.png",
|
||||
wield_image = "homedecor_3d_vessels_glass_bottle_inv.png",
|
||||
use_texture_alpha = true,
|
||||
use_texture_alpha = "blend",
|
||||
selection_box = sbox
|
||||
})
|
||||
|
||||
@ -54,7 +54,7 @@ if minetest.get_modpath("vessels") then
|
||||
tiles = {"homedecor_3d_vessels_shelf_glass.png"},
|
||||
inventory_image = "homedecor_3d_vessels_drinking_glass_inv.png",
|
||||
wield_image = "homedecor_3d_vessels_drinking_glass_inv.png",
|
||||
use_texture_alpha = true,
|
||||
use_texture_alpha = "blend",
|
||||
selection_box = sbox
|
||||
})
|
||||
end
|
||||
|
@ -91,6 +91,10 @@ homedecor.register("medicine_cabinet", {
|
||||
node.name = "homedecor:medicine_cabinet_open"
|
||||
minetest.swap_node(pos, node)
|
||||
end,
|
||||
can_dig = function(pos)
|
||||
local inv = minetest.get_meta(pos):get_inventory("main")
|
||||
return inv:is_empty("main")
|
||||
end,
|
||||
infotext=S("Medicine cabinet"),
|
||||
inventory = {
|
||||
size=6,
|
||||
@ -115,6 +119,10 @@ homedecor.register("medicine_cabinet_open", {
|
||||
node.name = "homedecor:medicine_cabinet"
|
||||
minetest.swap_node(pos, node)
|
||||
end,
|
||||
can_dig = function(pos)
|
||||
local inv = minetest.get_meta(pos):get_inventory("main")
|
||||
return inv:is_empty("main")
|
||||
end,
|
||||
})
|
||||
|
||||
-- "Sanitation" related
|
||||
@ -163,6 +171,7 @@ homedecor.register("toilet_open", {
|
||||
selection_box = toilet_sbox,
|
||||
collision_box = toilet_cbox,
|
||||
drop = "homedecor:toilet",
|
||||
use_texture_alpha = "blend",
|
||||
groups = {cracky=3},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
@ -223,6 +232,7 @@ homedecor.register("sink", {
|
||||
"building_blocks_marble.png",
|
||||
"default_water.png"
|
||||
},
|
||||
use_texture_alpha = "blend",
|
||||
inventory_image="homedecor_bathroom_sink_inv.png",
|
||||
selection_box = sink_sbox,
|
||||
collision_box = sink_cbox,
|
||||
@ -239,9 +249,7 @@ local function taps_on_rightclick(pos, node, clicker, itemstack, pointed_thing)
|
||||
local below = minetest.get_node_or_nil({x=pos.x, y=pos.y-1, z=pos.z})
|
||||
if below and
|
||||
below.name == "homedecor:shower_tray" or
|
||||
below.name == "homedecor:sink" or
|
||||
below.name == "homedecor:kitchen_cabinet_with_sink" or
|
||||
below.name == "homedecor:kitchen_cabinet_with_sink_locked" then
|
||||
string.find(below.name, "homedecor:.*sink") then
|
||||
local particledef = {
|
||||
outlet = { x = 0, y = -0.44, z = 0.28 },
|
||||
velocity_x = { min = -0.1, max = 0.1 },
|
||||
|
@ -31,7 +31,7 @@ local kbed_cbox = {
|
||||
}
|
||||
|
||||
|
||||
-- local bed_on_rightclick = minetest.registered_nodes["beds:bed"].on_rightclick
|
||||
local bed_on_rightclick = minetest.registered_nodes["beds:bed"].on_rightclick
|
||||
|
||||
homedecor.register("bed_regular", {
|
||||
mesh = "homedecor_bed_regular.obj",
|
||||
@ -67,9 +67,9 @@ homedecor.register("bed_regular", {
|
||||
if itemname == "homedecor:bed_regular" then
|
||||
homedecor.bed_expansion(pos, clicker, itemstack, pointed_thing, true)
|
||||
return itemstack
|
||||
-- else
|
||||
-- bed_on_rightclick(pos, node, clicker)
|
||||
-- return itemstack
|
||||
else
|
||||
bed_on_rightclick(pos, node, clicker)
|
||||
return itemstack
|
||||
end
|
||||
end
|
||||
})
|
||||
@ -96,10 +96,10 @@ homedecor.register("bed_extended", {
|
||||
homedecor.unextend_bed(pos)
|
||||
end,
|
||||
on_dig = unifieddyes.on_dig,
|
||||
-- on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
-- bed_on_rightclick(pos, node, clicker)
|
||||
-- return itemstack
|
||||
-- end,
|
||||
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
bed_on_rightclick(pos, node, clicker)
|
||||
return itemstack
|
||||
end,
|
||||
drop = "homedecor:bed_regular"
|
||||
})
|
||||
|
||||
@ -133,10 +133,10 @@ homedecor.register("bed_kingsize", {
|
||||
end
|
||||
end,
|
||||
on_dig = unifieddyes.on_dig,
|
||||
-- on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
-- bed_on_rightclick(pos, node, clicker)
|
||||
-- return itemstack
|
||||
-- end,
|
||||
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
bed_on_rightclick(pos, node, clicker)
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
for w, d in pairs({ ["mahogany"] = S("mahogany"), ["oak"] = S("oak") }) do
|
||||
|
@ -10,6 +10,7 @@ homedecor.register("air_conditioner", {
|
||||
"default_glass.png"
|
||||
},
|
||||
groups = { snappy = 3 },
|
||||
use_texture_alpha = "clip",
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
selection_box = { type="regular" },
|
||||
})
|
||||
@ -95,6 +96,7 @@ homedecor.register("ceiling_fan", {
|
||||
{ -0.0625, 0.375, -0.0625, 0.0625, 0.5, 0.0625 }
|
||||
}
|
||||
},
|
||||
use_texture_alpha = "clip",
|
||||
groups = { snappy = 3 },
|
||||
light_source = default.LIGHT_MAX-1,
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
|
@ -88,6 +88,7 @@ homedecor.register("grandfather_clock", {
|
||||
"homedecor_grandfather_clock_face_edge.png",
|
||||
"homedecor_generic_metal_brass.png"
|
||||
},
|
||||
use_texture_alpha = "clip",
|
||||
inventory_image = "homedecor_grandfather_clock_inv.png",
|
||||
groups = { snappy = 3 },
|
||||
selection_box = gf_cbox,
|
||||
|
@ -30,6 +30,7 @@ minetest.register_node(":homedecor:cobweb_centered", {
|
||||
drawtype = "nodebox",
|
||||
tiles = { "homedecor_cobweb.png" },
|
||||
inventory_image = "homedecor_cobweb.png",
|
||||
use_texture_alpha = "clip",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
sunlight_propagates = true,
|
||||
@ -59,6 +60,7 @@ minetest.register_node(":homedecor:cobweb_flat", {
|
||||
inventory_image = "homedecor_cobweb.png",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
use_texture_alpha = "clip",
|
||||
sunlight_propagates = true,
|
||||
liquid_viscosity = 8,
|
||||
liquidtype = "source",
|
||||
|
@ -148,7 +148,8 @@ function homedecor.register_furnace(name, furnacedef)
|
||||
can_dig = furnace_can_dig,
|
||||
allow_metadata_inventory_put = furnace_allow_put,
|
||||
allow_metadata_inventory_move = furnace_allow_move,
|
||||
inventory = { lockable = true }
|
||||
inventory = { lockable = true },
|
||||
is_furnace = true
|
||||
}
|
||||
|
||||
local def_active = {
|
||||
@ -162,7 +163,8 @@ function homedecor.register_furnace(name, furnacedef)
|
||||
can_dig = furnace_can_dig,
|
||||
allow_metadata_inventory_put = furnace_allow_put,
|
||||
allow_metadata_inventory_move = furnace_allow_move,
|
||||
inventory = { lockable = true }
|
||||
inventory = { lockable = true },
|
||||
is_furnace = true
|
||||
}
|
||||
|
||||
if furnacedef.extra_nodedef_fields then
|
||||
|
@ -1,5 +1,12 @@
|
||||
local S = minetest.get_translator("homedecor_common")
|
||||
|
||||
local has_hopper = minetest.get_modpath("hopper")
|
||||
local has_safe_hopper = has_hopper and
|
||||
-- mod from https://github.com/minetest-mods/hopper respects the owner
|
||||
(hopper.neighbors or
|
||||
-- mod from https://notabug.org/TenPlus1/hopper respects the owner since 20220123
|
||||
(hopper.version and hopper.version >= "20220123"))
|
||||
|
||||
local default_can_dig = function(pos,player)
|
||||
local meta = minetest.get_meta(pos)
|
||||
return meta:get_inventory():is_empty("main")
|
||||
@ -97,6 +104,23 @@ function homedecor.handle_inventory(name, def, original_def)
|
||||
end
|
||||
|
||||
local locked = inventory.locked
|
||||
|
||||
if has_hopper and (not locked or has_safe_hopper) then
|
||||
if inventory.size then
|
||||
hopper:add_container({
|
||||
{"top", "homedecor:"..name, "main"},
|
||||
{"bottom", "homedecor:"..name, "main"},
|
||||
{"side", "homedecor:"..name, "main"},
|
||||
})
|
||||
elseif original_def.is_furnace then
|
||||
hopper:add_container({
|
||||
{"top", "homedecor:"..name, "dst"},
|
||||
{"bottom", "homedecor:"..name, "src"},
|
||||
{"side", "homedecor:"..name, "fuel"},
|
||||
})
|
||||
end
|
||||
end
|
||||
|
||||
if locked then
|
||||
local after_place_node = def.after_place_node
|
||||
def.after_place_node = function(pos, placer)
|
||||
|
@ -1,4 +1,4 @@
|
||||
name = homedecor_common
|
||||
description = Homedecor mod: common
|
||||
depends = default, creative
|
||||
optional_depends = screwdriver
|
||||
optional_depends = screwdriver, hopper
|
||||
|
@ -6,6 +6,8 @@ local placeholder_node = "homedecor:expansion_placeholder"
|
||||
function homedecor.register(name, original_def)
|
||||
local def = table.copy(original_def)
|
||||
|
||||
def.is_furnace = nil
|
||||
|
||||
def.drawtype = def.drawtype
|
||||
or (def.mesh and "mesh")
|
||||
or (def.node_box and "nodebox")
|
||||
|
@ -4,209 +4,137 @@ local S = minetest.get_translator("homedecor_doors_and_gates")
|
||||
local mesecons_mp = minetest.get_modpath("mesecons")
|
||||
homedecor_doors_and_gates = {}
|
||||
|
||||
-- new doors using minetest_game doors API
|
||||
|
||||
local door_list = {
|
||||
{
|
||||
name = "wood_plain",
|
||||
description = S("Plain Wooden Door"),
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
|
||||
sounds = {
|
||||
main = default.node_sound_wood_defaults(),
|
||||
open = "homedecor_door_open",
|
||||
close = "homedecor_door_close",
|
||||
}
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
sound_open = "homedecor_door_open",
|
||||
sound_close = "homedecor_door_close",
|
||||
},
|
||||
|
||||
{
|
||||
name = "exterior_fancy",
|
||||
description = S("Fancy Wood/Glass Door"),
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
|
||||
sounds = {
|
||||
main = default.node_sound_wood_defaults(),
|
||||
open = "homedecor_door_open",
|
||||
close = "homedecor_door_close",
|
||||
},
|
||||
backface = true,
|
||||
alpha = true,
|
||||
custom_model = "homedecor_door_fancy"
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
sound_open = "homedecor_door_open",
|
||||
sound_close = "homedecor_door_close",
|
||||
mesh = "homedecor_door_fancy.obj"
|
||||
},
|
||||
|
||||
{
|
||||
name = "french_oak",
|
||||
description = S("French door, Oak-colored"),
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
|
||||
sounds = {
|
||||
main = default.node_sound_glass_defaults(),
|
||||
},
|
||||
backface = true,
|
||||
alpha = true,
|
||||
custom_model = "homedecor_door_french"
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
mesh = "homedecor_door_french.obj"
|
||||
},
|
||||
|
||||
{
|
||||
name = "french_mahogany",
|
||||
description = S("French door, Mahogany-colored"),
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
|
||||
sounds = {
|
||||
main = default.node_sound_glass_defaults(),
|
||||
},
|
||||
backface = true,
|
||||
alpha = true,
|
||||
custom_model = "homedecor_door_french"
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
mesh = "homedecor_door_french.obj"
|
||||
},
|
||||
|
||||
{
|
||||
name = "french_white",
|
||||
description = S("French door, White"),
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
|
||||
sounds = {
|
||||
main = default.node_sound_glass_defaults(),
|
||||
},
|
||||
backface = true,
|
||||
alpha = true,
|
||||
custom_model = "homedecor_door_french"
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
mesh = "homedecor_door_french.obj"
|
||||
},
|
||||
|
||||
{
|
||||
name = "basic_panel",
|
||||
description = S("Basic white panel Door"),
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
|
||||
sounds = {
|
||||
main = default.node_sound_wood_defaults(),
|
||||
open = "homedecor_door_open",
|
||||
close = "homedecor_door_close",
|
||||
}
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
sound_open = "homedecor_door_open",
|
||||
sound_close = "homedecor_door_close",
|
||||
},
|
||||
|
||||
{
|
||||
name = "wrought_iron",
|
||||
description = S("Wrought Iron Gate/Door"),
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
|
||||
sounds = {
|
||||
main = default.node_sound_metal_defaults(),
|
||||
open = "doors_steel_door_open",
|
||||
close = "doors_steel_door_close",
|
||||
},
|
||||
backface = true,
|
||||
custom_model = "homedecor_door_wrought_iron"
|
||||
sounds = default.node_sound_metal_defaults(),
|
||||
sound_open = "doors_steel_door_open",
|
||||
sound_close = "doors_steel_door_close",
|
||||
mesh = "homedecor_door_wrought_iron.obj"
|
||||
},
|
||||
|
||||
{
|
||||
name = "carolina",
|
||||
description = S("Wooden Carolina door"),
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
|
||||
sounds = {
|
||||
main = default.node_sound_wood_defaults(),
|
||||
open = "homedecor_door_open",
|
||||
close = "homedecor_door_close",
|
||||
},
|
||||
backface = true,
|
||||
alpha = true
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
sound_open = "homedecor_door_open",
|
||||
sound_close = "homedecor_door_close",
|
||||
},
|
||||
|
||||
{
|
||||
name = "woodglass",
|
||||
description = S("Wooden door with glass insert, type 3"),
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
|
||||
sounds = {
|
||||
main = default.node_sound_wood_defaults(),
|
||||
open = "homedecor_door_open",
|
||||
close = "homedecor_door_close",
|
||||
},
|
||||
backface = true,
|
||||
alpha = true,
|
||||
custom_model = "homedecor_door_wood_glass_3"
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
sound_open = "homedecor_door_open",
|
||||
sound_close = "homedecor_door_close",
|
||||
mesh = "homedecor_door_wood_glass_3.obj"
|
||||
},
|
||||
|
||||
{
|
||||
name = "closet_mahogany",
|
||||
description = S("Mahogany Closet Door"),
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
|
||||
sounds = {
|
||||
main = default.node_sound_wood_defaults(),
|
||||
},
|
||||
custom_model = "homedecor_door_closet"
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
mesh = "homedecor_door_closet.obj"
|
||||
},
|
||||
|
||||
{
|
||||
name = "closet_oak",
|
||||
description = S("Oak Closet Door"),
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
|
||||
sounds = {
|
||||
main = default.node_sound_wood_defaults(),
|
||||
},
|
||||
custom_model = "homedecor_door_closet"
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
mesh = "homedecor_door_closet"
|
||||
},
|
||||
}
|
||||
|
||||
local old_doors = {}
|
||||
local mesecons
|
||||
|
||||
-- This part blatantly copied from Mesecons, and modified :-)
|
||||
if mesecons_mp then
|
||||
mesecons = {
|
||||
effector = {
|
||||
action_on = function(pos, node)
|
||||
local door = doors.get(pos)
|
||||
if door then
|
||||
door:open()
|
||||
end
|
||||
end,
|
||||
action_off = function(pos, node)
|
||||
local door = doors.get(pos)
|
||||
if door then
|
||||
door:close()
|
||||
end
|
||||
end,
|
||||
rules = mesecon.rules.pplate
|
||||
}
|
||||
local door_types = {"_a", "_b", "_c", "_d"}
|
||||
|
||||
local function generate_door(def)
|
||||
local default_settings = {
|
||||
tiles = {{ name = "homedecor_door_" .. def.name .. ".png", backface_culling = true }},
|
||||
inventory_image = "homedecor_door_" .. def.name .. "_inv.png",
|
||||
use_texture_alpha = "blend",
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
|
||||
mesecons = {
|
||||
effector = {
|
||||
action_on = function(pos, node)
|
||||
local door = doors.get(pos)
|
||||
if door then door:open() end
|
||||
end,
|
||||
action_off = function(pos, node)
|
||||
local door = doors.get(pos)
|
||||
if door then door:close() end
|
||||
end,
|
||||
rules = minetest.global_exists("mesecon") and mesecon.rules.pplate or nil
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
for k, v in pairs(default_settings) do
|
||||
if not def[k] then def[k] = v end
|
||||
end
|
||||
|
||||
def.name = nil
|
||||
|
||||
return def
|
||||
end
|
||||
|
||||
local hd_3d = minetest.get_modpath("homedecor_3d_extras")
|
||||
|
||||
for _, door in ipairs(door_list) do
|
||||
doors.register("homedecor_"..door.name, {
|
||||
tiles = {{ name = "homedecor_door_"..door.name..".png", backface_culling = door.backface }},
|
||||
description = door.description,
|
||||
inventory_image = "homedecor_door_"..door.name.."_inv.png",
|
||||
groups = table.copy(door.groups),
|
||||
sounds = door.sounds.main,
|
||||
sound_open = door.sounds.open,
|
||||
sound_close = door.sounds.close,
|
||||
mesecons = mesecons
|
||||
})
|
||||
local name = door.name
|
||||
doors.register("homedecor_" .. name, generate_door(door))
|
||||
|
||||
local nn_a = "doors:homedecor_"..door.name.."_a"
|
||||
local nn_b = "doors:homedecor_"..door.name.."_b"
|
||||
|
||||
if door.alpha then
|
||||
local def = table.copy(minetest.registered_nodes[nn_a])
|
||||
def.use_texture_alpha = true
|
||||
def.mesh = "door_a.obj" -- leaving this out will break the _a model
|
||||
minetest.register_node(":"..nn_a, def) -- assignment when the override takes place
|
||||
|
||||
def = table.copy(minetest.registered_nodes[nn_b])
|
||||
def.use_texture_alpha = true
|
||||
minetest.register_node(":"..nn_b, def)
|
||||
--hack to get around doors not allowing custom meshes
|
||||
if door.mesh then
|
||||
for _, v in pairs(door_types) do
|
||||
minetest.override_item("doors:homedecor_" .. name .. v, {
|
||||
mesh = door.mesh
|
||||
})
|
||||
end
|
||||
end
|
||||
|
||||
if door.custom_model and hd_3d then
|
||||
def = table.copy(minetest.registered_nodes[nn_a])
|
||||
def.mesh = door.custom_model.."_a.obj"
|
||||
minetest.register_node(":"..nn_a, def)
|
||||
--compatibility
|
||||
old_doors[#old_doors + 1] = "homedecor:door_"..name.."_left"
|
||||
old_doors[#old_doors + 1] = "homedecor:door_"..name.."_right"
|
||||
|
||||
def = table.copy(minetest.registered_nodes[nn_b])
|
||||
def.mesh = door.custom_model.."_b.obj"
|
||||
minetest.register_node(":"..nn_b, def)
|
||||
end
|
||||
|
||||
old_doors[#old_doors + 1] = "homedecor:door_"..door.name.."_left"
|
||||
old_doors[#old_doors + 1] = "homedecor:door_"..door.name.."_right"
|
||||
|
||||
minetest.register_alias("doors:"..door.name.."_a", "doors:homedecor_"..door.name.."_a")
|
||||
minetest.register_alias("doors:"..door.name.."_b", "doors:homedecor_"..door.name.."_b")
|
||||
minetest.register_alias("doors:"..name.."_a", "doors:homedecor_"..name.."_a")
|
||||
minetest.register_alias("doors:"..name.."_b", "doors:homedecor_"..name.."_b")
|
||||
end
|
||||
|
||||
-- Gates
|
||||
@ -307,6 +235,7 @@ for i, g in ipairs(gate_list) do
|
||||
description = gatedesc,
|
||||
tiles = tiles,
|
||||
paramtype = "light",
|
||||
use_texture_alpha = "clip",
|
||||
groups = {snappy=3},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
paramtype2 = "facedir",
|
||||
@ -769,4 +698,4 @@ minetest.register_lbm({
|
||||
end
|
||||
minetest.set_node({x=pos.x, y=pos.y+1, z=pos.z}, {name = "doors:hidden"})
|
||||
end
|
||||
})
|
||||
})
|
@ -94,6 +94,7 @@ homedecor.register("lattice_"..name, {
|
||||
description = S("Garden Lattice (@1)", desc),
|
||||
tiles = {"homedecor_lattice"..texture},
|
||||
inventory_image = "homedecor_lattice"..texture,
|
||||
use_texture_alpha = "clip",
|
||||
groups = { snappy=3 },
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
@ -121,6 +122,7 @@ homedecor.register("swing", {
|
||||
"homedecor_swing_top.png"
|
||||
},
|
||||
inventory_image = "homedecor_swing_inv.png",
|
||||
use_texture_alpha = "clip",
|
||||
groups = { snappy=3, oddly_breakable_by_hand=3 },
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
walkable = false,
|
||||
@ -219,6 +221,7 @@ homedecor.register("well", {
|
||||
},
|
||||
inventory_image = "homedecor_well_inv.png",
|
||||
description = S("Water well"),
|
||||
use_texture_alpha = "clip",
|
||||
groups = { snappy = 3 },
|
||||
selection_box = homedecor.nodebox.slab_y(2),
|
||||
collision_box = homedecor.nodebox.slab_y(2),
|
||||
@ -265,6 +268,7 @@ for color, color_loc in pairs(homedecor_exterior.shrub_colors) do
|
||||
tiles = {"homedecor_shrubbery_"..color..".png"},
|
||||
paramtype = "light",
|
||||
is_ground_content = false,
|
||||
use_texture_alpha = "clip",
|
||||
groups = {snappy=3, flammable=2},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
})
|
||||
@ -280,6 +284,7 @@ for color, color_loc in pairs(homedecor_exterior.shrub_colors) do
|
||||
},
|
||||
paramtype = "light",
|
||||
is_ground_content = false,
|
||||
use_texture_alpha = "clip",
|
||||
groups = {snappy=3, flammable=2},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
selection_box = shrub_cbox,
|
||||
|
@ -35,6 +35,7 @@ homedecor.register("fence_picket", {
|
||||
"homedecor_fence_picket_backside.png",
|
||||
"homedecor_fence_picket.png"
|
||||
},
|
||||
use_texture_alpha = "clip",
|
||||
groups = {snappy=3},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
selection_box = homedecor.nodebox.slab_z(-0.1),
|
||||
@ -51,6 +52,7 @@ homedecor.register("fence_picket_corner", {
|
||||
"homedecor_fence_picket_backside.png",
|
||||
"homedecor_fence_picket.png",
|
||||
},
|
||||
use_texture_alpha = "clip",
|
||||
groups = {snappy=3},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
selection_box = homedecor.nodebox.corner_xz(0.1, -0.1),
|
||||
@ -67,6 +69,7 @@ homedecor.register("fence_picket_white", {
|
||||
"homedecor_fence_picket_white_backside.png",
|
||||
"homedecor_fence_picket_white.png"
|
||||
},
|
||||
use_texture_alpha = "clip",
|
||||
groups = {snappy=3},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
selection_box = homedecor.nodebox.slab_z(-0.1),
|
||||
@ -83,6 +86,7 @@ homedecor.register("fence_picket_corner_white", {
|
||||
"homedecor_fence_picket_white_backside.png",
|
||||
"homedecor_fence_picket_white.png",
|
||||
},
|
||||
use_texture_alpha = "clip",
|
||||
groups = {snappy=3},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
selection_box = homedecor.nodebox.corner_xz(0.1, -0.1),
|
||||
@ -152,6 +156,7 @@ homedecor.register("fence_barbed_wire", {
|
||||
description = S("Barbed Wire Fence"),
|
||||
mesh = "homedecor_fence_barbed_wire.obj",
|
||||
tiles = {"homedecor_fence_barbed_wire.png"},
|
||||
use_texture_alpha = "clip",
|
||||
groups = {snappy=3},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
selection_box = homedecor.nodebox.slab_z(-0.125),
|
||||
@ -162,6 +167,7 @@ homedecor.register("fence_barbed_wire_corner", {
|
||||
description = S("Barbed Wire Fence Corner"),
|
||||
mesh = "homedecor_fence_barbed_wire_corner.obj",
|
||||
tiles = { "homedecor_fence_barbed_wire.png" },
|
||||
use_texture_alpha = "clip",
|
||||
groups = {snappy=3},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
selection_box = homedecor.nodebox.corner_xz(0.125, -0.125),
|
||||
@ -179,6 +185,7 @@ homedecor.register("fence_chainlink", {
|
||||
"homedecor_fence_chainlink_fb.png",
|
||||
"homedecor_fence_chainlink_fb.png",
|
||||
},
|
||||
use_texture_alpha = "clip",
|
||||
groups = {snappy=3},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
selection_box = homedecor.nodebox.slab_z(-0.125),
|
||||
@ -197,6 +204,7 @@ homedecor.register("fence_chainlink_corner", {
|
||||
"homedecor_fence_chainlink_corner_front.png",
|
||||
"homedecor_fence_chainlink_corner_front.png",
|
||||
},
|
||||
use_texture_alpha = "clip",
|
||||
groups = {snappy=3},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
selection_box = homedecor.nodebox.corner_xz(0.125, -0.125),
|
||||
@ -213,6 +221,7 @@ homedecor.register("fence_wrought_iron_2", {
|
||||
"homedecor_fence_wrought_iron_2_fb.png",
|
||||
"homedecor_fence_wrought_iron_2_fb.png"
|
||||
},
|
||||
use_texture_alpha = "clip",
|
||||
groups = {snappy=3},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
selection_box = homedecor.nodebox.slab_z(-0.08),
|
||||
@ -240,6 +249,7 @@ homedecor.register("fence_wrought_iron_2_corner", {
|
||||
"homedecor_fence_corner_wrought_iron_2_sides.png^[transformFX",
|
||||
"homedecor_fence_corner_wrought_iron_2_sides.png"
|
||||
},
|
||||
use_texture_alpha = "clip",
|
||||
groups = {snappy=3},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
selection_box = homedecor.nodebox.corner_xz(0.08, -0.08),
|
||||
|
@ -1,38 +1,5 @@
|
||||
local S = minetest.get_translator("homedecor_furniture")
|
||||
|
||||
local table_colors = {
|
||||
{ "", S("Table"), homedecor.plain_wood },
|
||||
{ "_mahogany", S("Mahogany Table"), homedecor.mahogany_wood },
|
||||
{ "_white", S("White Table"), homedecor.white_wood }
|
||||
}
|
||||
|
||||
for _, t in ipairs(table_colors) do
|
||||
local suffix, desc, texture = unpack(t)
|
||||
|
||||
homedecor.register("table"..suffix, {
|
||||
description = desc,
|
||||
tiles = { texture },
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{ -0.4, -0.5, -0.4, -0.3, 0.4, -0.3 },
|
||||
{ 0.3, -0.5, -0.4, 0.4, 0.4, -0.3 },
|
||||
{ -0.4, -0.5, 0.3, -0.3, 0.4, 0.4 },
|
||||
{ 0.3, -0.5, 0.3, 0.4, 0.4, 0.4 },
|
||||
{ -0.5, 0.4, -0.5, 0.5, 0.5, 0.5 },
|
||||
{ -0.4, -0.2, -0.3, -0.3, -0.1, 0.3 },
|
||||
{ 0.3, -0.2, -0.4, 0.4, -0.1, 0.3 },
|
||||
{ -0.3, -0.2, -0.4, 0.4, -0.1, -0.3 },
|
||||
{ -0.3, -0.2, 0.3, 0.3, -0.1, 0.4 },
|
||||
},
|
||||
},
|
||||
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
})
|
||||
end
|
||||
|
||||
|
||||
|
||||
local ob_cbox = {
|
||||
type = "fixed",
|
||||
fixed = { -0.5, -0.5, 0, 0.5, 0.5, 0.5 }
|
||||
@ -69,224 +36,3 @@ homedecor.register("wall_shelf", {
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
-- Crafts
|
||||
|
||||
|
||||
minetest.register_craft({
|
||||
output = "homedecor:table",
|
||||
recipe = {
|
||||
{ "group:wood","group:wood", "group:wood" },
|
||||
{ "group:stick", "", "group:stick" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = "homedecor:table_mahogany",
|
||||
recipe = {
|
||||
"homedecor:table",
|
||||
"dye:brown",
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = "homedecor:table_mahogany",
|
||||
recipe = {
|
||||
"homedecor:table",
|
||||
"unifieddyes:dark_orange",
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = "homedecor:table_white",
|
||||
recipe = {
|
||||
"homedecor:table",
|
||||
"dye:white",
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "homedecor:table",
|
||||
burntime = 30,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "homedecor:table_mahogany",
|
||||
burntime = 30,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "homedecor:table_white",
|
||||
burntime = 30,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "homedecor:standing_lamp_off",
|
||||
recipe = {
|
||||
{"homedecor:table_lamp_off"},
|
||||
{"group:stick"},
|
||||
{"group:stick"},
|
||||
},
|
||||
})
|
||||
|
||||
unifieddyes.register_color_craft({
|
||||
output = "homedecor:standing_lamp_off",
|
||||
palette = "extended",
|
||||
type = "shapeless",
|
||||
neutral_node = "homedecor:standing_lamp_off",
|
||||
recipe = {
|
||||
"NEUTRAL_NODE",
|
||||
"MAIN_DYE"
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "homedecor:table_lamp_off",
|
||||
burntime = 10,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "homedecor:table_lamp_off",
|
||||
recipe = {
|
||||
{ "wool:white", "default:torch", "wool:white"},
|
||||
{ "", "group:stick", ""},
|
||||
{ "", "stairs:slab_wood", "" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "homedecor:table_lamp_off",
|
||||
recipe = {
|
||||
{ "cottages:wool", "default:torch", "cottages:wool"},
|
||||
{ "", "group:stick", ""},
|
||||
{ "", "stairs:slab_wood", "" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "homedecor:table_lamp_off",
|
||||
recipe = {
|
||||
{ "wool:white", "default:torch", "wool:white"},
|
||||
{ "", "group:stick", ""},
|
||||
{ "", "moreblocks:slab_wood", "" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "homedecor:table_lamp_off",
|
||||
recipe = {
|
||||
{ "cottages:wool", "default:torch", "cottages:wool"},
|
||||
{ "", "group:stick", ""},
|
||||
{ "", "moreblocks:slab_wood", "" },
|
||||
},
|
||||
})
|
||||
|
||||
unifieddyes.register_color_craft({
|
||||
output = "homedecor:table_lamp_off",
|
||||
palette = "extended",
|
||||
type = "shapeless",
|
||||
neutral_node = "homedecor:table_lamp_off",
|
||||
recipe = {
|
||||
"NEUTRAL_NODE",
|
||||
"MAIN_DYE"
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "homedecor:toilet",
|
||||
recipe = {
|
||||
{ "","","bucket:bucket_water"},
|
||||
{ "group:marble","group:marble", "group:marble" },
|
||||
{ "", "bucket:bucket_empty", "" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "homedecor:sink",
|
||||
recipe = {
|
||||
{ "group:marble","bucket:bucket_empty", "group:marble" },
|
||||
{ "", "group:marble", "" }
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "homedecor:taps",
|
||||
recipe = {
|
||||
{ "default:steel_ingot","bucket:bucket_water", "default:steel_ingot" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "homedecor:taps_brass",
|
||||
recipe = {
|
||||
{ "technic:brass_ingot","bucket:bucket_water", "technic:brass_ingot" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "homedecor:shower_tray",
|
||||
recipe = {
|
||||
{ "group:marble","bucket:bucket_empty", "group:marble" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "homedecor:shower_head",
|
||||
recipe = {
|
||||
{"default:steel_ingot", "bucket:bucket_water"},
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "homedecor:bathtub_clawfoot_brass_taps",
|
||||
recipe = {
|
||||
{ "homedecor:taps_brass", "", "" },
|
||||
{ "group:marble", "", "group:marble" },
|
||||
{"default:steel_ingot", "group:marble", "default:steel_ingot"},
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "homedecor:bathtub_clawfoot_chrome_taps",
|
||||
recipe = {
|
||||
{ "homedecor:taps", "", "" },
|
||||
{ "group:marble", "", "group:marble" },
|
||||
{"default:steel_ingot", "group:marble", "default:steel_ingot"},
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "homedecor:bars 6",
|
||||
recipe = {
|
||||
{ "default:steel_ingot","default:steel_ingot","default:steel_ingot" },
|
||||
{ "homedecor:pole_wrought_iron","homedecor:pole_wrought_iron","homedecor:pole_wrought_iron" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "homedecor:L_binding_bars 3",
|
||||
recipe = {
|
||||
{ "homedecor:bars","" },
|
||||
{ "homedecor:bars","homedecor:bars" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "homedecor:torch_wall 10",
|
||||
recipe = {
|
||||
{ "default:coal_lump" },
|
||||
{ "default:steel_ingot" },
|
||||
},
|
||||
})
|
||||
|
||||
-- Aliases for 3dforniture mod.
|
||||
|
||||
minetest.register_alias("3dforniture:table", "homedecor:table")
|
||||
minetest.register_alias('table', 'homedecor:table')
|
||||
|
@ -57,6 +57,24 @@ homedecor.register("chains", {
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
-- Crafts
|
||||
|
||||
minetest.register_craft({
|
||||
output = "homedecor:bars 6",
|
||||
recipe = {
|
||||
{ "default:steel_ingot","default:steel_ingot","default:steel_ingot" },
|
||||
{ "homedecor:pole_wrought_iron","homedecor:pole_wrought_iron","homedecor:pole_wrought_iron" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "homedecor:L_binding_bars 3",
|
||||
recipe = {
|
||||
{ "homedecor:bars","" },
|
||||
{ "homedecor:bars","homedecor:bars" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_alias("3dforniture:bars", "homedecor:bars")
|
||||
minetest.register_alias("3dforniture:L_binding_bars", "homedecor:L_binding_bars")
|
||||
minetest.register_alias("3dforniture:chains", "homedecor:chains")
|
||||
|
@ -136,6 +136,7 @@ homedecor.register("toaster", {
|
||||
tiles = { "homedecor_toaster_sides.png" },
|
||||
inventory_image = "homedecor_toaster_inv.png",
|
||||
walkable = false,
|
||||
use_texture_alpha = "clip",
|
||||
groups = { snappy=3 },
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
@ -165,6 +166,7 @@ homedecor.register("toaster_loaf", {
|
||||
"homedecor_toaster_sides.png"
|
||||
},
|
||||
walkable = false,
|
||||
use_texture_alpha = "clip",
|
||||
groups = { snappy=3, not_in_creative_inventory=1 },
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
|
@ -12,7 +12,7 @@ read_globals = {
|
||||
"VoxelManip", "VoxelArea",
|
||||
"PseudoRandom", "ItemStack",
|
||||
"default",
|
||||
"screwdriver",
|
||||
"screwdriver", "homedecor",
|
||||
}
|
||||
|
||||
globals = {
|
@ -3,7 +3,7 @@ local S = minetest.get_translator("inbox")
|
||||
local inbox = {}
|
||||
|
||||
minetest.register_craft({
|
||||
output ="inbox:empty",
|
||||
output ="homedecor:inbox",
|
||||
recipe = {
|
||||
{"","default:steel_ingot",""},
|
||||
{"default:steel_ingot","","default:steel_ingot"},
|
||||
@ -16,17 +16,17 @@ local mb_cbox = {
|
||||
fixed = { -5/16, -8/16, -8/16, 5/16, 2/16, 8/16 }
|
||||
}
|
||||
|
||||
minetest.register_node("inbox:empty", {
|
||||
homedecor.register("inbox", {
|
||||
paramtype = "light",
|
||||
drawtype = "mesh",
|
||||
mesh = "inbox_mailbox.obj",
|
||||
mesh = "homedecor_inbox_mailbox.obj",
|
||||
description = S("Mailbox"),
|
||||
tiles = {
|
||||
"inbox_red_metal.png",
|
||||
"inbox_white_metal.png",
|
||||
"inbox_grey_metal.png",
|
||||
"homedecor_inbox_red_metal.png",
|
||||
"homedecor_inbox_white_metal.png",
|
||||
"homedecor_inbox_grey_metal.png",
|
||||
},
|
||||
inventory_image = "mailbox_inv.png",
|
||||
inventory_image = "homedecor_mailbox_inv.png",
|
||||
selection_box = mb_cbox,
|
||||
collision_box = mb_cbox,
|
||||
paramtype2 = "facedir",
|
||||
@ -105,6 +105,8 @@ minetest.register_node("inbox:empty", {
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_alias("inbox:empty", "homedecor:inbox")
|
||||
|
||||
function inbox.get_inbox_formspec(pos)
|
||||
local spos = pos.x .. "," .. pos.y .. "," ..pos.z
|
||||
local formspec =
|
@ -1,3 +1,3 @@
|
||||
name = inbox
|
||||
name = homedecor_inbox
|
||||
depends = default, homedecor_common
|
||||
optional_depends = screwdriver
|
Before Width: | Height: | Size: 152 B After Width: | Height: | Size: 152 B |
Before Width: | Height: | Size: 319 B After Width: | Height: | Size: 319 B |
Before Width: | Height: | Size: 156 B After Width: | Height: | Size: 156 B |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
@ -86,6 +86,7 @@ homedecor.register_furnace("microwave_oven", {
|
||||
output_width = 2,
|
||||
cook_speed = 1.5,
|
||||
extra_nodedef_fields = {
|
||||
use_texture_alpha = "clip",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = { -0.5, -0.5, -0.125, 0.5, 0.125, 0.5 },
|
||||
@ -154,6 +155,7 @@ homedecor.kitchen_convert_nodes = {}
|
||||
for _, mat in ipairs(counter_materials) do
|
||||
|
||||
local desc = S("Kitchen Cabinet")
|
||||
local desc2 = S("Kitchen Cabinet with drawers")
|
||||
local material = ""
|
||||
|
||||
if mat ~= "" then
|
||||
@ -177,7 +179,7 @@ for _, mat in ipairs(counter_materials) do
|
||||
.."{homedecor_kitchen_cabinet_front.png"
|
||||
.."{"..ic_cabinet_sides,
|
||||
mesh = "homedecor_kitchen_cabinet.obj",
|
||||
paramtype2 = "wallmounted",
|
||||
paramtype2 = "colorwallmounted",
|
||||
palette = "unifieddyes_palette_colorwallmounted.png",
|
||||
airbrush_replacement_node = "homedecor:kitchen_cabinet_colored"..material,
|
||||
place_param2 = 0,
|
||||
@ -237,10 +239,9 @@ for _, mat in ipairs(counter_materials) do
|
||||
.."{homedecor_kitchen_cabinet_front_with_drawers.png"
|
||||
.."{"..ic_cabinet_sides,
|
||||
mesh = "homedecor_kitchen_cabinet.obj",
|
||||
paramtype2 = "wallmounted",
|
||||
paramtype2 = "colorwallmounted",
|
||||
palette = "unifieddyes_palette_colorwallmounted.png",
|
||||
airbrush_replacement_node = "homedecor:kitchen_cabinet_colored_with_drawers"..material,
|
||||
place_param2 = 0,
|
||||
groups = { snappy = 3, ud_param2_colorable = 1},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
infotext=S("Kitchen Cabinet with drawers"),
|
||||
@ -282,8 +283,10 @@ for _, mat in ipairs(counter_materials) do
|
||||
end
|
||||
})
|
||||
|
||||
homedecor.kitchen_convert_nodes[#homedecor.kitchen_convert_nodes + 1] = "homedecor:kitchen_cabinet"..material
|
||||
homedecor.kitchen_convert_nodes[#homedecor.kitchen_convert_nodes + 1] = "homedecor:kitchen_cabinet_locked"..material
|
||||
homedecor.kitchen_convert_nodes[#homedecor.kitchen_convert_nodes + 1] =
|
||||
"homedecor:kitchen_cabinet"..material
|
||||
homedecor.kitchen_convert_nodes[#homedecor.kitchen_convert_nodes + 1] =
|
||||
"homedecor:kitchen_cabinet"..material.."_locked"
|
||||
|
||||
end
|
||||
|
||||
@ -300,7 +303,7 @@ homedecor.register("kitchen_cabinet_colorable_half", {
|
||||
'homedecor_kitchen_cabinet_front_half.png^homedecor_kitchen_cabinet_half_bevel.png'
|
||||
},
|
||||
mesh = "homedecor_kitchen_cabinet_half.obj",
|
||||
paramtype2 = "wallmounted",
|
||||
paramtype2 = "colorwallmounted",
|
||||
palette = "unifieddyes_palette_colorwallmounted.png",
|
||||
airbrush_replacement_node = "homedecor:kitchen_cabinet_colored_half",
|
||||
place_param2 = 0,
|
||||
@ -363,7 +366,7 @@ homedecor.register("kitchen_cabinet_colorable_with_sink", {
|
||||
.."{homedecor_kitchen_sink_top.png"
|
||||
.."{homedecor_kitchen_cabinet_front.png"
|
||||
.."{"..ic_cabinet_sides,
|
||||
paramtype2 = "wallmounted",
|
||||
paramtype2 = "colorwallmounted",
|
||||
palette = "unifieddyes_palette_colorwallmounted.png",
|
||||
airbrush_replacement_node = "homedecor:kitchen_cabinet_colored_with_sink",
|
||||
place_param2 = 0,
|
||||
@ -469,10 +472,7 @@ homedecor.register("kitchen_faucet", {
|
||||
on_rotate = minetest.get_modpath("screwdriver") and screwdriver.disallow or nil,
|
||||
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
local below = minetest.get_node_or_nil({x=pos.x, y=pos.y-1, z=pos.z})
|
||||
if below and
|
||||
below.name == "homedecor:sink" or
|
||||
below.name == "homedecor:kitchen_cabinet_with_sink" or
|
||||
below.name == "homedecor:kitchen_cabinet_with_sink_locked" then
|
||||
if below and string.find(below.name, "homedecor:.*sink") then
|
||||
local particledef = {
|
||||
outlet = { x = 0, y = -0.19, z = 0.13 },
|
||||
velocity_x = { min = -0.05, max = 0.05 },
|
||||
@ -573,7 +573,7 @@ minetest.register_craft({
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "homedecor:kitchen_cabinet",
|
||||
output = "homedecor:kitchen_cabinet_colorable",
|
||||
recipe = {
|
||||
{"group:wood", "group:stick", "group:wood", },
|
||||
{"group:wood", "group:stick", "group:wood", },
|
||||
@ -582,53 +582,53 @@ minetest.register_craft({
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "homedecor:kitchen_cabinet_steel",
|
||||
output = "homedecor:kitchen_cabinet_colorable_steel",
|
||||
recipe = {
|
||||
{"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"},
|
||||
{"", "homedecor:kitchen_cabinet", ""},
|
||||
{"", "homedecor:kitchen_cabinet_colorable", ""},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "homedecor:kitchen_cabinet_steel",
|
||||
output = "homedecor:kitchen_cabinet_colorable_steel",
|
||||
recipe = {
|
||||
{"moreblocks:slab_steelblock_1"},
|
||||
{ "homedecor:kitchen_cabinet" },
|
||||
{ "homedecor:kitchen_cabinet_colorable" },
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "homedecor:kitchen_cabinet_marble",
|
||||
output = "homedecor:kitchen_cabinet_colorable_marble",
|
||||
recipe = {
|
||||
{"building_blocks:slab_marble"},
|
||||
{"homedecor:kitchen_cabinet"},
|
||||
{"homedecor:kitchen_cabinet_colorable"},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "homedecor:kitchen_cabinet_marble",
|
||||
output = "homedecor:kitchen_cabinet_colorable_marble",
|
||||
recipe = {
|
||||
{"technic:slab_marble_1"},
|
||||
{"homedecor:kitchen_cabinet"},
|
||||
{"homedecor:kitchen_cabinet_colorable"},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "homedecor:kitchen_cabinet_granite",
|
||||
output = "homedecor:kitchen_cabinet_colorable_granite",
|
||||
recipe = {
|
||||
{"technic:slab_granite_1"},
|
||||
{"homedecor:kitchen_cabinet"},
|
||||
{"homedecor:kitchen_cabinet_colorable"},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = "homedecor:kitchen_cabinet_half 2",
|
||||
recipe = { "homedecor:kitchen_cabinet" }
|
||||
output = "homedecor:kitchen_cabinet_colorable_half 2",
|
||||
recipe = { "homedecor:kitchen_cabinet_colorable" }
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "homedecor:kitchen_cabinet_with_sink",
|
||||
output = "homedecor:kitchen_cabinet_colorable_with_sink",
|
||||
recipe = {
|
||||
{"group:wood", "default:steel_ingot", "group:wood", },
|
||||
{"group:wood", "default:steel_ingot", "group:wood", },
|
||||
@ -790,6 +790,6 @@ minetest.register_lbm({
|
||||
new_fdir = 5
|
||||
end
|
||||
|
||||
minetest.set_node(pos, { name = newname, param2 = new_fdir })
|
||||
minetest.swap_node(pos, { name = newname, param2 = new_fdir })
|
||||
end
|
||||
})
|
||||
|
@ -1,4 +1,4 @@
|
||||
name = homedecor_kitchen
|
||||
description = Homedecor mod: kitchen
|
||||
depends = homedecor_common, default, basic_materials, dye
|
||||
depends = homedecor_common, default, basic_materials, dye, unifieddyes
|
||||
optional_depends = moreblocks, building_blocks, technic, bucket, screwdriver
|
||||
|
@ -263,7 +263,7 @@ for brightness_level = 0, 14 do
|
||||
description = S("Thick Glowlight"),
|
||||
tiles = tiles,
|
||||
overlay_tiles = overlay,
|
||||
use_texture_alpha = true,
|
||||
use_texture_alpha = "blend",
|
||||
drawtype = "nodebox",
|
||||
paramtype = "light",
|
||||
paramtype2 = "colorwallmounted",
|
||||
@ -329,7 +329,7 @@ for brightness_level = 0, 14 do
|
||||
description = S("Thin Glowlight"),
|
||||
tiles = tiles,
|
||||
overlay_tiles = overlay,
|
||||
use_texture_alpha = true,
|
||||
use_texture_alpha = "blend",
|
||||
drawtype = "nodebox",
|
||||
paramtype = "light",
|
||||
paramtype2 = "colorwallmounted",
|
||||
@ -396,7 +396,7 @@ for brightness_level = 0, 14 do
|
||||
description = S("Small Glowlight Cube"),
|
||||
tiles = tiles,
|
||||
overlay_tiles = overlay,
|
||||
use_texture_alpha = true,
|
||||
use_texture_alpha = "blend",
|
||||
paramtype = "light",
|
||||
paramtype2 = "colorwallmounted",
|
||||
drawtype = "nodebox",
|
||||
@ -448,7 +448,7 @@ for brightness_level = 0, 14 do
|
||||
"default_gold_block.png",
|
||||
lighttex
|
||||
},
|
||||
use_texture_alpha = true,
|
||||
use_texture_alpha = "blend",
|
||||
light_source = brightness_level,
|
||||
sunlight_propagates = true,
|
||||
groups = {cracky=3, oddly_breakable_by_hand=3, not_in_creative_inventory = nici},
|
||||
@ -473,7 +473,7 @@ for brightness_level = 0, 14 do
|
||||
description = S("Ground Lantern/Light"),
|
||||
mesh = "homedecor_ground_lantern.obj",
|
||||
tiles = { gen_ls_tex_yellow, "homedecor_generic_metal_wrought_iron.png" },
|
||||
use_texture_alpha = true,
|
||||
use_texture_alpha = "blend",
|
||||
inventory_image = "homedecor_ground_lantern_inv.png",
|
||||
wield_image = "homedecor_ground_lantern_inv.png",
|
||||
groups = {snappy=3, not_in_creative_inventory = nici},
|
||||
@ -500,7 +500,7 @@ for brightness_level = 0, 14 do
|
||||
description = S("Hanging Lantern/Light"),
|
||||
mesh = "homedecor_hanging_lantern.obj",
|
||||
tiles = { "homedecor_generic_metal_wrought_iron.png", gen_ls_tex_yellow },
|
||||
use_texture_alpha = true,
|
||||
use_texture_alpha = "blend",
|
||||
inventory_image = "homedecor_hanging_lantern_inv.png",
|
||||
wield_image = "homedecor_hanging_lantern_inv.png",
|
||||
groups = {snappy=3, not_in_creative_inventory = nici},
|
||||
@ -527,7 +527,7 @@ for brightness_level = 0, 14 do
|
||||
drawtype = "mesh",
|
||||
mesh = "homedecor_ceiling_lantern.obj",
|
||||
tiles = { gen_ls_tex_yellow, "homedecor_generic_metal_wrought_iron.png" },
|
||||
use_texture_alpha = true,
|
||||
use_texture_alpha = "blend",
|
||||
inventory_image = "homedecor_ceiling_lantern_inv.png",
|
||||
description = S("Ceiling Lantern/Light"),
|
||||
groups = {snappy=3, not_in_creative_inventory = nici},
|
||||
@ -549,6 +549,7 @@ for brightness_level = 0, 14 do
|
||||
homedecor.register("lattice_lantern_large_"..brightness_level, {
|
||||
description = S("Lattice lantern/Light (large)"),
|
||||
tiles = { gen_ls_tex_yellow.."^homedecor_lattice_lantern_large_overlay.png" },
|
||||
use_texture_alpha = "clip",
|
||||
groups = { snappy = 3, not_in_creative_inventory = nici },
|
||||
light_source = brightness_level,
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
@ -590,6 +591,7 @@ for brightness_level = 0, 14 do
|
||||
type = "fixed",
|
||||
fixed = { -0.25, -0.5, -0.25, 0.25, 0, 0.25 }
|
||||
},
|
||||
use_texture_alpha = "clip",
|
||||
groups = { snappy = 3, not_in_creative_inventory = nici },
|
||||
light_source = brightness_level,
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
@ -792,7 +794,7 @@ for _, light_brightn_name in ipairs({"off", "on"}) do
|
||||
fixed = { -0.1875, -0.5, -0.1875, 0.1875, 0, 0.1875 }
|
||||
},
|
||||
walkable = false,
|
||||
use_texture_alpha = true,
|
||||
use_texture_alpha = "blend",
|
||||
light_source = onflag and (default.LIGHT_MAX - 5) or nil,
|
||||
sunlight_propagates = true,
|
||||
groups = {cracky=3, oddly_breakable_by_hand=3, not_in_creative_inventory = nici},
|
||||
@ -916,7 +918,7 @@ for _, light_brightn_name in ipairs({"off", "on"}) do
|
||||
gen_ls_tex_yellow,
|
||||
"homedecor_generic_metal_wrought_iron.png"
|
||||
},
|
||||
use_texture_alpha = true,
|
||||
use_texture_alpha = "blend",
|
||||
inventory_image = "homedecor_wall_lamp_inv.png",
|
||||
groups = {snappy=3, not_in_creative_inventory = nici},
|
||||
light_source = onflag and (default.LIGHT_MAX - 3) or nil,
|
||||
@ -954,6 +956,7 @@ homedecor.register("candle", {
|
||||
inventory_image = "homedecor_candle_inv.png",
|
||||
selection_box = tc_cbox,
|
||||
walkable = false,
|
||||
use_texture_alpha = "clip",
|
||||
groups = { snappy = 3 },
|
||||
light_source = default.LIGHT_MAX-4,
|
||||
})
|
||||
@ -975,6 +978,7 @@ homedecor.register("candle_thin", {
|
||||
inventory_image = "homedecor_candle_thin_inv.png",
|
||||
selection_box = c_cbox,
|
||||
walkable = false,
|
||||
use_texture_alpha = "clip",
|
||||
groups = { snappy = 3 },
|
||||
light_source = default.LIGHT_MAX-4,
|
||||
})
|
||||
@ -997,6 +1001,7 @@ homedecor.register("candlestick_wrought_iron", {
|
||||
inventory_image = "homedecor_candlestick_wrought_iron_inv.png",
|
||||
selection_box = cs_cbox,
|
||||
walkable = false,
|
||||
use_texture_alpha = "clip",
|
||||
groups = { snappy = 3 },
|
||||
light_source = default.LIGHT_MAX-4,
|
||||
})
|
||||
@ -1012,6 +1017,7 @@ homedecor.register("candlestick_brass", {
|
||||
inventory_image = "homedecor_candlestick_brass_inv.png",
|
||||
selection_box = cs_cbox,
|
||||
walkable = false,
|
||||
use_texture_alpha = "clip",
|
||||
groups = { snappy = 3 },
|
||||
light_source = default.LIGHT_MAX-4,
|
||||
})
|
||||
@ -1031,6 +1037,7 @@ homedecor.register("wall_sconce", {
|
||||
fixed = { -0.1875, -0.25, 0.3125, 0.1875, 0.25, 0.5 }
|
||||
},
|
||||
walkable = false,
|
||||
use_texture_alpha = "clip",
|
||||
groups = { snappy = 3 },
|
||||
light_source = default.LIGHT_MAX-4,
|
||||
})
|
||||
@ -1053,7 +1060,7 @@ homedecor.register("oil_lamp", {
|
||||
{ name = "homedecor_generic_metal.png", color = 0xffa00000 },
|
||||
"homedecor_oil_lamp_glass.png",
|
||||
},
|
||||
use_texture_alpha = true,
|
||||
use_texture_alpha = "blend",
|
||||
inventory_image = "homedecor_oil_lamp_inv.png",
|
||||
selection_box = ol_cbox,
|
||||
walkable = false,
|
||||
@ -1132,6 +1139,7 @@ minetest.register_node(":homedecor:chandelier_steel", {
|
||||
},
|
||||
drawtype = "mesh",
|
||||
mesh = "homedecor_chandelier.obj",
|
||||
use_texture_alpha = "clip",
|
||||
groups = {cracky=3},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
@ -1158,6 +1166,7 @@ minetest.register_node(":homedecor:chandelier_brass", {
|
||||
},
|
||||
drawtype = "mesh",
|
||||
mesh = "homedecor_chandelier.obj",
|
||||
use_texture_alpha = "clip",
|
||||
groups = {cracky=3},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
@ -1186,6 +1195,7 @@ homedecor.register("torch_wall", {
|
||||
type = "fixed",
|
||||
fixed = { -0.15, -0.45, 0.15, 0.15,0.35, 0.5 },
|
||||
},
|
||||
use_texture_alpha = "clip",
|
||||
groups = {cracky=3},
|
||||
})
|
||||
|
||||
@ -1789,6 +1799,14 @@ unifieddyes.register_color_craft({
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
minetest.register_craft({
|
||||
output = "homedecor:torch_wall 10",
|
||||
recipe = {
|
||||
{ "default:coal_lump" },
|
||||
{ "default:steel_ingot" },
|
||||
},
|
||||
})
|
||||
-- aliases
|
||||
|
||||
minetest.register_alias("chains:chain_top", "homedecor:chain_steel_top")
|
||||
|
@ -112,6 +112,7 @@ for _, f in ipairs(flowers_list) do
|
||||
"flowers_"..flower..".png"
|
||||
},
|
||||
walkable = false,
|
||||
use_texture_alpha = "clip",
|
||||
groups = {snappy = 3},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
selection_box = {
|
||||
@ -183,7 +184,7 @@ homedecor.register("fishtank", {
|
||||
"homedecor_fishtank_water_top.png",
|
||||
"homedecor_fishtank_sides.png",
|
||||
},
|
||||
use_texture_alpha = true,
|
||||
use_texture_alpha = "blend",
|
||||
selection_box = ft_cbox,
|
||||
collision_box = ft_cbox,
|
||||
groups = {cracky=3,oddly_breakable_by_hand=3},
|
||||
@ -206,7 +207,7 @@ homedecor.register("fishtank_lighted", {
|
||||
"homedecor_fishtank_sides_lighted.png",
|
||||
},
|
||||
light_source = default.LIGHT_MAX-4,
|
||||
use_texture_alpha = true,
|
||||
use_texture_alpha = "blend",
|
||||
selection_box = ft_cbox,
|
||||
collision_box = ft_cbox,
|
||||
groups = {cracky=3,oddly_breakable_by_hand=3,not_in_creative_inventory=1},
|
||||
@ -225,6 +226,7 @@ homedecor.register("cardboard_box_big", {
|
||||
'homedecor_cardbox_big_tb.png',
|
||||
'homedecor_cardbox_big_sides.png',
|
||||
},
|
||||
use_texture_alpha = "clip",
|
||||
groups = { snappy = 3 },
|
||||
infotext=S("Cardboard box"),
|
||||
inventory = {
|
||||
@ -245,6 +247,7 @@ homedecor.register("cardboard_box", {
|
||||
{-0.3125, -0.5, -0.3125, 0.3125, 0, 0.3125},
|
||||
}
|
||||
},
|
||||
use_texture_alpha = "clip",
|
||||
groups = { snappy = 3 },
|
||||
infotext=S("Cardboard box"),
|
||||
inventory = {
|
||||
@ -366,6 +369,7 @@ homedecor.register("skateboard", {
|
||||
tiles = { "homedecor_skateboard.png" },
|
||||
inventory_image = "homedecor_skateboard_inv.png",
|
||||
description = S("Skateboard"),
|
||||
use_texture_alpha = "clip",
|
||||
groups = {snappy=3},
|
||||
selection_box = skate_cbox,
|
||||
walkable = false,
|
||||
|
@ -77,6 +77,7 @@ homedecor.register("calendar", {
|
||||
wall_bottom = { -4/16, -8/16, -8/16, 4/16, -5/16, 5/16 },
|
||||
wall_top = { -4/16, 5/16, -8/16, 4/16, 8/16, 5/16 }
|
||||
},
|
||||
use_texture_alpha = "clip",
|
||||
groups = {choppy=2,attached_node=1},
|
||||
legacy_wallmounted = true,
|
||||
sounds = default.node_sound_defaults(),
|
||||
|
@ -11,7 +11,7 @@ read_globals = {
|
||||
"vector", "nodeupdate",
|
||||
"VoxelManip", "VoxelArea",
|
||||
"PseudoRandom", "ItemStack",
|
||||
"screwdriver",
|
||||
"screwdriver", "homedecor",
|
||||
}
|
||||
|
||||
globals = {
|
@ -2,9 +2,9 @@ local S = minetest.get_translator("plasmascreen")
|
||||
|
||||
local sc_disallow = minetest.get_modpath("screwdriver") and screwdriver.disallow or nil
|
||||
|
||||
minetest.register_node("plasmascreen:stand", {
|
||||
homedecor.register("tv_stand", {
|
||||
description = S("Plasma Screen TV Stand"),
|
||||
tiles = {"plasmascreen_back.png"},
|
||||
tiles = {"homedecor_plasmascreen_back.png"},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "nodebox",
|
||||
@ -26,13 +26,6 @@ minetest.register_node("plasmascreen:stand", {
|
||||
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2},
|
||||
})
|
||||
|
||||
minetest.register_alias("plasmascreen:screen1", "air")
|
||||
minetest.register_alias("plasmascreen:screen2", "air")
|
||||
minetest.register_alias("plasmascreen:screen3", "air")
|
||||
minetest.register_alias("plasmascreen:screen4", "air")
|
||||
minetest.register_alias("plasmascreen:screen5", "plasmascreen:tv")
|
||||
minetest.register_alias("plasmascreen:screen6", "air")
|
||||
|
||||
local fdir_to_left = {
|
||||
{ -1, 0 },
|
||||
{ 0, 1 },
|
||||
@ -95,13 +88,13 @@ local function checkwall(pos)
|
||||
return true
|
||||
end
|
||||
|
||||
minetest.register_node("plasmascreen:tv", {
|
||||
homedecor.register("tv", {
|
||||
description = S("Plasma TV"),
|
||||
drawtype = "mesh",
|
||||
mesh = "plasmascreen_tv.obj",
|
||||
mesh = "homedecor_plasmascreen_tv.obj",
|
||||
tiles = {
|
||||
"plasmascreen_case.png",
|
||||
{ name="plasmascreen_video.png",
|
||||
"homedecor_plasmascreen_case.png",
|
||||
{ name="homedecor_plasmascreen_video.png",
|
||||
animation={
|
||||
type="vertical_frames",
|
||||
aspect_w = 42,
|
||||
@ -111,8 +104,8 @@ minetest.register_node("plasmascreen:tv", {
|
||||
}
|
||||
|
||||
},
|
||||
inventory_image = "plasmascreen_tv_inv.png",
|
||||
wield_image = "plasmascreen_tv_inv.png",
|
||||
inventory_image = "homedecor_plasmascreen_tv_inv.png",
|
||||
wield_image = "homedecor_plasmascreen_tv_inv.png",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
light_source = 10,
|
||||
@ -127,20 +120,20 @@ minetest.register_node("plasmascreen:tv", {
|
||||
end
|
||||
end,
|
||||
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
minetest.set_node(pos, {name = "plasmascreen:tv_off", param2 = node.param2})
|
||||
minetest.set_node(pos, {name = "homedecor:tv_off", param2 = node.param2})
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_node("plasmascreen:tv_off", {
|
||||
homedecor.register("tv_off", {
|
||||
description = S("Plasma TV (off)"),
|
||||
drawtype = "mesh",
|
||||
mesh = "plasmascreen_tv.obj",
|
||||
mesh = "homedecor_plasmascreen_tv.obj",
|
||||
tiles = {
|
||||
"plasmascreen_case_off.png",
|
||||
"plasmascreen_screen_off.png",
|
||||
"homedecor_plasmascreen_case_off.png",
|
||||
"homedecor_plasmascreen_screen_off.png",
|
||||
},
|
||||
inventory_image = "plasmascreen_tv_inv.png",
|
||||
wield_image = "plasmascreen_tv_inv.png",
|
||||
inventory_image = "homedecor_plasmascreen_tv_inv.png",
|
||||
wield_image = "homedecor_plasmascreen_tv_inv.png",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
light_source = 10,
|
||||
@ -155,15 +148,15 @@ minetest.register_node("plasmascreen:tv_off", {
|
||||
end
|
||||
end,
|
||||
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
minetest.set_node(pos, {name = "plasmascreen:tv", param2 = node.param2})
|
||||
minetest.set_node(pos, {name = "homedecor:tv", param2 = node.param2})
|
||||
end,
|
||||
drop = "plasmascreen:tv"
|
||||
drop = "homedecor:tv"
|
||||
})
|
||||
|
||||
-- crafting recipes
|
||||
|
||||
minetest.register_craft({
|
||||
output = "plasmascreen:tv",
|
||||
output = "homedecor:tv",
|
||||
recipe = {
|
||||
{'default:glass', 'default:coal_lump', 'default:glass'},
|
||||
{'default:steel_ingot', 'default:copper_ingot', 'default:steel_ingot'},
|
||||
@ -173,15 +166,25 @@ minetest.register_craft({
|
||||
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = "plasmascreen:tv",
|
||||
output = "homedecor:tv",
|
||||
recipe = {'homedecor:television', 'homedecor:television'},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "plasmascreen:stand",
|
||||
output = "homedecor:tv_stand",
|
||||
recipe = {
|
||||
{'', '', ''},
|
||||
{'', 'default:steel_ingot', ''},
|
||||
{'group:stick', 'default:coal_lump', 'group:stick'},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_alias("plasmascreen:screen1", "air")
|
||||
minetest.register_alias("plasmascreen:screen2", "air")
|
||||
minetest.register_alias("plasmascreen:screen3", "air")
|
||||
minetest.register_alias("plasmascreen:screen4", "air")
|
||||
minetest.register_alias("plasmascreen:screen6", "air")
|
||||
minetest.register_alias("plasmascreen:screen5", "homedecor:tv")
|
||||
minetest.register_alias("plasmascreen:stand", "homedecor:tv_stand")
|
||||
minetest.register_alias("plasmascreen:tv", "homedecor:tv")
|
||||
minetest.register_alias("plasmascreen:tv_off", "homedecor:tv_off")
|
@ -1,3 +1,3 @@
|
||||
name = plasmascreen
|
||||
name = homedecor_plasmascreen
|
||||
depends = default, homedecor_common, homedecor_electronics
|
||||
optional_depends = screwdriver
|
Before Width: | Height: | Size: 184 B After Width: | Height: | Size: 184 B |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 313 B After Width: | Height: | Size: 313 B |
Before Width: | Height: | Size: 105 B After Width: | Height: | Size: 105 B |
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
@ -20,7 +20,7 @@ minetest.register_node(":homedecor:skylight_frosted", {
|
||||
tiles = { "homedecor_skylight_frosted.png" },
|
||||
wield_image = "homedecor_skylight_frosted.png",
|
||||
inventory_image = "homedecor_skylight_frosted_inv.png",
|
||||
use_texture_alpha = true,
|
||||
use_texture_alpha = "blend",
|
||||
groups = { snappy = 3 },
|
||||
paramtype = "light",
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
@ -134,6 +134,7 @@ homedecor_roofing.register_slope = function(modname, subname, recipeitem, groups
|
||||
paramtype2 = "facedir",
|
||||
selection_box = slope_cbox,
|
||||
collision_box = slope_cbox,
|
||||
use_texture_alpha = "blend",
|
||||
groups = groups,
|
||||
on_place = minetest.rotate_node,
|
||||
sounds = default.node_sound_wood_defaults()
|
||||
|
@ -47,7 +47,6 @@ minetest.register_node(":lrfurn:longsofa", {
|
||||
end
|
||||
pos.y = pos.y-0.5
|
||||
clicker:setpos(pos)
|
||||
clicker:set_hp(20)
|
||||
return itemstack
|
||||
end
|
||||
})
|
||||
|
@ -47,7 +47,6 @@ minetest.register_node(":lrfurn:sofa", {
|
||||
end
|
||||
pos.y = pos.y-0.5
|
||||
clicker:setpos(pos)
|
||||
clicker:set_hp(20)
|
||||
return itemstack
|
||||
end
|
||||
})
|
||||
|
@ -57,6 +57,7 @@ minetest.register_node(":lrfurn:coffeetable", {
|
||||
},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
use_texture_alpha = "blend",
|
||||
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
node_box = {
|
||||
|
@ -15,6 +15,7 @@ minetest.register_node(":lrfurn:endtable", {
|
||||
},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
use_texture_alpha = "blend",
|
||||
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
node_box = {
|
||||
|
@ -2,26 +2,60 @@
|
||||
|
||||
local S = minetest.get_translator("homedecor_tables")
|
||||
|
||||
local materials = {
|
||||
-- Various kinds of table legs
|
||||
|
||||
local table_shapes = {"large_square", "small_square", "small_round"}
|
||||
|
||||
local tabletop_materials = {
|
||||
{ "glass",
|
||||
S("Small square glass table"),
|
||||
S("Small round glass table"),
|
||||
S("Large glass table piece"),
|
||||
S("Small square glass tabletop"),
|
||||
S("Small round glass tabletop"),
|
||||
S("Large glass tabletop piece"),
|
||||
},
|
||||
{ "wood",
|
||||
S("Small square wooden table"),
|
||||
S("Small round wooden table"),
|
||||
S("Large wooden table piece"),
|
||||
S("Small square wooden tabletop"),
|
||||
S("Small round wooden tabletop"),
|
||||
S("Large wooden tabletop piece"),
|
||||
}
|
||||
}
|
||||
|
||||
local leg_materials = {
|
||||
{ "brass", S("brass") },
|
||||
{ "wrought_iron", S("wrought iron") },
|
||||
{ "wood", S("wood") }
|
||||
}
|
||||
|
||||
for _, t in ipairs(leg_materials) do
|
||||
local name, desc = unpack(t)
|
||||
homedecor.register("table_legs_"..name, {
|
||||
description = S("Table Legs (@1)", desc),
|
||||
drawtype = "plantlike",
|
||||
tiles = {"homedecor_table_legs_"..name..".png"},
|
||||
inventory_image = "homedecor_table_legs_"..name..".png",
|
||||
wield_image = "homedecor_table_legs_"..name..".png",
|
||||
walkable = false,
|
||||
use_texture_alpha = "blend",
|
||||
groups = {snappy=3},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = { -0.37, -0.5, -0.37, 0.37, 0.5, 0.37 }
|
||||
},
|
||||
})
|
||||
end
|
||||
|
||||
minetest.register_alias("homedecor:utility_table_legs", "homedecor:table_legs_wood")
|
||||
minetest.register_alias("homedecor:utility_table_top", "homedecor:wood_table_small_square")
|
||||
|
||||
-- table tops and combined tables
|
||||
|
||||
local tables_cbox = {
|
||||
type = "fixed",
|
||||
fixed = { -0.5, -0.5, -0.5, 0.5, -0.4375, 0.5 },
|
||||
}
|
||||
|
||||
for i, mat in ipairs(materials) do
|
||||
local m, small_s, small_r, large = unpack(mat)
|
||||
for i, mat in ipairs(tabletop_materials) do
|
||||
local m = unpack(mat)
|
||||
local s
|
||||
|
||||
if m == "glass" then
|
||||
@ -30,179 +64,104 @@ for i, mat in ipairs(materials) do
|
||||
s = default.node_sound_wood_defaults()
|
||||
end
|
||||
|
||||
-- small square tables
|
||||
for _, shape in ipairs(table_shapes) do
|
||||
|
||||
homedecor.register(m.."_table_small_square", {
|
||||
description = small_s,
|
||||
mesh = "homedecor_table_small_square.obj",
|
||||
tiles = { 'homedecor_'..m..'_table_small_square.png' },
|
||||
wield_image = 'homedecor_'..m..'_table_small_square_inv.png',
|
||||
inventory_image = 'homedecor_'..m..'_table_small_square_inv.png',
|
||||
groups = { snappy = 3 },
|
||||
sounds = s,
|
||||
selection_box = tables_cbox,
|
||||
collision_box = tables_cbox,
|
||||
on_place = minetest.rotate_node
|
||||
})
|
||||
homedecor.register(m.."_table_"..shape, {
|
||||
description = shape.." "..m.." tabletop",
|
||||
mesh = "homedecor_table_"..shape..".obj",
|
||||
tiles = {
|
||||
'homedecor_'..m..'_table_'..shape..'.png',
|
||||
'homedecor_'..m..'_table_edges.png',
|
||||
'homedecor_blanktile.png',
|
||||
'homedecor_blanktile.png',
|
||||
'homedecor_blanktile.png',
|
||||
},
|
||||
wield_image = 'homedecor_'..m..'_table_'..shape..'_inv.png',
|
||||
use_texture_alpha = "blend",
|
||||
groups = { snappy = 3 },
|
||||
sounds = s,
|
||||
selection_box = tables_cbox,
|
||||
collision_box = tables_cbox,
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
local player_name = placer:get_player_name()
|
||||
if minetest.is_protected(pointed_thing.under, player_name) then return end
|
||||
local node = minetest.get_node(pointed_thing.under)
|
||||
if string.find(node.name, "homedecor:table_legs") then
|
||||
local newname = string.format("homedecor:%s_table_%s_with_%s_legs",
|
||||
m, shape, string.sub(node.name, 22))
|
||||
minetest.set_node(pointed_thing.under, {name = newname})
|
||||
if not creative.is_enabled_for(player_name) then
|
||||
itemstack:take_item()
|
||||
return itemstack
|
||||
end
|
||||
else
|
||||
return minetest.rotate_node(itemstack, placer, pointed_thing)
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
-- small round tables
|
||||
for _, l in ipairs(leg_materials) do
|
||||
local leg_mat = unpack(l)
|
||||
|
||||
homedecor.register(m..'_table_small_round', {
|
||||
description = small_r,
|
||||
mesh = "homedecor_table_small_round.obj",
|
||||
tiles = { "homedecor_"..m.."_table_small_round.png" },
|
||||
wield_image = 'homedecor_'..m..'_table_small_round_inv.png',
|
||||
inventory_image = 'homedecor_'..m..'_table_small_round_inv.png',
|
||||
groups = { snappy = 3 },
|
||||
sounds = s,
|
||||
selection_box = tables_cbox,
|
||||
collision_box = tables_cbox,
|
||||
on_place = minetest.rotate_node
|
||||
})
|
||||
|
||||
-- Large square table pieces
|
||||
|
||||
homedecor.register(m..'_table_large', {
|
||||
description = large,
|
||||
tiles = {
|
||||
'homedecor_'..m..'_table_large_tb.png',
|
||||
'homedecor_'..m..'_table_large_tb.png',
|
||||
'homedecor_'..m..'_table_large_edges.png',
|
||||
'homedecor_'..m..'_table_large_edges.png',
|
||||
'homedecor_'..m..'_table_large_edges.png',
|
||||
'homedecor_'..m..'_table_large_edges.png'
|
||||
},
|
||||
wield_image = 'homedecor_'..m..'_table_large_inv.png',
|
||||
inventory_image = 'homedecor_'..m..'_table_large_inv.png',
|
||||
groups = { snappy = 3 },
|
||||
sounds = s,
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = { -0.5, -0.5, -0.5, 0.5, -0.4375, 0.5 },
|
||||
},
|
||||
selection_box = tables_cbox,
|
||||
on_place = minetest.rotate_node
|
||||
})
|
||||
homedecor.register(string.format("%s_table_%s_with_%s_legs", m, shape, leg_mat), {
|
||||
description = string.format("%s %s table with %s legs", shape, m, leg_mat),
|
||||
mesh = "homedecor_table_"..shape..".obj",
|
||||
tiles = {
|
||||
'homedecor_blanktile.png',
|
||||
'homedecor_blanktile.png',
|
||||
'homedecor_'..m..'_table_'..shape..'.png',
|
||||
'homedecor_'..m..'_table_edges.png',
|
||||
"homedecor_table_legs_"..leg_mat..".png",
|
||||
},
|
||||
use_texture_alpha = "blend",
|
||||
groups = { snappy = 3 },
|
||||
sounds = s,
|
||||
})
|
||||
end
|
||||
end
|
||||
|
||||
minetest.register_alias('homedecor:'..m..'_table_large_b', 'homedecor:'..m..'_table_large')
|
||||
minetest.register_alias('homedecor:'..m..'_table_small_square_b', 'homedecor:'..m..'_table_small_square')
|
||||
minetest.register_alias('homedecor:'..m..'_table_small_round_b', 'homedecor:'..m..'_table_small_round')
|
||||
minetest.register_alias('homedecor:'..m..'_table_large', 'homedecor:'..m..'_table_large_square')
|
||||
|
||||
end
|
||||
|
||||
-- conversion routines for old non-6dfacedir tables
|
||||
-- old-style tables that used to be from 3dforniture.
|
||||
|
||||
local tlist_s = {}
|
||||
local tlist_t = {}
|
||||
local dirs2 = { 9, 18, 7, 12 }
|
||||
|
||||
for i in ipairs(materials) do
|
||||
local m = materials[i][1]
|
||||
table.insert(tlist_s, "homedecor:"..m.."_table_large_s")
|
||||
table.insert(tlist_s, "homedecor:"..m.."_table_small_square_s")
|
||||
table.insert(tlist_s, "homedecor:"..m.."_table_small_round_s")
|
||||
|
||||
table.insert(tlist_t, "homedecor:"..m.."_table_large_t")
|
||||
table.insert(tlist_t, "homedecor:"..m.."_table_small_square_t")
|
||||
table.insert(tlist_t, "homedecor:"..m.."_table_small_round_t")
|
||||
end
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = tlist_s,
|
||||
interval = 1,
|
||||
chance = 1,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
local newnode = string.sub(node.name, 1, -3) -- strip the "_s" from the name
|
||||
local fdir = node.param2 or 0
|
||||
minetest.set_node(pos, {name = newnode, param2 = dirs2[fdir+1]})
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = tlist_t,
|
||||
interval = 1,
|
||||
chance = 1,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
local newnode = string.sub(node.name, 1, -3) -- strip the "_t" from the name
|
||||
minetest.set_node(pos, { name = newnode, param2 = 20 })
|
||||
end
|
||||
})
|
||||
|
||||
-- other tables
|
||||
|
||||
homedecor.register("utility_table_top", {
|
||||
description = S("Utility Table"),
|
||||
tiles = {
|
||||
'homedecor_utility_table_tb.png',
|
||||
'homedecor_utility_table_tb.png',
|
||||
'homedecor_utility_table_edges.png',
|
||||
'homedecor_utility_table_edges.png',
|
||||
'homedecor_utility_table_edges.png',
|
||||
'homedecor_utility_table_edges.png'
|
||||
},
|
||||
wield_image = 'homedecor_utility_table_tb.png',
|
||||
inventory_image = 'homedecor_utility_table_tb.png',
|
||||
groups = { snappy = 3 },
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
paramtype2 = "wallmounted",
|
||||
node_box = {
|
||||
type = "wallmounted",
|
||||
wall_bottom = { -0.5, -0.5, -0.5, 0.5, -0.4375, 0.5 },
|
||||
wall_top = { -0.5, 0.4375, -0.5, 0.5, 0.5, 0.5 },
|
||||
wall_side = { -0.5, -0.5, -0.5, -0.4375, 0.5, 0.5 },
|
||||
},
|
||||
selection_box = {
|
||||
type = "wallmounted",
|
||||
wall_bottom = { -0.5, -0.5, -0.5, 0.5, -0.4375, 0.5 },
|
||||
wall_top = { -0.5, 0.4375, -0.5, 0.5, 0.5, 0.5 },
|
||||
wall_side = { -0.5, -0.5, -0.5, -0.4375, 0.5, 0.5 },
|
||||
},
|
||||
})
|
||||
|
||||
-- Various kinds of table legs
|
||||
|
||||
-- local above
|
||||
materials = {
|
||||
{ "brass", S("brass") },
|
||||
{ "wrought_iron", S("wrought iron") },
|
||||
local table_colors = {
|
||||
{ "", S("Table"), homedecor.plain_wood },
|
||||
{ "_mahogany", S("Mahogany Table"), homedecor.mahogany_wood },
|
||||
{ "_white", S("White Table"), homedecor.white_wood }
|
||||
}
|
||||
|
||||
for _, t in ipairs(materials) do
|
||||
local name, desc = unpack(t)
|
||||
homedecor.register("table_legs_"..name, {
|
||||
description = S("Table Legs (@1)", desc),
|
||||
drawtype = "plantlike",
|
||||
tiles = {"homedecor_table_legs_"..name..".png"},
|
||||
inventory_image = "homedecor_table_legs_"..name..".png",
|
||||
wield_image = "homedecor_table_legs_"..name..".png",
|
||||
walkable = false,
|
||||
groups = {snappy=3},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = { -0.37, -0.5, -0.37, 0.37, 0.5, 0.37 }
|
||||
},
|
||||
})
|
||||
for _, t in ipairs(table_colors) do
|
||||
local suffix, desc, texture = unpack(t)
|
||||
|
||||
homedecor.register("table"..suffix, {
|
||||
description = desc,
|
||||
tiles = { texture },
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{ -0.4, -0.5, -0.4, -0.3, 0.4, -0.3 },
|
||||
{ 0.3, -0.5, -0.4, 0.4, 0.4, -0.3 },
|
||||
{ -0.4, -0.5, 0.3, -0.3, 0.4, 0.4 },
|
||||
{ 0.3, -0.5, 0.3, 0.4, 0.4, 0.4 },
|
||||
{ -0.5, 0.4, -0.5, 0.5, 0.5, 0.5 },
|
||||
{ -0.4, -0.2, -0.3, -0.3, -0.1, 0.3 },
|
||||
{ 0.3, -0.2, -0.4, 0.4, -0.1, 0.3 },
|
||||
{ -0.3, -0.2, -0.4, 0.4, -0.1, -0.3 },
|
||||
{ -0.3, -0.2, 0.3, 0.3, -0.1, 0.4 },
|
||||
},
|
||||
},
|
||||
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
})
|
||||
end
|
||||
|
||||
homedecor.register("utility_table_legs", {
|
||||
description = S("Legs for Utility Table"),
|
||||
drawtype = "plantlike",
|
||||
tiles = { 'homedecor_utility_table_legs.png' },
|
||||
inventory_image = 'homedecor_utility_table_legs_inv.png',
|
||||
wield_image = 'homedecor_utility_table_legs.png',
|
||||
walkable = false,
|
||||
groups = { snappy = 3 },
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = { -0.37, -0.5, -0.37, 0.37, 0.5, 0.37 }
|
||||
},
|
||||
})
|
||||
|
||||
-- crafting
|
||||
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "homedecor:glass_table_small_round_b 15",
|
||||
recipe = {
|
||||
@ -226,8 +185,6 @@ minetest.register_craft( {
|
||||
}
|
||||
})
|
||||
|
||||
--
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "homedecor:wood_table_small_round_b 15",
|
||||
recipe = {
|
||||
@ -305,7 +262,73 @@ minetest.register_craft({
|
||||
burntime = 30,
|
||||
})
|
||||
|
||||
for _, shape in ipairs (table_shapes) do
|
||||
for _, leg in ipairs(leg_materials) do
|
||||
for _, mat in ipairs(tabletop_materials) do
|
||||
minetest.register_craft({
|
||||
output = "homedecor:"..mat[1].."_table_"..shape.."_with_"..leg[1].."_legs",
|
||||
type = "shapeless",
|
||||
recipe = {
|
||||
"homedecor:"..mat[1].."_table_"..shape,
|
||||
"homedecor:table_legs_"..leg[1]
|
||||
},
|
||||
})
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
minetest.register_craft({
|
||||
output = "homedecor:table",
|
||||
recipe = {
|
||||
{ "group:wood","group:wood", "group:wood" },
|
||||
{ "group:stick", "", "group:stick" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = "homedecor:table_mahogany",
|
||||
recipe = {
|
||||
"homedecor:table",
|
||||
"dye:brown",
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = "homedecor:table_mahogany",
|
||||
recipe = {
|
||||
"homedecor:table",
|
||||
"unifieddyes:dark_orange",
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = "homedecor:table_white",
|
||||
recipe = {
|
||||
"homedecor:table",
|
||||
"dye:white",
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "homedecor:table",
|
||||
burntime = 30,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "homedecor:table_mahogany",
|
||||
burntime = 30,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "homedecor:table_white",
|
||||
burntime = 30,
|
||||
})
|
||||
|
||||
-- recycling
|
||||
|
||||
@ -368,3 +391,8 @@ minetest.register_craft({
|
||||
"homedecor:wood_table_large"
|
||||
}
|
||||
})
|
||||
|
||||
-- Aliases for the above 3dforniture-like tables
|
||||
|
||||
minetest.register_alias("3dforniture:table", "homedecor:table")
|
||||
minetest.register_alias('table', 'homedecor:table')
|
||||
|
@ -1,3 +1,4 @@
|
||||
name = homedecor_tables
|
||||
description = Homedecor mod: tables
|
||||
depends = homedecor_common, default, basic_materials
|
||||
optional_depends = creative
|
||||
|
107
homedecor_tables/models/homedecor_table_large_square.obj
Normal file
@ -0,0 +1,107 @@
|
||||
# Blender v2.83.5 OBJ File: 'homedecor table with legs.blend'
|
||||
# www.blender.org
|
||||
o Cube_Cube.001
|
||||
v -0.500000 -0.500000 0.500000
|
||||
v 0.500000 -0.500000 -0.500000
|
||||
v 0.500000 0.500000 0.500000
|
||||
v 0.500000 0.500000 -0.500000
|
||||
v -0.500000 0.437500 -0.500000
|
||||
v -0.353553 -0.500000 0.353554
|
||||
v -0.353553 0.437515 0.353554
|
||||
v 0.353553 -0.500000 -0.353553
|
||||
v 0.353553 0.437515 -0.353553
|
||||
v 0.500000 -0.500000 0.500000
|
||||
v 0.500000 -0.437500 -0.500000
|
||||
v 0.500000 -0.437500 0.500000
|
||||
v -0.500000 -0.437500 -0.500000
|
||||
v -0.500000 -0.500000 -0.500000
|
||||
v -0.500000 -0.437500 0.500000
|
||||
v 0.500000 0.437500 -0.500000
|
||||
v 0.500000 0.437500 0.500000
|
||||
v -0.500000 0.500000 -0.500000
|
||||
v -0.500000 0.437500 0.500000
|
||||
v -0.500000 0.500000 0.500000
|
||||
v 0.353553 -0.500000 0.353554
|
||||
v 0.353553 0.437515 0.353554
|
||||
v -0.353553 -0.500000 -0.353553
|
||||
v -0.353553 0.437515 -0.353553
|
||||
vt -0.000000 -0.000000
|
||||
vt 1.000000 -0.000000
|
||||
vt 1.000000 0.500000
|
||||
vt -0.000000 0.500000
|
||||
vt 1.000000 1.000000
|
||||
vt -0.000000 1.000000
|
||||
vt -0.000000 0.500000
|
||||
vt 1.000000 0.500000
|
||||
vt -0.000000 1.000000
|
||||
vt -0.000000 0.937500
|
||||
vt 1.000000 0.937500
|
||||
vt -0.000000 0.937500
|
||||
vt 1.000000 0.937500
|
||||
vt 1.000000 1.000000
|
||||
vt 1.000000 1.000000
|
||||
vt -0.000000 1.000000
|
||||
vt -0.000000 0.937500
|
||||
vt 1.000000 0.937500
|
||||
vt 1.000000 1.000000
|
||||
vt -0.000000 1.000000
|
||||
vt -0.000000 0.937500
|
||||
vt 1.000000 0.937500
|
||||
vt -0.000000 0.500000
|
||||
vt 1.000000 0.500000
|
||||
vt 1.000000 1.000000
|
||||
vt -0.000000 1.000000
|
||||
vt 1.000000 -0.000000
|
||||
vt 1.000000 0.500000
|
||||
vt 0.000000 0.500000
|
||||
vt 0.000000 -0.000000
|
||||
vt -0.000000 1.000000
|
||||
vt -0.000000 0.937500
|
||||
vt 1.000000 0.937500
|
||||
vt 1.000000 1.000000
|
||||
vt -0.000000 1.000000
|
||||
vt -0.000000 0.937500
|
||||
vt 1.000000 0.937500
|
||||
vt 1.000000 0.937500
|
||||
vt 1.000000 1.000000
|
||||
vt -0.000000 0.937500
|
||||
vt -0.000000 1.000000
|
||||
vt -0.000000 0.937500
|
||||
vt 1.000000 0.937500
|
||||
vt 1.000000 1.000000
|
||||
vt -0.000000 0.000000
|
||||
vt 1.000000 -0.000000
|
||||
vt 1.000000 1.000000
|
||||
vt 0.000000 1.000000
|
||||
vt -0.000000 0.000000
|
||||
vt 1.000000 -0.000000
|
||||
vt 1.000000 1.000000
|
||||
vt 0.000000 1.000000
|
||||
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
|
||||
vn 0.0000 0.0000 1.0000
|
||||
vn 0.0000 0.0000 -1.0000
|
||||
vn 0.7071 0.0000 -0.7071
|
||||
vn 0.7071 0.0000 0.7071
|
||||
g Cube_Cube.001_top-bottom
|
||||
s off
|
||||
f 14/1/1 2/2/1 10/3/1 1/4/1
|
||||
f 11/5/2 13/6/2 15/7/2 12/8/2
|
||||
g Cube_Cube.001_edges
|
||||
f 11/5/3 12/9/3 10/10/3 2/11/3
|
||||
f 13/6/4 14/12/4 1/13/4 15/14/4
|
||||
f 12/15/5 15/16/5 1/17/5 10/18/5
|
||||
f 13/19/6 11/20/6 2/21/6 14/22/6
|
||||
g Cube_Cube.001_top-bot_with_legs
|
||||
f 20/23/2 3/24/2 4/25/2 18/26/2
|
||||
f 16/27/1 17/28/1 19/29/1 5/30/1
|
||||
g Cube_Cube.001_edges_with_legs
|
||||
f 20/31/5 19/32/5 17/33/5 3/34/5
|
||||
f 4/25/3 3/35/3 17/36/3 16/37/3
|
||||
f 19/38/4 20/39/4 18/26/4 5/40/4
|
||||
f 4/41/6 16/42/6 5/43/6 18/44/6
|
||||
g Cube_Cube.001_legs
|
||||
f 21/45/7 23/46/7 24/47/7 22/48/7
|
||||
f 6/49/8 8/50/8 9/51/8 7/52/8
|
@ -1,43 +1,139 @@
|
||||
v 0.499 -0.499 -0.499
|
||||
v 0.499 -0.499 0.499
|
||||
v -0.499 -0.499 0.499
|
||||
v -0.499 -0.499 -0.499
|
||||
v 0.499 -0.469 -0.499
|
||||
v 0.499 -0.469 0.499
|
||||
v -0.499 -0.469 0.499
|
||||
v -0.499 -0.469 -0.499
|
||||
v 0.469 -0.437 -0.469
|
||||
v 0.469 -0.437 0.469
|
||||
v -0.469 -0.437 0.469
|
||||
v -0.469 -0.437 -0.469
|
||||
vt 0.5 0.029
|
||||
vt 0.971 0.029
|
||||
vt 0.971 0.5
|
||||
vt 0.5 0.5
|
||||
vt 0.015 0.985
|
||||
vt 0.015 0.515
|
||||
vt 0.029 0.529
|
||||
vt 0.029 0.971
|
||||
vt 0.985 0.5
|
||||
vt 0.985 0.029
|
||||
vt 0.5 0.515
|
||||
vt 0.971 0.515
|
||||
vt 0.485 0.029
|
||||
vt 0.485 0.5
|
||||
vt 0.971 0.015
|
||||
vt 0.5 0.015
|
||||
vt 0.471 0.971
|
||||
vt 0.471 0.529
|
||||
vt 0.485 0.515
|
||||
vt 0.485 0.985
|
||||
# Blender v2.83.5 OBJ File: 'homedecor small square table with legs.blend'
|
||||
# www.blender.org
|
||||
o Cube_Cube.001
|
||||
v -0.500000 -0.500000 0.500000
|
||||
v 0.500000 -0.500000 -0.500000
|
||||
v -0.500000 0.437500 -0.500000
|
||||
v -0.353553 -0.500000 0.353554
|
||||
v -0.353553 0.437515 0.353554
|
||||
v 0.353553 -0.500000 -0.353553
|
||||
v 0.353553 0.437515 -0.353553
|
||||
v 0.500000 -0.500000 0.500000
|
||||
v -0.500000 -0.500000 -0.500000
|
||||
v 0.500000 0.437500 -0.500000
|
||||
v 0.500000 0.437500 0.500000
|
||||
v -0.500000 0.437500 0.500000
|
||||
v 0.353553 -0.500000 0.353554
|
||||
v 0.353553 0.437515 0.353554
|
||||
v -0.353553 -0.500000 -0.353553
|
||||
v -0.353553 0.437515 -0.353553
|
||||
v 0.468750 0.500000 0.468750
|
||||
v 0.500000 0.468750 0.500000
|
||||
v 0.500000 0.468750 -0.500000
|
||||
v 0.468750 0.500000 -0.468750
|
||||
v 0.500000 -0.468750 -0.500000
|
||||
v 0.468750 -0.437500 -0.468750
|
||||
v 0.500000 -0.468750 0.500000
|
||||
v 0.468750 -0.437500 0.468750
|
||||
v -0.500000 -0.468750 -0.500000
|
||||
v -0.468750 -0.437500 -0.468750
|
||||
v -0.468750 -0.437500 0.468750
|
||||
v -0.500000 -0.468750 0.500000
|
||||
v -0.468750 0.500000 -0.468750
|
||||
v -0.500000 0.468750 -0.500000
|
||||
v -0.468750 0.500000 0.468750
|
||||
v -0.500000 0.468750 0.500000
|
||||
vt -0.000000 -0.000000
|
||||
vt 1.000000 -0.000000
|
||||
vt 1.000000 0.500000
|
||||
vt -0.000000 0.500000
|
||||
vt 0.968750 0.984375
|
||||
vt 0.031250 0.984375
|
||||
vt 0.031250 0.515625
|
||||
vt 0.968750 0.515625
|
||||
vt 0.000000 0.500000
|
||||
vt 1.000000 0.500000
|
||||
vt 1.000000 1.000000
|
||||
vt 0.000000 1.000000
|
||||
vt 1.000000 0.968750
|
||||
vt 0.000000 0.968750
|
||||
vt 0.000000 0.937500
|
||||
vt 1.000000 0.937500
|
||||
vt 1.000000 0.968750
|
||||
vt 0.000000 0.968750
|
||||
vt 0.000000 0.937500
|
||||
vt 1.000000 0.937500
|
||||
vt 0.000000 0.968750
|
||||
vt 0.000000 0.937500
|
||||
vt 1.000000 0.937500
|
||||
vt 1.000000 0.968750
|
||||
vt 1.000000 0.968750
|
||||
vt 0.000000 0.968750
|
||||
vt 0.000000 0.937500
|
||||
vt 1.000000 0.937500
|
||||
vt 1.000000 -0.000000
|
||||
vt 1.000000 0.500000
|
||||
vt 0.000000 0.500000
|
||||
vt 0.000000 -0.000000
|
||||
vt 0.031250 0.515625
|
||||
vt 0.968750 0.515625
|
||||
vt 0.968750 0.984375
|
||||
vt 0.031250 0.984375
|
||||
vt 0.000000 1.000000
|
||||
vt 0.000000 0.500000
|
||||
vt 1.000000 0.500000
|
||||
vt 1.000000 1.000000
|
||||
vt 0.000000 0.968750
|
||||
vt 0.000000 0.937500
|
||||
vt 1.000000 0.937500
|
||||
vt 1.000000 0.968750
|
||||
vt 0.000000 0.968750
|
||||
vt 0.000000 0.937500
|
||||
vt 1.000000 0.937500
|
||||
vt 1.000000 0.968750
|
||||
vt 1.000000 0.937500
|
||||
vt 1.000000 0.968750
|
||||
vt 0.000000 0.968750
|
||||
vt 0.000000 0.937500
|
||||
vt 1.000000 0.968750
|
||||
vt 0.000000 0.968750
|
||||
vt 0.000000 0.937500
|
||||
vt 1.000000 0.937500
|
||||
vt -0.000000 0.000000
|
||||
vt 1.000000 -0.000000
|
||||
vt 1.000000 1.000000
|
||||
vt 0.000000 1.000000
|
||||
vt -0.000000 0.000000
|
||||
vt 1.000000 -0.000000
|
||||
vt 1.000000 1.000000
|
||||
vt 0.000000 1.000000
|
||||
vn 0.0000 -1.0000 0.0000
|
||||
vn 0.0000 1.0000 0.0000
|
||||
vn 0.0000 0.7071 0.7071
|
||||
vn 0.7071 0.7071 0.0000
|
||||
vn 0.0000 0.7071 -0.7071
|
||||
vn -0.7071 0.7071 0.0000
|
||||
vn 0.0000 0.0000 1.0000
|
||||
vn 0.0000 0.0000 -1.0000
|
||||
vn -1.0000 0.0000 0.0000
|
||||
vn 1.0000 0.0000 0.0000
|
||||
vn 0.7071 0.0000 -0.7071
|
||||
vn 0.7071 0.0000 0.7071
|
||||
g Cube_Cube.001_top-bottom
|
||||
s off
|
||||
f 1/1 2/2 3/3 4/4
|
||||
f 8/5 7/6 11/7 12/8
|
||||
f 1/9 5/3 6/2 2/10
|
||||
f 2/11 6/4 7/3 3/12
|
||||
f 3/13 7/1 8/4 4/14
|
||||
f 5/15 1/2 4/1 8/16
|
||||
f 9/17 12/8 11/7 10/18
|
||||
f 7/6 6/19 10/18 11/7
|
||||
f 5/20 8/5 12/8 9/17
|
||||
f 6/19 5/20 9/17 10/18
|
||||
f 9/1/1 2/2/1 8/3/1 1/4/1
|
||||
f 22/5/2 26/6/2 27/7/2 24/8/2
|
||||
f 24/8/3 27/7/3 28/9/3 23/10/3
|
||||
f 22/5/4 24/8/4 23/10/4 21/11/4
|
||||
f 26/6/5 22/5/5 21/11/5 25/12/5
|
||||
f 27/7/6 26/6/6 25/12/6 28/9/6
|
||||
g Cube_Cube.001_edges
|
||||
f 23/13/7 28/14/7 1/15/7 8/16/7
|
||||
f 25/17/8 21/18/8 2/19/8 9/20/8
|
||||
f 25/21/9 9/22/9 1/23/9 28/24/9
|
||||
f 21/25/10 23/26/10 8/27/10 2/28/10
|
||||
g Cube_Cube.001_top-bot_with_legs
|
||||
f 10/29/1 11/30/1 12/31/1 3/32/1
|
||||
f 31/33/2 17/34/2 20/35/2 29/36/2
|
||||
f 31/33/6 29/36/6 30/37/6 32/38/6
|
||||
f 20/35/4 17/34/4 18/39/4 19/40/4
|
||||
f 17/34/3 31/33/3 32/38/3 18/39/3
|
||||
f 29/36/5 20/35/5 19/40/5 30/37/5
|
||||
g Cube_Cube.001_edges_with_legs
|
||||
f 32/41/7 12/42/7 11/43/7 18/44/7
|
||||
f 19/45/8 10/46/8 3/47/8 30/48/8
|
||||
f 12/49/9 32/50/9 30/51/9 3/52/9
|
||||
f 19/53/10 18/54/10 11/55/10 10/56/10
|
||||
g Cube_Cube.001_legs
|
||||
f 13/57/11 15/58/11 16/59/11 14/60/11
|
||||
f 4/61/12 6/62/12 7/63/12 5/64/12
|
||||
|
Before Width: | Height: | Size: 74 B |
Before Width: | Height: | Size: 189 B After Width: | Height: | Size: 189 B |
Before Width: | Height: | Size: 2.4 KiB |
BIN
homedecor_tables/textures/homedecor_glass_table_large_square.png
Normal file
After Width: | Height: | Size: 604 B |
After Width: | Height: | Size: 315 B |
Before Width: | Height: | Size: 146 B |
Before Width: | Height: | Size: 241 B After Width: | Height: | Size: 597 B |
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 713 B |
Before Width: | Height: | Size: 358 B After Width: | Height: | Size: 642 B |
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 334 B |
Before Width: | Height: | Size: 331 B After Width: | Height: | Size: 476 B |
BIN
homedecor_tables/textures/homedecor_table_legs_wood.png
Normal file
After Width: | Height: | Size: 357 B |
Before Width: | Height: | Size: 325 B After Width: | Height: | Size: 439 B |
Before Width: | Height: | Size: 465 B |
Before Width: | Height: | Size: 338 B |
Before Width: | Height: | Size: 4.3 KiB |