Energy tables incomplete, probably bugs
This commit is contained in:
parent
bcfb72543a
commit
d695ab1659
10
.cdb.json
10
.cdb.json
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"type": "MOD",
|
"type": "MOD",
|
||||||
"title": "Element Exchange",
|
"title": "ExchangeClone",
|
||||||
"name": "element_exchange",
|
"name": "exchangeclone",
|
||||||
"tags": [
|
"tags": [
|
||||||
"magic",
|
"magic",
|
||||||
"technology"
|
"technology"
|
||||||
|
@ -10,7 +10,7 @@
|
||||||
"media_license": "GPL-3.0-or-later",
|
"media_license": "GPL-3.0-or-later",
|
||||||
"short_description": "Exchange nodes into other nodes",
|
"short_description": "Exchange nodes into other nodes",
|
||||||
"dev_state": "ACTIVELY_DEVELOPED",
|
"dev_state": "ACTIVELY_DEVELOPED",
|
||||||
"repo": "https://github.com/enchant97/minetest_element_exchange.git",
|
"repo": "https://github.com/thepython10110/exchangeclone",
|
||||||
"website": "https://github.com/enchant97/minetest_element_exchange",
|
"website": "https://thepython10110.github.io",
|
||||||
"issue_tracker": "https://github.com/enchant97/minetest_element_exchange/issues"
|
"issue_tracker": "https://github.com/thepython10110/exchangeclone/issues"
|
||||||
}
|
}
|
||||||
|
|
12
README.md
12
README.md
|
@ -1,9 +1,9 @@
|
||||||
# Element Exchange
|
# Element Exchange
|
||||||
[![ContentDB](https://content.minetest.net/packages/enchant97/element_exchange/shields/downloads/)](https://content.minetest.net/packages/enchant97/element_exchange/)
|
[![ContentDB](https://content.minetest.net/packages/thepython10110/exchangeclone/shields/downloads/)](https://content.minetest.net/packages/thepython10110/exchangeclone/)
|
||||||
![GitHub license](https://img.shields.io/github/license/enchant97/minetest_element_exchange)
|
![GitHub license](https://img.shields.io/github/license/thepython10110/minetest_exchangeclone)
|
||||||
![GitHub issues](https://img.shields.io/github/issues/enchant97/minetest_element_exchange)
|
![GitHub issues](https://img.shields.io/github/issues/thepython10110/minetest_exchangeclone)
|
||||||
|
|
||||||
A [Minetest](https://www.minetest.net/) mod to exchange nodes into other nodes. This is mod is inspired by the "Equivalent Exchange" mod for Minecraft.
|
A [Minetest](https://www.minetest.net/) mod to exchange nodes into other nodes. This is mod is inspired by the "Equivalent Exchange" mod for Minecraft, and forked and modified from [Element Exchange](https://github.com/enchant97/minetest_element_exchange). In other words, 90% of the code is not mine.
|
||||||
|
|
||||||
![In Game Screenshot](screenshot.png)
|
![In Game Screenshot](screenshot.png)
|
||||||
|
|
||||||
|
@ -14,9 +14,9 @@ A [Minetest](https://www.minetest.net/) mod to exchange nodes into other nodes.
|
||||||
- Deconstructor that can extract energy from a node
|
- Deconstructor that can extract energy from a node
|
||||||
|
|
||||||
## Config
|
## Config
|
||||||
You can change the default values in the minetest settings under `mods > element_exchange`.
|
You can change the default values in the minetest settings under `mods > exchangeclone`.
|
||||||
|
|
||||||
## License
|
## Original License
|
||||||
Copyright (C) 2021 Leo Spratt
|
Copyright (C) 2021 Leo Spratt
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
COLLECTOR_INTERVAL = minetest.settings:get("element_exchange.collector_interval") or 20
|
COLLECTOR_INTERVAL = minetest.settings:get("exchangeclone.collector_interval") or 20
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
|
||||||
|
|
||||||
function get_element_constructor_formspec()
|
function get_element_constructor_formspec()
|
||||||
local formspec = {
|
local formspec = {
|
||||||
"size[8,9]",
|
"size[8,9]",
|
||||||
|
@ -80,7 +82,7 @@ local function allow_metadata_inventory_put(pos, listname, index, stack, player)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
local inv = meta:get_inventory()
|
local inv = meta:get_inventory()
|
||||||
if listname == "fuel" then
|
if listname == "fuel" then
|
||||||
if stack:get_name() == "element_exchange:exchange_orb" then
|
if stack:get_name() == "exchangeclone:exchange_orb" then
|
||||||
return stack:get_count()
|
return stack:get_count()
|
||||||
else
|
else
|
||||||
return 0
|
return 0
|
||||||
|
@ -109,12 +111,12 @@ local function on_blast(pos)
|
||||||
default.get_inventory_drops(pos, "fuel", drops)
|
default.get_inventory_drops(pos, "fuel", drops)
|
||||||
default.get_inventory_drops(pos, "src", drops)
|
default.get_inventory_drops(pos, "src", drops)
|
||||||
default.get_inventory_drops(pos, "dst", drops)
|
default.get_inventory_drops(pos, "dst", drops)
|
||||||
drops[#drops+1] = "element_exchange:element_constructor"
|
drops[#drops+1] = "exchangeclone:element_constructor"
|
||||||
minetest.remove_node(pos)
|
minetest.remove_node(pos)
|
||||||
return drops
|
return drops
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_node("element_exchange:element_constructor", {
|
minetest.register_node("exchangeclone:element_constructor", {
|
||||||
description = "Element Constructor",
|
description = "Element Constructor",
|
||||||
tiles = {
|
tiles = {
|
||||||
"ee_constructor_up.png",
|
"ee_constructor_up.png",
|
||||||
|
@ -144,12 +146,17 @@ minetest.register_node("element_exchange:element_constructor", {
|
||||||
allow_metadata_inventory_take = allow_metadata_inventory_take,
|
allow_metadata_inventory_take = allow_metadata_inventory_take,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
local recipe_ingredient = "default:pick_diamond"
|
||||||
|
|
||||||
|
if exchangeclone.mineclone then
|
||||||
|
recipe_ingredient = "mcl_tools:pick_diamond"
|
||||||
|
end
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "shaped",
|
type = "shaped",
|
||||||
output = "element_exchange:element_constructor",
|
output = "exchangeclone:element_constructor",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"", "element_exchange:exchange_orb",""},
|
{"", "exchangeclone:exchange_orb",""},
|
||||||
{"element_exchange:exchange_orb", "default:pick_diamond", "element_exchange:exchange_orb"},
|
{"exchangeclone:exchange_orb", recipe_ingredient, "exchangeclone:exchange_orb"},
|
||||||
{"", "element_exchange:exchange_orb", ""}
|
{"", "exchangeclone:exchange_orb", ""}
|
||||||
}
|
}
|
||||||
})
|
})
|
|
@ -60,7 +60,7 @@ local function allow_metadata_inventory_put(pos, listname, index, stack, player)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
local inv = meta:get_inventory()
|
local inv = meta:get_inventory()
|
||||||
if listname == "dst" then
|
if listname == "dst" then
|
||||||
if stack:get_name() == "element_exchange:exchange_orb" then
|
if stack:get_name() == "exchangeclone:exchange_orb" then
|
||||||
return stack:get_count()
|
return stack:get_count()
|
||||||
else
|
else
|
||||||
return 0
|
return 0
|
||||||
|
@ -88,12 +88,12 @@ local function on_blast(pos)
|
||||||
local drops = {}
|
local drops = {}
|
||||||
default.get_inventory_drops(pos, "fuel", drops)
|
default.get_inventory_drops(pos, "fuel", drops)
|
||||||
default.get_inventory_drops(pos, "dst", drops)
|
default.get_inventory_drops(pos, "dst", drops)
|
||||||
drops[#drops+1] = "element_exchange:element_deconstructor"
|
drops[#drops+1] = "exchangeclone:element_deconstructor"
|
||||||
minetest.remove_node(pos)
|
minetest.remove_node(pos)
|
||||||
return drops
|
return drops
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_node("element_exchange:element_deconstructor", {
|
minetest.register_node("exchangeclone:element_deconstructor", {
|
||||||
description = "Element Deconstructor",
|
description = "Element Deconstructor",
|
||||||
tiles = {
|
tiles = {
|
||||||
"ee_deconstructor_up.png",
|
"ee_deconstructor_up.png",
|
||||||
|
@ -123,12 +123,18 @@ minetest.register_node("element_exchange:element_deconstructor", {
|
||||||
allow_metadata_inventory_take = allow_metadata_inventory_take,
|
allow_metadata_inventory_take = allow_metadata_inventory_take,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
local recipe_ingredient = "default:furnace"
|
||||||
|
|
||||||
|
if exchangeclone.mineclone then
|
||||||
|
recipe_ingredient = "mcl_furnaces:furnace"
|
||||||
|
end
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "shaped",
|
type = "shaped",
|
||||||
output = "element_exchange:element_deconstructor",
|
output = "exchangeclone:element_deconstructor",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"", "element_exchange:exchange_orb",""},
|
{"", "exchangeclone:exchange_orb",""},
|
||||||
{"element_exchange:exchange_orb", "default:furnace", "element_exchange:exchange_orb"},
|
{"exchangeclone:exchange_orb", recipe_ingredient, "exchangeclone:exchange_orb"},
|
||||||
{"", "element_exchange:exchange_orb", ""}
|
{"", "exchangeclone:exchange_orb", ""}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
44
energy.lua
44
energy.lua
|
@ -4,8 +4,8 @@ local energy_values = {
|
||||||
["default"] = {
|
["default"] = {
|
||||||
--- Nodes
|
--- Nodes
|
||||||
-- Stone
|
-- Stone
|
||||||
stone = 1,
|
stone = 2,
|
||||||
cobble = 2,
|
cobble = 1,
|
||||||
stonebrick = 3,
|
stonebrick = 3,
|
||||||
stone_block = 3,
|
stone_block = 3,
|
||||||
mossycobble = 3,
|
mossycobble = 3,
|
||||||
|
@ -87,27 +87,27 @@ local energy_values = {
|
||||||
|
|
||||||
-- Ores,
|
-- Ores,
|
||||||
stone_with_coal = 5,
|
stone_with_coal = 5,
|
||||||
coalblock = 5,
|
coalblock = 36,
|
||||||
|
|
||||||
stone_with_iron = 5,
|
stone_with_iron = 5,
|
||||||
steelblock = 5,
|
steelblock = 90,
|
||||||
|
|
||||||
stone_with_copper = 5,
|
stone_with_copper = 5,
|
||||||
copperblock = 5,
|
copperblock = 90,
|
||||||
|
|
||||||
stone_with_tin = 5,
|
stone_with_tin = 5,
|
||||||
tinblock = 5,
|
tinblock = 90,
|
||||||
|
|
||||||
bronzeblock = 5,
|
bronzeblock = 63,
|
||||||
|
|
||||||
stone_with_gold = 5,
|
stone_with_gold = 5,
|
||||||
goldblock = 5,
|
goldblock = 108,
|
||||||
|
|
||||||
stone_with_mese = 5,
|
stone_with_mese = 5,
|
||||||
mese = 5,
|
mese = 270,
|
||||||
|
|
||||||
stone_with_diamond = 17,
|
stone_with_diamond = 17,
|
||||||
diamondblock = 17,
|
diamondblock = 198,
|
||||||
|
|
||||||
-- Plantlife,
|
-- Plantlife,
|
||||||
cactus = 2,
|
cactus = 2,
|
||||||
|
@ -209,7 +209,7 @@ local energy_values = {
|
||||||
gold_lump = 5,
|
gold_lump = 5,
|
||||||
iron_lump = 5,
|
iron_lump = 5,
|
||||||
mese_crystal = 30,
|
mese_crystal = 30,
|
||||||
mese_crystal_fragment = 19,
|
mese_crystal_fragment = 3,
|
||||||
obsidian_shard = 7,
|
obsidian_shard = 7,
|
||||||
paper = 4,
|
paper = 4,
|
||||||
steel_ingot = 10,
|
steel_ingot = 10,
|
||||||
|
@ -218,7 +218,7 @@ local energy_values = {
|
||||||
tin_lump = 4,
|
tin_lump = 4,
|
||||||
|
|
||||||
--- Furnace
|
--- Furnace
|
||||||
furnace = 4,
|
furnace = 8,
|
||||||
|
|
||||||
--- Tools
|
--- Tools
|
||||||
-- Picks
|
-- Picks
|
||||||
|
@ -265,11 +265,29 @@ local energy_values = {
|
||||||
sword_teleport = 20,
|
sword_teleport = 20,
|
||||||
sword_water = 5,
|
sword_water = 5,
|
||||||
},
|
},
|
||||||
|
["mcl_core"] = {
|
||||||
|
--Nodes
|
||||||
|
--Stone
|
||||||
|
stone = 2,
|
||||||
|
cobble = 1,
|
||||||
|
stonebrick = 3,
|
||||||
|
stonebrickmossy = 3,
|
||||||
|
stonebrickcracked = 3,
|
||||||
|
stonebrickcarved = 3,
|
||||||
|
stone_smooth = 3,
|
||||||
|
diorite = 1,
|
||||||
|
andesite = 1,
|
||||||
|
granite = 1,
|
||||||
|
mossycobble = 3,
|
||||||
|
|
||||||
|
stone_with_diamond = 17,
|
||||||
|
diamondblock = 17,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
-- load energy values into known items
|
-- load energy values into known items
|
||||||
for modname, itemlist in pairs(energy_values) do
|
for modname, itemlist in pairs(energy_values) do
|
||||||
if minetest.get_modpath(modname) then
|
if minetest.get_modpath(modname) then
|
||||||
for itemname, energy_value in pairs(itemlist) do
|
for itemname, energy_value in pairs(itemlist) do
|
||||||
minetest.override_item(modname..":"..itemname, {
|
minetest.override_item(modname..":"..itemname, {
|
||||||
description = minetest.registered_items[modname..":"..itemname].description.."\nEnergy Value: "..energy_value,
|
description = minetest.registered_items[modname..":"..itemname].description.."\nEnergy Value: "..energy_value,
|
||||||
|
|
|
@ -53,7 +53,7 @@ local function allow_metadata_inventory_put(pos, listname, index, stack, player)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
local inv = meta:get_inventory()
|
local inv = meta:get_inventory()
|
||||||
if listname == "dst" then
|
if listname == "dst" then
|
||||||
if stack:get_name() == "element_exchange:exchange_orb" then
|
if stack:get_name() == "exchangeclone:exchange_orb" then
|
||||||
return stack:get_count()
|
return stack:get_count()
|
||||||
else
|
else
|
||||||
return 0
|
return 0
|
||||||
|
@ -78,12 +78,12 @@ end
|
||||||
local function on_blast(pos)
|
local function on_blast(pos)
|
||||||
local drops = {}
|
local drops = {}
|
||||||
default.get_inventory_drops(pos, "dst", drops)
|
default.get_inventory_drops(pos, "dst", drops)
|
||||||
drops[#drops+1] = "element_exchange:energy_collector"
|
drops[#drops+1] = "exchangeclone:energy_collector"
|
||||||
minetest.remove_node(pos)
|
minetest.remove_node(pos)
|
||||||
return drops
|
return drops
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_node("element_exchange:energy_collector", {
|
minetest.register_node("exchangeclone:energy_collector", {
|
||||||
description = "Energy Collector",
|
description = "Energy Collector",
|
||||||
tiles = {
|
tiles = {
|
||||||
"ee_energy_collector_up.png",
|
"ee_energy_collector_up.png",
|
||||||
|
@ -113,12 +113,22 @@ minetest.register_node("element_exchange:energy_collector", {
|
||||||
allow_metadata_inventory_take = allow_metadata_inventory_take,
|
allow_metadata_inventory_take = allow_metadata_inventory_take,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
local recipe_item_1 = "default:steel_block"
|
||||||
|
local recipe_item_2 = "default:obsidian_glass"
|
||||||
|
local recipe_item_3 = "default:chest"
|
||||||
|
|
||||||
|
if exchangeclone.mineclone then
|
||||||
|
recipe_item_1 = "mcl_core:ironblock"
|
||||||
|
recipe_item_2 = "mcl_core:glass"
|
||||||
|
recipe_item_3 = "mcl_chests:chest"
|
||||||
|
end
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "shaped",
|
type = "shaped",
|
||||||
output = "element_exchange:energy_collector",
|
output = "exchangeclone:energy_collector",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:obsidian_glass", "default:obsidian_glass","default:obsidian_glass"},
|
{recipe_item_2, recipe_item_2, recipe_item_2},
|
||||||
{"element_exchange:exchange_orb", "default:chest", "element_exchange:exchange_orb"},
|
{"exchangeclone:exchange_orb", recipe_item_3, "exchangeclone:exchange_orb"},
|
||||||
{"default:steelblock", "default:steelblock", "default:steelblock"}
|
{recipe_item_1, recipe_item_1, recipe_item_1}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
11
init.lua
11
init.lua
|
@ -1,4 +1,13 @@
|
||||||
local default_path = minetest.get_modpath("element_exchange")
|
exchangeclone = {}
|
||||||
|
if (not minetest.get_modpath("mcl_core")) and (not minetest.get_modpath("mcl_core")) then
|
||||||
|
error("ExchangeClone requires 'default' or 'mcl_core,' but Minetest doesn't let me mark one or the other as a dependency.")
|
||||||
|
elseif minetest.get_modpath("mcl_core") then
|
||||||
|
exchangeclone["mineclone"] = true
|
||||||
|
else
|
||||||
|
exchangeclone["mineclone"] = false
|
||||||
|
end
|
||||||
|
|
||||||
|
local default_path = minetest.get_modpath("exchangeclone")
|
||||||
|
|
||||||
function get_item_energy(name)
|
function get_item_energy(name)
|
||||||
return minetest.registered_items[name].energy_value or 1
|
return minetest.registered_items[name].energy_value or 1
|
||||||
|
|
7
mod.conf
7
mod.conf
|
@ -1,5 +1,4 @@
|
||||||
name = element_exchange
|
name = exchangeclone
|
||||||
description = Exchange nodes into other nodes
|
description = Exchange nodes into other nodes
|
||||||
min_minetest_version = 5.4
|
min_minetest_version = 5.5
|
||||||
depends=default
|
optional_depends=mcl_core, default, moreswords
|
||||||
optional_depends=moreswords
|
|
||||||
|
|
20
orb.lua
20
orb.lua
|
@ -4,18 +4,28 @@ function read_orb_charge(itemstack, user, pointed_thing)
|
||||||
return itemstack
|
return itemstack
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_tool("element_exchange:exchange_orb", {
|
minetest.register_tool("exchangeclone:exchange_orb", {
|
||||||
description = "Exchange Orb",
|
description = "Exchange Orb",
|
||||||
inventory_image = "ee_exchange_orb.png",
|
inventory_image = "ee_exchange_orb.png",
|
||||||
on_use = read_orb_charge,
|
on_use = read_orb_charge,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
local recipe_item_1 = "default:steel_ingot"
|
||||||
|
local recipe_item_2 = "default:diamond"
|
||||||
|
local recipe_item_3 = "default:glass"
|
||||||
|
|
||||||
|
if exchangeclone.mineclone then
|
||||||
|
recipe_item_1 = "mcl_core:iron_ingot"
|
||||||
|
recipe_item_2 = "mcl_core:diamond"
|
||||||
|
recipe_item_3 = "mcl_core:glass"
|
||||||
|
end
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "shaped",
|
type = "shaped",
|
||||||
output = "element_exchange:exchange_orb",
|
output = "exchangeclone:exchange_orb",
|
||||||
recipe = {
|
recipe = {
|
||||||
{"default:glass", "default:diamond","default:glass"},
|
{recipe_item_3, recipe_item_2, recipe_item_3},
|
||||||
{"default:diamond", "default:steel_ingot", "default:diamond"},
|
{recipe_item_2, recipe_item_1, recipe_item_2},
|
||||||
{"default:glass", "default:diamond", "default:glass"}
|
{recipe_item_3, recipe_item_2, recipe_item_3}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
# How fast the energy collector gathers energy from the light
|
# How fast the energy collector gathers energy from the light
|
||||||
element_exchange.collector_interval (Collector Gather Interval) int 20
|
exchangeclone.collector_interval (Collector Gather Interval) int 20
|
||||||
|
|
Loading…
Reference in New Issue