summaryrefslogtreecommitdiff
path: root/crystal.lua
diff options
context:
space:
mode:
authortenplus1 <kinsellaja@yahoo.com>2014-11-09 19:17:41 +0000
committertenplus1 <kinsellaja@yahoo.com>2014-11-09 19:17:41 +0000
commitc4d4e229f7d63959508e4505099a7fca5ca87534 (patch)
tree55e1164fae6d4876bc7ef5468186384f21ee12f6 /crystal.lua
First Commit by TenPlus1
Diffstat (limited to 'crystal.lua')
-rw-r--r--crystal.lua197
1 files changed, 197 insertions, 0 deletions
diff --git a/crystal.lua b/crystal.lua
new file mode 100644
index 0000000..c5da26e
--- /dev/null
+++ b/crystal.lua
@@ -0,0 +1,197 @@
+-- Crystal Spike (Hurts if you touch it - thanks to ZonerDarkRevention for his DokuCraft DeviantArt crystal texture)
+minetest.register_node("ethereal:crystal_spike", {
+ description = "Crystal Spike",
+ drawtype = "plantlike",
+ tiles = { "crystal_spike.png" },
+ inventory_image = "crystal_spike.png",
+ wield_image = "crystal_spike.png",
+ paramtype = "light",
+ light_source = LIGHT_MAX - 7,
+ walkable = false,
+ damage_per_second = 1,
+ groups = {cracky=1,falling_node=1,puts_out_fire=1},
+ sounds = default.node_sound_glass_defaults(),
+ selection_box = {
+ type = "fixed",
+ fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},
+ },
+})
+
+-- Crystal Ingot
+minetest.register_craftitem("ethereal:crystal_ingot", {
+ description = "Crystal Ingot",
+ inventory_image = "crystal_ingot.png",
+})
+
+minetest.register_craft({
+ output = "ethereal:crystal_ingot",
+ recipe = {
+ {"default:mese_crystal", "ethereal:crystal_spike", ""},
+ {"", "", ""},
+ {"", "", ""},
+ }
+})
+
+-- Crystal Block
+minetest.register_node("ethereal:crystal_block", {
+ description = "Crystal Block",
+ tiles = {"crystal_block.png"},
+ light_source = LIGHT_MAX - 5,
+ groups = {cracky=1,level=2,puts_out_fire},
+ sounds = default.node_sound_glass_defaults(),
+})
+
+minetest.register_craft({
+ output = "ethereal:crystal_block",
+ recipe = {
+ {"ethereal:crystal_ingot", "ethereal:crystal_ingot", "ethereal:crystal_ingot"},
+ {"ethereal:crystal_ingot", "ethereal:crystal_ingot", "ethereal:crystal_ingot"},
+ {"ethereal:crystal_ingot", "ethereal:crystal_ingot", "ethereal:crystal_ingot"},
+ }
+})
+
+minetest.register_craft({
+ output = "ethereal:crystal_ingot 9",
+ recipe = {
+ {"ethereal:crystal_block"},
+ }
+})
+
+-- Crystal Sword (Powerful wee beastie)
+minetest.register_tool("ethereal:sword_crystal", {
+ description = "Crystal Sword",
+ inventory_image = "crystal_sword.png",
+ tool_capabilities = {
+ full_punch_interval = 0.6,
+ max_drop_level=1,
+ groupcaps={
+ snappy={times={[1]=1.70, [2]=0.70, [3]=0.25}, uses=50, maxlevel=3},
+ },
+ damage_groups = {fleshy=10},
+ }
+})
+
+minetest.register_craft({
+ output = "ethereal:sword_crystal",
+ recipe = {
+ {"", "ethereal:crystal_ingot", ""},
+ {"", "ethereal:crystal_ingot", ""},
+ {"", "default:steel_ingot", ""},
+ }
+})
+
+-- Crystal Axe
+minetest.register_tool("ethereal:axe_crystal", {
+ description = "Crystal Axe",
+ inventory_image = "crystal_axe.png",
+ tool_capabilities = {
+ full_punch_interval = 0.8,
+ max_drop_level=1,
+ groupcaps={
+ choppy={times={[1]=2.00, [2]=0.80, [3]=0.40}, uses=30, maxlevel=2},
+ },
+ damage_groups = {fleshy=7},
+ },
+})
+
+minetest.register_craft({
+ output = 'ethereal:axe_crystal',
+ recipe = {
+ {'ethereal:crystal_ingot', 'ethereal:crystal_ingot'},
+ {'ethereal:crystal_ingot', 'default:steel_ingot'},
+ {'', 'default:steel_ingot'},
+ }
+})
+
+-- Crystal Pick (This will last a while)
+minetest.register_tool("ethereal:pick_crystal", {
+ description = "Crystal Pickaxe",
+ inventory_image = "crystal_pick.png",
+ tool_capabilities = {
+ full_punch_interval = 0.7,
+ max_drop_level=3,
+ groupcaps={
+ cracky = {times={[1]=1.8, [2]=0.8, [3]=0.40}, uses=40, maxlevel=3},
+ },
+ damage_groups = {fleshy=7},
+ },
+})
+
+minetest.register_craft({
+ output = "ethereal:pick_crystal",
+ recipe = {
+ {"ethereal:crystal_ingot", "ethereal:crystal_ingot", "ethereal:crystal_ingot"},
+ {"", "default:steel_ingot", ""},
+ {"", "default:steel_ingot", ""},
+ }
+})
+
+-- Crystal Shovel (with Soft Touch so player can dig up dirt with grass intact)
+minetest.register_tool("ethereal:shovel_crystal", {
+ description = "Crystal (soft touch) Shovel",
+ inventory_image = "crystal_shovel.png",
+ wield_image = "crystal_shovel.png^[transformR90",
+
+ on_use = function(itemstack, user, pointed_thing)
+
+ if pointed_thing.type == "node" then
+
+ -- Check if node protected
+ if not minetest.is_protected(pointed_thing.under, user:get_player_name()) then
+
+ local pos = pointed_thing.under
+ local nn = minetest.get_node(pos).name
+ local is_crumbly = minetest.get_item_group(nn, "crumbly")
+
+ -- Is node dirt, sand or gravel
+ if is_crumbly == 1 or is_crumbly == 2 or is_crumbly == 3 then
+
+ local inv = user:get_inventory()
+
+ minetest.env:remove_node(pointed_thing.under)
+ nodeupdate(pos)
+
+ inv:add_item("main", {name = nn})
+ itemstack:add_wear(65535/100) -- 111 uses
+ minetest.sound_play("default_dirt_footstep", {pos = pos, gain = 0.35})
+ return itemstack
+ end
+
+ end
+ end
+
+ end,
+})
+
+minetest.register_craft({
+ output = "ethereal:shovel_crystal",
+ recipe = {
+ {"", "ethereal:crystal_ingot", ""},
+ {"", "default:steel_ingot", ""},
+ {"", "default:steel_ingot", ""},
+ }
+})
+
+-- Crystal Gilly Staff (replenishes air supply when used, great for exploring underwater)
+minetest.register_tool("ethereal:crystal_gilly_staff", {
+ description = "Crystal Gilly Staff",
+ inventory_image = "crystal_gilly_staff.png",
+ wield_image = "crystal_gilly_staff.png",
+
+ on_use = function(itemstack, user, pointed_thing)
+
+ if user:get_breath() < 10 then
+ user:set_breath(10)
+ end
+
+ end,
+})
+
+minetest.register_craft({
+ output = "ethereal:crystal_gilly_staff",
+ recipe = {
+ {"ethereal:green_moss", "ethereal:gray_moss", "ethereal:fiery_moss"},
+ {"ethereal:crystal_moss", "ethereal:crystal_ingot", "ethereal:mushroom_moss"},
+ {"", "ethereal:crystal_ingot", ""},
+ }
+})