Compare commits
43 Commits
2019-06-07
...
nalc-1.2.0
Author | SHA1 | Date | |
---|---|---|---|
5612f4c884 | |||
5aecf5f2c7 | |||
9be79ec6d0 | |||
4c0f068909 | |||
ce3c77564c | |||
43333687bd | |||
9ec3eab6f4 | |||
9f5cc15e62 | |||
7bcfbbca3a | |||
ed41161554 | |||
77933d9dc3 | |||
e372ccb4d8 | |||
c118b43711 | |||
f6da0f7329 | |||
e84a184946 | |||
0c9d883f28 | |||
97e7a31830 | |||
d897e6d97c | |||
8532dee8ed | |||
356f872327 | |||
6c07a31857 | |||
daef49a255 | |||
1072598701 | |||
60be4a6320 | |||
67f2065408 | |||
f90834ff06 | |||
c871e0d388 | |||
d17ec1d978 | |||
9dcc6c2b4d | |||
80352d69e1 | |||
1d59c2258d | |||
11e6b5d92a | |||
7e7b2bcabb | |||
b28f1314da | |||
17ea2040e2 | |||
5c6a994698 | |||
1eec6e3615 | |||
0753606eb0 | |||
778b5493c7 | |||
fb0ca9a15c | |||
1520d27a73 | |||
5d4c64d3b2 | |||
4eb9ffb088 |
@ -5,3 +5,6 @@ dofile(modpath.."/alias.lua")
|
||||
dofile(modpath.."/node_stairs.lua")
|
||||
dofile(modpath.."/others.lua")
|
||||
dofile(modpath.."/recipes.lua")
|
||||
|
||||
minetest.log("action", "[building_blocks] loaded.")
|
||||
|
||||
|
@ -258,33 +258,6 @@ minetest.register_node("computer:tower", {
|
||||
|
||||
minetest.register_alias("computer:tower_on", "computer:tower")
|
||||
|
||||
-- Printer/scaner combo
|
||||
minetest.register_node("computer:printer", {
|
||||
description = S("Printer-Scanner Combo"),
|
||||
inventory_image = "computer_printer_inv.png",
|
||||
tiles = {"computer_printer_t.png","computer_printer_bt.png","computer_printer_l.png",
|
||||
"computer_printer_r.png","computer_printer_b.png","computer_printer_f.png"},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
walkable = true,
|
||||
groups = {snappy=3},
|
||||
sound = default.node_sound_wood_defaults(),
|
||||
drawtype = "nodebox",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.4375, -0.3125, -0.125, 0.4375, -0.0625, 0.375},
|
||||
{-0.4375, -0.5, -0.125, 0.4375, -0.4375, 0.375},
|
||||
{-0.4375, -0.5, -0.125, -0.25, -0.0625, 0.375},
|
||||
{0.25, -0.5, -0.125, 0.4375, -0.0625, 0.375},
|
||||
{-0.4375, -0.5, -0.0625, 0.4375, -0.0625, 0.375},
|
||||
{-0.375, -0.4375, 0.25, 0.375, -0.0625, 0.4375},
|
||||
{-0.25, -0.25, 0.4375, 0.25, 0.0625, 0.5},
|
||||
{-0.25, -0.481132, -0.3125, 0.25, -0.4375, 0}
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
--Rack Server
|
||||
minetest.register_node("computer:server", {
|
||||
drawtype = "nodebox",
|
||||
|
@ -1,2 +1,4 @@
|
||||
default
|
||||
homedecor_common
|
||||
basic_materials
|
||||
unifieddyes
|
||||
|
@ -94,6 +94,8 @@ end
|
||||
|
||||
local MODPATH = minetest.get_modpath("computer")
|
||||
dofile(MODPATH.."/computers.lua")
|
||||
dofile(MODPATH.."/miscitems.lua")
|
||||
dofile(MODPATH.."/printers.lua")
|
||||
dofile(MODPATH.."/recipes.lua")
|
||||
dofile(MODPATH.."/tetris.lua")
|
||||
|
||||
minetest.log("action", "[computer] loaded.")
|
||||
|
@ -1,68 +0,0 @@
|
||||
-- Copyright (C) 2012-2013 Diego Martínez <kaeza@users.sf.net>
|
||||
|
||||
-- This file defines some items in order to not have to depend on other mods.
|
||||
|
||||
local S = homedecor.gettext
|
||||
|
||||
if (not minetest.get_modpath("homedecor")) then
|
||||
|
||||
minetest.register_craftitem(":basic_materials:plastic_sheet", {
|
||||
description = S("Plastic sheet"),
|
||||
inventory_image = "homedecor_plastic_sheeting.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem(":homedecor:plastic_base", {
|
||||
description = S("Unprocessed Plastic base"),
|
||||
wield_image = "homedecor_plastic_base.png",
|
||||
inventory_image = "homedecor_plastic_base_inv.png",
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = 'homedecor:plastic_base 6',
|
||||
recipe = { "default:junglegrass",
|
||||
"default:junglegrass",
|
||||
"default:junglegrass"
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = 'homedecor:plastic_base 3',
|
||||
recipe = { "default:dry_shrub",
|
||||
"default:dry_shrub",
|
||||
"default:dry_shrub"
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = 'homedecor:plastic_base 4',
|
||||
recipe = { "default:leaves",
|
||||
"default:leaves",
|
||||
"default:leaves",
|
||||
"default:leaves",
|
||||
"default:leaves",
|
||||
"default:leaves"
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "basic_materials:plastic_sheet",
|
||||
recipe = "homedecor:plastic_base",
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = 'fuel',
|
||||
recipe = 'homedecor:plastic_base',
|
||||
burntime = 30,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = 'fuel',
|
||||
recipe = 'basic_materials:plastic_sheet',
|
||||
burntime = 30,
|
||||
})
|
||||
|
||||
end -- not homedecor
|
9835
computer/models/computer_3dprinter_bedflinger.obj
Normal file
61
computer/printers.lua
Normal file
@ -0,0 +1,61 @@
|
||||
-- Printers of some kind or another
|
||||
|
||||
local S = homedecor.gettext
|
||||
|
||||
minetest.register_node("computer:printer", {
|
||||
description = S("Printer-Scanner Combo"),
|
||||
inventory_image = "computer_printer_inv.png",
|
||||
tiles = {"computer_printer_t.png","computer_printer_bt.png","computer_printer_l.png",
|
||||
"computer_printer_r.png","computer_printer_b.png","computer_printer_f.png"},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
walkable = true,
|
||||
groups = {snappy=3},
|
||||
sound = default.node_sound_wood_defaults(),
|
||||
drawtype = "nodebox",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.4375, -0.3125, -0.125, 0.4375, -0.0625, 0.375},
|
||||
{-0.4375, -0.5, -0.125, 0.4375, -0.4375, 0.375},
|
||||
{-0.4375, -0.5, -0.125, -0.25, -0.0625, 0.375},
|
||||
{0.25, -0.5, -0.125, 0.4375, -0.0625, 0.375},
|
||||
{-0.4375, -0.5, -0.0625, 0.4375, -0.0625, 0.375},
|
||||
{-0.375, -0.4375, 0.25, 0.375, -0.0625, 0.4375},
|
||||
{-0.25, -0.25, 0.4375, 0.25, 0.0625, 0.5},
|
||||
{-0.25, -0.481132, -0.3125, 0.25, -0.4375, 0}
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
-- "bedflinger" style 3D Printer (Prusa i3 or equivalent)
|
||||
|
||||
local cbox = {
|
||||
type = "fixed",
|
||||
fixed = {-0.25, -0.25, -0.5, 0.3, 0.3, 0.25 }
|
||||
}
|
||||
|
||||
minetest.register_node("computer:3dprinter_bedflinger", {
|
||||
description = S('3D Printer ("bedflinger")'),
|
||||
inventory_image = "computer_3dprinter_bedflinger_inv.png",
|
||||
tiles = {
|
||||
{ name = "computer_3dprinter_bedflinger.png", color = 0xffffffff },
|
||||
"computer_3dprinter_filament.png"
|
||||
},
|
||||
paramtype = "light",
|
||||
walkable = true,
|
||||
groups = {snappy=3, ud_param2_colorable = 1},
|
||||
sound = default.node_sound_wood_defaults(),
|
||||
drawtype = "mesh",
|
||||
mesh = "computer_3dprinter_bedflinger.obj",
|
||||
paramtype2 = "colorwallmounted",
|
||||
palette = "unifieddyes_palette_colorwallmounted.png",
|
||||
selection_box = cbox,
|
||||
collision_box = cbox,
|
||||
after_place_node = function(pos, placer, itemstack, pointed_thing)
|
||||
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
|
||||
end,
|
||||
on_dig = unifieddyes.on_dig,
|
||||
on_rotate = unifieddyes.fix_after_screwdriver_nsew,
|
||||
})
|
||||
|
@ -1,4 +1,3 @@
|
||||
|
||||
local S = homedecor.gettext
|
||||
|
||||
local shapes = {
|
||||
@ -220,10 +219,10 @@ local function step(pos, fields)
|
||||
if fields then
|
||||
if fields.new then
|
||||
new_game(pos)
|
||||
else
|
||||
elseif t then
|
||||
key(fields)
|
||||
end
|
||||
else
|
||||
elseif t then
|
||||
run = tick()
|
||||
end
|
||||
|
||||
|
BIN
computer/textures/computer_3dprinter_bedflinger.png
Normal file
After Width: | Height: | Size: 3.5 KiB |
BIN
computer/textures/computer_3dprinter_bedflinger_inv.png
Normal file
After Width: | Height: | Size: 3.8 KiB |
BIN
computer/textures/computer_3dprinter_filament.png
Normal file
After Width: | Height: | Size: 216 B |
@ -3,7 +3,80 @@ local S = homedecor.gettext
|
||||
|
||||
screwdriver = screwdriver or {}
|
||||
|
||||
local function start_smoke(pos, node, clicker, chimney)
|
||||
local function fire_particles_on(pos) -- 3 layers of fire
|
||||
local meta = minetest.get_meta(pos)
|
||||
local id = minetest.add_particlespawner({ -- 1 layer big particles fire
|
||||
amount = 9,
|
||||
time = 0,
|
||||
minpos = {x = pos.x - 0.2, y = pos.y - 0.4, z = pos.z - 0.2},
|
||||
maxpos = {x = pos.x + 0.2, y = pos.y - 0.1, z = pos.z + 0.2},
|
||||
minvel = {x= 0, y= 0, z= 0},
|
||||
maxvel = {x= 0, y= 0.1, z= 0},
|
||||
minacc = {x= 0, y= 0, z= 0},
|
||||
maxacc = {x= 0, y= 0.7, z= 0},
|
||||
minexptime = 0.5,
|
||||
maxexptime = 0.7,
|
||||
minsize = 2,
|
||||
maxsize = 5,
|
||||
collisiondetection = false,
|
||||
vertical = true,
|
||||
texture = "fake_fire_particle_anim_fire.png",
|
||||
animation = {type="vertical_frames", aspect_w=16, aspect_h=16, length = 0.8,},
|
||||
})
|
||||
meta:set_int("layer_1", id)
|
||||
|
||||
local id = minetest.add_particlespawner({ -- 2 layer smol particles fire
|
||||
amount = 1,
|
||||
time = 0,
|
||||
minpos = {x = pos.x - 0.1, y = pos.y, z = pos.z - 0.1},
|
||||
maxpos = {x = pos.x + 0.1, y = pos.y + 0.4, z = pos.z + 0.1},
|
||||
minvel = {x= 0, y= 0, z= 0},
|
||||
maxvel = {x= 0, y= 0.1, z= 0},
|
||||
minacc = {x= 0, y= 0, z= 0},
|
||||
maxacc = {x= 0, y= 1, z= 0},
|
||||
minexptime = 0.4,
|
||||
maxexptime = 0.6,
|
||||
minsize = 0.5,
|
||||
maxsize = 0.7,
|
||||
collisiondetection = false,
|
||||
vertical = true,
|
||||
texture = "fake_fire_particle_anim_fire.png",
|
||||
animation = {type="vertical_frames", aspect_w=16, aspect_h=16, length = 0.7,},
|
||||
})
|
||||
meta:set_int("layer_2", id)
|
||||
|
||||
local id = minetest.add_particlespawner({ --3 layer smoke
|
||||
amount = 1,
|
||||
time = 0,
|
||||
minpos = {x = pos.x - 0.1, y = pos.y - 0.2, z = pos.z - 0.1},
|
||||
maxpos = {x = pos.x + 0.2, y = pos.y + 0.4, z = pos.z + 0.2},
|
||||
minvel = {x= 0, y= 0, z= 0},
|
||||
maxvel = {x= 0, y= 0.1, z= 0},
|
||||
minacc = {x= 0, y= 0, z= 0},
|
||||
maxacc = {x= 0, y= 1, z= 0},
|
||||
minexptime = 0.6,
|
||||
maxexptime = 0.8,
|
||||
minsize = 2,
|
||||
maxsize = 4,
|
||||
collisiondetection = true,
|
||||
vertical = true,
|
||||
texture = "fake_fire_particle_anim_smoke.png",
|
||||
animation = {type="vertical_frames", aspect_w=16, aspect_h=16, length = 0.9,},
|
||||
})
|
||||
meta:set_int("layer_3", id)
|
||||
end
|
||||
|
||||
local function fire_particles_off(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local id_1 = meta:get_int("layer_1");
|
||||
local id_2 = meta:get_int("layer_2");
|
||||
local id_3 = meta:get_int("layer_3");
|
||||
minetest.delete_particlespawner(id_1)
|
||||
minetest.delete_particlespawner(id_2)
|
||||
minetest.delete_particlespawner(id_3)
|
||||
end
|
||||
|
||||
local function start_fire_effects(pos, node, clicker, chimney)
|
||||
local this_spawner_meta = minetest.get_meta(pos)
|
||||
local id = this_spawner_meta:get_int("smoky")
|
||||
local s_handle = this_spawner_meta:get_int("sound")
|
||||
@ -41,7 +114,7 @@ local function start_smoke(pos, node, clicker, chimney)
|
||||
max_hear_distance = 5,
|
||||
loop = true
|
||||
})
|
||||
this_spawner_meta:set_int("smoky", id)
|
||||
fire_particles_on(pos)
|
||||
this_spawner_meta:set_int("sound", s_handle)
|
||||
end
|
||||
end
|
||||
@ -83,7 +156,7 @@ minetest.register_node("fake_fire:ice_fire", {
|
||||
aspect_w=16, aspect_h=16, length=1.5}},
|
||||
},
|
||||
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
start_smoke(pos, node, clicker)
|
||||
start_fire_effects(pos, node, clicker)
|
||||
return itemstack
|
||||
end,
|
||||
on_destruct = function (pos)
|
||||
@ -97,42 +170,54 @@ minetest.register_node("fake_fire:ice_fire", {
|
||||
|
||||
minetest.register_alias("fake_fire:fake_fire", "fire:permanent_flame")
|
||||
|
||||
local sbox = {
|
||||
type = 'fixed',
|
||||
fixed = { -8/16, -8/16, -8/16, 8/16, -6/16, 8/16},
|
||||
}
|
||||
|
||||
minetest.register_node("fake_fire:fancy_fire", {
|
||||
inventory_image = "fancy_fire_inv.png",
|
||||
description = S("Fancy Fire"),
|
||||
drawtype = "mesh",
|
||||
mesh = "fancy_fire.obj",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
groups = {dig_immediate=3},
|
||||
sunlight_propagates = true,
|
||||
light_source = 14,
|
||||
walkable = false,
|
||||
damage_per_second = 4,
|
||||
on_rotate = screwdriver.rotate_simple,
|
||||
tiles = {
|
||||
{name="fake_fire_animated.png",
|
||||
animation={type='vertical_frames', aspect_w=16, aspect_h=16, length=1}}, {name='fake_fire_logs.png'}},
|
||||
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
start_smoke(pos, node, clicker)
|
||||
return itemstack
|
||||
end,
|
||||
on_destruct = function (pos)
|
||||
stop_smoke(pos)
|
||||
minetest.sound_play("fire_extinguish", {
|
||||
pos = pos, max_hear_distance = 5
|
||||
})
|
||||
end,
|
||||
drop = {
|
||||
max_items = 3,
|
||||
items = {
|
||||
{
|
||||
items = { "default:torch", "default:torch", "building_blocks:sticks" },
|
||||
rarity = 1,
|
||||
}
|
||||
inventory_image = "fancy_fire_inv.png",
|
||||
description = S("Fancy Fire"),
|
||||
drawtype = "mesh",
|
||||
mesh = "fancy_fire.obj",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
groups = {oddly_breakable_by_hand=3, flammable=0},
|
||||
sunlight_propagates = true,
|
||||
light_source = 13,
|
||||
walkable = false,
|
||||
buildable_to = false,
|
||||
damage_per_second = 3,
|
||||
selection_box = sbox,
|
||||
tiles = {
|
||||
"basic_materials_concrete_block.png",
|
||||
"default_junglewood.png",
|
||||
"fake_fire_empty_tile.png"
|
||||
},
|
||||
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
fire_particles_on(pos)
|
||||
return itemstack
|
||||
end,
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
fire_particles_on(pos)
|
||||
end,
|
||||
on_destruct = function(pos, oldnode, oldmetadata, digger)
|
||||
fire_particles_off(pos)
|
||||
minetest.sound_play("fire_extinguish", {
|
||||
pos = pos, max_hear_distance = 5
|
||||
})
|
||||
end,
|
||||
drop = {
|
||||
max_items = 3,
|
||||
items = {
|
||||
{
|
||||
items = { "default:torch", "default:torch", "building_blocks:sticks" },
|
||||
rarity = 1,
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
-- EMBERS
|
||||
minetest.register_node("fake_fire:embers", {
|
||||
@ -168,7 +253,7 @@ for _, mat in ipairs(materials) do
|
||||
},
|
||||
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
local chimney = 1
|
||||
start_smoke(pos, node, clicker, chimney)
|
||||
start_fire_effects(pos, node, clicker, chimney)
|
||||
return itemstack
|
||||
end,
|
||||
on_destruct = function (pos)
|
||||
@ -209,8 +294,24 @@ minetest.register_craft({
|
||||
})
|
||||
|
||||
-- ALIASES
|
||||
|
||||
minetest.register_alias("fake_fire:smokeless_fire", "fake_fire:fake_fire")
|
||||
minetest.register_alias("fake_fire:smokeless_ice_fire", "fake_fire:ice_fire")
|
||||
minetest.register_alias("fake_fire:smokeless_chimney_top_stone", "fake_fire:chimney_top_stone")
|
||||
minetest.register_alias("fake_fire:smokeless_chimney_top_sandstone", "fake_fire:chimney_top_sandstone")
|
||||
minetest.register_alias("fake_fire:flint", "fake_fire:flint_and_steel")
|
||||
|
||||
-- OTHER
|
||||
|
||||
minetest.register_lbm({
|
||||
name = "fake_fire:reload_particles",
|
||||
label = "restart fire particles on reload",
|
||||
nodenames = {"fake_fire:fancy_fire"},
|
||||
run_at_every_load = true,
|
||||
action = function(pos, node)
|
||||
fire_particles_off(pos)
|
||||
fire_particles_on(pos)
|
||||
end
|
||||
})
|
||||
|
||||
minetest.log("action", "[fake_fire] loaded.")
|
||||
|
BIN
fake_fire/textures/fake_fire_empty_tile.png
Normal file
After Width: | Height: | Size: 68 B |
Before Width: | Height: | Size: 2.0 KiB |
BIN
fake_fire/textures/fake_fire_particle_anim_fire.png
Normal file
After Width: | Height: | Size: 251 B |
BIN
fake_fire/textures/fake_fire_particle_anim_smoke.png
Normal file
After Width: | Height: | Size: 275 B |
@ -89,28 +89,19 @@ end
|
||||
-- 3d-ify default mtg wood and steel doors and trap doors
|
||||
|
||||
if minetest.get_modpath("doors") then
|
||||
local function clone_node(name)
|
||||
local node2 = {}
|
||||
local node = minetest.registered_nodes[name]
|
||||
for k,v in pairs(node) do
|
||||
node2[k]=v
|
||||
end
|
||||
return node2
|
||||
end
|
||||
|
||||
local def
|
||||
for _,mat in ipairs({"wood", "steel"}) do
|
||||
def = clone_node("doors:door_"..mat.."_a")
|
||||
def = table.copy(minetest.registered_nodes["doors:door_"..mat.."_a"])
|
||||
def.mesh = "homedecor_3d_door_"..mat.."_a.obj"
|
||||
minetest.register_node(":doors:door_"..mat.."_a", def)
|
||||
|
||||
def = clone_node("doors:door_"..mat.."_b")
|
||||
def = table.copy(minetest.registered_nodes["doors:door_"..mat.."_b"])
|
||||
def.mesh = "homedecor_3d_door_"..mat.."_b.obj"
|
||||
minetest.register_node(":doors:door_"..mat.."_b", def)
|
||||
end
|
||||
|
||||
for _,mat in ipairs({"", "_steel"}) do
|
||||
def = clone_node("doors:trapdoor"..mat)
|
||||
def = table.copy(minetest.registered_nodes["doors:trapdoor"..mat])
|
||||
def.drawtype = "mesh"
|
||||
def.mesh = "homedecor_3d_trapdoor"..mat..".obj"
|
||||
def.tiles = {
|
||||
@ -119,7 +110,7 @@ if minetest.get_modpath("doors") then
|
||||
}
|
||||
minetest.register_node(":doors:trapdoor"..mat, def)
|
||||
|
||||
def = clone_node("doors:trapdoor"..mat.."_open")
|
||||
def = table.copy(minetest.registered_nodes["doors:trapdoor"..mat.."_open"])
|
||||
def.mesh = "homedecor_3d_trapdoor"..mat.."_open.obj"
|
||||
def.drawtype = "mesh"
|
||||
def.tiles = {
|
||||
@ -130,3 +121,6 @@ if minetest.get_modpath("doors") then
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
minetest.log("action", "[homedecor_3d_extra] loaded.")
|
||||
|
||||
|
@ -15,6 +15,7 @@ minetest.register_node(":homedecor:bathroom_tiles_dark", {
|
||||
groups = {cracky=3, ud_param2_colorable = 1},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
on_construct = unifieddyes.on_construct,
|
||||
on_dig = unifieddyes.on_dig,
|
||||
})
|
||||
|
||||
minetest.register_node(":homedecor:bathroom_tiles_medium", {
|
||||
@ -31,6 +32,7 @@ minetest.register_node(":homedecor:bathroom_tiles_medium", {
|
||||
groups = {cracky=3, ud_param2_colorable = 1},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
on_construct = unifieddyes.on_construct,
|
||||
on_dig = unifieddyes.on_dig,
|
||||
})
|
||||
|
||||
minetest.register_node(":homedecor:bathroom_tiles_light", {
|
||||
@ -47,6 +49,7 @@ minetest.register_node(":homedecor:bathroom_tiles_light", {
|
||||
groups = {cracky=3, ud_param2_colorable = 1},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
on_construct = unifieddyes.on_construct,
|
||||
on_dig = unifieddyes.on_dig,
|
||||
})
|
||||
|
||||
local tr_cbox = {
|
||||
|
@ -59,6 +59,7 @@ homedecor.register("bed_regular", {
|
||||
after_dig_node = function(pos, oldnode, oldmetadata, digger)
|
||||
homedecor.unextend_bed(pos)
|
||||
end,
|
||||
on_dig = unifieddyes.on_dig,
|
||||
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
local itemname = itemstack:get_name()
|
||||
if itemname == "homedecor:bed_regular" then
|
||||
@ -92,6 +93,7 @@ homedecor.register("bed_extended", {
|
||||
after_dig_node = function(pos, oldnode, oldmetadata, digger)
|
||||
homedecor.unextend_bed(pos)
|
||||
end,
|
||||
on_dig = unifieddyes.on_dig,
|
||||
-- on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
-- homedecor.beds_on_rightclick(pos, node, clicker)
|
||||
-- return itemstack
|
||||
@ -128,6 +130,7 @@ homedecor.register("bed_kingsize", {
|
||||
inv:add_item("main", "homedecor:bed_regular 2")
|
||||
end
|
||||
end,
|
||||
on_dig = unifieddyes.on_dig,
|
||||
-- on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
-- homedecor.beds_on_rightclick(pos, node, clicker)
|
||||
-- return itemstack
|
||||
|
@ -25,7 +25,7 @@ minetest.register_node(":homedecor:cobweb_corner", {
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_node(":Lhomedecor:cobweb_centered", {
|
||||
minetest.register_node(":homedecor:cobweb_centered", {
|
||||
description = S("Cobweb"),
|
||||
drawtype = "nodebox",
|
||||
tiles = { "homedecor_cobweb.png" },
|
||||
|
@ -80,7 +80,7 @@ local furnace_can_dig = function(pos,player)
|
||||
end
|
||||
|
||||
function homedecor.register_furnace(name, furnacedef)
|
||||
furnacedef.fire_fg = furnacedef.fire_bg or "default_furnace_fire_fg.png"
|
||||
furnacedef.fire_fg = furnacedef.fire_fg or "default_furnace_fire_fg.png"
|
||||
furnacedef.fire_bg = furnacedef.fire_bg or "default_furnace_fire_bg.png"
|
||||
|
||||
furnacedef.output_slots = furnacedef.output_slots or 4
|
||||
|
@ -77,6 +77,6 @@ dofile(modpath.."/mt_game_beds_functions.lua")
|
||||
dofile(modpath.."/sit.lua")
|
||||
dofile(modpath.."/crafts.lua")
|
||||
|
||||
if minetest.settings:get_bool("log_mod") then
|
||||
if minetest.settings:get_bool("log_mods") then
|
||||
minetest.log("action", "[HomeDecor API] " .. S("Loaded!"))
|
||||
end
|
||||
|
Before Width: | Height: | Size: 591 B After Width: | Height: | Size: 591 B |
0
homedecor_common/tools/updatepo.sh
Executable file → Normal file
@ -3,17 +3,6 @@
|
||||
local S = homedecor.gettext
|
||||
local mesecons_mp = minetest.get_modpath("mesecons")
|
||||
|
||||
-- clone node
|
||||
|
||||
function hd_doors_clone_node(name)
|
||||
local node2 = {}
|
||||
local node = minetest.registered_nodes[name]
|
||||
for k,v in pairs(node) do
|
||||
node2[k]=v
|
||||
end
|
||||
return node2
|
||||
end
|
||||
|
||||
-- new doors using minetest_game doors API
|
||||
|
||||
local door_list = {
|
||||
@ -181,22 +170,22 @@ for _, door in ipairs(door_list) do
|
||||
local nn_b = "doors:homedecor_"..door.name.."_b"
|
||||
|
||||
if door.alpha then
|
||||
local def = hd_doors_clone_node(nn_a)
|
||||
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 = hd_doors_clone_node(nn_b)
|
||||
def = table.copy(minetest.registered_nodes[nn_b])
|
||||
def.use_texture_alpha = true
|
||||
minetest.register_node(":"..nn_b, def)
|
||||
end
|
||||
|
||||
if door.custom_model and hd_3d then
|
||||
def = hd_doors_clone_node(nn_a)
|
||||
def = table.copy(minetest.registered_nodes[nn_a])
|
||||
def.mesh = door.custom_model.."_a.obj"
|
||||
minetest.register_node(":"..nn_a, def)
|
||||
|
||||
def = hd_doors_clone_node(nn_b)
|
||||
def = table.copy(minetest.registered_nodes[nn_b])
|
||||
def.mesh = door.custom_model.."_b.obj"
|
||||
minetest.register_node(":"..nn_b, def)
|
||||
end
|
||||
@ -468,8 +457,8 @@ minetest.register_craft( {
|
||||
type = "shapeless",
|
||||
output = "homedecor:gate_half_door_closed 4",
|
||||
recipe = {
|
||||
"homedecor:door_wood_plain_a",
|
||||
"homedecor:door_wood_plain_a"
|
||||
"doors:homedecor_wood_plain_a",
|
||||
"doors:homedecor_wood_plain_a"
|
||||
},
|
||||
})
|
||||
|
||||
@ -477,8 +466,8 @@ minetest.register_craft( {
|
||||
type = "shapeless",
|
||||
output = "homedecor:gate_half_door_white_closed 4",
|
||||
recipe = {
|
||||
"homedecor:door_bedroom_a",
|
||||
"homedecor:door_bedroom_a"
|
||||
"doors:homedecor_bedroom_a",
|
||||
"doors:homedecor_bedroom_a"
|
||||
},
|
||||
})
|
||||
|
||||
@ -553,7 +542,7 @@ minetest.register_craft( {
|
||||
-- plain wood, non-windowed
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "homedecor:door_wood_plain_a 2",
|
||||
output = "doors:homedecor_wood_plain 2",
|
||||
recipe = {
|
||||
{ "group:wood", "group:wood", "" },
|
||||
{ "group:wood", "group:wood", "default:steel_ingot" },
|
||||
@ -564,7 +553,7 @@ minetest.register_craft( {
|
||||
-- fancy exterior
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "homedecor:door_exterior_fancy_a 2",
|
||||
output = "doors:homedecor_exterior_fancy 2",
|
||||
recipe = {
|
||||
{ "group:wood", "default:glass" },
|
||||
{ "group:wood", "group:wood" },
|
||||
@ -572,12 +561,10 @@ minetest.register_craft( {
|
||||
},
|
||||
})
|
||||
|
||||
-- wood and glass (grid style)
|
||||
|
||||
-- bare
|
||||
-- French style wood/glass
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "homedecor:door_wood_glass_oak_a 2",
|
||||
output = "doors:homedecor_french_oak 2",
|
||||
recipe = {
|
||||
{ "default:glass", "group:wood" },
|
||||
{ "group:wood", "default:glass" },
|
||||
@ -586,7 +573,7 @@ minetest.register_craft( {
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "homedecor:door_wood_glass_oak_a 2",
|
||||
output = "doors:homedecor_french_oak 2",
|
||||
recipe = {
|
||||
{ "group:wood", "default:glass" },
|
||||
{ "default:glass", "group:wood" },
|
||||
@ -594,27 +581,23 @@ minetest.register_craft( {
|
||||
},
|
||||
})
|
||||
|
||||
-- mahogany
|
||||
|
||||
minetest.register_craft( {
|
||||
type = "shapeless",
|
||||
output = "homedecor:door_wood_glass_mahogany_a 2",
|
||||
output = "doors:homedecor_french_mahogany 2",
|
||||
recipe = {
|
||||
"dye:brown",
|
||||
"homedecor:door_wood_glass_oak_a",
|
||||
"homedecor:door_wood_glass_oak_a"
|
||||
"doors:homedecor_french_oak",
|
||||
"doors:homedecor_french_oak"
|
||||
},
|
||||
})
|
||||
|
||||
-- white
|
||||
|
||||
minetest.register_craft( {
|
||||
type = "shapeless",
|
||||
output = "homedecor:door_wood_glass_white_a 2",
|
||||
output = "doors:homedecor_french_white 2",
|
||||
recipe = {
|
||||
"dye:white",
|
||||
"homedecor:door_wood_glass_oak_a",
|
||||
"homedecor:door_wood_glass_oak_a"
|
||||
"doors:homedecor_french_oak",
|
||||
"doors:homedecor_french_oak"
|
||||
},
|
||||
})
|
||||
|
||||
@ -623,7 +606,7 @@ minetest.register_craft( {
|
||||
-- oak
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "homedecor:door_closet_oak_a 2",
|
||||
output = "doors:homedecor_closet_oak 2",
|
||||
recipe = {
|
||||
{ "", "group:stick", "group:stick" },
|
||||
{ "default:steel_ingot", "group:stick", "group:stick" },
|
||||
@ -635,18 +618,18 @@ minetest.register_craft( {
|
||||
|
||||
minetest.register_craft( {
|
||||
type = "shapeless",
|
||||
output = "homedecor:door_closet_mahogany_a 2",
|
||||
output = "doors:homedecor_closet_mahogany 2",
|
||||
recipe = {
|
||||
"homedecor:door_closet_oak_a",
|
||||
"homedecor:door_closet_oak_a",
|
||||
"doors:homedecor_closet_oak",
|
||||
"doors:homedecor_closet_oak",
|
||||
"dye:brown"
|
||||
},
|
||||
})
|
||||
|
||||
-- wrought fence-like door
|
||||
-- wrought iron fence-like door
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "homedecor:door_wrought_iron_a 2",
|
||||
output = "doors:homedecor_wrought_iron 2",
|
||||
recipe = {
|
||||
{ "homedecor:pole_wrought_iron", "default:iron_lump" },
|
||||
{ "homedecor:pole_wrought_iron", "default:iron_lump" },
|
||||
@ -654,21 +637,21 @@ minetest.register_craft( {
|
||||
},
|
||||
})
|
||||
|
||||
-- bedroom door
|
||||
-- bedroom/panel door
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "homedecor:door_bedroom_a",
|
||||
output = "doors:homedecor_basic_panel",
|
||||
recipe = {
|
||||
{ "dye:white", "dye:white", "" },
|
||||
{ "homedecor:door_wood_plain_a", "basic_materials:brass_ingot", "" },
|
||||
{ "doors:homedecor_wood_plain", "basic_materials:brass_ingot", "" },
|
||||
{ "", "", "" },
|
||||
},
|
||||
})
|
||||
|
||||
-- woodglass door
|
||||
-- basic wood/glass single-lite door
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "homedecor:door_woodglass_a",
|
||||
output = "doors:homedecor_woodglass",
|
||||
recipe = {
|
||||
{ "group:wood", "default:glass", "" },
|
||||
{ "group:wood", "default:glass", "basic_materials:brass_ingot" },
|
||||
@ -676,10 +659,10 @@ minetest.register_craft( {
|
||||
},
|
||||
})
|
||||
|
||||
-- woodglass door type 2
|
||||
-- "Carolina" door
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "homedecor:door_woodglass2_a",
|
||||
output = "doors:homedecor_carolina",
|
||||
recipe = {
|
||||
{ "default:glass", "default:glass", "" },
|
||||
{ "group:wood", "group:wood", "default:iron_lump" },
|
||||
|
@ -16,8 +16,6 @@ function homedecor.toggle_switch(pos, node, clicker, itemstack, pointed_thing)
|
||||
end
|
||||
|
||||
local on_rc
|
||||
local switch_receptor
|
||||
|
||||
if minetest.get_modpath("mesecons") then
|
||||
on_rc = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
local t = homedecor.toggle_switch(pos, node, clicker, itemstack, pointed_thing)
|
||||
@ -28,12 +26,6 @@ if minetest.get_modpath("mesecons") then
|
||||
mesecon.receptor_on(pos, mesecon.rules.buttonlike_get(node))
|
||||
end
|
||||
end
|
||||
switch_receptor = {
|
||||
receptor = {
|
||||
state = mesecon.state[onoff],
|
||||
rules = mesecon.rules.buttonlike_get
|
||||
}
|
||||
}
|
||||
end
|
||||
|
||||
homedecor.register("power_outlet", {
|
||||
@ -65,6 +57,16 @@ homedecor.register("power_outlet", {
|
||||
|
||||
for _, onoff in ipairs ({"on", "off"}) do
|
||||
|
||||
local switch_receptor
|
||||
if minetest.get_modpath("mesecons") then
|
||||
switch_receptor = {
|
||||
receptor = {
|
||||
state = mesecon.state[onoff],
|
||||
rules = mesecon.rules.buttonlike_get
|
||||
}
|
||||
}
|
||||
end
|
||||
|
||||
local model = {
|
||||
{ -0.125, -0.1875, 0.4375, 0.125, 0.125, 0.5 },
|
||||
{ -0.03125, 0, 0.40625, 0.03125, 0.0625, 0.5 },
|
||||
|
@ -2,6 +2,7 @@ homedecor_common
|
||||
default
|
||||
dye
|
||||
creative
|
||||
basic_materials
|
||||
moreblocks?
|
||||
building_blocks?
|
||||
bucket?
|
||||
|
@ -349,7 +349,7 @@ minetest.register_craft({
|
||||
recipe = {
|
||||
{ "","homedecor:fence_chainlink","" },
|
||||
{ "default:steel_ingot","fake_fire:embers","default:steel_ingot" },
|
||||
{ "homedecor:pole_wrought_iron","default:steel_ingot","homedecor:pole_wrought_iron" }
|
||||
{ "basic_materials:steel_bar","default:steel_ingot","basic_materials:steel_bar" }
|
||||
},
|
||||
})
|
||||
|
||||
|
@ -1,19 +1,5 @@
|
||||
-- This file adds fences of various types
|
||||
|
||||
local signs_modpath = minetest.get_modpath("signs_lib")
|
||||
|
||||
local sign_post_model = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.4375, -0.25, -0.1875, 0.4375, 0.375, -0.125},
|
||||
{-0.125, -0.5, -0.125, 0.125, 0.5, 0.125},
|
||||
}
|
||||
}
|
||||
|
||||
if signs_modpath then
|
||||
sign_post_model = signs_lib.sign_post_model.nodebox
|
||||
end
|
||||
|
||||
local S = homedecor.gettext
|
||||
|
||||
local materials = {
|
||||
@ -23,43 +9,17 @@ local materials = {
|
||||
|
||||
for _, m in ipairs(materials) do
|
||||
|
||||
local desc, name = unpack(m)
|
||||
local desc, name = unpack(m)
|
||||
|
||||
homedecor.register("fence_"..name, {
|
||||
description = S("Fence/railing (@1)", desc),
|
||||
drawtype = "fencelike",
|
||||
tiles = {"homedecor_generic_metal_"..name..".png"},
|
||||
inventory_image = "homedecor_fence_"..name..".png",
|
||||
selection_box = homedecor.nodebox.bar_y(1/7),
|
||||
groups = {snappy=3},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
})
|
||||
|
||||
-- brass/wrought iron with signs:
|
||||
|
||||
homedecor.register("fence_"..name.."_with_sign", {
|
||||
description = S("Fence/railing with sign (@1)", desc),
|
||||
tiles = {
|
||||
"homedecor_sign_"..name.."_post_top.png",
|
||||
"homedecor_sign_"..name.."_post_bottom.png",
|
||||
"homedecor_sign_"..name.."_post_side.png",
|
||||
"homedecor_sign_"..name.."_post_side.png",
|
||||
"homedecor_sign_"..name.."_post_back.png",
|
||||
"homedecor_sign_"..name.."_post_front.png",
|
||||
},
|
||||
wield_image = "homedecor_sign_"..name.."_post.png",
|
||||
node_box = sign_post_model,
|
||||
groups = {snappy=3,not_in_creative_inventory=1},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
sunlight_propagates = true,
|
||||
drop = {
|
||||
max_items = 2,
|
||||
items = {
|
||||
{ items = { "default:sign_wall" }},
|
||||
{ items = { "homedecor:fence_"..name }},
|
||||
},
|
||||
},
|
||||
})
|
||||
homedecor.register("fence_"..name, {
|
||||
description = S("Fence/railing (@1)", desc),
|
||||
drawtype = "fencelike",
|
||||
tiles = {"homedecor_generic_metal_"..name..".png"},
|
||||
inventory_image = "homedecor_fence_"..name..".png",
|
||||
selection_box = homedecor.nodebox.bar_y(1/7),
|
||||
groups = {snappy=3},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
})
|
||||
|
||||
end
|
||||
|
||||
@ -303,9 +263,15 @@ homedecor.register("fence_wrought_iron_2_corner", {
|
||||
},
|
||||
})
|
||||
|
||||
if signs_modpath then
|
||||
signs_lib.register_fence_with_sign("homedecor:fence_brass", "homedecor:fence_brass_with_sign")
|
||||
signs_lib.register_fence_with_sign("homedecor:fence_wrought_iron", "homedecor:fence_wrought_iron_with_sign")
|
||||
-- insert the old wood signs-on-metal-fences into signs_lib's conversion LBM
|
||||
if minetest.get_modpath("signs_lib") then
|
||||
table.insert(signs_lib.old_fenceposts_with_signs, "homedecor:fence_brass_with_sign")
|
||||
signs_lib.old_fenceposts["homedecor:fence_brass_with_sign"] = "homedecor:fence_brass"
|
||||
signs_lib.old_fenceposts_replacement_signs["homedecor:fence_brass_with_sign"] = "default:sign_wall_wood_onpole"
|
||||
|
||||
table.insert(signs_lib.old_fenceposts_with_signs, "homedecor:fence_wrought_iron_with_sign")
|
||||
signs_lib.old_fenceposts["homedecor:fence_wrought_iron_with_sign"] = "homedecor:fence_wrought_iron"
|
||||
signs_lib.old_fenceposts_replacement_signs["homedecor:fence_wrought_iron_with_sign"] = "default:sign_wall_wood_onpole"
|
||||
end
|
||||
|
||||
-- crafting
|
||||
|
@ -164,18 +164,7 @@ homedecor.register("beer_mug", {
|
||||
on_use = function(itemstack, user, pointed_thing)
|
||||
local inv = user:get_inventory()
|
||||
if not creative.is_enabled_for(user:get_player_name()) then
|
||||
if inv:room_for_item("main", "vessels:drinking_glass 1") then
|
||||
inv:add_item("main", "vessels:drinking_glass 1")
|
||||
else
|
||||
local pos = user:get_pos()
|
||||
local dir = user:get_look_dir()
|
||||
local fdir = minetest.dir_to_facedir(dir)
|
||||
local pos_fwd = { x = pos.x + homedecor.fdir_to_fwd[fdir+1][1],
|
||||
y = pos.y + 1,
|
||||
z = pos.z + homedecor.fdir_to_fwd[fdir+1][2] }
|
||||
minetest.add_item(pos_fwd, "vessels:drinking_glass 1")
|
||||
end
|
||||
minetest.do_item_eat(2, nil, itemstack, user, pointed_thing)
|
||||
minetest.do_item_eat(2, "vessels:drinking_glass 1", itemstack, user, pointed_thing)
|
||||
return itemstack
|
||||
end
|
||||
end
|
||||
|
@ -11,6 +11,8 @@ local function is_protected(pos, clicker)
|
||||
return false
|
||||
end
|
||||
|
||||
local hd_mesecons = minetest.get_modpath("mesecons")
|
||||
|
||||
-- control and brightness for dimmable lamps
|
||||
|
||||
local brightn_cycle = {
|
||||
@ -51,7 +53,7 @@ local rules_alldir = {
|
||||
|
||||
local actions
|
||||
|
||||
if minetest.get_modpath("mesecons") then
|
||||
if hd_mesecons then
|
||||
|
||||
actions = {
|
||||
action_off = function(pos, node)
|
||||
@ -96,11 +98,12 @@ local digiline_on_punch
|
||||
if minetest.get_modpath("digilines") then
|
||||
|
||||
local on_digiline_receive_string = function(pos, node, channel, msg)
|
||||
if not msg or not channel then return end
|
||||
local meta = minetest.get_meta(pos)
|
||||
local setchan = meta:get_string("channel")
|
||||
if setchan ~= channel then return end
|
||||
|
||||
if msg and msg ~= "" then
|
||||
if msg ~= "" and (type(msg) == "string" or type(msg) == "number" ) then
|
||||
local n = tonumber(msg)
|
||||
local suff = word_to_bright[msg] or "invalid"
|
||||
|
||||
@ -132,7 +135,7 @@ if minetest.get_modpath("digilines") then
|
||||
end
|
||||
end)
|
||||
|
||||
if minetest.get_modpath("mesecons") then
|
||||
if hd_mesecons then
|
||||
homedecor.digiline_wall_light = {
|
||||
effector = {
|
||||
action = on_digiline_receive_string,
|
||||
@ -182,10 +185,14 @@ function homedecor.toggle_light(pos, node, clicker, itemstack, pointed_thing)
|
||||
local level = string.sub(node.name, sep + 1)
|
||||
local n = tonumber(level) or 0
|
||||
|
||||
if level == "off" or n < 4 then
|
||||
newsuff = "_14"
|
||||
else
|
||||
if level == "on" then
|
||||
newsuff = "_off"
|
||||
elseif level == "off" then
|
||||
newsuff = "_on"
|
||||
elseif n > 3 then
|
||||
newsuff = "_0"
|
||||
else
|
||||
newsuff = "_14"
|
||||
end
|
||||
|
||||
minetest.swap_node(pos, {name = string.sub(node.name, 1, sep - 1)..newsuff, param2 = node.param2})
|
||||
@ -279,6 +286,7 @@ for brightness_level = 0, 14 do
|
||||
after_place_node = function(pos, placer, itemstack, pointed_thing)
|
||||
unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing)
|
||||
end,
|
||||
on_dig = unifieddyes.on_dig,
|
||||
on_rightclick = homedecor.toggle_light,
|
||||
drop = {
|
||||
items = {
|
||||
@ -344,6 +352,7 @@ for brightness_level = 0, 14 do
|
||||
after_place_node = function(pos, placer, itemstack, pointed_thing)
|
||||
unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing)
|
||||
end,
|
||||
on_dig = unifieddyes.on_dig,
|
||||
on_rightclick = homedecor.toggle_light,
|
||||
drop = {
|
||||
items = {
|
||||
@ -410,6 +419,7 @@ for brightness_level = 0, 14 do
|
||||
after_place_node = function(pos, placer, itemstack, pointed_thing)
|
||||
unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing)
|
||||
end,
|
||||
on_dig = unifieddyes.on_dig,
|
||||
on_rightclick = homedecor.toggle_light,
|
||||
drop = {
|
||||
items = {
|
||||
@ -630,6 +640,7 @@ for brightness_level = 0, 14 do
|
||||
after_place_node = function(pos, placer, itemstack, pointed_thing)
|
||||
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
|
||||
end,
|
||||
on_dig = unifieddyes.on_dig,
|
||||
on_rotate = unifieddyes.fix_after_screwdriver_nsew,
|
||||
light_source = brightness_level,
|
||||
on_rightclick = homedecor.toggle_light,
|
||||
@ -707,7 +718,8 @@ for brightness_level = 0, 14 do
|
||||
digiline = homedecor.digiline_alldir_light,
|
||||
mesecons = homedecor.mesecon_wall_light,
|
||||
on_rightclick = homedecor.toggle_light,
|
||||
on_punch = digiline_on_punch
|
||||
on_punch = digiline_on_punch,
|
||||
on_dig = unifieddyes.on_dig,
|
||||
})
|
||||
|
||||
homedecor.register("standing_lamp_"..brightness_level, {
|
||||
@ -738,7 +750,8 @@ for brightness_level = 0, 14 do
|
||||
digiline = homedecor.digiline_alldir_light,
|
||||
mesecons = homedecor.mesecon_wall_light,
|
||||
on_rightclick = homedecor.toggle_light,
|
||||
on_punch = digiline_on_punch
|
||||
on_punch = digiline_on_punch,
|
||||
on_dig = unifieddyes.on_dig,
|
||||
})
|
||||
end
|
||||
|
||||
@ -749,6 +762,15 @@ for _, light_brightn_name in ipairs({"off", "on"}) do
|
||||
|
||||
local onflag = (light_brightn_name == "on")
|
||||
local nici = (light_brightn_name == "off") and 1 or nil
|
||||
local nici_m = (light_brightn_name == "off") and 1 or nil
|
||||
local on_rc = homedecor.toggle_light
|
||||
local di = "on"
|
||||
|
||||
if hd_mesecons then
|
||||
nici_m = (light_brightn_name ~= "off") and 1 or nil
|
||||
on_rc = nil
|
||||
di = "off"
|
||||
end
|
||||
|
||||
local gen_ls_tex_white = "homedecor_generic_light_source_off.png"
|
||||
if onflag then gen_ls_tex_white = "homedecor_generic_light_source_white.png" end
|
||||
@ -829,14 +851,14 @@ for _, light_brightn_name in ipairs({"off", "on"}) do
|
||||
"homedecor:rope_light_on_floor_off",
|
||||
"group:mesecon_conductor_craftable"
|
||||
},
|
||||
groups = {cracky=3, not_in_creative_inventory = nici},
|
||||
groups = {cracky=3, oddly_breakable_by_hand=3, not_in_creative_inventory = nici_m},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
on_rightclick = homedecor.toggle_light,
|
||||
drop = {
|
||||
items = {
|
||||
{items = {"homedecor:rope_light_on_floor_on"} },
|
||||
{items = {"homedecor:rope_light_on_floor_"..di} },
|
||||
}
|
||||
},
|
||||
on_rightclick = on_rc,
|
||||
mesecons = {
|
||||
conductor = {
|
||||
state = mesecon and (onflag and mesecon.state.on or mesecon.state.off),
|
||||
@ -875,14 +897,14 @@ for _, light_brightn_name in ipairs({"off", "on"}) do
|
||||
"homedecor:rope_light_on_ceiling_off",
|
||||
"group:mesecon_conductor_craftable"
|
||||
},
|
||||
groups = {cracky=3, not_in_creative_inventory = nici},
|
||||
groups = {cracky=3, oddly_breakable_by_hand=3, not_in_creative_inventory = nici_m},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
on_rightclick = homedecor.toggle_light,
|
||||
drop = {
|
||||
items = {
|
||||
{items = {"homedecor:rope_light_on_ceiling_on"}},
|
||||
{items = {"homedecor:rope_light_on_ceiling_"..di}},
|
||||
}
|
||||
},
|
||||
on_rightclick = on_rc,
|
||||
mesecons = {
|
||||
conductor = {
|
||||
state = mesecon and (onflag and mesecon.state.on or mesecon.state.off),
|
||||
@ -1837,6 +1859,11 @@ minetest.register_alias("torch_wall", "homedecor:torch_
|
||||
minetest.register_alias("homedecor:plasma_ball", "homedecor:plasma_ball_on")
|
||||
minetest.register_alias("homedecor:wall_lamp", "homedecor:wall_lamp_on")
|
||||
|
||||
minetest.register_alias("homedecor:rope_light_on_floor_0", "homedecor:rope_light_on_floor_off")
|
||||
minetest.register_alias("homedecor:rope_light_on_floor_14", "homedecor:rope_light_on_floor_on")
|
||||
|
||||
minetest.register_alias("homedecor:rope_light_on_ceiling_0", "homedecor:rope_light_on_ceiling_off")
|
||||
minetest.register_alias("homedecor:rope_light_on_ceiling_14", "homedecor:rope_light_on_ceiling_on")
|
||||
|
||||
for name, level in pairs(word_to_bright) do
|
||||
minetest.register_alias("homedecor:glowlight_half_"..name, "homedecor:glowlight_half_"..level)
|
||||
@ -1868,3 +1895,4 @@ if minetest.get_modpath("darkage") then
|
||||
end
|
||||
end
|
||||
|
||||
minetest.log("action", "[homedecor_lightning] loaded.")
|
||||
|
@ -5,3 +5,4 @@ unifieddyes
|
||||
building_blocks?
|
||||
technic?
|
||||
bucket?
|
||||
signs_lib?
|
||||
|
@ -130,21 +130,22 @@ for _, f in ipairs(flowers_list) do
|
||||
end
|
||||
|
||||
homedecor.register("pole_brass", {
|
||||
description = S("Brass Pole"),
|
||||
description = S("Brass Pole"),
|
||||
mesh = "homedecor_round_pole.obj",
|
||||
tiles = {"homedecor_generic_metal_brass.png^homedecor_generic_metal_lines_overlay.png",},
|
||||
inventory_image = "homedecor_pole_brass_inv.png",
|
||||
wield_image = "homedecor_pole_brass_inv.png",
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = { -0.125, -0.5, -0.125, 0.125, 0.5, 0.125 },
|
||||
},
|
||||
collision_box = {
|
||||
type = "fixed",
|
||||
fixed = { -0.125, -0.5, -0.125, 0.125, 0.5, 0.125 },
|
||||
},
|
||||
groups = {snappy=3},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
tiles = {"homedecor_generic_metal_brass.png^homedecor_generic_metal_lines_overlay.png",},
|
||||
inventory_image = "homedecor_pole_brass_inv.png",
|
||||
wield_image = "homedecor_pole_brass_inv.png",
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = { -0.125, -0.5, -0.125, 0.125, 0.5, 0.125 },
|
||||
},
|
||||
collision_box = {
|
||||
type = "fixed",
|
||||
fixed = { -0.125, -0.5, -0.125, 0.125, 0.5, 0.125 },
|
||||
},
|
||||
groups = {snappy=3},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
check_for_pole = true
|
||||
})
|
||||
|
||||
homedecor.register("pole_wrought_iron", {
|
||||
@ -478,6 +479,7 @@ for _, side in ipairs({"diagonal_left", "diagonal_right", "horizontal"}) do
|
||||
def.airbrush_replacement_node = "homedecor:banister_wood_"..side.."_grey"
|
||||
def.groups.ud_param2_colorable = 1
|
||||
def.paramtype2 = "colorfacedir"
|
||||
def.on_dig = unifieddyes.on_dig
|
||||
end
|
||||
homedecor.register(nodename, def)
|
||||
|
||||
@ -918,7 +920,7 @@ minetest.register_craft({
|
||||
minetest.register_craft({
|
||||
output = "homedecor:sportbench",
|
||||
recipe = {
|
||||
{ "stairs:slab_steelblock","homedecor:pole_wrought_iron","stairs:slab_steelblock" },
|
||||
{ "stairs:slab_steelblock","basic_materials:steel_bar","stairs:slab_steelblock" },
|
||||
{ "default:steel_ingot","wool:black","default:steel_ingot" },
|
||||
{ "default:steel_ingot","wool:black","default:steel_ingot" }
|
||||
},
|
||||
|
@ -26,6 +26,7 @@ minetest.register_node(":lrfurn:armchair", {
|
||||
after_place_node = function(pos, placer, itemstack, pointed_thing)
|
||||
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
|
||||
end,
|
||||
on_dig = unifieddyes.on_dig,
|
||||
on_rotate = unifieddyes.fix_after_screwdriver_nsew,
|
||||
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
if not clicker:is_player() then
|
||||
@ -51,10 +52,11 @@ homedecor.register("armchair", {
|
||||
palette = "unifieddyes_palette_colorwallmounted.png",
|
||||
groups = {snappy=3, ud_param2_colorable = 1},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
node_box = ac_cbox,
|
||||
node_box = armchair_cbox,
|
||||
after_place_node = function(pos, placer, itemstack, pointed_thing)
|
||||
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
|
||||
end,
|
||||
on_dig = unifieddyes.on_dig,
|
||||
on_rotate = unifieddyes.fix_after_screwdriver_nsew,
|
||||
})
|
||||
|
||||
|
@ -2,3 +2,4 @@ default
|
||||
wool
|
||||
homedecor_common
|
||||
unifieddyes
|
||||
basic_materials
|
||||
|
@ -76,3 +76,5 @@ dofile(modpath.."/longsofas.lua")
|
||||
dofile(modpath.."/sofas.lua")
|
||||
dofile(modpath.."/armchairs.lua")
|
||||
dofile(modpath.."/misc.lua")
|
||||
|
||||
minetest.log("action", "[homedecor_seating] loaded.")
|
||||
|
@ -41,6 +41,7 @@ minetest.register_node(":lrfurn:longsofa", {
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
on_dig = unifieddyes.on_dig,
|
||||
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
if not clicker:is_player() then
|
||||
return itemstack
|
||||
|
@ -153,6 +153,7 @@ homedecor.register("kitchen_chair_padded", {
|
||||
after_place_node = function(pos, placer, itemstack, pointed_thing)
|
||||
unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing)
|
||||
end,
|
||||
on_dig = unifieddyes.on_dig,
|
||||
on_rotate = unifieddyes.fix_after_screwdriver_nsew,
|
||||
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
pos.y = pos.y+0 -- where do I put my ass ?
|
||||
@ -211,7 +212,7 @@ minetest.register_craft( {
|
||||
recipe = {
|
||||
{ "group:wood", "group:wood", "group:wood" },
|
||||
{ "group:wood", "group:wood", "group:wood" },
|
||||
{ "homedecor:pole_wrought_iron", "", "homedecor:pole_wrought_iron" }
|
||||
{ "basic_materials:steel_bar", "", "basic_materials:steel_bar" }
|
||||
},
|
||||
})
|
||||
|
||||
@ -315,7 +316,7 @@ minetest.register_craft({
|
||||
recipe = {
|
||||
{ "", "", "wool:black" },
|
||||
{ "", "wool:black", "default:steel_ingot" },
|
||||
{ "group:stick", "homedecor:pole_wrought_iron", "group:stick" }
|
||||
{ "group:stick", "basic_materials:steel_bar", "group:stick" }
|
||||
},
|
||||
})
|
||||
|
||||
@ -324,7 +325,7 @@ minetest.register_craft({
|
||||
recipe = {
|
||||
{ "dye:black", "building_blocks:sticks", "group:wool" },
|
||||
{ "basic_materials:plastic_sheet", "group:wool", "default:steel_ingot" },
|
||||
{ "building_blocks:sticks", "homedecor:pole_wrought_iron", "building_blocks:sticks" }
|
||||
{ "building_blocks:sticks", "basic_materials:steel_bar", "building_blocks:sticks" }
|
||||
},
|
||||
})
|
||||
|
||||
|
@ -41,6 +41,7 @@ minetest.register_node(":lrfurn:sofa", {
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
on_dig = unifieddyes.on_dig,
|
||||
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
if not clicker:is_player() then
|
||||
return itemstack
|
||||
|
@ -1,5 +1,7 @@
|
||||
homedecor_common
|
||||
default
|
||||
player_api
|
||||
homedecor_kitchen?
|
||||
homedecor_misc?
|
||||
3d_armor?
|
||||
skinsdb?
|
||||
|
@ -115,6 +115,7 @@ minetest.register_node(":homedecor:curtain_closed", {
|
||||
after_place_node = function(pos, placer, itemstack, pointed_thing)
|
||||
unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing)
|
||||
end,
|
||||
on_dig = unifieddyes.on_dig,
|
||||
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
minetest.set_node(pos, { name = "homedecor:curtain_open", param2 = node.param2 })
|
||||
return itemstack
|
||||
@ -137,6 +138,7 @@ minetest.register_node(":homedecor:curtain_open", {
|
||||
after_place_node = function(pos, placer, itemstack, pointed_thing)
|
||||
unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing)
|
||||
end,
|
||||
on_dig = unifieddyes.on_dig,
|
||||
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
minetest.set_node(pos, { name = "homedecor:curtain_closed", param2 = node.param2 })
|
||||
return itemstack
|
||||
@ -243,6 +245,7 @@ homedecor.register("shutter", {
|
||||
after_place_node = function(pos, placer, itemstack, pointed_thing)
|
||||
unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing)
|
||||
end,
|
||||
on_dig = unifieddyes.on_dig,
|
||||
})
|
||||
|
||||
homedecor.register("shutter_colored", {
|
||||
@ -260,6 +263,7 @@ homedecor.register("shutter_colored", {
|
||||
after_place_node = function(pos, placer, itemstack, pointed_thing)
|
||||
unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing)
|
||||
end,
|
||||
on_dig = unifieddyes.on_dig,
|
||||
})
|
||||
|
||||
minetest.register_alias("homedecor:shutter_purple", "homedecor:shutter_violet")
|
||||
|
@ -126,3 +126,5 @@ function inbox.get_inbox_insert_formspec(pos)
|
||||
"listring[]"
|
||||
return formspec
|
||||
end
|
||||
|
||||
minetest.log("action", "[inbox] loaded.")
|
||||
|
@ -300,3 +300,5 @@ if minetest.get_modpath("mesecons_mvps") then
|
||||
mesecon.register_mvps_stopper("itemframes:frame")
|
||||
mesecon.register_mvps_stopper("itemframes:pedestal")
|
||||
end
|
||||
|
||||
minetest.log("action", "[itemframes] loaded.")
|
||||
|
@ -38,6 +38,7 @@ minetest.register_node("lavalamp:lavalamp", {
|
||||
groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, ud_param2_colorable = 1},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
on_construct = unifieddyes.on_construct,
|
||||
on_dig = unifieddyes.on_dig,
|
||||
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
node.name = "lavalamp:lavalamp_off"
|
||||
minetest.swap_node(pos, node)
|
||||
|
1
modpack.conf
Normal file
@ -0,0 +1 @@
|
||||
min_minetest_version = 5.2.0
|
@ -186,3 +186,5 @@ minetest.register_craft({
|
||||
{'group:stick', 'default:coal_lump', 'group:stick'},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.log("action", "[plasmascreen] loaded.")
|
||||
|