This commit is contained in:
ThePython 2023-05-23 07:53:45 -07:00
parent 7a57cb6c38
commit b56defb4af
22 changed files with 670 additions and 55 deletions

View File

@ -27,8 +27,13 @@ All energy values are in `energy.lua`. You can also change the speed at which th
* Fixed a bug where items could be placed in the output slot of the Element Constructor
* Added the ability to add energy values by group
* Damaged tools now give less energy (based on wear)
* Orbs now can be turned into energy (based on how much is stored)
I plan to add more features from Equivalent Exchange (Energy Condenser, Philosopher's Stone, dark matter, etc.), but I don't actually own MineCraft, meaning I will probably make some minor mistakes, since all I have to go on is the internet.
* Added Philosopher's Stone
* Right-click and sneak-right-click to increase and decrease transmutation range (0-4 blocks away from the block you are currently standing on)
* Left-click and sneak-left-click to transmute blocks in range (two different modes with minor differences)
* Aux1-left-click to open enchanting table (MineClone only)
* Aux1-right-click to open crafting table (MineClone only)
* Ability to exchange charcoal/coal/iron/copper/tin/gold/mese/diamond by crafting (stone is always returned)
I don't actually own MineCraft, meaning I don't know how the original mod (Equivalent Exchange) works. I will probably make some minor mistakes, since all I have to go on is the internet.
## Known issues:
* When items are inserted into machines with MineClone hoppers, it does not trigger the machines to start.
@ -40,7 +45,7 @@ If you have a suggestion or notice a bug, visit the [GitHub issues page](https:/
![Minetest Game Screenshot](screenshot_mtg.png)
## Sources/license:
This mod is inspired by the "Equivalent Exchange" mod for MineCraft, and forked and modified from Enchant97's mod [Element Exchange](https://github.com/enchant97/minetest_element_exchange). Both this mod and Element Exchange are licensed under GPLv3+. The textures for the Constructor, Deconstructor, Collector, and Orb are from Element Exchange and have the same license.
This mod is inspired by the "Equivalent Exchange" mod for MineCraft, and forked and modified from Enchant97's mod [Element Exchange](https://github.com/enchant97/minetest_element_exchange). Both this mod and Element Exchange are licensed under GPLv3+. The textures for the Constructor, Deconstructor, Collector, and Orb are from Element Exchange and have the same license. The texture for the Philosopher's Stone is my own and also licensed under GPLv3+ just to make things easy.
Copyright (C) 2023 ThePython10110

View File

@ -3,4 +3,21 @@
2.0
Added a changelog
Changed version numbers from x.x.x to x.x.
Added all items from Why
Added all items from Why
Added Philosopher's Stone
Left click to increase range (minimum = 0, maximum = 4).
Shift+left click to decrease range.
Aux1+left click to open enchanting table (MineClone only).
Right click to transmute blocks in range.
Shift+right click transmute blocks in range (mode 2, some differences).
Aux1+right click to open crafting table (MineClone only).
Crafted with a diamond in the middle, glowstone dust in the corners, and redstone dust on the sides (MineClone)
Crafted with a diamond in the middle, tin ingots in the corners, and obsidian on the sides (Minetest Game)
Can use to craft coal into iron, mese into diamonds, etc.
Ghost blocks are now worth 0 instead of 1 (to prevent infinite energy)
Fixed stairs and slabs not working in Minetest Game
Changed the recipe for the Exchange Orb
New recipe is a Philosopher's Stone in the middle, diamonds in the corners, and iron/steel ingots on the sides.
Changed the energy values of tin, copper, and bronze in Minetest Game.
Renamed images to reflect mod name change ("exchangeclone" instead of "ee" for Element Exchange)
Deleted unnecessary "config.lua"

View File

@ -1 +0,0 @@

View File

@ -157,12 +157,12 @@ end
minetest.register_node("exchangeclone:element_constructor", {
description = "Element Constructor",
tiles = {
"ee_constructor_up.png",
"ee_constructor_down.png",
"ee_constructor_right.png",
"ee_constructor_right.png",
"ee_constructor_right.png",
"ee_constructor_right.png"
"exchangeclone_constructor_up.png",
"exchangeclone_constructor_down.png",
"exchangeclone_constructor_right.png",
"exchangeclone_constructor_right.png",
"exchangeclone_constructor_right.png",
"exchangeclone_constructor_right.png"
},
groups = {cracky = 2, container = 4},
is_ground_content = false,

View File

@ -138,12 +138,12 @@ end
minetest.register_node("exchangeclone:element_deconstructor", {
description = "Element Deconstructor",
tiles = {
"ee_deconstructor_up.png",
"ee_deconstructor_down.png",
"ee_deconstructor_right.png",
"ee_deconstructor_right.png",
"ee_deconstructor_right.png",
"ee_deconstructor_right.png"
"exchangeclone_deconstructor_up.png",
"exchangeclone_deconstructor_down.png",
"exchangeclone_deconstructor_right.png",
"exchangeclone_deconstructor_right.png",
"exchangeclone_deconstructor_right.png",
"exchangeclone_deconstructor_right.png"
},
groups = {cracky = 2, container = 3},
is_ground_content = false,

View File

@ -1,6 +1,7 @@
-- WARNING: Do not use aliases; they will be ignored.
exchangeclone.mtg_energy_values = {
["exchangeclone"] = {
orb = 8452,
element_deconstructor = 33816,
element_constructor = 58392,
energy_collector = 23901,
@ -70,12 +71,12 @@ exchangeclone.mtg_energy_values = {
steelblock = 256*9,
stone_with_copper = 0,
copperblock = 258*9,
copperblock = 320*9,
stone_with_tin = 0,
tinblock = 256*9,
tinblock = 384*9,
bronzeblock = 256*9,
bronzeblock = 327*9,
stone_with_gold = 0,
goldblock = 2048*9,
@ -148,12 +149,12 @@ exchangeclone.mtg_energy_values = {
blueberries = 8,
book = 96,
book_written = 96,
bronze_ingot = 256,
bronze_ingot = 327,
clay_brick = 16,
clay_lump = 16,
coal_lump = 128,
copper_ingot = 256,
copper_lump = 256,
copper_ingot = 320,
copper_lump = 320,
diamond = 8192,
flint = 4,
gold_ingot = 2048,
@ -165,8 +166,8 @@ exchangeclone.mtg_energy_values = {
paper = 32,
steel_ingot = 256,
stick = 4,
tin_ingot = 256,
tin_lump = 256,
tin_ingot = 384,
tin_lump = 384,
--- Furnace
furnace = 8,
@ -189,10 +190,10 @@ exchangeclone.mtg_energy_values = {
sword_steel = 516,
pick_steel = 796,
axe_steel = 796,
shovel_bronze = 264,
sword_bronze = 516,
pick_bronze = 796,
axe_bronze = 796,
shovel_bronze = 335,
sword_bronze = 662,
pick_bronze = 989,
axe_bronze = 989,
shovel_diamond = 8200,
sword_diamond = 16392,
pick_diamond = 24584,
@ -306,6 +307,7 @@ exchangeclone.mcl_energy_values = {
element_deconstructor = 33816,
element_constructor = 58392,
energy_collector = 23883,
orb = 8452,
},
["mcl_core"] = {
stonebrickmossy = 9,
@ -1406,9 +1408,6 @@ minetest.register_on_mods_loaded(function()
for _, info in ipairs(exchangeclone.mcl_potion_data) do
add_potion_energy(info)
end
for _, item in ipairs(slabs_and_stairs) do
exchangeclone.set_item_energy(item[1], item[2])
end
else --Set all items to Minetest Game values
local groupnames = {}
@ -1422,8 +1421,9 @@ minetest.register_on_mods_loaded(function()
end
end
end
if exchangeclone.mineclone then
for _, item in ipairs(slabs_and_stairs) do
exchangeclone.set_item_energy(item[1], item[2])
end
end
)

View File

@ -127,12 +127,12 @@ end
minetest.register_node("exchangeclone:energy_collector", {
description = "Energy Collector",
tiles = {
"ee_energy_collector_up.png",
"ee_energy_collector_down.png",
"ee_energy_collector_right.png",
"ee_energy_collector_right.png",
"ee_energy_collector_right.png",
"ee_energy_collector_right.png"
"exchangeclone_energy_collector_up.png",
"exchangeclone_energy_collector_down.png",
"exchangeclone_energy_collector_right.png",
"exchangeclone_energy_collector_right.png",
"exchangeclone_energy_collector_right.png",
"exchangeclone_energy_collector_right.png"
},
groups = {cracky = 2, container = 2},
is_ground_content = false,

View File

@ -1,12 +1,8 @@
exchangeclone = {}
if (not minetest.get_modpath("mcl_core")) and (not minetest.get_modpath("default")) 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
minetest.log("Loading ExchangeClone with MineClone configuration")
else
exchangeclone["mineclone"] = false
minetest.log("Loading ExchangeClone with MTG configuration")
exchangeclone.mineclone = minetest.get_modpath("mcl_core")
end
function exchangeclone.get_inventory_drops(pos, inventory, drops) --removes default dependency
@ -29,9 +25,9 @@ end
exchangeclone.collector_interval = minetest.settings:get("exchangeclone.collector_interval") or 5
dofile(default_path.."/config.lua")
dofile(default_path.."/constructor.lua")
dofile(default_path.."/deconstructor.lua")
dofile(default_path.."/energy_collector.lua")
dofile(default_path.."/energy.lua")
dofile(default_path.."/orb.lua")
dofile(default_path.."/philosophers_stone.lua")

View File

@ -2,5 +2,5 @@ name = exchangeclone
title = ExchangeClone
description = Exchange nodes into other nodes
min_minetest_version = 5.5
optional_depends = mcl_core, default, moreswords, mcl_stairs, pipeworks, meat_blocks, ghost_blocks, sticky_things, fake_liquids, sound_machine
optional_depends = mcl_core, default, moreswords, mcl_stairs, pipeworks, meat_blocks, ghost_blocks, sticky_things, fake_liquids, sound_machine, stairs
author = ThePython10110

15
orb.lua
View File

@ -1,4 +1,4 @@
function read_orb_charge(itemstack, user, pointed_thing)
function exchangeclone.read_orb_charge(itemstack, user, pointed_thing)
local stored = itemstack:get_meta():get_int("stored_charge") or 0
minetest.chat_send_player(user:get_player_name(), "Current Charge: "..stored)
return itemstack
@ -6,19 +6,17 @@ end
minetest.register_tool("exchangeclone:exchange_orb", {
description = "Exchange Orb\nCurrent Charge: 0",
inventory_image = "ee_exchange_orb.png",
inventory_image = "exchangeclone_exchange_orb.png",
energy_value = 8452,
on_use = read_orb_charge,
on_use = exchangeclone.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({
@ -26,10 +24,11 @@ minetest.register_craft({
output = "exchangeclone:exchange_orb",
groups = {},
recipe = {
{recipe_item_3, recipe_item_2, recipe_item_3},
{recipe_item_2, recipe_item_1, recipe_item_2},
{recipe_item_3, recipe_item_2, recipe_item_3}
}
{recipe_item_1, "exchangeclone:philosophers_stone", recipe_item_1},
{recipe_item_2, recipe_item_1, recipe_item_2}
},
replacements = {{"exchangeclone:philosophers_stone", "exchangeclone:philosophers_stone"}}
})
minetest.register_craft({ --Making it fuel so hopper will work with constructor better
type = "fuel",

599
philosophers_stone.lua Normal file
View File

@ -0,0 +1,599 @@
local function show_enchanting(player)
local player_meta = player:get_meta()
player_meta:set_int("mcl_enchanting:num_bookshelves", 15)
player_meta:set_string("mcl_enchanting:table_name", "Enchanting Table")
mcl_enchanting.show_enchanting_formspec(player)
end
local function call_on_rightclick(itemstack, player, pointed_thing)
-- Call on_rightclick if the pointed node defines it
if pointed_thing and pointed_thing.type == "node" then
local pos = pointed_thing.under
local node = minetest.get_node(pos)
if player and not player:get_player_control().sneak then
local nodedef = minetest.registered_nodes[node.name]
local on_rightclick = nodedef and nodedef.on_rightclick
if on_rightclick then
return on_rightclick(pos, node, player, itemstack, pointed_thing) or itemstack
end
end
end
end
local function round(num)
if num % 1 < 0.5 then
return math.floor(num)
else
return math.ceil(num)
end
end
exchangeclone.node_transmutations = {
{ --use
["mcl_core:stone"] = "mcl_core:cobble",
["mcl_core:cobble"] = "mcl_core:stone",
["mcl_core:dirt_with_grass"] = "mcl_core:sand",
["mcl_core:dirt"] = "mcl_core:sand",
["mcl_core:sand"] = "mcl_core:dirt_with_grass",
["mcl_core:redsand"] = "mcl_core:dirt_with_grass",
["mcl_flowers:tallgrass"] = "mcl_core:deadbush",
["mcl_nether:netherrack"] = "mcl_core:cobble",
["mcl_core:gravel"] = "mcl_core:sandstone",
["mcl_farming:pumpkin"] = "mcl_farming:melon",
["mcl_farming:melon"] = "mcl_farming:pumpkin",
["mcl_core:water_source"] = "mcl_core:ice",
["mclx_core:river_water_source"] = "mcl_core:ice",
["mcl_core:lava_source"] = "mcl_core:obsidian",
["mcl_flowers:dandelion"] = "mcl_flowers:poppy",
["mcl_flowers:poppy"] = "mcl_flowers:dandelion",
["mcl_mushrooms:mushroom_brown"] = "mcl_mushrooms:mushroom_red",
["mcl_mushrooms:mushroom_red"] = "mcl_mushrooms:mushroom_brown",
["mcl_core:acacialeaves"] = "mcl_core:birchleaves",
["mcl_core:birchleaves"] = "mcl_core:darkleaves",
["mcl_core:darkleaves"] = "mcl_core:jungleleaves",
["mcl_core:jungleleaves"] = "mcl_mangrove:mangroveleaves",
["mcl_mangrove:mangroveleaves"] = "mcl_core:leaves",
["mcl_core:leaves"] = "mcl_core:spruceleaves",
["mcl_core:spruceleaves"] = "mcl_core:acacialeaves",
["mcl_core:acaciatree"] = "mcl_core:birchtree",
["mcl_core:birchtree"] = "mcl_core:darktree",
["mcl_core:darktree"] = "mcl_core:jungletree",
["mcl_core:jungletree"] = "mcl_mangrove:mangrove_tree",
["mcl_mangrove:mangrove_tree"] = "mcl_core:tree",
["mcl_core:tree"] = "mcl_core:sprucetree",
["mcl_core:sprucetree"] = "mcl_core:acaciatree",
["mcl_crimson:warped_fungus"] = "mcl_crimson:crimson_fungus",
["mcl_crimson:warped_hyphae"] = "mcl_crimson:crimson_hyphae",
["mcl_crimson:warped_nylium"] = "mcl_crimson:crimson_nylium",
["mcl_crimson:warped_roots"] = "mcl_crimson:crimson_roots",
["mcl_crimson:warped_wart_block"] = "mcl_nether:nether_wart_block",
["mcl_crimson:crimson_fungus"] = "mcl_crimson:warped_fungus",
["mcl_crimson:crimson_hyphae"] = "mcl_crimson:warped_hyphae",
["mcl_crimson:crimson_nylium"] = "mcl_crimson:warped_nylium",
["mcl_crimson:crimson_roots"] = "mcl_crimson:warped_roots",
["mcl_nether:nether_wart_block"] = "mcl_crimson:warped_wart_block",
["mcl_core:glass"] = "mcl_core:sand",
["mcl_flowers:double_grass"] = "mcl_core:deadbush",
--["mcl_flowers:double_grass_top"] = "air",
["mcl_core:andesite"] = "mcl_core:diorite",
["mcl_core:diorite"] = "mcl_core:granite",
["mcl_core:granite"] = "mcl_core:andesite",
["mcl_deepslate:deepslate"] = "mcl_deepslate:deepslate_cobbled",
["mcl_deepslate:deepslate_cobbled"] = "mcl_deepslate:deepslate",
["mcl_core:stone_with_coal"] = "mcl_deepslate:deepslate_with_coal",
["mcl_core:stone_with_iron"] = "mcl_deepslate:deepslate_with_iron",
["mcl_core:stone_with_lapis"] = "mcl_deepslate:deepslate_with_lapis",
["mcl_core:stone_with_gold"] = "mcl_deepslate:deepslate_with_gold",
["mcl_core:stone_with_emerald"] = "mcl_deepslate:deepslate_with_emerald",
["mcl_core:stone_with_redstone"] = "mcl_deepslate:deepslate_with_redstone",
["mcl_core:stone_with_diamond"] = "mcl_deepslate:deepslate_with_diamond",
["mcl_copper:stone_with_copper"] = "mcl_deepslate:deepslate_with_copper",
["mcl_deepslate:deepslate_with_coal"] = "mcl_core:stone_with_coal",
["mcl_deepslate:deepslate_with_iron"] = "mcl_core:stone_with_iron",
["mcl_deepslate:deepslate_with_lapis"] = "mcl_core:stone_with_lapis",
["mcl_deepslate:deepslate_with_gold"] = "mcl_core:stone_with_gold",
["mcl_deepslate:deepslate_with_emerald"] = "mcl_core:stone_with_emerald",
["mcl_deepslate:deepslate_with_redstone"] = "mcl_core:stone_with_redstone",
["mcl_deepslate:deepslate_with_diamond"] = "mcl_core:stone_with_diamond",
["mcl_deepslate:deepslate_with_copper"] = "mcl_copper:stone_with_copper",
["mcl_core:bedrock"] = "mcl_core:barrier",
["mcl_core:barrier"] = "mcl_core:bedrock",
["default:stone"] = "default:cobble",
["default:desert_stone"] = "default:desert_cobble",
["default:cobble"] = "default:stone",
["default:desert_cobble"] = "default:desert_stone",
["default:dirt_with_grass"] = "default:sand",
["default:dirt_with_dry_grass"] = "default:sand",
["default:dry_dirt_with_dry_grass"] = "default:desert_sand",
["default:dirt"] = "default:sand",
["default:dry_dirt"] = "default:desert_sand",
["default:dirt_with_coniferous_litter"] = "default:sand",
["default:dirt_with_rainforest_litter"] = "default:sand",
["default:sand"] = "default:dirt_with_grass",
["default:desert_sand"] = "default:dry_dirt_with_dry_grass",
["default:silver_sand"] = "default:dirt_with_grass",
["default:grass_1"] = "default:dry_shrub",
["default:grass_2"] = "default:dry_shrub",
["default:grass_3"] = "default:dry_shrub",
["default:grass_4"] = "default:dry_shrub",
["default:grass_5"] = "default:dry_shrub",
["default:gravel"] = "default:sandstone",
["default:water_source"] = "default:ice",
["default:river_water_source"] = "default:ice",
["default:lava_source"] = "default:obsidian",
["flowers:mushroom_brown"] = "flowers:mushroom_red",
["flowers:mushroom_red"] = "flowers:mushroom_brown",
["flowers:dandelion_yellow"] = "flowers:rose",
["flowers:rose"] = "flowers:dandelion_yellow",
["default:acacia_tree"] = "default:tree",
["default:tree"] = "default:aspen_tree",
["default:aspen_tree"] = "default:jungletree",
["default:jungletree"] = "default:pine_tree",
["default:pine_tree"] = "default:acacia_tree",
["default:acacia_leaves"] = "default:leaves",
["default:leaves"] = "default:aspen_leaves",
["default:aspen_leaves"] = "default:jungleleaves",
["default:jungleleaves"] = "default:pine_needles",
["default:pine_needles"] = "default:acacia_leaves",
["default:acacia_bush_leaves"] = "default:bush_leaves",
["default:bush_leaves"] = "default:pine_bush_needles",
["default:pine_bush_needles"] = "default:acacia_bush_leaves",
["default:acacia_bush_stem"] = "default:bush_stem",
["default:bush_stem"] = "default:pine_bush_stem",
["default:pine_bush_stem"] = "default:acacia_bush_stem",
["default:glass"] = "default:sand",
},
{ --sneak+use
["mcl_core:stone"] = "mcl_core:dirt_with_grass",
["mcl_core:cobble"] = "mcl_core:dirt_with_grass",
["mcl_core:sand"] = "mcl_core:cobble",
["mcl_core:redsand"] = "mcl_core:cobble",
["mcl_core:sandstone"] = "mcl_core:gravel",
["mcl_core:redsandstone"] = "mcl_core:gravel",
["mcl_core:dirt_with_grass"] = "mcl_core:cobble",
["mcl_core:acacialeaves"] = "mcl_core:spruceleaves",
["mcl_core:birchleaves"] = "mcl_core:acacialeaves",
["mcl_core:darkleaves"] = "mcl_core:birchleaves",
["mcl_core:jungleleaves"] = "mcl_core:darkleaves",
["mcl_mangrove:mangroveleaves"] = "mcl_core:jungleleaves",
["mcl_core:leaves"] = "mcl_mangrove:mangroveleaves",
["mcl_core:spruceleaves"] = "mcl_core:leaves",
["mcl_core:acaciatree"] = "mcl_core:sprucetree",
["mcl_core:birchtree"] = "mcl_core:acaciatree",
["mcl_core:darktree"] = "mcl_core:birchtree",
["mcl_core:jungletree"] = "mcl_core:darktree",
["mcl_mangrove:mangrove_tree"] = "mcl_core:jungletree",
["mcl_core:tree"] = "mcl_mangrove:mangrove_tree",
["mcl_core:sprucetree"] = "mcl_core:tree",
["default:stone"] = "default:dirt_with_grass",
["default:cobble"] = "default:dirt_with_grass",
["default:desert_stone"] = "default:dry_dirt_with_dry_grass",
["default:desert_cobble"] = "default:dry_dirt_with_dry_grass",
["default:dry_dirt_with_dry_grass"] = "default:desert_cobble",
["default:dirt_with_dry_grass"] = "default:cobble",
["default:dirt_with_grass"] = "default:cobble",
["default:sand"] = "default:cobble",
["default:desert_sand"] = "default:desert_cobble",
["default:silver_sand"] = "default:cobble",
["default:sandstone"] = "default:gravel",
["default:desert_sandstone"] = "default:gravel",
["default:silver_sandstone"] = "default:gravel",
["default:acacia_tree"] = "default:pine_tree",
["default:tree"] = "default:acacia_tree",
["default:aspen_tree"] = "default:tree",
["default:jungletree"] = "default:aspen_tree",
["default:pine_tree"] = "default:jungletree",
["default:acacia_leaves"] = "default:pine_needles",
["default:leaves"] = "default:acacia_leaves",
["default:aspen_leaves"] = "default:leaves",
["default:jungleleaves"] = "default:aspen_leaves",
["default:pine_needles"] = "default:jungleleaves",
["default:acacia_bush_leaves"] = "default:pine_bush_needles",
["default:bush_leaves"] = "default:acacia_bush_leaves",
["default:pine_bush_needles"] = "default:bush_leaves",
["default:acacia_bush_stem"] = "default:pine_bush_stem",
["default:bush_stem"] = "default:acacia_bush_stem",
["default:pine_bush_stem"] = "default:bush_stem",
}
}
function exchangeclone.transmute_nodes(player, distance, mode)
local pos = player:get_pos()
pos.x = round(pos.x)
pos.y = math.floor(pos.y) --make sure y is node BELOW player's feet
pos.z = round(pos.z)
for x = pos.x-distance, pos.x+distance do
for y = pos.y-distance, pos.y+distance do
for z = pos.z-distance, pos.z+distance do
local new_pos = {x=x,y=y,z=z}
local node = minetest.get_node(new_pos)
local new_node = exchangeclone.node_transmutations[mode][node.name]
if not new_node and mode == 2 then
new_node = exchangeclone.node_transmutations[1][node.name]
end
if new_node then
if minetest.is_protected(new_pos, player:get_player_name()) then
minetest.record_protection_violation(new_pos, player:get_player_name())
else
minetest.swap_node(new_pos, {name = new_node})
end
end
end
end
end
end
local function on_left_click(itemstack, player, pointed_thing)
if player:get_player_control().sneak then
local range = tonumber(itemstack:get_meta():get_int("exchangeclone_stone_range"))
if range == 0 then range = 5 end
range = range - 1
itemstack:get_meta():set_int("exchangeclone_stone_range", range or 0)
minetest.chat_send_player(player:get_player_name(), "Current Range: "..range)
return itemstack
elseif not player:get_player_control().aux1 then
local new_stack = call_on_rightclick(itemstack, player, pointed_thing)
if new_stack then
return new_stack
end
local range = itemstack:get_meta():get_int("exchangeclone_stone_range")
if range == 4 then range = -1 end
range = range + 1
itemstack:get_meta():set_int("exchangeclone_stone_range", range or 0)
minetest.chat_send_player(player:get_player_name(), "Current Range: "..range)
return itemstack
elseif exchangeclone.mineclone then
show_enchanting(player)
end
end
local function on_right_click(itemstack, player, pointed_thing)
if player:get_player_control().sneak then
local range = tonumber(itemstack:get_meta():get_int("exchangeclone_stone_range"))
exchangeclone.transmute_nodes(player, range, 2)
elseif not player:get_player_control().aux1 then
local range = itemstack:get_meta():get_int("exchangeclone_stone_range")
exchangeclone.transmute_nodes(player, range, 1)
elseif exchangeclone.mineclone then
mcl_crafting_table.show_crafting_form(player)
end
end
minetest.register_tool("exchangeclone:philosophers_stone", {
description = "Philosopher's Stone",
inventory_image = "exchangeclone_philosophers_stone.png",
wield_image = "exchangeclone_philosophers_stone.png",
exchangeclone_stone_range = 0,
on_use = on_left_click,
on_place = on_right_click,
on_secondary_use = on_right_click,
})
local diamond = "default:diamond"
local corner = "default:tin_ingot"
local side = "default:obsidian"
if exchangeclone.mineclone then
diamond = "mcl_core:diamond"
corner = "mcl_nether:glowstone_dust"
side = "mesecons:redstone"
end
minetest.register_craft({
output = "exchangeclone:philosophers_stone",
recipe = {
{corner, side, corner},
{side, diamond, side},
{corner, side, corner}
}
})
minetest.register_craft({
output = "mcl_core:coal_lump",
type = "shapeless",
recipe = {
"exchangeclone:philosophers_stone",
"mcl_core:charcoal_lump",
"mcl_core:charcoal_lump",
"mcl_core:charcoal_lump",
"mcl_core:charcoal_lump"
},
replacements = {{"exchangeclone:philosophers_stone", "exchangeclone:philosophers_stone"}}
})
minetest.register_craft({
output = "mcl_core:charcoal_lump 4",
type = "shapeless",
recipe = {
"exchangeclone:philosophers_stone",
"mcl_core:coal_lump"
},
replacements = {{"exchangeclone:philosophers_stone", "exchangeclone:philosophers_stone"}}
})
minetest.register_craft({
output = "mcl_core:iron_ingot",
type = "shapeless",
recipe = {
"exchangeclone:philosophers_stone",
"mcl_core:coal_lump",
"mcl_core:coal_lump"
},
replacements = {{"exchangeclone:philosophers_stone", "exchangeclone:philosophers_stone"}}
})
minetest.register_craft({
output = "default:steel_ingot",
type = "shapeless",
recipe = {
"exchangeclone:philosophers_stone",
"default:coal_lump",
"default:coal_lump"
},
replacements = {{"exchangeclone:philosophers_stone", "exchangeclone:philosophers_stone"}}
})
minetest.register_craft({
output = "mcl_core:coal_lump 2",
type = "shapeless",
recipe = {
"exchangeclone:philosophers_stone",
"mcl_core:iron_ingot",
},
replacements = {{"exchangeclone:philosophers_stone", "exchangeclone:philosophers_stone"}}
})
minetest.register_craft({
output = "default:coal_lump 2",
type = "shapeless",
recipe = {
"exchangeclone:philosophers_stone",
"default:steel_ingot",
},
replacements = {{"exchangeclone:philosophers_stone", "exchangeclone:philosophers_stone"}}
})
minetest.register_craft({
output = "mcl_copper:copper_ingot 6",
type = "shapeless",
recipe = {
"exchangeclone:philosophers_stone",
"mcl_core:iron_ingot",
"mcl_core:iron_ingot",
},
replacements = {{"exchangeclone:philosophers_stone", "exchangeclone:philosophers_stone"}}
})
minetest.register_craft({
output = "default:copper_ingot 4",
type = "shapeless",
recipe = {
"exchangeclone:philosophers_stone",
"default:steel_ingot",
"default:steel_ingot",
"default:steel_ingot",
"default:steel_ingot",
"default:steel_ingot",
},
replacements = {{"exchangeclone:philosophers_stone", "exchangeclone:philosophers_stone"}}
})
minetest.register_craft({
output = "mcl_core:iron_ingot",
type = "shapeless",
recipe = {
"exchangeclone:philosophers_stone",
"mcl_copper:copper_ingot",
"mcl_copper:copper_ingot",
"mcl_copper:copper_ingot",
},
replacements = {{"exchangeclone:philosophers_stone", "exchangeclone:philosophers_stone"}}
})
minetest.register_craft({
output = "default:steel_ingot 5",
type = "shapeless",
recipe = {
"exchangeclone:philosophers_stone",
"default:copper_ingot",
"default:copper_ingot",
"default:copper_ingot",
"default:copper_ingot",
},
replacements = {{"exchangeclone:philosophers_stone", "exchangeclone:philosophers_stone"}}
})
minetest.register_craft({
output = "default:tin_ingot 2",
type = "shapeless",
recipe = {
"exchangeclone:philosophers_stone",
"default:copper_ingot",
"default:copper_ingot",
"default:copper_ingot",
},
replacements = {{"exchangeclone:philosophers_stone", "exchangeclone:philosophers_stone"}}
})
minetest.register_craft({
output = "default:copper_ingot 3",
type = "shapeless",
recipe = {
"exchangeclone:philosophers_stone",
"default:tin_ingot",
"default:tin_ingot",
},
replacements = {{"exchangeclone:philosophers_stone", "exchangeclone:philosophers_stone"}}
})
minetest.register_craft({
output = "mcl_core:iron_ingot 8",
type = "shapeless",
recipe = {
"exchangeclone:philosophers_stone",
"mcl_core:gold_ingot"
},
replacements = {{"exchangeclone:philosophers_stone", "exchangeclone:philosophers_stone"}}
})
minetest.register_craft({
output = "default:steel_ingot 8",
type = "shapeless",
recipe = {
"exchangeclone:philosophers_stone",
"default:gold_ingot"
},
replacements = {{"exchangeclone:philosophers_stone", "exchangeclone:philosophers_stone"}}
})
minetest.register_craft({
output = "mcl_core:gold_ingot",
type = "shapeless",
recipe = {
"exchangeclone:philosophers_stone",
"mcl_core:iron_ingot",
"mcl_core:iron_ingot",
"mcl_core:iron_ingot",
"mcl_core:iron_ingot",
"mcl_core:iron_ingot",
"mcl_core:iron_ingot",
"mcl_core:iron_ingot",
"mcl_core:iron_ingot",
},
replacements = {{"exchangeclone:philosophers_stone", "exchangeclone:philosophers_stone"}}
})
minetest.register_craft({
output = "default:gold_ingot",
type = "shapeless",
recipe = {
"exchangeclone:philosophers_stone",
"default:steel_ingot",
"default:steel_ingot",
"default:steel_ingot",
"default:steel_ingot",
"default:steel_ingot",
"default:steel_ingot",
"default:steel_ingot",
"default:steel_ingot",
},
replacements = {{"exchangeclone:philosophers_stone", "exchangeclone:philosophers_stone"}}
})
minetest.register_craft({
output = "default:mese_crystal",
type = "shapeless",
recipe = {
"exchangeclone:philosophers_stone",
"default:gold_ingot",
"default:gold_ingot",
},
replacements = {{"exchangeclone:philosophers_stone", "exchangeclone:philosophers_stone"}}
})
minetest.register_craft({
output = "default:gold_ingot 2",
type = "shapeless",
recipe = {
"exchangeclone:philosophers_stone",
"default:mese_crystal",
},
replacements = {{"exchangeclone:philosophers_stone", "exchangeclone:philosophers_stone"}}
})
minetest.register_craft({
output = "default:diamond",
type = "shapeless",
recipe = {
"exchangeclone:philosophers_stone",
"default:mese_crystal",
"default:mese_crystal",
},
replacements = {{"exchangeclone:philosophers_stone", "exchangeclone:philosophers_stone"}}
})
minetest.register_craft({
output = "default:mese_crystal 2",
type = "shapeless",
recipe = {
"exchangeclone:philosophers_stone",
"default:diamond"
},
replacements = {{"exchangeclone:philosophers_stone", "exchangeclone:philosophers_stone"}}
})
minetest.register_craft({
output = "mcl_core:diamond",
type = "shapeless",
recipe = {
"exchangeclone:philosophers_stone",
"mcl_core:gold_ingot",
"mcl_core:gold_ingot",
"mcl_core:gold_ingot",
"mcl_core:gold_ingot",
},
replacements = {{"exchangeclone:philosophers_stone", "exchangeclone:philosophers_stone"}}
})
minetest.register_craft({
output = "mcl_core:gold_ingot 4",
type = "shapeless",
recipe = {
"exchangeclone:philosophers_stone",
"mcl_core:diamond"
},
replacements = {{"exchangeclone:philosophers_stone", "exchangeclone:philosophers_stone"}}
})
minetest.register_craft({
output = "mcl_nether:ancient_debris",
type = "shapeless",
recipe = {
"exchangeclone:philosophers_stone",
"mcl_core:diamond",
"mcl_core:diamond",
},
replacements = {{"exchangeclone:philosophers_stone", "exchangeclone:philosophers_stone"}}
})
minetest.register_craft({
output = "mcl_core:diamond 2",
type = "shapeless",
recipe = {
"exchangeclone:philosophers_stone",
"mcl_nether:ancient_debris"
},
replacements = {{"exchangeclone:philosophers_stone", "exchangeclone:philosophers_stone"}}
})
minetest.register_craft({
output = "mcl_core:diamond 2",
type = "shapeless",
recipe = {
"exchangeclone:philosophers_stone",
"mcl_nether:netherite_scrap"
},
replacements = {{"exchangeclone:philosophers_stone", "exchangeclone:philosophers_stone"}}
})
minetest.register_craft({
output = "mcl_core:diamond 9",
type = "shapeless",
recipe = {
"exchangeclone:philosophers_stone",
"mcl_nether:netherite_ingot"
},
replacements = {{"exchangeclone:philosophers_stone", "exchangeclone:philosophers_stone"}}
})
minetest.register_craft({
output = "mcl_nether:netherite_ingot",
type = "shapeless",
recipe = {
"exchangeclone:philosophers_stone",
"mcl_core:diamondblock"
},
replacements = {{"exchangeclone:philosophers_stone", "exchangeclone:philosophers_stone"}}
})

View File

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

Before

Width:  |  Height:  |  Size: 613 B

After

Width:  |  Height:  |  Size: 613 B

View File

Before

Width:  |  Height:  |  Size: 595 B

After

Width:  |  Height:  |  Size: 595 B

View File

Before

Width:  |  Height:  |  Size: 547 B

After

Width:  |  Height:  |  Size: 547 B

View File

Before

Width:  |  Height:  |  Size: 614 B

After

Width:  |  Height:  |  Size: 614 B

View File

Before

Width:  |  Height:  |  Size: 598 B

After

Width:  |  Height:  |  Size: 598 B

View File

Before

Width:  |  Height:  |  Size: 545 B

After

Width:  |  Height:  |  Size: 545 B

View File

Before

Width:  |  Height:  |  Size: 598 B

After

Width:  |  Height:  |  Size: 598 B

View File

Before

Width:  |  Height:  |  Size: 572 B

After

Width:  |  Height:  |  Size: 572 B

View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB