From ff36c809cb64be90e64e61218536002e0b047950 Mon Sep 17 00:00:00 2001 From: Joachim Stolberg Date: Mon, 18 Nov 2019 20:29:41 +0100 Subject: [PATCH] silo bugfix --- doc/manual_DE.lua | 7 ++- liquids/silo.lua | 111 +++++++++++++++------------------------ manuals/manual_ta3_DE.md | 4 +- manuals/toc_DE.md | 2 +- 4 files changed, 52 insertions(+), 72 deletions(-) diff --git a/doc/manual_DE.lua b/doc/manual_DE.lua index 60aa2db..d4e35b4 100644 --- a/doc/manual_DE.lua +++ b/doc/manual_DE.lua @@ -50,7 +50,7 @@ techage.manual_DE.aTitel = { "3,TA3 Turbine", "3,TA3 Generator", "3,TA3 Kühler / Cooler", - "2,Eletrischer Strom", + "2,Elektrischer Strom", "3,TA Stromkabel / Electric Cable", "3,TA Verteilerdose / Electric Junction Box", "3,TA Stromleitung / Power Line", @@ -194,7 +194,7 @@ techage.manual_DE.aText = { "\n", " - 28.09.2019: Um Solaranlage erweitert\n".. " - 05.10.2019: Daten zur Solaranlage und Beschreibung zum Wechselrichter und zum Power-Terminal geändert\n".. - " - 17.11.2019: Reaktor\\, Aluminium\\, Silo\\, Bauxit hinzugefügt\n".. + " - 18.11.2019: Kapitel für Erze\\, Reaktor\\, Aluminium\\, Silo\\, Bauxit\\, Ofenheizung\\, Kieswaschanlage hinzugefügt\n".. "\n", "In TA1 geht es darum\\, mit einfachen Werkzeugen und Gerätschaften ausreichend Erze zu schürfen und Holzkohle herzustellen\\, so dass damit TA2 Maschinen hergestellt und betrieben werden können.\n".. "\n".. @@ -593,6 +593,9 @@ techage.manual_DE.aText = { "\n", "Flüssigkeiten wie Wasser oder Öl können nur die spezielle Leitungen gepumpt und in Tanks gespeichert werden. Wie auch bei Wasser gibt es aber Behälter (Eimer\\, Kanister\\, Fässer)\\, in denen die Flüssig gelagert und transportiert werden kann.\n".. "\n".. + "Über die gelben Leitungen und Verbindungsstücke ist es auch möglich\\, mehrere Tanks zu verbinden. Allerdings müssen die Tanks den selben Inhalt haben und zwischen Tank\\, Pumpe und Verteiler muss immer mindestens eine gelbe Leitung sein.\n".. + "Bspw. zwei Tanks direkt mit einem Verteilerstück zu verbinden\\, geht nicht.\n".. + "\n".. "\n".. "\n", "In einem Tank können Flüssigkeiten gespeichert werden. Ein Tank kann über eine Pumpe gefüllt bzw. geleert werden. Dazu muss die Pumpe über einer Leitung (gelbe Röhre) mit dem Tank verbunden sein.\n".. diff --git a/liquids/silo.lua b/liquids/silo.lua index a18c895..00a41e6 100644 --- a/liquids/silo.lua +++ b/liquids/silo.lua @@ -87,6 +87,45 @@ local function formspec4() "listring[current_player;main]" end +local tLiquid = { + capa = 0, + peek = function(pos, indir) + local mem = tubelib2.get_mem(pos) + local inv = M(pos):get_inventory() + if not inv:is_empty("main") then + return mem.item_name or get_item_name(mem, inv) + end + end, + put = function(pos, indir, name, amount) + local inv = M(pos):get_inventory() + local stack = ItemStack(name.." "..amount) + if inv:room_for_item("main", stack) then + inv:add_item("main", stack) + return 0 + end + return amount + end, + take = function(pos, indir, name, amount) + local mem = tubelib2.get_mem(pos) + local inv = M(pos):get_inventory() + if not name then + name = mem.item_name or get_item_name(mem, inv) + end + if name then + local stack = ItemStack(name.." "..amount) + return inv:remove_item("main", stack):get_count(), name + end + return 0 + end, +} + +local tNetworks = { + pipe = { + sides = techage.networks.AllSides, -- Pipe connection sides + ntype = "tank", + }, +} + minetest.register_node("techage:ta3_silo", { description = S("TA3 Silo"), tiles = { @@ -120,40 +159,8 @@ minetest.register_node("techage:ta3_silo", { Pipe:after_dig_node(pos) techage.remove_node(pos) end, - liquid = { - capa = 0, - peek = function(pos, indir) - local mem = tubelib2.get_mem(pos) - local inv = M(pos):get_inventory() - if not inv:is_empty("main") then - return mem.item_name or get_item_name(mem, inv) - end - end, - put = function(pos, indir, name, amount) - local inv = M(pos):get_inventory() - local stack = ItemStack(name.." "..amount) - if inv:room_for_item("main", stack) then - inv:add_item("main", stack) - return 0 - end - return amount - end, - take = function(pos, indir, name, amount) - local inv = M(pos):get_inventory() - local stack = ItemStack(name.." "..amount) - if inv:contains_item("main", stack) then - inv:room_for_item("main", stack) - return amount, name - end - return 0 - end, - }, - networks = { - pipe = { - sides = techage.networks.AllSides, -- Pipe connection sides - ntype = "tank", - }, - }, + liquid = tLiquid, + networks = tNetworks, can_dig = can_dig, allow_metadata_inventory_put = allow_metadata_inventory_put, allow_metadata_inventory_take = allow_metadata_inventory_take, @@ -197,40 +204,8 @@ minetest.register_node("techage:ta4_silo", { Pipe:after_dig_node(pos) techage.remove_node(pos) end, - liquid = { - capa = 0, - peek = function(pos, indir) - local mem = tubelib2.get_mem(pos) - local inv = M(pos):get_inventory() - if not inv:is_empty("main") then - return mem.item_name or get_item_name(mem, inv) - end - end, - put = function(pos, indir, name, amount) - local inv = M(pos):get_inventory() - local stack = ItemStack(name.." "..amount) - if inv:room_for_item("main", stack) then - inv:add_item("main", stack) - return 0 - end - return amount - end, - take = function(pos, indir, name, amount) - local inv = M(pos):get_inventory() - local stack = ItemStack(name.." "..amount) - if inv:contains_item("main", stack) then - inv:room_for_item("main", stack) - return amount, name - end - return 0 - end, - }, - networks = { - pipe = { - sides = techage.networks.AllSides, -- Pipe connection sides - ntype = "tank", - }, - }, + liquid = tLiquid, + networks = tNetworks, can_dig = can_dig, allow_metadata_inventory_put = allow_metadata_inventory_put, allow_metadata_inventory_take = allow_metadata_inventory_take, diff --git a/manuals/manual_ta3_DE.md b/manuals/manual_ta3_DE.md index fc8195a..d54a3d5 100644 --- a/manuals/manual_ta3_DE.md +++ b/manuals/manual_ta3_DE.md @@ -75,7 +75,7 @@ Dient zur Abkühlung des heißen Dampfs aus der Turbine. Muss über Dampfleitun [ta3_cooler|image] -## Eletrischer Strom +## Elektrischer Strom In TA3 (und TA4) werden die Maschinen mit Strom angetrieben. Dazu müssen die Maschinen und Generatoren mit Stromkabel verbunden werden. TA3 besitzt 2 Arten von Stromkabel: @@ -238,6 +238,8 @@ Ist Teil des TA3 Industrieofen. Siehe TA3 Industrieofen. Flüssigkeiten wie Wasser oder Öl können nur die spezielle Leitungen gepumpt und in Tanks gespeichert werden. Wie auch bei Wasser gibt es aber Behälter (Eimer, Kanister, Fässer), in denen die Flüssig gelagert und transportiert werden kann. +Über die gelben Leitungen und Verbindungsstücke ist es auch möglich, mehrere Tanks zu verbinden. Allerdings müssen die Tanks den selben Inhalt haben und zwischen Tank, Pumpe und Verteiler muss immer mindestens eine gelbe Leitung sein. +Bspw. zwei Tanks direkt mit einem Verteilerstück zu verbinden, geht nicht. [ta3_tank|plan] diff --git a/manuals/toc_DE.md b/manuals/toc_DE.md index d61d456..ee3d283 100644 --- a/manuals/toc_DE.md +++ b/manuals/toc_DE.md @@ -49,7 +49,7 @@ - [TA3 Turbine](./manual_ta3_DE.md#ta3-turbine) - [TA3 Generator](./manual_ta3_DE.md#ta3-generator) - [TA3 Kühler / Cooler](./manual_ta3_DE.md#ta3-kühler--cooler) - - [Eletrischer Strom](./manual_ta3_DE.md#eletrischer-strom) + - [Elektrischer Strom](./manual_ta3_DE.md#elektrischer-strom) - [TA Stromkabel / Electric Cable](./manual_ta3_DE.md#ta-stromkabel--electric-cable) - [TA Verteilerdose / Electric Junction Box](./manual_ta3_DE.md#ta-verteilerdose--electric-junction-box) - [TA Stromleitung / Power Line](./manual_ta3_DE.md#ta-stromleitung--power-line)