local dir = minetest.wallmounted_to_dir(node.param2)
- redstone.inject(pos,{torch=16})
+ redstone.inject(pos,{torch=9})
local pos2 = vector.add(dir,pos)
- redstone.inject(pos2,{torch=16})
+ redstone.inject(pos2,{torch=9})
redstone.update(pos)
redstone.update(pos2)
local param2 = minetest.get_node(pos).param2
local dir = minetest.wallmounted_to_dir(param2)
- redstone.inject(pos,{torch=16})
+ redstone.inject(pos,{torch=9})
local pos2 = vector.add(dir,pos)
- redstone.inject(pos2,{torch=16})
+ redstone.inject(pos2,{torch=9})
minetest.after(0,function()
redstone.update(pos)
redstone.inject(pos,{
name = "redstone:detector_on",
- torch = 16,
+ torch = 9,
})
minetest.after(0,function()
redstone.update(pos)
on_construct = function(pos)
redstone.inject(pos,{
name = "redstone:detector_on",
- torch = 16,
+ torch = 9,
})
local timer = minetest.get_node_timer(pos)
if not timer:is_started() then
action = function(pos)
redstone.inject(pos,{
name = "redstone:detector_on",
- torch = 16,
+ torch = 9,
})
local timer = minetest.get_node_timer(pos)
local temp_pool
local function create_boundary_box(pos)
table_3d = {}
- for x = pos.x-16,pos.x+16 do
+ for x = pos.x-9,pos.x+9 do
if pool[x] then
- for y = pos.y-16,pos.y+16 do
+ for y = pos.y-9,pos.y+9 do
if pool[x][y] then
- for z = pos.z-16,pos.z+16 do
+ for z = pos.z-9,pos.z+9 do
temp_pool = pool[x][y][z]
if temp_pool then
if not table_3d[x] then table_3d[x] = {} end
if not table_3d[x][y] then table_3d[x][y] = {} end
- if (x == pos.x-16 or x == pos.x+16 or
- y == pos.y-16 or y == pos.y+16 or
- z == pos.z-16 or z == pos.z+16) and
+ if (x == pos.x-9 or x == pos.x+9 or
+ y == pos.y-9 or y == pos.y+9 or
+ z == pos.z-9 or z == pos.z+9) and
temp_pool.dust and temp_pool.dust > 1 then
table_3d[x][y][z] = {torch=temp_pool.dust}
else
max = 0
for _,player in ipairs(minetest.get_connected_players()) do
pos2 = player:get_pos()
- power = floor(17-vector_distance(pos2,pos))
- if power > 16 then
- power = 16
+ power = floor(11-vector_distance(pos2,pos))
+ if power > 9 then
+ power = 9
elseif power < 0 then
power = 0
end
local queue = {}
function redstone.update(pos,is_capacitor)
local count = table.getn(queue)
- queue[count+1] = {pos=pos,is_capacitor=is_capacitor}
- --[[
local s_pos = minetest.serialize(pos)
if not recursion_check[s_pos] then
recursion_check[s_pos] = 0
end)
return
end
- ]]--
-
- --calculate(pos,is_capacitor)
+ calculate(pos,is_capacitor)
end
local dtime_goal = 0.02
local sleep = 0
minetest.register_globalstep(function(dtime)
-
-
+ player_detector_calculation()
+ recursion_check = {}
+ --[[
if dtime > dtime_goal then
sleep = dtime - dtime_goal
end
if sleep == 0 then
- player_detector_calculation()
for index,element in pairs(queue) do
calculate(element.pos,element.is_capacitor)
end
queue = {}
- --recursion_check = {}
+
else
sleep = sleep - dtime
if sleep <= 0 then
sleep = 0
end
end
+ ]]--
end)
})
--15 power levels 15 being the highest
-for i = 0,15 do
+for i = 0,8 do
- local color = floor(255 * (i/15))
+ local color = floor(255 * (i/8))
minetest.register_node("redstone:dust_"..i,{
description = "Redstone Dust",
local dir = minetest.facedir_to_dir(param2)
redstone.inject(pos,{
name = "redstone:inverter_off",
- torch = 16,
+ torch = 9,
torch_directional = true,
directional_activator = true,
input = vector.subtract(pos,dir),
minetest.register_node("redstone:inverter_off", {
description = "Redstone Inverter",
tiles = {"repeater_off.png"},
- groups = {stone = 1, hard = 1, pickaxe = 1, hand = 4,attached_node = 1,redstone_activation_directional=1,torch_directional=1,redstone_power=16},
+ groups = {stone = 1, hard = 1, pickaxe = 1, hand = 4,attached_node = 1,redstone_activation_directional=1,torch_directional=1,redstone_power=9},
sounds = main.stoneSound(),
paramtype = "light",
paramtype2 = "facedir",
local dir = minetest.facedir_to_dir(minetest.get_node(pos).param2)
redstone.inject(pos,{
name = "redstone:inverter_off",
- torch = 16,
+ torch = 9,
torch_directional = true,
directional_activator = true,
input = vector.subtract(pos,dir),
local dir = minetest.facedir_to_dir(minetest.get_node(pos).param2)
redstone.inject(pos,{
name = "redstone:inverter_off",
- torch = 16,
+ torch = 9,
torch_directional = true,
directional_activator = true,
input = vector.subtract(pos,dir),
action = function(pos)
local param2 = minetest.get_node(pos).param2
local dir = minetest.wallmounted_to_dir(param2)
- redstone.inject(pos,{torch=16})
+ redstone.inject(pos,{torch=9})
local pos2 = vector.add(dir,pos)
- redstone.inject(pos2,{torch=16})
+ redstone.inject(pos2,{torch=9})
minetest.after(0,function()
redstone.update(pos)
redstone.update(pos2)
local dir = minetest.wallmounted_to_dir(node.param2)
- redstone.inject(pos,{torch=16})
+ redstone.inject(pos,{torch=9})
local pos2 = vector.add(dir,pos)
- redstone.inject(pos2,{torch=16})
+ redstone.inject(pos2,{torch=9})
redstone.update(pos)
redstone.update(pos2)
minetest,ipairs,math
--detects players and outputs accordingly
-for i = 0,16 do
+for i = 0,9 do
minetest.register_node("redstone:player_detector_"..i, {
description = "Redstone Player Detector",
minetest.register_node("redstone:repeater_on_"..level, {
description = "Redstone Repeater",
tiles = {"repeater_on.png"},
- groups = {stone = 1, hard = 1, pickaxe = 1, hand = 4,attached_node = 1,redstone_activation_directional=1,repeater_on=1,repeater=1,torch_directional=1,redstone_power=16,repeater_level=level},
+ groups = {stone = 1, hard = 1, pickaxe = 1, hand = 4,attached_node = 1,redstone_activation_directional=1,repeater_on=1,repeater=1,torch_directional=1,redstone_power=9,repeater_level=level},
sounds = main.stoneSound(),
paramtype = "light",
paramtype2 = "facedir",
minetest.sound_play("lever", {pos=pos})
redstone.inject(pos,{
name = "redstone:repeater_on_"..newlevel,
- torch = 16,
+ torch = 9,
torch_directional = true,
directional_activator = true,
input = vector.subtract(pos,dir),
local dir = minetest.facedir_to_dir(minetest.get_node(pos).param2)
redstone.inject(pos,{
name = "redstone:repeater_on_"..level,
- torch = 16,
+ torch = 9,
torch_directional = true,
directional_activator = true,
input = vector.subtract(pos,dir),
local dir = minetest.facedir_to_dir(minetest.get_node(pos).param2)
redstone.inject(pos,{
name = "redstone:repeater_on_"..level,
- torch = 16,
+ torch = 9,
torch_directional = true,
directional_activator = true,
input = vector.subtract(pos,dir),
local dir = minetest.facedir_to_dir(param2)
redstone.inject(pos,{
name = "redstone:repeater_on_"..level,
- torch = 16,
+ torch = 9,
torch_directional = true,
directional_activator = true,
input = vector.subtract(pos,dir),
},
on_construct = function(pos)
- redstone.inject(pos,{torch=16})
+ redstone.inject(pos,{torch=9})
redstone.update(pos)
end,
after_destruct = function(pos, oldnode)
wall_side = {-0.5, -0.3, -0.1, -0.2, 0.3, 0.1},
},
on_construct = function(pos)
- redstone.inject(pos,{torch=16})
+ redstone.inject(pos,{torch=9})
redstone.update(pos)
end,
after_destruct = function(pos, oldnode)
nodenames = {"redstone:torch_wall","redstone:torch_floor"},
run_at_every_load = true,
action = function(pos)
- redstone.inject(pos,{torch=16})
+ redstone.inject(pos,{torch=9})
end,
})
\ No newline at end of file