master
Milan 2017-10-09 13:15:34 +02:00
commit 1e51213621
14 changed files with 0 additions and 343 deletions

View File

@ -1,6 +0,0 @@
default
darkage?
streets?
homedecor?
protector?
node_ownership?

View File

@ -1,322 +0,0 @@
dofile(minetest.get_modpath("steel").."/rust.lua")
if minetest.setting_getbool("creative_mode") and not minetest.get_modpath("unified_inventory") then
steel_expect_infinite_stacks = true
else
steel_expect_infinite_stacks = false
end
function steel_node_is_owned(pos, placer)
local ownername = false
if type(IsPlayerNodeOwner) == "function" then -- node_ownership mod
if HasOwner(pos, placer) then -- returns true if the node is owned
if not IsPlayerNodeOwner(pos, placer:get_player_name()) then
if type(getLastOwner) == "function" then -- ...is an old version
ownername = getLastOwner(pos)
elseif type(GetNodeOwnerName) == "function" then -- ...is a recent version
ownername = GetNodeOwnerName(pos)
else
ownername = "someone"
end
end
end
elseif type(isprotect)=="function" then -- glomie's protection mod
if not isprotect(5, pos, placer) then
ownername = "someone"
end
elseif type(protector)=="table" and type(protector.can_dig)=="function" then -- Zeg9's protection mod
if not protector.can_dig(5, pos, placer) then
ownername = "someone"
end
end
if ownername ~= false then
minetest.chat_send_player( placer:get_player_name(), ("Sorry, %s owns that spot."):format(ownername) )
return true
else
return false
end
end
function steel_rotate_and_place(itemstack, placer, pointed_thing)
local node = minetest.get_node(pointed_thing.under)
if not minetest.registered_nodes[node.name] or not minetest.registered_nodes[node.name].on_rightclick then
if steel_node_is_owned(pointed_thing.above, placer) then
return itemstack
end
local above = pointed_thing.above
local under = pointed_thing.under
local pitch = placer:get_look_pitch()
local node = minetest.get_node(above)
local fdir = minetest.dir_to_facedir(placer:get_look_dir())
local wield_name = itemstack:get_name()
if node.name ~= "air" then return end
local iswall = (above.x ~= under.x) or (above.z ~= under.z)
local isceiling = (above.x == under.x) and (above.z == under.z) and (pitch > 0)
if iswall then
local dirs = { 2, 3, 0, 1 }
minetest.add_node(above, {name = wield_name.."_wall", param2 = dirs[fdir+1] }) -- place wall variant
elseif isceiling then
minetest.add_node(above, {name = wield_name.."_wall", param2 = 19 }) -- place wall variant on ceiling
else
minetest.add_node(above, {name = wield_name }) -- place regular variant
end
if not steel_expect_infinite_stacks then
itemstack:take_item()
return itemstack
end
else
minetest.registered_nodes[node.name].on_rightclick(pointed_thing.under, node, placer, itemstack)
end
end
minetest.register_node("steel:plate_soft", {
description = "Soft steel plate",
tiles = {"steelplatesoft.png"},
is_ground_content = true,
groups = {cracky=2},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("steel:plate_hard", {
description = "Hardened steel plate",
tiles = {"steelplatehard.png"},
is_ground_content = true,
groups = {cracky=1},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("steel:plate_rusted", {
description = "Rusted steel plate",
tiles = {"steel_rusted.png"},
is_ground_content = true,
groups = {cracky=1,choppy=1},
sounds = default.node_sound_stone_defaults(),
})
if minetest.registered_nodes["streets:steel_support"] then
minetest.register_alias("steel:strut","streets:steel_support")
else
minetest.register_node("steel:strut", {
drawtype = "glasslike",
description = "Strut",
tiles = {"strut.png"},
is_ground_content = true,
paramtype= "light",
groups = {choppy=1,cracky=1},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_alias("streets:steel_support","steel:strut")
end
minetest.register_node("steel:grate_soft", {
description = "Soft Steel Grate",
drawtype = "fencelike",
tiles = {"worldgratesoft.png"},
inventory_image = "gratesoft.png",
wield_image = "gratesoft.png",
paramtype = "light",
is_ground_content = true,
selection_box = {
type = "fixed",
fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7},
},
groups = {cracky=2,choppy=2},
sounds = default.node_sound_wood_defaults(),
})
minetest.register_node("steel:grate_hard", {
description = "Hardened Steel Grate",
drawtype = "fencelike",
tiles = {"worldgratehard.png"},
inventory_image = "gratehard.png",
wield_image = "gratehard.png",
paramtype = "light",
is_ground_content = true,
selection_box = {
type = "fixed",
fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7},
},
groups = {cracky=1,choppy=1},
sounds = default.node_sound_wood_defaults(),
})
minetest.register_node("steel:roofing", {
description = "Corrugated steel roofing",
drawtype = "raillike",
tiles = {"corrugated_steel.png"},
inventory_image = "corrugated_steel.png",
wield_image = "corrugated_steel.png",
paramtype = "light",
is_ground_content = true,
walkable = true,
selection_box = {
type = "fixed",
-- but how to specify the dimensions for curved and sideways rails?
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
},
groups = {bendy=2,snappy=1,dig_immediate=2},
on_place = function(itemstack, placer, pointed_thing)
steel_rotate_and_place(itemstack, placer, pointed_thing)
return itemstack
end
})
minetest.register_node("steel:roofing_wall", {
description = "Corrugated steel wall",
drawtype = "nodebox",
tiles = {"corrugated_steel.png"},
inventory_image = "corrugated_steel.png",
wield_image = "corrugated_steel.png",
paramtype = "light",
paramtype2 = "facedir",
is_ground_content = true,
walkable = true,
groups = {bendy=2,snappy=1,dig_immediate=2, not_in_creative_inventory=1},
drop = "steel:roofing",
on_place = function(itemstack, placer, pointed_thing)
steel_rotate_and_place(itemstack, placer, pointed_thing)
return itemstack
end,
node_box = {
type = "fixed",
fixed = { -0.5, -0.5, -0.48, 0.5, 0.5, -0.48 }
},
selection_box = {
type = "fixed",
fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, -0.4 }
},
})
if homedecor_register_slope and homedecor_register_roof then
homedecor_register_slope("steel", "roofing",
"steel:roofing",
{bendy=2,snappy=1,dig_immediate=2},
{"corrugated_steel.png"},
"Corrugated steel roofing"
)
homedecor_register_roof("steel", "roofing",
{bendy=2,snappy=1,dig_immediate=2},
{"corrugated_steel.png"},
"Corrugated steel roofing"
)
end
--steel scrap are only used to recover ingots
minetest.register_craftitem("steel:scrap", {
description = "Steel scraps",
inventory_image = "scrap.png",
})
--recipes
minetest.register_craft({
output = 'steel:plate_soft 2',
recipe = {
{'default:steelblock', 'default:steelblock'},
{'default:steelblock', 'default:steelblock'},
}
})
minetest.register_craft({
type = "cooking",
output = "steel:plate_hard",
recipe = "steel:plate_soft",
})
minetest.register_craft({
output = 'steel:grate_soft 4',
recipe = {
{'darkage:iron_stick', 'default:steel_ingot', 'darkage:iron_stick'},
{'darkage:iron_stick', 'default:steel_ingot', 'darkage:iron_stick'},
}
})
minetest.register_craft({
type = "cooking",
output = "steel:grate_hard",
recipe = "steel:grate_soft",
})
-- only register this craft if streets is not loaded
if not minetest.registered_nodes["streets:steel_support"] then
minetest.register_craft({
output = 'steel:strut 5',
recipe = {
{'default:steel_ingot', '', 'default:steel_ingot'},
{'', 'default:steel_ingot', ''},
{'default:steel_ingot', '', 'default:steel_ingot'},
}
})
end
minetest.register_craft({
output = 'steel:roofing 6',
recipe = {
{'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'},
}
})
--remelting recipes
minetest.register_craft({
output = 'steel:scrap 2',
recipe = {
{'steel:strut'},
}
})
minetest.register_craft({
output = 'steel:scrap 2',
recipe = {
{'steel:grate_soft'},
}
})
minetest.register_craft({
output = 'steel:scrap 2',
recipe = {
{'steel:grate_hard'},
}
})
minetest.register_craft({
output = 'steel:scrap',
recipe = {
{'steel:roofing'},
}
})
minetest.register_craft({
output = 'steel:scrap 4',
recipe = {
{'steel:plate_soft'},
}
})
minetest.register_craft({
output = 'steel:scrap 4',
recipe = {
{'steel:plate_hard'},
}
})
minetest.register_craft({
output = 'default:iron_lump',
recipe = {
{'steel:scrap', 'steel:scrap'},
}
})

Binary file not shown.

Before

Width:  |  Height:  |  Size: 164 KiB

View File

@ -1,15 +0,0 @@
local function moss(input, output)
minetest.register_abm({
nodenames = {input},
neighbors = {"group:water"},
interval = 50,
chance = 20,
action = function(pos)
if not minetest.find_node_near(pos, 3, output) then
minetest.add_node(pos, {name=output})
end
end,
})
end
moss("steel:plate_soft", "steel:plate_rusted")

Binary file not shown.

Before

Width:  |  Height:  |  Size: 398 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 761 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 696 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 509 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 785 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 374 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 911 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 745 B