Modhilfe: Geräte

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

Modhilfe: Geräte

by debiankaios » Post

Hallo in meiner mod will ich ein gerät(z.b. ofen) machenwomit ich was craften kann. Gibt es was was mir dazu helfen kann?

User avatar
LRV
Helper
Posts: 378
Joined: Mon Dec 19, 2016 17:29
GitHub: Mooncarguy
In-game: Mooncarman Mooncarguy

Re: Modhilfe: Geräte

by LRV » Post

Also die Mods mcg_lockworkshop, mcg_dyemixer und mining_plus haben solche Geräte. Sollte man recht einfach umcoden können, um eine eigene Werkbank zu kriegen.
This is a cool signature. :)

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

Re: Modhilfe: Geräte

by debiankaios » Post

LRV wrote:
Tue Jan 05, 2021 21:20
Also die Mods mcg_lockworkshop, mcg_dyemixer und mining_plus haben solche Geräte. Sollte man recht einfach umcoden können, um eine eigene Werkbank zu kriegen.
Ok, versuchs

User avatar
Krock
Developer
Posts: 4650
Joined: Thu Oct 03, 2013 07:48
GitHub: SmallJoker
Location: Switzerland
Contact:

Re: Modhilfe: Geräte

by Krock » Post

Mit der "pipeworks"-Mod erhälst du einen neuen Block der "Autocrafter" heisst. Mit dem Block, Rohren und "Filtern" (alle in pipeworks) kannst du eine Fabrik aufbauen.

Dazu gibt es verschiedene Videos auf Youtube, welche dir beim zusammenbauen helfen können.
Look, I programmed a bug for you. >> Mod Search Engine << - Mods by Krock - DuckDuckGo mod search bang: !mtmod <keyword here>

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

Re: Modhilfe: Geräte

by debiankaios » Post

Krock wrote:
Wed Jan 06, 2021 12:49
Mit der "pipeworks"-Mod erhälst du einen neuen Block der "Autocrafter" heisst. Mit dem Block, Rohren und "Filtern" (alle in pipeworks) kannst du eine Fabrik aufbauen.

Dazu gibt es verschiedene Videos auf Youtube, welche dir beim zusammenbauen helfen können.
Pipework kenne ich. Ich will aber eine alienbench für meine alienn_material machen womit ich alien aplles herstellen kann.

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

Re: Modhilfe: Geräte

by debiankaios » Post

LRV wrote:
Tue Jan 05, 2021 21:20
Also die Mods mcg_lockworkshop, mcg_dyemixer und mining_plus haben solche Geräte. Sollte man recht einfach umcoden können, um eine eigene Werkbank zu kriegen.
Es gunktioniert noch nicht ganz. Das mit den ersten Item(nich wo die lngots reinkommen9 funktioniert noch nicht. HIer der Quellcode:

Code: Select all

-- default/furnace.lua


alienbench = {}
alienbench.crafts = {}

alienbench.register_craft = function(item_from, item_to)
	if not minetest.registered_nodes[item_from] or not minetest.registered_nodes[item_to] then
		return
	end
	minetest.clear_craft({output = item_to})
	alienbench.crafts[item_from] = item_to
end



local function craft(pos, listname, index, stack, player)
	local inv = minetest.get_meta(pos):get_inventory()
	local apple = inv:get_stack("input", 1):get_name()
	local lock = inv:get_stack("alien_ingot", 1):is_empty()

	if alienbench.crafts[input] and inv:room_for_item("output", alienbench.crafts[input]) then
		inv:remove_item("input", {name = input, count = 1})
		inv:remove_item("alien_ingot", {name = "alien_material:alien_ingot", count = 1})
		inv:add_item("output", mcg_lockworkshop.crafts[input])
	end
end



minetest.register_node("alien_material:alienbench", {
	description = "alienbench",
	groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
	sounds = default.node_sound_wood_defaults(),
	tiles = {
		"alienbench_y.png", "alienbench_y.png",
		"alienbench.png","alienbench_side.png",
		"alienbench_side.png", "alienbench_side.png"
	},
	after_place_node = function(pos)
		local meta = minetest.get_meta(pos)
		local inv = meta:get_inventory()
		meta:set_string("infotext", "alienbench")
		inv:set_size("input", 1)
		inv:set_size("alien_ingot", 1)
		inv:set_size("output", 1)
		meta:set_string("formspec", [[
			size[8,4.8]
			box[-0.01,0;1.84,0.9;#555555]
			image[0,0;0.9,0.9;alien_apple.png]
			label[0.7,0.25;alien_apple]
			list[context;input;2,0;1,1;]
			list[context;alien_ingot;3,0;1,1;]
			image[3,0;1,1;ingot_bg.png]
			image[4,0;1,1;gui_furnace_arrow_bg.png^[transformR270]
			list[context;output;5,0;1,1;]
			list[current_player;main;0,1.1;8,4;]
		]].. default.gui_bg .. default.gui_bg_img .. default.gui_slots .. default.get_hotbar_bg(0, 1.1))
	end,
	allow_metadata_inventory_put = function(pos, listname, index, stack, player)
		local stackname = stack:get_name()
		if (listname == "input" and stackname == alienbench.crafts[stackname]) or
			 (listname == "alien_ingot" and "alien_material:alien_ingot") then
			return stack:get_count()
		end
		return 0
	end,
	on_metadata_inventory_put = craft,
	on_metadata_inventory_take = craft,
	can_dig = function(pos)
		local inv = minetest.get_meta(pos):get_inventory()
		if inv:is_empty("input") and inv:is_empty("alien_ingot") and inv:is_empty("output") then
			return true
		else
			return false
		end
end})


User avatar
LRV
Helper
Posts: 378
Joined: Mon Dec 19, 2016 17:29
GitHub: Mooncarguy
In-game: Mooncarman Mooncarguy

Re: Modhilfe: Geräte

by LRV » Post

debiankaios wrote:
Wed Jan 06, 2021 14:20
LRV wrote:
Tue Jan 05, 2021 21:20
Also die Mods mcg_lockworkshop, mcg_dyemixer und mining_plus haben solche Geräte. Sollte man recht einfach umcoden können, um eine eigene Werkbank zu kriegen.
Es gunktioniert noch nicht ganz. Das mit den ersten Item(nich wo die lngots reinkommen9 funktioniert noch nicht. HIer der Quellcode:

Code: Select all

-- default/furnace.lua


alienbench = {}
alienbench.crafts = {}

alienbench.register_craft = function(item_from, item_to)
	if not minetest.registered_nodes[item_from] or not minetest.registered_nodes[item_to] then
		return
	end
	minetest.clear_craft({output = item_to})
	alienbench.crafts[item_from] = item_to
end



local function craft(pos, listname, index, stack, player)
	local inv = minetest.get_meta(pos):get_inventory()
	local apple = inv:get_stack("input", 1):get_name()
	local lock = inv:get_stack("alien_ingot", 1):is_empty()

	if alienbench.crafts[input] and inv:room_for_item("output", alienbench.crafts[input]) then
		inv:remove_item("input", {name = input, count = 1})
		inv:remove_item("alien_ingot", {name = "alien_material:alien_ingot", count = 1})
		inv:add_item("output", mcg_lockworkshop.crafts[input])
	end
end



minetest.register_node("alien_material:alienbench", {
	description = "alienbench",
	groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
	sounds = default.node_sound_wood_defaults(),
	tiles = {
		"alienbench_y.png", "alienbench_y.png",
		"alienbench.png","alienbench_side.png",
		"alienbench_side.png", "alienbench_side.png"
	},
	after_place_node = function(pos)
		local meta = minetest.get_meta(pos)
		local inv = meta:get_inventory()
		meta:set_string("infotext", "alienbench")
		inv:set_size("input", 1)
		inv:set_size("alien_ingot", 1)
		inv:set_size("output", 1)
		meta:set_string("formspec", [[
			size[8,4.8]
			box[-0.01,0;1.84,0.9;#555555]
			image[0,0;0.9,0.9;alien_apple.png]
			label[0.7,0.25;alien_apple]
			list[context;input;2,0;1,1;]
			list[context;alien_ingot;3,0;1,1;]
			image[3,0;1,1;ingot_bg.png]
			image[4,0;1,1;gui_furnace_arrow_bg.png^[transformR270]
			list[context;output;5,0;1,1;]
			list[current_player;main;0,1.1;8,4;]
		]].. default.gui_bg .. default.gui_bg_img .. default.gui_slots .. default.get_hotbar_bg(0, 1.1))
	end,
	allow_metadata_inventory_put = function(pos, listname, index, stack, player)
		local stackname = stack:get_name()
		if (listname == "input" and stackname == alienbench.crafts[stackname]) or
			 (listname == "alien_ingot" and "alien_material:alien_ingot") then
			return stack:get_count()
		end
		return 0
	end,
	on_metadata_inventory_put = craft,
	on_metadata_inventory_take = craft,
	can_dig = function(pos)
		local inv = minetest.get_meta(pos):get_inventory()
		if inv:is_empty("input") and inv:is_empty("alien_ingot") and inv:is_empty("output") then
			return true
		else
			return false
		end
end})

Hmmm.. Ich denke es wäre wohl besser den Code von mcg_dyemixer zu nehmen. Der ist flexibler, da er erlaubt beide items beim registrieren zu wählen. Dann müsste nurnoch überall mcg_dyemixer durch alien_material bzw. alienbench ersetzt werden. Außerdem hat mcg_lockworkshop teilweise Code, der von bestimmten, in deinem Fall nicht gegebenen Vorraussetzungen ausgeht, was zu Bugs führt.

Notiz: init.lua bei mcg_dyemixer beinhaltet keinen Code aus dem offiziellen Minetest, weshalb "celeron55" und "various MT developers and contributors" bei den Lizenzhinweisen wegzulassen ist.
This is a cool signature. :)

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

Re: Modhilfe: Geräte

by debiankaios » Post

Ich glaube mcg_dymixer ist besser für mich geeignet. Ich neheme Sachen aus beiden.

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

Re: Modhilfe: Geräte

by debiankaios » Post

--deleted

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

Re: Modhilfe: Geräte

by debiankaios » Post

LRV wrote:
Wed Jan 06, 2021 14:45
debiankaios wrote:
Wed Jan 06, 2021 14:20
LRV wrote:
Tue Jan 05, 2021 21:20
Also die Mods mcg_lockworkshop, mcg_dyemixer und mining_plus haben solche Geräte. Sollte man recht einfach umcoden können, um eine eigene Werkbank zu kriegen.
Es gunktioniert noch nicht ganz. Das mit den ersten Item(nich wo die lngots reinkommen9 funktioniert noch nicht. HIer der Quellcode:

Code: Select all

-- default/furnace.lua


alienbench = {}
alienbench.crafts = {}

alienbench.register_craft = function(item_from, item_to)
	if not minetest.registered_nodes[item_from] or not minetest.registered_nodes[item_to] then
		return
	end
	minetest.clear_craft({output = item_to})
	alienbench.crafts[item_from] = item_to
end



local function craft(pos, listname, index, stack, player)
	local inv = minetest.get_meta(pos):get_inventory()
	local apple = inv:get_stack("input", 1):get_name()
	local lock = inv:get_stack("alien_ingot", 1):is_empty()

	if alienbench.crafts[input] and inv:room_for_item("output", alienbench.crafts[input]) then
		inv:remove_item("input", {name = input, count = 1})
		inv:remove_item("alien_ingot", {name = "alien_material:alien_ingot", count = 1})
		inv:add_item("output", mcg_lockworkshop.crafts[input])
	end
end



minetest.register_node("alien_material:alienbench", {
	description = "alienbench",
	groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
	sounds = default.node_sound_wood_defaults(),
	tiles = {
		"alienbench_y.png", "alienbench_y.png",
		"alienbench.png","alienbench_side.png",
		"alienbench_side.png", "alienbench_side.png"
	},
	after_place_node = function(pos)
		local meta = minetest.get_meta(pos)
		local inv = meta:get_inventory()
		meta:set_string("infotext", "alienbench")
		inv:set_size("input", 1)
		inv:set_size("alien_ingot", 1)
		inv:set_size("output", 1)
		meta:set_string("formspec", [[
			size[8,4.8]
			box[-0.01,0;1.84,0.9;#555555]
			image[0,0;0.9,0.9;alien_apple.png]
			label[0.7,0.25;alien_apple]
			list[context;input;2,0;1,1;]
			list[context;alien_ingot;3,0;1,1;]
			image[3,0;1,1;ingot_bg.png]
			image[4,0;1,1;gui_furnace_arrow_bg.png^[transformR270]
			list[context;output;5,0;1,1;]
			list[current_player;main;0,1.1;8,4;]
		]].. default.gui_bg .. default.gui_bg_img .. default.gui_slots .. default.get_hotbar_bg(0, 1.1))
	end,
	allow_metadata_inventory_put = function(pos, listname, index, stack, player)
		local stackname = stack:get_name()
		if (listname == "input" and stackname == alienbench.crafts[stackname]) or
			 (listname == "alien_ingot" and "alien_material:alien_ingot") then
			return stack:get_count()
		end
		return 0
	end,
	on_metadata_inventory_put = craft,
	on_metadata_inventory_take = craft,
	can_dig = function(pos)
		local inv = minetest.get_meta(pos):get_inventory()
		if inv:is_empty("input") and inv:is_empty("alien_ingot") and inv:is_empty("output") then
			return true
		else
			return false
		end
end})

Hmmm.. Ich denke es wäre wohl besser den Code von mcg_dyemixer zu nehmen. Der ist flexibler, da er erlaubt beide items beim registrieren zu wählen. Dann müsste nurnoch überall mcg_dyemixer durch alien_material bzw. alienbench ersetzt werden. Außerdem hat mcg_lockworkshop teilweise Code, der von bestimmten, in deinem Fall nicht gegebenen Vorraussetzungen ausgeht, was zu Bugs führt.

Notiz: init.lua bei mcg_dyemixer beinhaltet keinen Code aus dem offiziellen Minetest, weshalb "celeron55" und "various MT developers and contributors" bei den Lizenzhinweisen wegzulassen ist.
Ich habe jetzt den Quellcode in Zeile 62 umgeändert:

Code: Select all

if (listname == "input" and stackname == "default:apple") or
aber der output geht noch nicht!

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

Re: Modhilfe: Geräte

by debiankaios » Post

LRV wrote:
Wed Jan 06, 2021 14:45
debiankaios wrote:
Wed Jan 06, 2021 14:20
LRV wrote:
Tue Jan 05, 2021 21:20
Also die Mods mcg_lockworkshop, mcg_dyemixer und mining_plus haben solche Geräte. Sollte man recht einfach umcoden können, um eine eigene Werkbank zu kriegen.
Es gunktioniert noch nicht ganz. Das mit den ersten Item(nich wo die lngots reinkommen9 funktioniert noch nicht. HIer der Quellcode:

Code: Select all

-- default/furnace.lua


alienbench = {}
alienbench.crafts = {}

alienbench.register_craft = function(item_from, item_to)
	if not minetest.registered_nodes[item_from] or not minetest.registered_nodes[item_to] then
		return
	end
	minetest.clear_craft({output = item_to})
	alienbench.crafts[item_from] = item_to
end



local function craft(pos, listname, index, stack, player)
	local inv = minetest.get_meta(pos):get_inventory()
	local apple = inv:get_stack("input", 1):get_name()
	local lock = inv:get_stack("alien_ingot", 1):is_empty()

	if alienbench.crafts[input] and inv:room_for_item("output", alienbench.crafts[input]) then
		inv:remove_item("input", {name = input, count = 1})
		inv:remove_item("alien_ingot", {name = "alien_material:alien_ingot", count = 1})
		inv:add_item("output", mcg_lockworkshop.crafts[input])
	end
end



minetest.register_node("alien_material:alienbench", {
	description = "alienbench",
	groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
	sounds = default.node_sound_wood_defaults(),
	tiles = {
		"alienbench_y.png", "alienbench_y.png",
		"alienbench.png","alienbench_side.png",
		"alienbench_side.png", "alienbench_side.png"
	},
	after_place_node = function(pos)
		local meta = minetest.get_meta(pos)
		local inv = meta:get_inventory()
		meta:set_string("infotext", "alienbench")
		inv:set_size("input", 1)
		inv:set_size("alien_ingot", 1)
		inv:set_size("output", 1)
		meta:set_string("formspec", [[
			size[8,4.8]
			box[-0.01,0;1.84,0.9;#555555]
			image[0,0;0.9,0.9;alien_apple.png]
			label[0.7,0.25;alien_apple]
			list[context;input;2,0;1,1;]
			list[context;alien_ingot;3,0;1,1;]
			image[3,0;1,1;ingot_bg.png]
			image[4,0;1,1;gui_furnace_arrow_bg.png^[transformR270]
			list[context;output;5,0;1,1;]
			list[current_player;main;0,1.1;8,4;]
		]].. default.gui_bg .. default.gui_bg_img .. default.gui_slots .. default.get_hotbar_bg(0, 1.1))
	end,
	allow_metadata_inventory_put = function(pos, listname, index, stack, player)
		local stackname = stack:get_name()
		if (listname == "input" and stackname == alienbench.crafts[stackname]) or
			 (listname == "alien_ingot" and "alien_material:alien_ingot") then
			return stack:get_count()
		end
		return 0
	end,
	on_metadata_inventory_put = craft,
	on_metadata_inventory_take = craft,
	can_dig = function(pos)
		local inv = minetest.get_meta(pos):get_inventory()
		if inv:is_empty("input") and inv:is_empty("alien_ingot") and inv:is_empty("output") then
			return true
		else
			return false
		end
end})

Hmmm.. Ich denke es wäre wohl besser den Code von mcg_dyemixer zu nehmen. Der ist flexibler, da er erlaubt beide items beim registrieren zu wählen. Dann müsste nurnoch überall mcg_dyemixer durch alien_material bzw. alienbench ersetzt werden. Außerdem hat mcg_lockworkshop teilweise Code, der von bestimmten, in deinem Fall nicht gegebenen Vorraussetzungen ausgeht, was zu Bugs führt.

Notiz: init.lua bei mcg_dyemixer beinhaltet keinen Code aus dem offiziellen Minetest, weshalb "celeron55" und "various MT developers and contributors" bei den Lizenzhinweisen wegzulassen ist.
Ich habe jetzt den Quellcode in Zeile 62 umgeändert:

Code: Select all

if (listname == "input" and stackname == "default:apple") or
aber der output geht noch nicht!

User avatar
LRV
Helper
Posts: 378
Joined: Mon Dec 19, 2016 17:29
GitHub: Mooncarguy
In-game: Mooncarman Mooncarguy

Re: Modhilfe: Geräte

by LRV » Post

Ja, weil der Output im Table-Format ist. Demnach musst du "output = {name = "alien_material:alien_apple", count = 1}" schreiben.
This is a cool signature. :)

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

Re: Modhilfe: Geräte

by debiankaios » Post

LRV wrote:
Wed Jan 06, 2021 15:56
Ja, weil der Output im Table-Format ist. Demnach musst du "output = {name = "alien_material:alien_apple", count = 1}" schreiben.

Code: Select all

alienbench.register_craft("default:apple", "alien_material:alien_apple")
habe ich geschrieven im meiner craft.lua

User avatar
LRV
Helper
Posts: 378
Joined: Mon Dec 19, 2016 17:29
GitHub: Mooncarguy
In-game: Mooncarman Mooncarguy

Re: Modhilfe: Geräte

by LRV » Post

Ändere es zu:

Code: Select all

alienbench.register_craft("default:apple", {name = "alien_material:alien_apple", count = 1})
EDIT: Ne, moment, das geht auch nicht...
This is a cool signature. :)

User avatar
LRV
Helper
Posts: 378
Joined: Mon Dec 19, 2016 17:29
GitHub: Mooncarguy
In-game: Mooncarman Mooncarguy

Re: Modhilfe: Geräte

by LRV » Post

Ah, jetzt weiß ich warum kein output kommt. Es wurde inkonsequent umbenannt. Teilweise wurde input durch apple ersetzt. Leider nicht vollständig, weshalb die Mod jetzt die falsche Variable prüft. Außerdem wurde die Funktion mcg_lockworkshop.craft in zeile 25 nicht umbenannt.
This is a cool signature. :)

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

Re: Modhilfe: Geräte

by debiankaios » Post

LRV wrote:
Wed Jan 06, 2021 16:36
Ah, jetzt weiß ich warum kein output kommt. Es wurde inkonsequent umbenannt. Teilweise wurde input durch apple ersetzt. Leider nicht vollständig, weshalb die Mod jetzt die falsche Variable prüft. Außerdem wurde die Funktion mcg_lockworkshop.craft in zeile 25 nicht umbenannt.
Echt ich dachte das hätte ich kompleet ausgetauscht. Also apple

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

Re: Modhilfe: Geräte

by debiankaios » Post

Funktioniert immer noch nicht!

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

Re: Modhilfe: Geräte

by debiankaios » Post

LRV wrote:
Wed Jan 06, 2021 16:36
Ah, jetzt weiß ich warum kein output kommt. Es wurde inkonsequent umbenannt. Teilweise wurde input durch apple ersetzt. Leider nicht vollständig, weshalb die Mod jetzt die falsche Variable prüft. Außerdem wurde die Funktion mcg_lockworkshop.craft in zeile 25 nicht umbenannt.
Funktioniert immer noch nicht!

User avatar
LRV
Helper
Posts: 378
Joined: Mon Dec 19, 2016 17:29
GitHub: Mooncarguy
In-game: Mooncarman Mooncarguy

Re: Modhilfe: Geräte

by LRV » Post

Ich hab jetzt mal von vorne begonnen und den Code von mcg_dyemixer verwendet.
Attachments
alienbench.zip
(2.83 KiB) Downloaded 40 times
This is a cool signature. :)

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

Re: Modhilfe: Geräte

by debiankaios » Post

ok danke

Post Reply

Who is online

Users browsing this forum: No registered users and 7 guests