All new craft recipes are complete, closes #52

This commit is contained in:
KaadmY 2017-05-16 11:12:49 -07:00
parent 0feaa580d5
commit fd24eca9ea
5 changed files with 126 additions and 88 deletions

View File

@ -41,7 +41,7 @@ minetest.register_globalstep(on_globalstep)
minetest.register_craftitem(
"nav:compass_0",
{
description = "Compass(N)",
description = "Compass",
inventory_image = "nav_compass_inventory_0.png",
wield_image = wield_image_0,
@ -53,7 +53,7 @@ minetest.register_craftitem(
minetest.register_craftitem(
"nav:compass_1",
{
description = "Compass(NE)",
description = "Compass",
inventory_image = "nav_compass_inventory_1.png",
wield_image = wield_image_1,
@ -65,7 +65,7 @@ minetest.register_craftitem(
minetest.register_craftitem(
"nav:compass_2",
{
description = "Compass(E)",
description = "Compass",
inventory_image = "nav_compass_inventory_0.png^[transformR270",
wield_image = wield_image_0 .. "^[transformR270",
@ -77,7 +77,7 @@ minetest.register_craftitem(
minetest.register_craftitem(
"nav:compass_3",
{
description = "Compass(SE)",
description = "Compass",
inventory_image = "nav_compass_inventory_1.png^[transformR270",
wield_image = wield_image_1 .. "^[transformR270",
@ -90,7 +90,7 @@ minetest.register_craftitem(
minetest.register_craftitem(
"nav:compass_4",
{
description = "Compass(S)",
description = "Compass",
inventory_image = "nav_compass_inventory_0.png^[transformR180",
wield_image = wield_image_0 .. "^[transformR180",
@ -102,7 +102,7 @@ minetest.register_craftitem(
minetest.register_craftitem(
"nav:compass_5",
{
description = "Compass(SW)",
description = "Compass",
inventory_image = "nav_compass_inventory_1.png^[transformR180",
wield_image = wield_image_1 .. "^[transformR180",
@ -114,7 +114,7 @@ minetest.register_craftitem(
minetest.register_craftitem(
"nav:compass_6",
{
description = "Compass(W)",
description = "Compass",
inventory_image = "nav_compass_inventory_0.png^[transformR90",
wield_image = wield_image_0 .. "^[transformR90",
@ -126,7 +126,7 @@ minetest.register_craftitem(
minetest.register_craftitem(
"nav:compass_7",
{
description = "Compass(NW)",
description = "Compass",
inventory_image = "nav_compass_inventory_1.png^[transformR90",
wield_image = wield_image_1 .. "^[transformR90",
@ -135,13 +135,13 @@ minetest.register_craftitem(
stack_max = 1,
})
minetest.register_alias("nav:compass", "nav:compass_2")
minetest.register_alias("nav:compass", "nav:compass_0")
-- Crafting
crafting.register_craft(
{
output = "nav:compass_2",
output = "nav:compass",
items = {
"default:ingot_steel 4",
"default:stick",
@ -156,7 +156,7 @@ achievements.register_achievement(
title = "True Navigator",
description = "Craft a compass",
times = 1,
craftitem = "nav:compass_2",
craftitem = "nav:compass",
})
default.log("compass", "loaded")

View File

@ -1 +1,2 @@
default
crafting

View File

@ -10,10 +10,12 @@ function partialblocks.register_material(name, desc, node, can_burn)
if nodedef == nil then
minetest.log("warning", "Cannot find node for partialblock: " .. node)
return
end
-- Slab
minetest.register_node(
"partialblocks:" .. name .. "_slab",
{
@ -33,20 +35,15 @@ function partialblocks.register_material(name, desc, node, can_burn)
paramtype = "light",
paramtype2 = "wallmounted",
})
minetest.register_craft( -- Craft to
})
crafting.register_craft( -- Craft to
{
output = "partialblocks:" .. name .. "_slab 3",
recipe = {
{node, node, node},
items = {
node .. " 3",
},
})
minetest.register_craft( -- Craft back
{
output = node,
type = "shapeless",
recipe = {"partialblocks:" .. name .. "_slab"},
})
})
if can_burn then
minetest.register_craft( -- Fuel
@ -54,10 +51,11 @@ function partialblocks.register_material(name, desc, node, can_burn)
type = "fuel",
recipe = "partialblocks:" .. name .. "_slab",
burntime = 7,
})
})
end
-- Stair
minetest.register_node(
"partialblocks:" .. name .. "_stair",
{
@ -78,22 +76,15 @@ function partialblocks.register_material(name, desc, node, can_burn)
paramtype = "light",
paramtype2 = "facedir",
})
minetest.register_craft( -- Craft to
})
crafting.register_craft( -- Craft to
{
output = "partialblocks:" .. name .. "_stair 6",
recipe = {
{node, "", ""},
{node, node, ""},
{node, node, node},
items = {
node .. " 6",
},
})
minetest.register_craft( -- Craft back
{
output = node,
type = "shapeless",
recipe = {"partialblocks:" .. name .. "_stair"},
})
})
if can_burn then
minetest.register_craft( -- Fuel
@ -101,24 +92,52 @@ function partialblocks.register_material(name, desc, node, can_burn)
type = "fuel",
recipe = "partialblocks:" .. name .. "_stair",
burntime = 7,
})
})
end
end
-- Register some default node partials
partialblocks.register_material("cobble", "Cobble", "default:cobble", false)
partialblocks.register_material("stone", "Stone", "default:stone", false)
partialblocks.register_material("brick", "Brick", "default:brick", false)
-- Stonelike materials
partialblocks.register_material("wood", "Wood", "default:planks", true)
partialblocks.register_material("oak", "Oak", "default:planks_oak", true)
partialblocks.register_material("birch", "Birch", "default:planks_birch", true)
partialblocks.register_material(
"cobble", "Cobble", "default:cobble", false)
partialblocks.register_material("steel", "Steel", "default:block_steel", false)
partialblocks.register_material("compressed_sandstone", "Compressed Sandstone", "default:compressed_sandstone", false)
partialblocks.register_material("reinforced_cobble", "Reinforced Cobble", "default:reinforced_cobble", false)
partialblocks.register_material("frame", "Frame", "default:frame", false)
partialblocks.register_material("reinforced_frame", "Reinforced Frame", "default:reinforced_frame", false)
partialblocks.register_material("coal", "Coal", "default:block_coal", false)
partialblocks.register_material(
"stone", "Stone", "default:stone", false)
partialblocks.register_material(
"brick", "Brick", "default:brick", false)
-- Woodlike
partialblocks.register_material(
"wood", "Wood", "default:planks", true)
partialblocks.register_material(
"oak", "Oak", "default:planks_oak", true)
partialblocks.register_material(
"birch", "Birch", "default:planks_birch", true)
-- Frames
partialblocks.register_material(
"frame", "Frame", "default:frame", true)
partialblocks.register_material(
"reinforced_frame", "Reinforced Frame", "default:reinforced_frame", true)
partialblocks.register_material(
"reinforced_cobble", "Reinforced Cobble", "default:reinforced_cobble", false)
-- Misc. blocks
partialblocks.register_material(
"coal", "Coal", "default:block_coal", false)
partialblocks.register_material(
"steel", "Steel", "default:block_steel", false)
partialblocks.register_material(
"compressed_sandstone", "Compressed Sandstone", "default:compressed_sandstone", false)
default.log("mod:partialblocks", "loaded")

View File

@ -1,2 +1,3 @@
default
crafting
achievements

View File

@ -1,3 +1,4 @@
--
-- TNT mod
-- By PilzAdam and ShadowNinja
@ -7,6 +8,7 @@
tnt = {}
-- Default to enabled in singleplayer and disabled in multiplayer
local singleplayer = minetest.is_singleplayer()
local setting = minetest.setting_getbool("tnt_enable")
@ -14,27 +16,18 @@ if (not singleplayer and setting ~= true) or (singleplayer and setting == false)
return
end
-- loss probabilities array (one in X will be lost)
local loss_prob = {}
local tnt_radius = tonumber(minetest.setting_get("tnt_radius") or 3)
loss_prob["default:cobble"] = 3
loss_prob["default:dirt"] = 4
-- Loss probabilities array (one in X will be lost)
local radius = tonumber(minetest.setting_get("tnt_radius") or 3)
local loss_prob = {
["default:cobble"] = 3,
["default:dirt"] = 4,
}
-- Fill a list with data for content IDs, after all nodes are registered
local cid_data = {}
minetest.after(
0,
function()
for name, def in pairs(minetest.registered_nodes) do
cid_data[minetest.get_content_id(name)] = {
name = name,
drops = def.drops,
on_blast = def.on_blast,
}
end
end)
local function rand_pos(center, pos, radius)
pos.x = center.x + math.random(-radius, radius)
@ -168,6 +161,8 @@ function tnt.burn(pos)
end
end
-- TNT ground removal
function tnt.explode(pos, radius, sound)
minetest.sound_play(
sound,
@ -212,15 +207,33 @@ function tnt.explode(pos, radius, sound)
return drops
end
-- TNT node explosion
function tnt.boom(pos)
minetest.remove_node(pos)
local drops = tnt.explode(pos, radius, "tnt_explode")
entity_physics(pos, radius)
eject_drops(drops, pos, radius)
add_effects(pos, radius)
local drops = tnt.explode(pos, tnt_radius, "tnt_explode")
entity_physics(pos, tnt_radius)
eject_drops(drops, pos, tnt_radius)
add_effects(pos, tnt_radius)
end
-- On load register content IDs
local function on_load()
for name, def in pairs(minetest.registered_nodes) do
cid_data[minetest.get_content_id(name)] = {
name = name,
drops = def.drops,
on_blast = def.on_blast,
}
end
end
minetest.after(0, on_load)
-- Nodes
minetest.register_node(
"tnt:tnt",
{
@ -229,17 +242,20 @@ minetest.register_node(
is_ground_content = false,
groups = {dig_immediate = 2},
sounds = default.node_sound_wood_defaults(),
on_punch = function(pos, node, puncher)
local itemname = puncher:get_wielded_item():get_name()
if itemname == "default:flint_and_steel" then
tnt.burn(pos)
end
end,
on_punch = function(pos, node, puncher)
local itemname = puncher:get_wielded_item():get_name()
if itemname == "default:flint_and_steel" then
tnt.burn(pos)
end
end,
on_blast = function(pos, intensity)
tnt.burn(pos)
end,
})
tnt.burn(pos)
end,
})
-- Nodes
minetest.register_node(
"tnt:tnt_burning",
@ -262,24 +278,25 @@ minetest.register_node(
on_timer = tnt.boom,
-- unaffected by explosions
on_blast = function() end,
})
})
minetest.register_craft(
-- Crafting
crafting.register_craft(
{
output = "tnt:tnt",
recipe = {
{"", "group:planks", ""},
{"group:planks", "default:flint_and_steel", "group:planks"},
{"", "group:planks", ""}
items = {
"group:planks 4",
"default:flint_and_steel",
}
})
})
minetest.register_craft(
{
type = "fuel",
recipe = "tnt:tnt",
burntime = 13,
})
})
-- Achievements
@ -290,6 +307,6 @@ achievements.register_achievement(
description = "Craft TNT",
times = 1,
craftitem = "tnt:tnt",
})
})
default.log("mod:tnt", "loaded")