summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTenPlus1 <kinsellaja@yahoo.com>2018-08-19 10:03:41 +0100
committerTenPlus1 <kinsellaja@yahoo.com>2018-08-19 10:03:41 +0100
commit9dac31a106b10e72bb3a5e71f8cd5d8f69e5aafb (patch)
tree72c4503291a58524e46feeecf6b501ae1038a325
parenteb6fa03f0df9369635f33dfcdf37158c6d9d8b36 (diff)
change crystal ingot recipe
-rw-r--r--README.md1
-rw-r--r--crystal.lua67
2 files changed, 58 insertions, 10 deletions
diff --git a/README.md b/README.md
index d01542c..c0362ce 100644
--- a/README.md
+++ b/README.md
@@ -15,6 +15,7 @@ Ethereal Mapgen mod for Minetest (works on all except v6)
- Updating code to newer functions, requires Minetest 0.4.16 and above
- Added food groups to be more compatible with other food mods
- Bonemeal removed (use Bonemeal mod to replace https://forum.minetest.net/viewtopic.php?f=9&t=16446 )
+ - Crystal Ingot recipe requires a bucket of water, unless you are using builtin_item mod where you can mix ingredients by dropping in a pool of water instead
### 1.23
diff --git a/crystal.lua b/crystal.lua
index 42cb5ce..2b2868a 100644
--- a/crystal.lua
+++ b/crystal.lua
@@ -32,20 +32,67 @@ minetest.register_craftitem("ethereal:crystal_ingot", {
wield_image = "crystal_ingot.png",
})
-minetest.register_craft({
- output = "ethereal:crystal_ingot",
- recipe = {
- {"default:mese_crystal", "ethereal:crystal_spike"},
- {"ethereal:crystal_spike", "default:mese_crystal"},
- }
-})
+if minetest.get_modpath("builtin_item") then
+
+ minetest.override_item("ethereal:crystal_spike", {
+
+ dropped_step = function(self, pos, dtime)
+
+ self.ctimer = (self.ctimer or 0) + dtime
+ if self.ctimer < 5.0 then return end
+ self.ctimer = 0
+
+ if self.node_inside
+ and self.node_inside.name ~= "default:water_source" then
+ return
+ end
+
+ local objs = core.get_objects_inside_radius(pos, 0.8)
+
+ if not objs or #objs ~= 2 then return end
+
+ local crystal, mese, ent = nil, nil, nil
+
+ for k, obj in pairs(objs) do
+
+ ent = obj:get_luaentity()
+
+ if ent and ent.name == "__builtin:item" then
+
+ if ent.itemstring == "default:mese_crystal 2"
+ and not mese then
+
+ mese = obj
+
+ elseif ent.itemstring == "ethereal:crystal_spike 2"
+ and not crystal then
+
+ crystal = obj
+ end
+ end
+ end
+
+ if mese and crystal then
+
+ mese:remove()
+ crystal:remove()
+
+ core.add_item(pos, "ethereal:crystal_ingot")
+
+ return false
+ end
+ end
+ })
+end
minetest.register_craft({
+ type = "shapeless",
output = "ethereal:crystal_ingot",
recipe = {
- {"ethereal:crystal_spike", "default:mese_crystal"},
- {"default:mese_crystal", "ethereal:crystal_spike"},
- }
+ "default:mese_crystal", "ethereal:crystal_spike",
+ "ethereal:crystal_spike", "default:mese_crystal", "bucket:bucket_water"
+ },
+ replacements = { {"bucket:bucket_water", "bucket:bucket_empty"} }
})
-- Crystal Block