LEDs, TA4 ele fab, LED grow light added and some bugfixes

This commit is contained in:
Joachim Stolberg 2020-03-27 19:44:19 +01:00
parent 2b441930d4
commit 7536a2fa47
20 changed files with 349 additions and 23 deletions

View File

@ -193,9 +193,8 @@ minetest.register_node("techage:chest_ta4", {
allow_metadata_inventory_take = allow_metadata_inventory_take,
paramtype2 = "facedir",
groups = {choppy=2, cracky=2, crumbly=2, not_in_creative_inventory=1},
groups = {choppy=2, cracky=2, crumbly=2},
is_ground_content = false,
drop = "techage:ta4_chest",
sounds = default.node_sound_wood_defaults(),
})
@ -239,8 +238,8 @@ minetest.register_craft({
recipe = {"techage:chest_ta2", "default:chest"}
})
--minetest.register_craft({
-- type = "shapeless",
-- output = "techage:chest_ta4",
-- recipe = {"techage:chest_ta3", "default:chest"}
--})
minetest.register_craft({
type = "shapeless",
output = "techage:chest_ta4",
recipe = {"techage:chest_ta3", "default:chest"}
})

View File

@ -221,7 +221,7 @@ local node_name_ta2, node_name_ta3, node_name_ta4 =
num_items = {0,1,1,1},
power_consumption = {0,8,12,18},
},
{false, true, true, false}) -- TA2/TA3
{false, true, true, true}) -- TA2/TA3/TA4
minetest.register_craft({
output = node_name_ta2,
@ -241,6 +241,15 @@ minetest.register_craft({
},
})
minetest.register_craft({
output = node_name_ta4,
recipe = {
{"", "default:diamond", ""},
{"", node_name_ta3, ""},
{"", "techage:ta4_wlanchip", ""},
},
})
if minetest.global_exists("unified_inventory") then
unified_inventory.register_craft_type("ta2_electronic_fab", {
description = S("TA2 Ele Fab"),
@ -254,5 +263,11 @@ if minetest.global_exists("unified_inventory") then
width = 2,
height = 2,
})
unified_inventory.register_craft_type("ta4_electronic_fab", {
description = S("TA4 Ele Fab"),
icon = 'techage_filling_ta4.png^techage_appl_electronic_fab.png^techage_frame_ta4.png',
width = 2,
height = 2,
})
end

View File

@ -8,7 +8,7 @@
GPL v3
See LICENSE.txt for more information
TA4 Protected Chest
TA4 8x2000 Chest
]]--
@ -16,7 +16,7 @@
local M = minetest.get_meta
local S = techage.S
local DESCRIPTION = S("TA4 Protected Chest")
local DESCRIPTION = S("TA4 8x2000 Chest")
local STACK_SIZE = 2000
local function gen_inv(nvm)
@ -263,7 +263,7 @@ minetest.register_node("techage:ta4_chest", {
description = DESCRIPTION,
tiles = {
-- up, down, right, left, back, front
"techage_filling_ta4.png^techage_frame_ta4.png",
"techage_filling_ta4.png^techage_frame_ta4_top.png",
"techage_filling_ta4.png^techage_frame_ta4.png",
"techage_filling_ta4.png^techage_frame_ta4.png^techage_appl_chest_back_ta4.png",
"techage_filling_ta4.png^techage_frame_ta4.png^techage_appl_chest_back_ta4.png",
@ -351,5 +351,11 @@ techage.register_node({"techage:ta4_chest"}, {
minetest.register_craft({
type = "shapeless",
output = "techage:ta4_chest",
recipe = {"techage:chest_ta3", "default:chest"}
recipe = {"techage:chest_ta4"}
})
minetest.register_craft({
type = "shapeless",
output = "techage:chest_ta4",
recipe = {"techage:ta4_chest"}
})

View File

@ -120,7 +120,7 @@ function techage.fuel.on_punch(pos, node, puncher, pointed_thing)
local ldef = liquid.get_liquid_def(wielded_item)
if ldef and ValidOilFuels[ldef.inv_item] then
local new_item = liquid.empty_on_punch(pos, nvm, wielded_item)
local new_item = liquid.empty_on_punch(pos, nvm, wielded_item, item_count)
if new_item then
puncher:set_wielded_item(new_item)
M(pos):set_string("formspec", techage.fuel.formspec(pos, nvm))

View File

@ -99,7 +99,7 @@ minetest.register_node("techage:ta4_tubeA", {
is_ground_content = false,
groups = {choppy=2, cracky=3, stone=1, not_in_creative_inventory=1},
sounds = default.node_sound_wood_defaults(),
drop = "techage:tubeS",
drop = "techage:ta4_tubeS",
})
minetest.register_craft({

View File

@ -155,5 +155,6 @@ techage.Items = {
ta4_grinder = "techage:ta4_grinder_pas",
ta4_detector = "techage:ta4_detector_off",
ta4_chest = "techage:ta4_chest",
ta4_growlight = "techage:growlight_on",
--ta4_ "",
}

View File

@ -154,6 +154,9 @@ techage.manual_DE.aTitel = {
"3,TA4 Spieler Detektor / Player Detector",
"3,TA4 Zustandssammler / State Collector",
"3,TA4 Detektor / Detector",
"2,TA4 Lampen",
"3,TA4 LED Pflanzenlampe / TA4 LED Grow Light",
"3,weitere Lampen kommen noch...",
"2,Weitere TA4 Blöcke",
"3,TA4 Tank / TA4 Tank",
"3,TA4 Pumpe / TA4 Pump",
@ -161,7 +164,8 @@ techage.manual_DE.aTitel = {
"3,TA4 Wasserpumpe / Water Pump",
"3,TA4 Röhren / TA4 Tube",
"3,TA4 Schieber / Pusher",
"3,TA4 Kiste / Chest",
"3,TA4 Kiste / TA4 Chest",
"3,TA4 8x2000 Kiste / TA4 8x2000 Chest",
"3,TA4 Verteiler / Distributor",
"3,TA4 Kiessieb / Gravel Sieve",
"3,TA4 Mühle / Grinder",
@ -1254,6 +1258,20 @@ techage.manual_DE.aText = {
"\n"..
"\n"..
"\n",
"TA4 beinhaltet eine Reihe von leistungsstarken Lampen\\, die eine bessere Ausleuchtung ermöglichen oder Spezialaufgaben übernehmen.\n"..
"\n",
"Die TA4 LED Pflanzenlampe ermöglicht ein schnelles und kräftiges Wachstum aller Pflanzen aus der 'farming' Mod. Die Lampe beleuchtet ein 3x3 großes Feld\\, so dass sich damit auch Pflanzen unter Tage anbauen lassen.\n"..
"Die Lampe muss mit einem Abstand von einem Block über dem Boden in der Mitte des 3x3 Feldes platziert werden.\n"..
"\n"..
"Zusätzlich kann die Lampe auch zur Blumenzucht genutzt werden. Wird die Lampe über ein 3x3 großes Blumenbeet aus \"Garden Soil\" (Mod 'compost') platziert\\, so wachsen dort die Blumen ganz von selbst (über und unter Tage).\n"..
"\n"..
"Abernten kann man die Blumen mit den Signs Bot\\, der auch über ein entsprechendes Zeichen verfügt\\, das vor das Blumenfeld gestellt werden muss.\n"..
"\n"..
"Die Lampe benötigt 1 ku Strom.\n"..
"\n"..
"\n"..
"\n",
"",
"",
"Siehe TA3 Tank.\n"..
"\n"..
@ -1291,9 +1309,13 @@ techage.manual_DE.aText = {
"\n"..
"\n"..
"\n",
"Die TA4 Kiste hat kein normales Inventar wir andere Kisten\\, sondern verfügt über 8 Speicher\\, wobei jeder Speicher bis zu 2000 Items einer Sorte aufnehmen kann. Über die orangefarbenen Taster können Items in den Speicher verschoben bzw. wieder heraus geholt werden. Die Kiste kann auch wie sonst üblich mit einem Schieber (TA2\\, TA3 oder TA4) gefüllt bzw. geleert werden.\n"..
"Die Funktion entspricht der von TA3. Die Kiste kann aber mehr Inhalt aufnehmen.\n"..
"\n"..
"Der TA4 Kiste besitzt ein zusätzliches Kommandos für den Lua Controller:\n"..
"\n"..
"\n",
"Die TA4 8x2000 Kiste hat kein normales Inventar wir andere Kisten\\, sondern verfügt über 8 Speicher\\, wobei jeder Speicher bis zu 2000 Items einer Sorte aufnehmen kann. Über die orangefarbenen Taster können Items in den Speicher verschoben bzw. wieder heraus geholt werden. Die Kiste kann auch wie sonst üblich mit einem Schieber (TA2\\, TA3 oder TA4) gefüllt bzw. geleert werden.\n"..
"\n"..
"Der Kiste besitzt ein zusätzliches Kommandos für den Lua Controller:\n"..
"\n"..
" - 'count' dient zur Anfrage\\, wie viele Items in der Kiste sind.\nBeispiel 1: '$read_data(CHEST\\, \"count\")' --> Summe der Items über alle 8 Speicher\nBeispiel 2: '$read_data(CHEST\\, \"count\"\\, 2)' --> Anzahl der Items in Speicher 2 (zweiter von links)\n"..
"\n"..
@ -1471,6 +1493,9 @@ techage.manual_DE.aItemName = {
"ta4_collector",
"ta4_detector",
"",
"ta4_growlight",
"",
"",
"ta4_tank",
"ta4_pump",
"ta4_furnaceheater",
@ -1478,6 +1503,7 @@ techage.manual_DE.aItemName = {
"ta4_tube",
"ta4_pusher",
"ta4_chest",
"ta4_chest",
"ta4_distributor",
"ta4_gravelsieve",
"ta4_grinder",
@ -1648,5 +1674,9 @@ techage.manual_DE.aPlanTable = {
"",
"",
"",
"",
"",
"",
"",
}

View File

@ -236,7 +236,18 @@ techage.register_node({"techage:furnace_firebox", "techage:furnace_firebox_on"},
stop_firebox(pos, nvm)
booster_cmnd(pos, "stop")
end
end
end,
on_node_load = function(pos, node)
local inv = M(pos):get_inventory()
if not inv:is_empty("fuel") then
local nvm = techage.get_nvm(pos)
nvm.liquid = nvm.liquid or {}
local count = inv:get_stack("fuel", 1):get_count()
nvm.liquid.amount = (nvm.liquid.amount or 0) + count
nvm.liquid.name = "techage:gasoline"
inv:set_stack("fuel", 1, nil)
end
end,
})
Pipe:add_secondary_node_names({"techage:furnace_firebox", "techage:furnace_firebox_on"})

View File

@ -140,12 +140,14 @@ else
-- Lamps
dofile(MP.."/lamps/lib.lua")
dofile(MP.."/lamps/lightblock.lua")
dofile(MP.."/lamps/simplelamp.lua")
dofile(MP.."/lamps/streetlamp.lua")
dofile(MP.."/lamps/ceilinglamp.lua")
dofile(MP.."/lamps/industriallamp1.lua")
dofile(MP.."/lamps/industriallamp2.lua")
dofile(MP.."/lamps/industriallamp3.lua")
dofile(MP.."/lamps/growlight.lua")
-- Oil
dofile(MP.."/oil/explore.lua")

View File

@ -34,6 +34,11 @@ minetest.register_craftitem("techage:ta4_ramchip", {
inventory_image = "techage_ramchip.png",
})
minetest.register_craftitem("techage:ta4_leds", {
description = S("TA4 LEDs"),
inventory_image = "techage_leds.png",
})
techage.recipes.add("ta2_electronic_fab", {
output = "techage:vacuum_tube 2",
@ -54,3 +59,18 @@ techage.recipes.add("ta3_electronic_fab", {
output = "techage:ta4_ramchip 8",
input = {"default:mese_crystal 1", "default:gold_ingot 1", "default:copper_ingot 1", "techage:ta4_silicon_wafer 1"}
})
techage.recipes.add("ta4_electronic_fab", {
output = "techage:ta4_wlanchip 8",
input = {"default:mese_crystal 1", "default:copper_ingot 1", "default:gold_ingot 1", "techage:ta4_silicon_wafer 1"}
})
techage.recipes.add("ta4_electronic_fab", {
output = "techage:ta4_ramchip 8",
input = {"default:mese_crystal 1", "default:gold_ingot 1", "default:copper_ingot 1", "techage:ta4_silicon_wafer 1"}
})
techage.recipes.add("ta4_electronic_fab", {
output = "techage:ta4_leds 8",
input = {"basic_materials:plastic_sheet 4", "basic_materials:copper_wire 1", "techage:ta4_silicon_wafer 1"}
})

144
lamps/growlight.lua Normal file
View File

@ -0,0 +1,144 @@
--[[
TechAge
=======
Copyright (C) 2020 Joachim Stolberg
GPL v3
See LICENSE.txt for more information
TA4 LED Grow Light
]]--
local S = techage.S
local CYCLE_TIME = 2
local Cable = techage.ElectricCable
local power = techage.power
local Flowers = {}
local Plants = {}
-- 9 plant positions below the light
local Positions = {
{x = 0, y =-1, z = 0},
{x =-1, y =-1, z = 0},
{x = 0, y =-1, z =-1},
{x = 1, y =-1, z = 0},
{x = 0, y =-1, z = 1},
{x =-1, y =-1, z =-1},
{x = 1, y =-1, z = 1},
{x =-1, y =-1, z = 1},
{x = 1, y =-1, z =-1},
}
local function node_timer(pos, elapsed)
power.consumer_alive(pos, Cable, CYCLE_TIME)
local nvm = techage.get_nvm(pos)
nvm.tick = nvm.tick or math.random(15, 30)
nvm.tick = nvm.tick - 1
if nvm.tick == 0 then
nvm.tick = math.random(15, 30)
local plant_pos = vector.add(pos, Positions[math.random(1, 9)])
local soil_pos = {x = plant_pos.x, y = plant_pos.y - 1, z = plant_pos.z}
local plant_node = minetest.get_node(plant_pos)
local soil_node = minetest.get_node(soil_pos)
if soil_node and soil_node.name == "compost:garden_soil" then
if plant_node and plant_node.name == "air" then
local idx = math.floor(math.random(1, #Flowers))
minetest.set_node(plant_pos, {name = Flowers[idx]})
elseif plant_node and Plants[plant_node.name] then
local ndef = minetest.registered_nodes[plant_node.name]
ndef.on_timer(plant_pos, 200)
end
end
end
return true
end
local function on_switch_lamp(pos, on)
techage.light_ring(pos, on)
end
techage.register_lamp("techage:growlight", {
description = S("TA4 LED Grow Light"),
tiles = {
-- up, down, right, left, back, front
'techage_growlight_off.png',
'techage_growlight_back.png',
'techage_growlight_off.png',
'techage_growlight_side.png',
'techage_growlight_side.png',
'techage_growlight_side.png',
'techage_growlight_side.png',
'techage_growlight_side.png',
},
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {
{-8/16, -8/16, -8/16, 8/16, -13/32, 8/16},
},
},
on_switch_lamp = on_switch_lamp,
},{
description = S("TA4 LED Grow Light"),
tiles = {
-- up, down, right, left, back, front
'techage_growlight_on.png',
'techage_growlight_back.png',
'techage_growlight_side.png',
'techage_growlight_side.png',
'techage_growlight_side.png',
'techage_growlight_side.png',
},
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {
{-8/16, -8/16, -8/16, 8/16, -13/32, 8/16},
},
},
on_timer = node_timer,
on_switch_lamp = on_switch_lamp,
})
minetest.register_craft({
output = "techage:growlight_off",
recipe = {
{"techage:ta4_leds", "techage:basalt_glass_thin", "techage:ta4_leds"},
{"techage:ta4_leds", "techage:ta4_leds", "techage:ta4_leds"},
{"techage:ta4_leds", "techage:aluminum", "techage:ta4_leds"},
},
})
function techage.register_flower(name)
Flowers[#Flowers+1] = name
end
function techage.register_plant(name)
Plants[name] = true
end
minetest.after(1, function()
for name,_ in pairs(minetest.registered_decorations) do
if type(name) == "string" then
local mod = string.split(name, ":")[1]
if mod == "flowers" then
techage.register_flower(name)
end
end
end
for name,ndef in pairs(minetest.registered_nodes) do
if type(name) == "string" then
local mod = string.split(name, ":")[1]
if mod == "farming" then
if ndef.on_timer then -- probably a plant that still needs to grow
techage.register_plant(name)
end
end
end
end
end)

View File

@ -31,6 +31,10 @@ local function swap_node(pos, postfix)
end
node.name = parts[1].."_"..postfix
minetest.swap_node(pos, node)
local ndef = minetest.registered_nodes[node.name]
if ndef.on_switch_lamp then
ndef.on_switch_lamp(pos, postfix == "on")
end
end
local function on_power(pos)
@ -130,7 +134,7 @@ function techage.register_lamp(basename, ndef_off, ndef_on)
ndef_on.networks = net_def
ndef_on.on_rightclick = lamp_on_rightclick
ndef_on.on_rotate = ndef_on.on_rotate or on_rotate
ndef_on.on_timer = node_timer
ndef_on.on_timer = ndef_on.on_timer or node_timer
ndef_on.paramtype = "light"
ndef_on.light_source = minetest.LIGHT_MAX
ndef_on.sunlight_propagates = true

63
lamps/lightblock.lua Normal file
View File

@ -0,0 +1,63 @@
--[[
TechAge
=======
Copyright (C) 2020 Joachim Stolberg
GPL v3
See LICENSE.txt for more information
TA4 Invisible Light Block
]]--
local S = techage.S
-- 9 light positions in a 3x3 field
local Positions = {
{x =-1, y = 0, z = 0},
{x = 0, y = 0, z =-1},
{x = 1, y = 0, z = 0},
{x = 0, y = 0, z = 1},
{x =-1, y = 0, z =-1},
{x = 1, y = 0, z = 1},
{x =-1, y = 0, z = 1},
{x = 1, y = 0, z =-1},
}
minetest.register_node("techage:lightblock", {
description = "Techage Light Block",
drawtype = "airlike",
paramtype = "light",
light_source = minetest.LIGHT_MAX,
sunlight_propagates = true,
walkable = false,
pointable = false,
diggable = false,
buildable_to = true,
floodable = true,
is_ground_content = false,
groups = {not_in_creative_inventory=1},
})
function techage.light_ring(center_pos, on)
for _,dir in ipairs(Positions) do
local pos1 = vector.add(center_pos, dir)
local node = techage.get_node_lvm(pos1)
print("light_ring", node.name, minetest.pos_to_string(pos1))
if on then
if node.name == "air" then
minetest.set_node(pos1, {name = "techage:lightblock"})
end
else
if node.name == "techage:lightblock" then
minetest.remove_node(pos1)
end
end
end
local pos1 = {x=center_pos.x-2, y=center_pos.y-2, z=center_pos.z-2}
local pos2 = {x=center_pos.x+2, y=center_pos.y+2, z=center_pos.z+2}
minetest.fix_light(pos1, pos2)
end

View File

@ -409,6 +409,27 @@ Diesen Zähler kann man über das Kommando 'count' abfragen und über 'reset' zu
[ta4_detector|image]
## TA4 Lampen
TA4 beinhaltet eine Reihe von leistungsstarken Lampen, die eine bessere Ausleuchtung ermöglichen oder Spezialaufgaben übernehmen.
### TA4 LED Pflanzenlampe / TA4 LED Grow Light
Die TA4 LED Pflanzenlampe ermöglicht ein schnelles und kräftiges Wachstum aller Pflanzen aus der `farming` Mod. Die Lampe beleuchtet ein 3x3 großes Feld, so dass sich damit auch Pflanzen unter Tage anbauen lassen.
Die Lampe muss mit einem Abstand von einem Block über dem Boden in der Mitte des 3x3 Feldes platziert werden.
Zusätzlich kann die Lampe auch zur Blumenzucht genutzt werden. Wird die Lampe über ein 3x3 großes Blumenbeet aus "Garden Soil" (Mod `compost`) platziert, so wachsen dort die Blumen ganz von selbst (über und unter Tage).
Abernten kann man die Blumen mit den Signs Bot, der auch über ein entsprechendes Zeichen verfügt, das vor das Blumenfeld gestellt werden muss.
Die Lampe benötigt 1 ku Strom.
[ta4_growlight|image]
### weitere Lampen kommen noch...
## Weitere TA4 Blöcke
### TA4 Tank / TA4 Tank
@ -462,11 +483,17 @@ Der TA4 Schieber besitzt zwei zusätzliche Kommandos für den Lua Controller:
[ta4_pusher|image]
### TA4 Kiste / Chest
### TA4 Kiste / TA4 Chest
Die TA4 Kiste hat kein normales Inventar wir andere Kisten, sondern verfügt über 8 Speicher, wobei jeder Speicher bis zu 2000 Items einer Sorte aufnehmen kann. Über die orangefarbenen Taster können Items in den Speicher verschoben bzw. wieder heraus geholt werden. Die Kiste kann auch wie sonst üblich mit einem Schieber (TA2, TA3 oder TA4) gefüllt bzw. geleert werden.
Die Funktion entspricht der von TA3. Die Kiste kann aber mehr Inhalt aufnehmen.
Der TA4 Kiste besitzt ein zusätzliches Kommandos für den Lua Controller:
[ta4_chest|image]
### TA4 8x2000 Kiste / TA4 8x2000 Chest
Die TA4 8x2000 Kiste hat kein normales Inventar wir andere Kisten, sondern verfügt über 8 Speicher, wobei jeder Speicher bis zu 2000 Items einer Sorte aufnehmen kann. Über die orangefarbenen Taster können Items in den Speicher verschoben bzw. wieder heraus geholt werden. Die Kiste kann auch wie sonst üblich mit einem Schieber (TA2, TA3 oder TA4) gefüllt bzw. geleert werden.
Der Kiste besitzt ein zusätzliches Kommandos für den Lua Controller:
- `count` dient zur Anfrage, wie viele Items in der Kiste sind.
Beispiel 1: `$read_data(CHEST, "count")` --> Summe der Items über alle 8 Speicher

View File

@ -153,6 +153,9 @@
- [TA4 Spieler Detektor / Player Detector](./manual_ta4_DE.md#ta4-spieler-detektor--player-detector)
- [TA4 Zustandssammler / State Collector](./manual_ta4_DE.md#ta4-zustandssammler--state-collector)
- [TA4 Detektor / Detector](./manual_ta4_DE.md#ta4-detektor--detector)
- [TA4 Lampen](./manual_ta4_DE.md#ta4-lampen)
- [TA4 LED Pflanzenlampe / TA4 LED Grow Light](./manual_ta4_DE.md#ta4-led-pflanzenlampe--ta4-led-grow-light)
- [weitere Lampen kommen noch...](./manual_ta4_DE.md#weitere-lampen-kommen-noch...)
- [Weitere TA4 Blöcke](./manual_ta4_DE.md#weitere-ta4-blöcke)
- [TA4 Tank / TA4 Tank](./manual_ta4_DE.md#ta4-tank--ta4-tank)
- [TA4 Pumpe / TA4 Pump](./manual_ta4_DE.md#ta4-pumpe--ta4-pump)
@ -160,7 +163,8 @@
- [TA4 Wasserpumpe / Water Pump](./manual_ta4_DE.md#ta4-wasserpumpe--water-pump)
- [TA4 Röhren / TA4 Tube](./manual_ta4_DE.md#ta4-röhren--ta4-tube)
- [TA4 Schieber / Pusher](./manual_ta4_DE.md#ta4-schieber--pusher)
- [TA4 Kiste / Chest](./manual_ta4_DE.md#ta4-kiste--chest)
- [TA4 Kiste / TA4 Chest](./manual_ta4_DE.md#ta4-kiste--ta4-chest)
- [TA4 8x2000 Kiste / TA4 8x2000 Chest](./manual_ta4_DE.md#ta4-8x2000-kiste--ta4-8x2000-chest)
- [TA4 Verteiler / Distributor](./manual_ta4_DE.md#ta4-verteiler--distributor)
- [TA4 Kiessieb / Gravel Sieve](./manual_ta4_DE.md#ta4-kiessieb--gravel-sieve)
- [TA4 Mühle / Grinder](./manual_ta4_DE.md#ta4-mühle--grinder)

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 358 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 337 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 B

BIN
textures/techage_leds.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB