refactor mod; make the goggles do something

master
flux 2019-08-13 05:19:23 +00:00
parent 5e0ee4a986
commit 060ad6fa74
12 changed files with 307 additions and 279 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.idea/

View File

@ -1,7 +1,9 @@
Fork of the abandoned titanium mod (https://forum.minetest.net/viewtopic.php?id=3113)
Google glass has been disabled (the lights would break nearby smart shops when the server rebooted).
The sword now does damage.
Breaking the TV now gives you a real node.
The goggles have been reworked so that they now override the "sunlight" parameter
instead of placing light nodes around the player (which had the side effect of destroying
smartshops)

View File

@ -1 +1,4 @@
default
default
3d_armor?
more_monoids?
terumet?

46
goggles.lua Normal file
View File

@ -0,0 +1,46 @@
if minetest.global_exists("armor") and minetest.global_exists("more_monoids") then
armor:register_armor("titanium:sam_titanium", {
description = "Night Vision Goggles",
inventory_image = "sam_titanium.png",
texture = "goggles_texture",
preview = "goggles_preview",
armor_groups = {fleshy=0},
groups = {
armor_head = 1,
armor_use = 0,
armor_heal = 0,
armor_water = 0,
armor_fire = 0,
physics_speed = 0,
physics_gravity = 0,
physics_jump = 0,
},
damage_groups = {},
on_equip = function(player, index, stack)
more_monoids.sunlight_monoid:add_change(player, 1, "titanium:goggles")
end,
on_unequip = function(player, index, stack)
more_monoids.sunlight_monoid:del_change(player, "titanium:goggles")
end,
})
minetest.register_craft({
output = "titanium:sam_titanium",
recipe = {
{"titanium:titanium_plate", "terumet:block_tglassglow", "titanium:titanium_plate"},
{"titanium:glass", "titanium:titanium_plate", "titanium:glass"},
{"titanium:titanium_plate", "terumet:item_batt_therm_full", "titanium:titanium_plate"},
}
})
-- terumet.register_repairable_item
else
minetest.register_craftitem("titanium:sam_titanium", {
description = "Night Vision Goggles",
inventory_image = "sam_titanium.png",
wield_image = "sam_titanium.png",
})
end

283
init.lua
View File

@ -1,277 +1,8 @@
---
---Titanium Mod Version 4 By Aqua. Added new Google Glass Titanium. Be nice this is my first mod!!! Subscribe to my YouTube: youtube.com/theshaunzero!
---
local modname = minetest.get_current_modname()
local modpath = minetest.get_modpath(modname)
---
---blocks
---
minetest.register_node( "titanium:titanium_in_ground", {
description = "Titanium Ore",
tile_images = { "default_stone.png^titanium_titanium_in_ground.png" },
is_ground_content = true,
groups = {cracky=1},
sounds = default.node_sound_stone_defaults(),
drop = 'craft "titanium:titanium" 1',
})
minetest.register_node( "titanium:block", {
description = "Titanium Block",
tile_images = { "titanium_block.png" },
is_ground_content = true,
groups = {cracky=1},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("titanium:glass", {
description = "Titanium Glass",
drawtype = "glasslike",
tile_images = {"titanium_glass.png"},
light_propagates = true,
paramtype = "light",
sunlight_propagates = true,
is_ground_content = true,
groups = {snappy=1,cracky=2,oddly_breakable_by_hand=2},
sounds = default.node_sound_glass_defaults(),
})
minetest.register_craftitem( "titanium:titanium", {
description = "Titanium",
inventory_image = "titanium_titanium.png",
on_place_on_ground = minetest.craftitem_place_item,
})
minetest.register_craftitem( "titanium:tougher_titanium", {
description = "Tougher Titanium",
inventory_image = "tougher_titanium.png",
on_place_on_ground = minetest.craftitem_place_item,
})
minetest.register_node( "titanium:titanium_plate", {
description = "Titanium Plate",
tile_images = {"titanium_plate.png"},
inventory_image = "titanium_plate.png",
is_ground_content = true,
groups = {cracky=1},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node( "titanium:titanium_tv_1", {
description = "Titanium TV",
tile_images = { "titanium_tv_1.png" },
is_ground_content = true,
groups = {snappy=1,bendy=2,cracky=1,melty=2,level=2},
drop = 'titanium:titanium_tv_1',
light_source = 8,
})
minetest.register_node( "titanium:titanium_tv_2", {
description = "Titanium TV",
tile_images = { "titanium_tv_2.png" },
is_ground_content = true,
groups = {snappy=1,bendy=2,cracky=1,melty=2,level=2},
drop = 'titanium:titanium_tv_1',
light_source = 8,
})
minetest.register_abm(
{nodenames = {"titanium:titanium_tv_1", "titanium:titanium_tv_2"},
interval = 12,
chance = 1,
action = function(pos)
local i = math.random(1,2)
if i== 1 then
minetest.add_node(pos,{name="titanium:titanium_tv_1"})
end
if i== 2 then
minetest.add_node(pos,{name="titanium:titanium_tv_2"})
end
end
})
---
---tools
---
minetest.register_tool("titanium:sword", {
description = "Titanium Sword",
inventory_image = "titanium_sword.png",
tool_capabilities = {
full_punch_interval = 1.0,
max_drop_level=1,
groupcaps={
fleshy={times={[1]=2.00, [2]=0.60, [3]=0.20}, uses=100, maxlevel=2},
snappy={times={[2]=0.60, [3]=0.20}, uses=100, maxlevel=1},
choppy={times={[3]=0.70}, uses=100, maxlevel=0}
},
damage_groups = {fleshy=10.00}
}
})
minetest.register_tool("titanium:axe", {
description = "Titanium Axe",
inventory_image = "titanium_axe.png",
tool_capabilities = {
max_drop_level=1,
groupcaps={
choppy={times={[1]=2.50, [2]=1.50, [3]=1.00}, uses=150, maxlevel=2},
fleshy={times={[2]=1.00, [3]=0.50}, uses=120, maxlevel=1}
},
damage_groups = {fleshy=10.00}
},
})
minetest.register_tool("titanium:shovel", {
description = "Titanium Shovel",
inventory_image = "titanium_shovel.png",
tool_capabilities = {
max_drop_level=1,
groupcaps={
crumbly={times={[1]=1.0, [2]=0.50, [3]=0.50}, uses=150, maxlevel=3}
},
damage_groups = {fleshy=4.00}
},
})
minetest.register_tool("titanium:pick", {
description = "Titanium Pickaxe",
inventory_image = "titanium_pick.png",
tool_capabilities = {
full_punch_interval = 1.0,
max_drop_level=3,
groupcaps={
cracky={times={[1]=2.4, [2]=1.0, [3]=0.6}, uses=160, maxlevel=3},
crumbly={times={[1]=2.4, [2]=1.0, [3]=0.6}, uses=160, maxlevel=3},
snappy={times={[1]=2.4, [2]=1.0, [3]=0.6}, uses=160, maxlevel=3}
},
damage_groups = {fleshy=4.00}
},
})
---
---crafting
---
minetest.register_craft({
output = 'titanium:pick',
recipe = {
{'titanium:titanium', 'titanium:titanium', 'titanium:titanium'},
{'', 'default:stick', ''},
{'', 'default:stick', ''},
}
})
minetest.register_craft({
output = 'titanium:axe',
recipe = {
{'titanium:titanium', 'titanium:titanium', ''},
{'titanium:titanium', 'default:stick', ''},
{'', 'default:stick', ''},
}
})
minetest.register_craft({
output = 'titanium:shovel',
recipe = {
{'', 'titanium:titanium', ''},
{'', 'default:stick', ''},
{'', 'default:stick', ''},
}
})
minetest.register_craft({
output = 'titanium:sword',
recipe = {
{'', 'titanium:titanium', ''},
{'', 'titanium:titanium', ''},
{'', 'default:stick', ''},
}
})
minetest.register_craft({
output = 'titanium:block',
recipe = {
{'titanium:titanium', 'titanium:titanium', 'titanium:titanium'},
{'titanium:titanium', 'titanium:titanium', 'titanium:titanium'},
{'titanium:titanium', 'titanium:titanium', 'titanium:titanium'},
}
})
minetest.register_craft({
output = 'titanium:titanium 9',
recipe = {
{'', 'titanium:block', ''},
}
})
minetest.register_craft({
output = 'titanium:glass 3',
recipe = {
{'', 'titanium:titanium', ''},
{'titanium:titanium', 'default:glass', 'titanium:titanium'},
{'', 'titanium:titanium', ''},
}
})
minetest.register_craft({
output = 'titanium:tougher_titanium',
recipe = {
{'titanium:titanium', 'titanium:titanium'},
{'titanium:titanium', 'titanium:titanium'},
}
})
minetest.register_craft({
output = 'titanium:titanium_tv_1',
recipe = {
{'default:steel_ingot', 'titanium:tougher_titanium', 'default:steel_ingot'},
{'titanium:tougher_titanium', 'default:glass', 'titanium:tougher_titanium'},
{'default:steel_ingot', 'titanium:tougher_titanium', 'default:steel_ingot'},
}
})
minetest.register_craft({
output = 'titanium:titanium_plate 9',
recipe = {
{'titanium:titanium', 'titanium:titanium', 'titanium:titanium'},
{'titanium:titanium', 'titanium:tougher_titanium', 'titanium:titanium'},
{'titanium:titanium', 'titanium:titanium', 'titanium:titanium'},
}
})
minetest.register_ore({
ore_type = "scatter",
ore = "titanium:titanium_in_ground",
wherein = "default:stone",
noise_params = {
offset = 0,
scale = 1,
spread = {x=100, y=100, z=100},
seed = 21,
octaves = 2,
persist = 0.70,
},
clust_scarcity = 8192,
clust_num_ores = 5,
clust_size = 2,
y_min = -31000,
y_max = -1500,
})
------------------------------------------------------
-- Version 4------------------------------------------
minetest.register_tool("titanium:sam_titanium", {
description = "Google Glass Titanium",
inventory_image = "sam_titanium.png",
wield_image = "sam_titanium.png",
tool_capabilities = {
max_drop_level=1,
groupcaps={
cracky={times={[2]=1.20, [3]=0.80}, uses=5, maxlevel=1}
}
},
})
dofile(modpath .. '/nodes.lua')
dofile(modpath .. '/tools.lua')
dofile(modpath .. '/tv.lua')
dofile(modpath .. '/worldgen.lua')
dofile(modpath .. '/goggles.lua')

View File

@ -1,2 +1,3 @@
name=titanium
depends=default
optional_depends=3d_armor,more_monoids,terumet

91
nodes.lua Normal file
View File

@ -0,0 +1,91 @@
minetest.register_craftitem( "titanium:titanium", {
description = "Titanium",
inventory_image = "titanium_titanium.png",
on_place_on_ground = minetest.craftitem_place_item,
})
minetest.register_node( "titanium:titanium_in_ground", {
description = "Titanium Ore",
tile_images = { "default_stone.png^titanium_titanium_in_ground.png" },
is_ground_content = true,
groups = {cracky=1},
sounds = default.node_sound_stone_defaults(),
drop = 'craft "titanium:titanium" 1',
})
minetest.register_node( "titanium:block", {
description = "Titanium Block",
tile_images = { "titanium_block.png" },
is_ground_content = true,
groups = {cracky=1},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_craft({
output = 'titanium:block',
recipe = {
{'titanium:titanium', 'titanium:titanium', 'titanium:titanium'},
{'titanium:titanium', 'titanium:titanium', 'titanium:titanium'},
{'titanium:titanium', 'titanium:titanium', 'titanium:titanium'},
}
})
minetest.register_craft({
output = 'titanium:titanium 9',
recipe = {
{'', 'titanium:block', ''},
}
})
minetest.register_node("titanium:glass", {
description = "Titanium Glass",
drawtype = "glasslike",
tile_images = {"titanium_glass.png"},
light_propagates = true,
paramtype = "light",
sunlight_propagates = true,
is_ground_content = true,
groups = {snappy=1,cracky=2,oddly_breakable_by_hand=2},
sounds = default.node_sound_glass_defaults(),
})
minetest.register_craft({
output = 'titanium:glass 3',
recipe = {
{'', 'titanium:titanium', ''},
{'titanium:titanium', 'default:glass', 'titanium:titanium'},
{'', 'titanium:titanium', ''},
}
})
minetest.register_craftitem( "titanium:tougher_titanium", {
description = "Tougher Titanium",
inventory_image = "tougher_titanium.png",
on_place_on_ground = minetest.craftitem_place_item,
})
minetest.register_craft({
output = 'titanium:tougher_titanium',
recipe = {
{'titanium:titanium', 'titanium:titanium'},
{'titanium:titanium', 'titanium:titanium'},
}
})
minetest.register_node( "titanium:titanium_plate", {
description = "Titanium Plate",
tile_images = {"titanium_plate.png"},
inventory_image = "titanium_plate.png",
is_ground_content = true,
groups = {cracky=1},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_craft({
output = 'titanium:titanium_plate 9',
recipe = {
{'titanium:titanium', 'titanium:titanium', 'titanium:titanium'},
{'titanium:titanium', 'titanium:tougher_titanium', 'titanium:titanium'},
{'titanium:titanium', 'titanium:titanium', 'titanium:titanium'},
}
})

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 B

91
tools.lua Normal file
View File

@ -0,0 +1,91 @@
minetest.register_tool("titanium:sword", {
description = "Titanium Sword",
inventory_image = "titanium_sword.png",
tool_capabilities = {
full_punch_interval = 1.0,
max_drop_level=1,
groupcaps={
fleshy={times={[1]=2.00, [2]=0.60, [3]=0.20}, uses=100, maxlevel=2},
snappy={times={[2]=0.60, [3]=0.20}, uses=100, maxlevel=1},
choppy={times={[3]=0.70}, uses=100, maxlevel=0}
},
damage_groups = {fleshy=10.00}
}
})
minetest.register_craft({
output = 'titanium:sword',
recipe = {
{'', 'titanium:titanium', ''},
{'', 'titanium:titanium', ''},
{'', 'default:stick', ''},
}
})
minetest.register_tool("titanium:axe", {
description = "Titanium Axe",
inventory_image = "titanium_axe.png",
tool_capabilities = {
max_drop_level=1,
groupcaps={
choppy={times={[1]=2.50, [2]=1.50, [3]=1.00}, uses=150, maxlevel=2},
fleshy={times={[2]=1.00, [3]=0.50}, uses=120, maxlevel=1}
},
damage_groups = {fleshy=10.00}
},
})
minetest.register_craft({
output = 'titanium:axe',
recipe = {
{'titanium:titanium', 'titanium:titanium', ''},
{'titanium:titanium', 'default:stick', ''},
{'', 'default:stick', ''},
}
})
minetest.register_tool("titanium:shovel", {
description = "Titanium Shovel",
inventory_image = "titanium_shovel.png",
tool_capabilities = {
max_drop_level=1,
groupcaps={
crumbly={times={[1]=1.0, [2]=0.50, [3]=0.50}, uses=150, maxlevel=3}
},
damage_groups = {fleshy=4.00}
},
})
minetest.register_craft({
output = 'titanium:shovel',
recipe = {
{'', 'titanium:titanium', ''},
{'', 'default:stick', ''},
{'', 'default:stick', ''},
}
})
minetest.register_tool("titanium:pick", {
description = "Titanium Pickaxe",
inventory_image = "titanium_pick.png",
tool_capabilities = {
full_punch_interval = 1.0,
max_drop_level=3,
groupcaps={
cracky={times={[1]=2.4, [2]=1.0, [3]=0.6}, uses=160, maxlevel=3},
crumbly={times={[1]=2.4, [2]=1.0, [3]=0.6}, uses=160, maxlevel=3},
snappy={times={[1]=2.4, [2]=1.0, [3]=0.6}, uses=160, maxlevel=3}
},
damage_groups = {fleshy=4.00}
},
})
minetest.register_craft({
output = 'titanium:pick',
recipe = {
{'titanium:titanium', 'titanium:titanium', 'titanium:titanium'},
{'', 'default:stick', ''},
{'', 'default:stick', ''},
}
})

44
tv.lua Normal file
View File

@ -0,0 +1,44 @@
minetest.register_node( "titanium:titanium_tv_1", {
description = "Titanium TV",
tile_images = { "titanium_tv_1.png" },
is_ground_content = true,
groups = {snappy=1,bendy=2,cracky=1,melty=2,level=2},
drop = 'titanium:titanium_tv_1',
light_source = 8,
})
minetest.register_craft({
output = 'titanium:titanium_tv_1',
recipe = {
{'default:steel_ingot', 'titanium:tougher_titanium', 'default:steel_ingot'},
{'titanium:tougher_titanium', 'default:glass', 'titanium:tougher_titanium'},
{'default:steel_ingot', 'titanium:tougher_titanium', 'default:steel_ingot'},
}
})
minetest.register_node( "titanium:titanium_tv_2", {
description = "Titanium TV",
tile_images = { "titanium_tv_2.png" },
is_ground_content = true,
groups = {snappy=1,bendy=2,cracky=1,melty=2,level=2},
drop = 'titanium:titanium_tv_1',
light_source = 8,
})
minetest.register_abm(
{nodenames = {"titanium:titanium_tv_1", "titanium:titanium_tv_2"},
interval = 12,
chance = 1,
action = function(pos)
local i = math.random(1,2)
if i== 1 then
minetest.add_node(pos,{name="titanium:titanium_tv_1"})
end
if i== 2 then
minetest.add_node(pos,{name="titanium:titanium_tv_2"})
end
end
})

18
worldgen.lua Normal file
View File

@ -0,0 +1,18 @@
minetest.register_ore({
ore_type = "scatter",
ore = "titanium:titanium_in_ground",
wherein = "default:stone",
noise_params = {
offset = 0,
scale = 1,
spread = {x=100, y=100, z=100},
seed = 21,
octaves = 2,
persist = 0.70,
},
clust_scarcity = 8192,
clust_num_ores = 5,
clust_size = 2,
y_min = -25000,
y_max = -1500,
})