Rezepte im Autocrafter

German
Post Reply
Stachel
Member
Posts: 57
Joined: Sat May 04, 2019 20:33

Rezepte im Autocrafter

by Stachel » Post

Hallo zusammen!

Ist es möglich, ein Rezept per Lua-Controller in einen Autocrafter(nennen wir ihn 123) zu bekommen? Ich lese seit 2 Tagen und bekomme es nicht zusammengebastelt.
Es soll folgendes geschehen: Es werden in eine Kiste verschiedene Gegenstände gelegt und je nachdem, was die sind, soll ein anderes Rezept im Autocrafter stehen (z.B. verschiedene Kuchen, die brauchen unterschiedliche Früchte, aber immer Zucker und Mehl). Irgendwie in der Richtung...

Mein letzter Versuch:

if event.type == "program" then
port.a = false

elseif event.type == "on" then

if pin.c then
minetest.register_recipe({
output = "pipeworks:123",
recipe = {
{"default:sand", "default:sand", "default:sand"},
{"default:sand", "default:sand", "default:sand"},
{"default:sand", "default:sand", "default:sand"},
}
})
end

end


...aber geht auch bloß nicht! Danke euch schonmal!

User avatar
debiankaios
Member
Posts: 910
Joined: Thu Dec 03, 2020 12:48
IRC: debiankaios
In-game: debiankaios Nowe
Location: germany
Contact:

Re: Rezepte im Autocrafter

by debiankaios » Post

Stachel wrote:
Sun Nov 21, 2021 12:24
Hallo zusammen!

Ist es möglich, ein Rezept per Lua-Controller in einen Autocrafter(nennen wir ihn 123) zu bekommen? Ich lese seit 2 Tagen und bekomme es nicht zusammengebastelt.
Es soll folgendes geschehen: Es werden in eine Kiste verschiedene Gegenstände gelegt und je nachdem, was die sind, soll ein anderes Rezept im Autocrafter stehen (z.B. verschiedene Kuchen, die brauchen unterschiedliche Früchte, aber immer Zucker und Mehl). Irgendwie in der Richtung...

Mein letzter Versuch:

if event.type == "program" then
port.a = false

elseif event.type == "on" then

if pin.c then
minetest.register_recipe({
output = "pipeworks:123",
recipe = {
{"default:sand", "default:sand", "default:sand"},
{"default:sand", "default:sand", "default:sand"},
{"default:sand", "default:sand", "default:sand"},
}
})
end

end


...aber geht auch bloß nicht! Danke euch schonmal!
Es gibt keine Möglichkeit über den Lua-controller, es seiden du startest pipework neu währen der lua-controller läuft. Aber erstens ist mir keine Möglichkeit bekannt dies zu machen und zweitens, wenn es die gibt ist sie bestimmt sehr komplex. Programmier doch einfach eine mod. Dort musst du in der mods.conf folgende Zeile hinzufügen:

Code: Select all

depends = pipeworks
Und in der init.lua folgendes:

Code: Select all

minetest.register_recipe({
	output = "pipeworks:123",
	recipe = {
		{"default:sand", "default:sand", "default:sand"},
		{"default:sand", "default:sand", "default:sand"},
		{"default:sand", "default:sand", "default:sand"},
	}
})

User avatar
Festus1965
Member
Posts: 4181
Joined: Sun Jan 03, 2016 11:58
GitHub: Festus1965
In-game: Festus1965 Thomas Thailand Explorer
Location: Thailand ChiangMai
Contact:

Re: Rezepte im Autocrafter

by Festus1965 » Post

Wenn ich mich recht erinnere, hatte der Admin (diabolusUmarov ) vom Server "Projekt Hirnfrei" das in seiner Pyramide hin bekommen ... also Rezeptwechsel per Befehl ... unklar aber ob der LUA Controller nutze

Der ging dann mal hidden, und ich weiß nicht mal ob der noch existiert.

Ich löse das einfach, indem ich für jedes vorhandene Rezept einen autocrafter baue ... Ich will ja Lösungen und nicht neue Aufgaben.

Viel Glück.
Human has no future (climate change)
If urgend, you find me in Roblox (as CNXThomas)

Och Noe
New member
Posts: 3
Joined: Sun Nov 28, 2021 00:41

Re: Rezepte im Autocrafter

by Och Noe » Post

Hallo Stachel!

Dein Code kann nicht in einem LuaController funktionieren, da alle minetest.*-Funktionen nicht erreichbar sind. Außerdem ist ist minetest.register_recipe selbst in Mods nur in der Initialisierungsphase verfügbar.

Um einen Autocrafter von einem LuaController aus zu steuern muß auch digiline aktiv sein.

Dann stehen folgende Funktionen/Parameter zur Steuerung eines Autocrafters zur Verfügung:
  • "on"
  • "off"
  • "single"
  • {
    {"default:sand", "default:sand", "default:sand"},
    {"default:sand", "default:sand", "default:sand"},
    {"default:sand", "default:sand", "default:sand"},
    }
Beispiele:
digiline_send("autocrafter",{{"default:coal_lump","",""},{"default:stick","",""},{"","",""}} )
setzt das Rezept für eine Fackel

digiline_send("autocrafter","on")
schaltet den Autocrafter ein

Der Digiline-Kanalname muß natürlich im Autocrafter passend gesetzt sein und ist beliebig. Beim Setzen eines Rezeptes kann man nicht die leeren Felder weglassen.

Stachel
Member
Posts: 57
Joined: Sat May 04, 2019 20:33

Re: Rezepte im Autocrafter

by Stachel » Post

Hallo Och Noe,

danke für deinen Ansatz, leider funktioniert es nicht bei mir. Ich spiele als Dreambuilder Game, da ist digilines mit dabei. Muss ich das dennoch aktivieren und wenn ja, wie? Digiline sollte aber aktiv sein, er zeigt mir 68 Gegenstände als Handwerk an.

Aktuell passiert nichts, die Namen (Kanal) des Autocrafter habe ich neu vergeben und angepasst.

Och Noe
New member
Posts: 3
Joined: Sun Nov 28, 2021 00:41

Re: Rezepte im Autocrafter

by Och Noe » Post

Also ich kann es problemlos zum Laufen bekommen. Ich habe das Dreambuilder Game runtergeladen und ein lokales Spiel gestartet und mir alle Rechte gegeben.

Ich habe folgendes aufgebaut und dabei dem Autocrafter dem Kanalnamen "egal" gegeben:
Autocrafter_Digiline1.jpeg
Autocrafter_Digiline1.jpeg (75.92 KiB) Viewed 788 times
Der Autocrafter ist mit einem Digilinekabel mit dem Lua-Controller verbunden, an Port C ist der Taster und an Port B der Schalter.

Code: Select all

local rezepte = {
{{"default:coal_lump","",""},{"default:stick","",""},{"","",""}},
{{"","dye:white",""},
 {"dye:white","default:torch","dye:white"},
 {"","mesecons:wire_00000000_off"}},
{{"","dye:green",""},
 {"dye:green","default:torch","dye:green"},
 {"","mesecons:wire_00000000_off"}}
}

function starte_autocrafter()
     h = rezepte[mem.rezeptnr]
     if not h then
          mem.rezeptnr = 1
          h = rezepte[mem.rezeptnr]
     end
     digiline_send("egal",h)
     digiline_send("egal","on")
end

if event.type == "on" then
     if event.pin.name == "B" then
          starte_autocrafter()
          return
     end
     if event.pin.name == "C" then
          mem.rezeptnr = mem.rezeptnr + 1
          if pin.b then starte_autocrafter() end
          return
     end
     return
end

if event.type == "off" then
     if event.pin.name == "B" then
          digiline_send("egal","off")
     end
     return
end

if event.type == "program" then
     digiline_send("egal","off")
     mem.rezeptnr = 1
     if  pin.c then starte_autocrafter() end
     return
end
Der Schalter schaltet den Autocrafter ein und aus und mit dem Taster wird auf das nächste Rezept gewechselt. In meiner Testwelt funktioniert das problemlos.

Stachel
Member
Posts: 57
Joined: Sat May 04, 2019 20:33

Re: Rezepte im Autocrafter

by Stachel » Post

Ich bin aber auch dämlich, ich habe das digiline-Kabel vergessen, dann kann es auch nicht gehen. Jetzt funktioniert es!

Vielen Dank für deine Mühe und Hilfe!

Post Reply

Who is online

Users browsing this forum: No registered users and 9 guests