Compare commits
6 Commits
0b286d07e0
...
b088190caa
Author | SHA1 | Date |
---|---|---|
Pascal Abresch | b088190caa | |
Pascal Abresch | 09d8de1ff2 | |
Pascal Abresch | abeec426a9 | |
Pascal Abresch | 38d76dbbd5 | |
Pascal Abresch | 24c72b1ff1 | |
Pascal Abresch | a6c9e005f8 |
|
@ -6,6 +6,130 @@ function shallow_copy(table)
|
||||||
return newTable
|
return newTable
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local maskName = "orionapi"
|
||||||
|
local opaqueNodes = {}
|
||||||
|
|
||||||
|
-- slabtypes
|
||||||
|
SLAB_NONE = 0
|
||||||
|
SLAB_LOWER = 1
|
||||||
|
SLAB_UPPER = 2
|
||||||
|
SLAB_COMBO = 3
|
||||||
|
|
||||||
|
|
||||||
|
local placeCombinedNode = function(position, secondNode)
|
||||||
|
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
local onPlace = function(itemstack, placer, pointed_thing)
|
||||||
|
if not pointed_thing.type == "node" then return minetest.item_place(itemstack, player, pointed_thing) end
|
||||||
|
local under = pointed_thing.under
|
||||||
|
local above = pointed_thing.above
|
||||||
|
if above.y == under.y +1 then -- looking from above
|
||||||
|
local pointedNode = minetest.get_node(under)
|
||||||
|
local newSlabName = itemstack:get_name()
|
||||||
|
if minetest.registered_nodes[pointedNode.name] and
|
||||||
|
minetest.registered_nodes[pointedNode.name].groups and
|
||||||
|
minetest.registered_nodes[pointedNode.name].groups.orion_slabtype == SLAB_LOWER then
|
||||||
|
|
||||||
|
if pointedNode.name == newSlabName then -- Same slabs twice, place the normal block
|
||||||
|
minetest.swap_node(under, {name = pointedNode.name:gsub("%_lower", "")})
|
||||||
|
return itemstack:take_item(itemstack:get_count() -1)
|
||||||
|
else
|
||||||
|
local lowerName = pointedNode.name:gsub("%_lower", "")
|
||||||
|
lowerName = lowerName:gsub(":", "_")
|
||||||
|
local upperName = newSlabName:gsub("%_lower", "")
|
||||||
|
upperName = upperName:gsub(":", "_")
|
||||||
|
|
||||||
|
local nodeName = maskName .. ":" .. upperName .. "_" .. lowerName
|
||||||
|
if minetest.registered_nodes[nodeName] then
|
||||||
|
minetest.swap_node(under, {name = nodeName})
|
||||||
|
return itemstack:take_item(itemstack:get_count() -1)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
else
|
||||||
|
local otherNode = minetest.get_node(above)
|
||||||
|
local newSlabName = itemstack:get_name()
|
||||||
|
if minetest.registered_nodes[otherNode.name] and
|
||||||
|
minetest.registered_nodes[otherNode.name].groups and
|
||||||
|
minetest.registered_nodes[otherNode.name].groups.orion_slabtype == SLAB_UPPER then
|
||||||
|
if otherNode.name:gsub("%_upper", "_lower") == newSlabName then -- Same slabs twice, place the normal block
|
||||||
|
minetest.swap_node(above, {name = otherNode.name:gsub("%_upper", "")})
|
||||||
|
return itemstack:take_item(itemstack:get_count() -1)
|
||||||
|
else
|
||||||
|
local upperName = otherNode.name:gsub("%_upper", "")
|
||||||
|
upperName = upperName:gsub(":", "_")
|
||||||
|
local lowerName = newSlabName:gsub("%_lower", "")
|
||||||
|
lowerName = lowerName:gsub(":", "_")
|
||||||
|
|
||||||
|
local nodeName = maskName .. ":" .. upperName .. "_" .. lowerName
|
||||||
|
if minetest.registered_nodes[nodeName] then
|
||||||
|
minetest.swap_node(above, {name = nodeName})
|
||||||
|
return itemstack:take_item(itemstack:get_count() -1)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
elseif above.y == under.y -1 then -- pointed to lower side
|
||||||
|
local pointedNode = minetest.get_node(under)
|
||||||
|
local newSlabName = itemstack:get_name()
|
||||||
|
if minetest.registered_nodes[pointedNode.name] and
|
||||||
|
minetest.registered_nodes[pointedNode.name].groups and
|
||||||
|
minetest.registered_nodes[pointedNode.name].groups.orion_slabtype == SLAB_UPPER then
|
||||||
|
|
||||||
|
if pointedNode.name:gsub("%_upper", "_lower") == newSlabName then -- Same slabs twice, place the normal block
|
||||||
|
minetest.swap_node(under, {name = pointedNode.name:gsub("%_upper", "")})
|
||||||
|
return itemstack:take_item(itemstack:get_count() -1)
|
||||||
|
else
|
||||||
|
local upperName = pointedNode.name:gsub("%_upper", "")
|
||||||
|
upperName = upperName:gsub(":", "_")
|
||||||
|
local lowerName = newSlabName:gsub("%_lower", "")
|
||||||
|
lowerName = lowerName:gsub(":", "_")
|
||||||
|
|
||||||
|
local nodeName = maskName .. ":" .. upperName .. "_" .. lowerName
|
||||||
|
if minetest.registered_nodes[nodeName] then
|
||||||
|
minetest.swap_node(under, {name = nodeName})
|
||||||
|
return itemstack:take_item(itemstack:get_count() -1)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
else
|
||||||
|
local otherNode = minetest.get_node(above)
|
||||||
|
local newSlabName = itemstack:get_name()
|
||||||
|
if minetest.registered_nodes[otherNode.name] and
|
||||||
|
minetest.registered_nodes[otherNode.name].groups and
|
||||||
|
minetest.registered_nodes[otherNode.name].groups.orion_slabtype == SLAB_LOWER then
|
||||||
|
|
||||||
|
if otherNode.name == newSlabName then -- Same slabs twice, place the normal block
|
||||||
|
minetest.swap_node(above, {name = otherNode.name:gsub("%_lower", "")})
|
||||||
|
return itemstack:take_item(itemstack:get_count() -1)
|
||||||
|
else
|
||||||
|
local upperName = otherNode.name:gsub("%_lower", "")
|
||||||
|
upperName = upperName:gsub(":", "_")
|
||||||
|
local lowerName = newSlabName:gsub("%_lower", "")
|
||||||
|
lowerName = lowerName:gsub(":", "_")
|
||||||
|
|
||||||
|
local nodeName = maskName .. ":" .. lowerName .. "_" .. upperName
|
||||||
|
if minetest.registered_nodes[nodeName] then
|
||||||
|
minetest.swap_node(above, {name = nodeName})
|
||||||
|
return itemstack:take_item(itemstack:get_count() -1)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
else
|
||||||
|
if otherNode.name == "air" then
|
||||||
|
local newName = newSlabName:gsub("%_lower", "_upper")
|
||||||
|
minetest.set_node(above, {name = newName})
|
||||||
|
return itemstack:take_item(itemstack:get_count() -1)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
else -- any side was targeted
|
||||||
|
-- if there is an "upper" variant here, place an upper variant
|
||||||
|
-- if there is a normal node here try to determin magically weather to place upper or lower
|
||||||
|
|
||||||
|
end
|
||||||
|
return minetest.item_place(itemstack, player, pointed_thing)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
orion.register_slab_node = function(name, definition)
|
orion.register_slab_node = function(name, definition)
|
||||||
minetest.register_node(name, definition)
|
minetest.register_node(name, definition)
|
||||||
|
@ -13,16 +137,90 @@ orion.register_slab_node = function(name, definition)
|
||||||
local upperDef = shallow_copy(definition)
|
local upperDef = shallow_copy(definition)
|
||||||
|
|
||||||
lowerDef["paramtype"] = "light"
|
lowerDef["paramtype"] = "light"
|
||||||
|
lowerDef["description"] = lowerDef["description"] or "" .. " (lower)"
|
||||||
lowerDef["drawtype"] = "nodebox"
|
lowerDef["drawtype"] = "nodebox"
|
||||||
lowerDef["node_box"] = {
|
lowerDef["node_box"] = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {-0.50, -0.50, -0.50, 0.50, 0.00, 0.50} }
|
fixed = {-0.50, -0.50, -0.50, 0.50, 0.00, 0.50} }
|
||||||
|
lowerDef["on_place"] = onPlace
|
||||||
|
local lowerGroups = shallow_copy(definition["groups"])
|
||||||
|
lowerDef.node_placement_prediction = "air"
|
||||||
|
lowerGroups.orion_slabtype = SLAB_LOWER
|
||||||
|
lowerDef["groups"] = lowerGroups
|
||||||
minetest.register_node(name .. "_lower", lowerDef)
|
minetest.register_node(name .. "_lower", lowerDef)
|
||||||
|
|
||||||
upperDef["paramtype"] = "light"
|
upperDef["paramtype"] = "light"
|
||||||
|
upperDef["description"] = upperDef["description"] or "".. " (upper)"
|
||||||
upperDef["drawtype"] = "nodebox"
|
upperDef["drawtype"] = "nodebox"
|
||||||
upperDef["node_box"] = {
|
upperDef["node_box"] = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {-0.50, 0.00, -0.50, 0.50, 0.50, 0.50 } }
|
fixed = {-0.50, 0.00, -0.50, 0.50, 0.50, 0.50 } }
|
||||||
|
upperDef["drop"] = {
|
||||||
|
max_items = 1,
|
||||||
|
items = {
|
||||||
|
{ items = { name .. "_lower" } }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
local upperGroups = shallow_copy(definition["groups"])
|
||||||
|
upperGroups.not_in_creative_inventory = 1
|
||||||
|
upperGroups.orion_slabtype = SLAB_UPPER
|
||||||
|
upperDef["groups"] = upperGroups
|
||||||
minetest.register_node(name .. "_upper", upperDef)
|
minetest.register_node(name .. "_upper", upperDef)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
name = string.gsub(name, ":","_")
|
||||||
|
if definition.drawtype ~= "glasslike" and definition.drawtype ~= "allfaces_optional" then
|
||||||
|
for secondName, secondDefinition in pairs(opaqueNodes) do
|
||||||
|
local secondUpper = shallow_copy(definition)
|
||||||
|
local secondLower = shallow_copy(definition)
|
||||||
|
local escapedName = string.gsub(secondName, ":", "_")
|
||||||
|
local firstTiles = shallow_copy(definition["tiles"])
|
||||||
|
if #firstTiles == 1 then
|
||||||
|
firstTiles[2] = firstTiles[1]
|
||||||
|
firstTiles[3] = firstTiles[1]
|
||||||
|
firstTiles[4] = firstTiles[1]
|
||||||
|
firstTiles[5] = firstTiles[1]
|
||||||
|
firstTiles[6] = firstTiles[1]
|
||||||
|
end
|
||||||
|
local secondTiles = shallow_copy(secondDefinition["tiles"])
|
||||||
|
if #secondTiles == 1 then
|
||||||
|
secondTiles[2] = secondTiles[1]
|
||||||
|
secondTiles[3] = secondTiles[1]
|
||||||
|
secondTiles[4] = secondTiles[1]
|
||||||
|
secondTiles[5] = secondTiles[1]
|
||||||
|
secondTiles[6] = secondTiles[1]
|
||||||
|
end
|
||||||
|
secondLower["tiles"] = {
|
||||||
|
firstTiles[1],
|
||||||
|
secondTiles[2],
|
||||||
|
firstTiles[3] .. "^[lowpart:50:" .. secondTiles[3],
|
||||||
|
firstTiles[4] .. "^[lowpart:50:" .. secondTiles[4],
|
||||||
|
firstTiles[5] .. "^[lowpart:50:" .. secondTiles[5],
|
||||||
|
firstTiles[6] .. "^[lowpart:50:" .. secondTiles[6],
|
||||||
|
}
|
||||||
|
secondUpper["tiles"] = {
|
||||||
|
secondTiles[1],
|
||||||
|
firstTiles[2],
|
||||||
|
secondTiles[3] .. "^[lowpart:50:" .. firstTiles[3],
|
||||||
|
secondTiles[4] .. "^[lowpart:50:" .. firstTiles[4],
|
||||||
|
secondTiles[5] .. "^[lowpart:50:" .. firstTiles[5],
|
||||||
|
secondTiles[6] .. "^[lowpart:50:" .. firstTiles[6],
|
||||||
|
}
|
||||||
|
local groups = shallow_copy(definition["groups"])
|
||||||
|
local secondGroup = shallow_copy(definition["groups"])
|
||||||
|
for key, value in pairs(secondGroup) do
|
||||||
|
if not groups[key] then groups[key] = value end
|
||||||
|
end
|
||||||
|
groups.not_in_creative_inventory = 1
|
||||||
|
groups.orion_slabtype = SLAB_COMBO
|
||||||
|
secondLower.groups = groups
|
||||||
|
secondLower.description = definition["description"] .. " (upper)\n" .. secondDefinition["description"] .. " (lower)"
|
||||||
|
minetest.register_node(":" ..maskName .. ":" .. name .. "_" .. escapedName, secondLower)
|
||||||
|
secondUpper.groups = groups
|
||||||
|
secondUpper.description = secondDefinition["description"] .. " (upper)\n" .. definition["description"] .. " (lower)"
|
||||||
|
minetest.register_node(":" ..maskName .. ":" .. escapedName .. "_" .. name, secondUpper)
|
||||||
|
end
|
||||||
|
opaqueNodes[name] = definition
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
orionapi
|
|
@ -0,0 +1,13 @@
|
||||||
|
local NAME = minetest.get_current_modname()
|
||||||
|
local PATH = minetest.get_modpath(NAME) .."/lua/"
|
||||||
|
local MODFILES = minetest.get_dir_list(PATH, false)
|
||||||
|
|
||||||
|
spacenum = 20 - string.len(NAME)
|
||||||
|
|
||||||
|
-- This assumes that the lua/ subdir contains lua code only.
|
||||||
|
|
||||||
|
for i=1,table.getn(MODFILES),1
|
||||||
|
do
|
||||||
|
minetest.debug("│ "..NAME .. string.rep(" ",spacenum) .."load " .. MODFILES[i])
|
||||||
|
dofile(PATH .. MODFILES[i])
|
||||||
|
end
|
|
@ -0,0 +1,10 @@
|
||||||
|
NAME = minetest:get_current_modname()
|
||||||
|
local bricks = {"copper", "gold", "iron", "nickel", "stone", "stone2"}
|
||||||
|
|
||||||
|
for key, brickName in pairs(bricks) do
|
||||||
|
orion.register_slab_node(NAME .. ":" .. brickName .. "_brick", {
|
||||||
|
tiles = { NAME .. "_" .. brickName .. "_brick.png" },
|
||||||
|
groups = { solids = 3 },
|
||||||
|
paramtype2 = "facedir",
|
||||||
|
})
|
||||||
|
end
|
Binary file not shown.
After Width: | Height: | Size: 163 B |
Binary file not shown.
After Width: | Height: | Size: 163 B |
Binary file not shown.
After Width: | Height: | Size: 165 B |
Binary file not shown.
After Width: | Height: | Size: 162 B |
Binary file not shown.
After Width: | Height: | Size: 188 B |
Binary file not shown.
After Width: | Height: | Size: 174 B |
|
@ -98,16 +98,16 @@ minetest.register_chatcommand("resetscale", {
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
local function populateCreativeInventory(player)
|
local function populateCreativeInventory(player)
|
||||||
local inventory = player:get_inventory()
|
local inventory = player:get_inventory()
|
||||||
inventory:set_list("crafting", nil)
|
inventory:set_list("crafting", nil)
|
||||||
inventory:set_size("crafting", 500)
|
inventory:set_size("crafting", 500)
|
||||||
for name, node in pairs(minetest.registered_nodes) do
|
for name, node in pairs(minetest.registered_nodes) do
|
||||||
|
if node.groups.not_in_creative_inventory ~= 1 then
|
||||||
inventory:add_item("crafting", ItemStack(node.name .. " 256"))
|
inventory:add_item("crafting", ItemStack(node.name .. " 256"))
|
||||||
end
|
end
|
||||||
--for name, item in pairs(minetest.registered_items) do
|
end
|
||||||
-- inventory:add_item("crafting", ItemStack(item.name .. " 256"))
|
|
||||||
--end
|
|
||||||
for name, tools in pairs(minetest.registered_tools) do
|
for name, tools in pairs(minetest.registered_tools) do
|
||||||
local newTool = ItemStack(tools.name)
|
local newTool = ItemStack(tools.name)
|
||||||
local meta = newTool:get_meta()
|
local meta = newTool:get_meta()
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
orionapi
|
|
@ -1,4 +1,4 @@
|
||||||
orion.register_slab_node("sparkdebug:energyvoid", {
|
minetest.register_node("sparkdebug:energyvoid", {
|
||||||
description = "Energy Void",
|
description = "Energy Void",
|
||||||
tiles = {
|
tiles = {
|
||||||
"capacitor_top.png",
|
"capacitor_top.png",
|
||||||
|
@ -16,8 +16,7 @@ orion.register_slab_node("sparkdebug:energyvoid", {
|
||||||
sparktech_techy = WRENCHABLE
|
sparktech_techy = WRENCHABLE
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
minetest.register_node("sparkdebug:energysource", {
|
||||||
orion.register_slab_node("sparkdebug:energysource", {
|
|
||||||
description = "Energy Source",
|
description = "Energy Source",
|
||||||
tiles = {
|
tiles = {
|
||||||
"capacitor_top.png",
|
"capacitor_top.png",
|
||||||
|
|
|
@ -1,30 +1,79 @@
|
||||||
local NAME = minetest.get_current_modname()
|
local NAME = minetest.get_current_modname()
|
||||||
local MAX_ENERGY = 30
|
local MAX_ENERGY = 40
|
||||||
|
|
||||||
local timer = function(pos, elapsed, light_level)
|
local setEnergyLevelNode = function(pos)
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
energy = meta:get_int("energy")
|
||||||
|
local light_level = sparktech.getoption(pos, "light_level")
|
||||||
|
local enabled = sparktech.getoption(pos, "enabled")
|
||||||
|
|
||||||
|
local maxLevel = math.floor(energy / 10)
|
||||||
|
if not enabled then maxLevel = 0 end
|
||||||
|
|
||||||
|
|
||||||
|
local level = math.min(light_level, maxLevel)
|
||||||
|
if level == 0 then
|
||||||
|
minetest.swap_node(pos, {name = NAME .. ":light_off"})
|
||||||
|
elseif level == 1 then
|
||||||
|
minetest.swap_node(pos, {name = NAME .. ":light_lv1"})
|
||||||
|
elseif level == 2 then
|
||||||
|
minetest.swap_node(pos, {name = NAME .. ":light_lv2"})
|
||||||
|
elseif level == 3 then
|
||||||
|
minetest.swap_node(pos, {name = NAME .. ":light_lv3"})
|
||||||
|
end
|
||||||
|
return level
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
local optionsChanged = function(pos, name)
|
||||||
|
local timer = minetest.get_node_timer(pos)
|
||||||
|
if name == "enabled" then
|
||||||
|
if sparktech.getoption(pos, name) then
|
||||||
|
setEnergyLevelNode(pos)
|
||||||
|
timer:start(1.0)
|
||||||
|
else
|
||||||
|
minetest.swap_node(pos, {name = NAME .. ":light_off"})
|
||||||
|
timer:stop()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if name == "light_level" then
|
||||||
|
if setEnergyLevelNode(pos) > 0 then
|
||||||
|
timer:start(1.0)
|
||||||
|
else
|
||||||
|
timer:stop()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
local op_punch = function(pos)
|
||||||
|
local lightLevel = sparktech.getoption(pos, "light_level")
|
||||||
|
lightLevel = lightLevel -1
|
||||||
|
if lightLevel == -1 then lightLevel = 3 end
|
||||||
|
|
||||||
|
sparktech.setoption(pos, "light_level", lightLevel)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
local timer = function(pos, elapsed, energyDrain)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
local energy = meta:get_int("energy")
|
local energy = meta:get_int("energy")
|
||||||
|
|
||||||
if energy >= light_level or not sparktech.getoption(pos, "enabled") then
|
if sparktech.getoption(pos, "enabled") then
|
||||||
energy = energy - light_level
|
energy = energy - energyDrain
|
||||||
meta:set_int("energy", energy)
|
meta:set_int("energy", energy)
|
||||||
else
|
else
|
||||||
minetest.swap_node(pos, {name = NAME .. ":light_off"})
|
minetest.swap_node(pos, {name = NAME .. ":light_off"})
|
||||||
minetest.get_node_timer(pos):start(1.0) -- TODO: energy wakeup?
|
minetest.get_node_timer(pos):start(1.0) -- TODO: energy wakeup?
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
if energy <= light_level then
|
setEnergyLevelNode(pos, 3)
|
||||||
minetest.swap_node(pos, {name = NAME .. ":light_off"})
|
|
||||||
elseif energy < 10 then
|
|
||||||
minetest.swap_node(pos, {name = NAME .. ":light_lv1"})
|
|
||||||
elseif energy < 20 then
|
|
||||||
minetest.swap_node(pos, {name = NAME .. ":light_lv2"})
|
|
||||||
else
|
|
||||||
minetest.swap_node(pos, {name = NAME .. ":light_lv3"})
|
|
||||||
end
|
|
||||||
minetest.get_node_timer(pos):start(1.0) -- TODO: energy wakeup?
|
minetest.get_node_timer(pos):start(1.0) -- TODO: energy wakeup?
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
minetest.register_node(NAME .. ":light_off", {
|
minetest.register_node(NAME .. ":light_off", {
|
||||||
description = "Unpowered light",
|
description = "Unpowered light",
|
||||||
tiles = {
|
tiles = {
|
||||||
|
@ -32,6 +81,7 @@ minetest.register_node(NAME .. ":light_off", {
|
||||||
},
|
},
|
||||||
on_timer = function(pos, elapsed) timer(pos, elapsed, 0) end,
|
on_timer = function(pos, elapsed) timer(pos, elapsed, 0) end,
|
||||||
on_construct = function(pos, elapsed) timer(pos, elapsed, 0) end,
|
on_construct = function(pos, elapsed) timer(pos, elapsed, 0) end,
|
||||||
|
on_punch = op_punch,
|
||||||
groups = {
|
groups = {
|
||||||
sparktech_techy = WRENCHABLE,
|
sparktech_techy = WRENCHABLE,
|
||||||
sparktech_energy_type = ENERGY_CONSUMER,
|
sparktech_energy_type = ENERGY_CONSUMER,
|
||||||
|
@ -42,7 +92,7 @@ minetest.register_node(NAME .. ":light_off", {
|
||||||
},
|
},
|
||||||
_sparkoption = {
|
_sparkoption = {
|
||||||
enabled = true,
|
enabled = true,
|
||||||
light_level = 0
|
light_level = 3
|
||||||
},
|
},
|
||||||
_sparkoutput = {
|
_sparkoutput = {
|
||||||
brightness = function(node) return 0 end
|
brightness = function(node) return 0 end
|
||||||
|
@ -50,6 +100,7 @@ minetest.register_node(NAME .. ":light_off", {
|
||||||
_sparkoutputtype = {
|
_sparkoutputtype = {
|
||||||
brightness = type(0)
|
brightness = type(0)
|
||||||
},
|
},
|
||||||
|
_sparkoptionchanged = optionsChanged,
|
||||||
light_source = 0
|
light_source = 0
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -61,6 +112,7 @@ minetest.register_node(NAME .. ":light_lv1", {
|
||||||
},
|
},
|
||||||
on_timer = function(pos, elapsed) timer(pos, elapsed, 1) end,
|
on_timer = function(pos, elapsed) timer(pos, elapsed, 1) end,
|
||||||
on_construct = function(pos, elapsed) timer(pos, elapsed, 1) end,
|
on_construct = function(pos, elapsed) timer(pos, elapsed, 1) end,
|
||||||
|
on_punch = op_punch,
|
||||||
groups = {
|
groups = {
|
||||||
sparktech_techy = WRENCHABLE,
|
sparktech_techy = WRENCHABLE,
|
||||||
sparktech_energy_type = ENERGY_CONSUMER,
|
sparktech_energy_type = ENERGY_CONSUMER,
|
||||||
|
@ -71,7 +123,7 @@ minetest.register_node(NAME .. ":light_lv1", {
|
||||||
},
|
},
|
||||||
_sparkoption = {
|
_sparkoption = {
|
||||||
enabled = true,
|
enabled = true,
|
||||||
light_level = 0
|
light_level = 3
|
||||||
},
|
},
|
||||||
_sparkoutput = {
|
_sparkoutput = {
|
||||||
brightness = function(node) return 1 end
|
brightness = function(node) return 1 end
|
||||||
|
@ -79,6 +131,7 @@ minetest.register_node(NAME .. ":light_lv1", {
|
||||||
_sparkoutputtype = {
|
_sparkoutputtype = {
|
||||||
brightness = type(1)
|
brightness = type(1)
|
||||||
},
|
},
|
||||||
|
_sparkoptionchanged = optionsChanged,
|
||||||
drop = NAME .. ":light_off",
|
drop = NAME .. ":light_off",
|
||||||
light_source = minetest.LIGHT_MAX / 3
|
light_source = minetest.LIGHT_MAX / 3
|
||||||
})
|
})
|
||||||
|
@ -91,6 +144,7 @@ minetest.register_node(NAME .. ":light_lv2", {
|
||||||
},
|
},
|
||||||
on_timer = function(pos, elapsed) timer(pos, elapsed, 2) end,
|
on_timer = function(pos, elapsed) timer(pos, elapsed, 2) end,
|
||||||
on_construct = function(pos, elapsed) timer(pos, elapsed, 2) end,
|
on_construct = function(pos, elapsed) timer(pos, elapsed, 2) end,
|
||||||
|
on_punch = op_punch,
|
||||||
groups = {
|
groups = {
|
||||||
sparktech_techy = WRENCHABLE,
|
sparktech_techy = WRENCHABLE,
|
||||||
sparktech_energy_type = ENERGY_CONSUMER,
|
sparktech_energy_type = ENERGY_CONSUMER,
|
||||||
|
@ -101,7 +155,7 @@ minetest.register_node(NAME .. ":light_lv2", {
|
||||||
},
|
},
|
||||||
_sparkoption = {
|
_sparkoption = {
|
||||||
enabled = true,
|
enabled = true,
|
||||||
light_level = 0
|
light_level = 3
|
||||||
},
|
},
|
||||||
_sparkoutput = {
|
_sparkoutput = {
|
||||||
brightness = function(node) return 2 end
|
brightness = function(node) return 2 end
|
||||||
|
@ -109,6 +163,7 @@ minetest.register_node(NAME .. ":light_lv2", {
|
||||||
_sparkoutputtype = {
|
_sparkoutputtype = {
|
||||||
brightness = type(2)
|
brightness = type(2)
|
||||||
},
|
},
|
||||||
|
_sparkoptionchanged = optionsChanged,
|
||||||
drop = NAME .. ":light_off",
|
drop = NAME .. ":light_off",
|
||||||
light_source = (2 *minetest.LIGHT_MAX /3)
|
light_source = (2 *minetest.LIGHT_MAX /3)
|
||||||
})
|
})
|
||||||
|
@ -121,6 +176,7 @@ minetest.register_node(NAME .. ":light_lv3", {
|
||||||
},
|
},
|
||||||
on_timer = function(pos, elapsed) timer(pos, elapsed, 3) end,
|
on_timer = function(pos, elapsed) timer(pos, elapsed, 3) end,
|
||||||
on_construct = function(pos, elapsed) timer(pos, elapsed, 3) end,
|
on_construct = function(pos, elapsed) timer(pos, elapsed, 3) end,
|
||||||
|
on_punch = op_punch,
|
||||||
groups = {
|
groups = {
|
||||||
sparktech_techy = WRENCHABLE,
|
sparktech_techy = WRENCHABLE,
|
||||||
sparktech_energy_type = ENERGY_CONSUMER,
|
sparktech_energy_type = ENERGY_CONSUMER,
|
||||||
|
@ -131,7 +187,7 @@ minetest.register_node(NAME .. ":light_lv3", {
|
||||||
},
|
},
|
||||||
_sparkoption = {
|
_sparkoption = {
|
||||||
enabled = true,
|
enabled = true,
|
||||||
light_level = 0
|
light_level = 3
|
||||||
},
|
},
|
||||||
_sparkoutput = {
|
_sparkoutput = {
|
||||||
brightness = function(node) return 3 end
|
brightness = function(node) return 3 end
|
||||||
|
@ -139,6 +195,7 @@ minetest.register_node(NAME .. ":light_lv3", {
|
||||||
_sparkoutputtype = {
|
_sparkoutputtype = {
|
||||||
brightness = type(3)
|
brightness = type(3)
|
||||||
},
|
},
|
||||||
|
_sparkoptionchanged = optionsChanged,
|
||||||
drop = NAME .. ":light_off",
|
drop = NAME .. ":light_off",
|
||||||
light_source = minetest.LIGHT_MAX
|
light_source = minetest.LIGHT_MAX
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in New Issue