Noch mehr mods
This commit is contained in:
parent
a063db5d3b
commit
cf017b2ca1
527 changed files with 21113 additions and 181 deletions
164
mods/more_boats/init.lua
Normal file
164
mods/more_boats/init.lua
Normal file
|
@ -0,0 +1,164 @@
|
|||
|
||||
more_boats = {}
|
||||
more_boats.boats = {
|
||||
{
|
||||
"Aspen Boat",
|
||||
"more_boats:aspen_boat",
|
||||
"more_boats_aspen_inv.png",
|
||||
"more_boats_aspen_wield.png",
|
||||
{"default_aspen_wood.png"},
|
||||
"default:aspen_wood"
|
||||
},
|
||||
{
|
||||
"Acacia Boat",
|
||||
"more_boats:acacia_boat",
|
||||
"more_boats_acacia_inv.png",
|
||||
"more_boats_acacia_wield.png",
|
||||
{"default_acacia_wood.png"},
|
||||
"default:acacia_wood"
|
||||
},
|
||||
{
|
||||
"Pine Boat",
|
||||
"more_boats:pine_boat",
|
||||
"more_boats_pine_inv.png",
|
||||
"more_boats_pine_wield.png",
|
||||
{"default_pine_wood.png"},
|
||||
"default:pine_wood"
|
||||
},
|
||||
{
|
||||
"Jungle Wood Boat",
|
||||
"more_boats:jungle_boat",
|
||||
"more_boats_jungle_inv.png",
|
||||
"more_boats_jungle_wield.png",
|
||||
{"default_junglewood.png"},
|
||||
"default:junglewood"
|
||||
},
|
||||
{
|
||||
"Obsidian Boat",
|
||||
"more_boats:obsidian_boat",
|
||||
"more_boats_obsidian_inv.png",
|
||||
"more_boats_obsidian_wield.png",
|
||||
{"default_obsidian.png"},
|
||||
"default:obsidian",
|
||||
true
|
||||
}
|
||||
}
|
||||
local S = minetest.get_translator("more_boats")
|
||||
local modpath = minetest.get_modpath("more_boats")
|
||||
dofile(modpath .."/api.lua")
|
||||
minetest.clear_craft({
|
||||
output = "boats:boat",
|
||||
recipe = {
|
||||
{"", "", "" },
|
||||
{"group:wood", "", "group:wood"},
|
||||
{"group:wood", "group:wood", "group:wood"},
|
||||
},
|
||||
})
|
||||
minetest.register_craft({
|
||||
output = "boats:boat",
|
||||
recipe = {
|
||||
{"", "", ""},
|
||||
{"default:wood", "", "default:wood"},
|
||||
{"default:wood", "default:wood", "default:wood"},
|
||||
},
|
||||
})
|
||||
local function is_water(pos)
|
||||
local nn = minetest.get_node(pos).name
|
||||
return minetest.get_item_group(nn, "water") ~= 0
|
||||
end
|
||||
local function is_lava(pos)
|
||||
local nn = minetest.get_node(pos).name
|
||||
return minetest.get_item_group(nn, "lava") ~= 0
|
||||
end
|
||||
for i, def in ipairs(more_boats.boats) do
|
||||
local desc = def[1]
|
||||
local name = def[2]
|
||||
local texture_inv = def[3]
|
||||
local texture_wield = def[4]
|
||||
local texture_boat = def[5]
|
||||
local material = def[6]
|
||||
local isnt_lava = def[7]
|
||||
local boat_def = {
|
||||
initial_properties = {
|
||||
physical = true,
|
||||
collisionbox = {-0.5, -0.35, -0.5, 0.5, 0.3, 0.5},
|
||||
visual = "mesh",
|
||||
mesh = "boats_boat.obj",
|
||||
textures = texture_boat,
|
||||
},
|
||||
driver = nil,
|
||||
v = 0,
|
||||
last_v = 0,
|
||||
removed = false,
|
||||
auto = false
|
||||
}
|
||||
boat_def.on_rightclick = more_boat.on_rightclick
|
||||
boat_def.on_detach_child = more_boat.on_detach_child
|
||||
boat_def.on_activate = more_boat.on_step
|
||||
boat_def.get_staticdata = more_boat.get_staticdata
|
||||
boat_def.on_punch = more_boat.on_punch
|
||||
if not isnt_lava then
|
||||
boat_def.on_step = more_boat.on_step
|
||||
else
|
||||
boat_def.on_step = more_boat.LAVA.on_step
|
||||
end
|
||||
minetest.register_entity(name, boat_def)
|
||||
minetest.register_craftitem(name, {
|
||||
description = S(desc),
|
||||
inventory_image = texture_inv,
|
||||
wield_image = texture_wield,
|
||||
wield_scale = {x = 2, y = 2, z = 1},
|
||||
liquids_pointable = true,
|
||||
groups = {flammable = 2},
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
local under = pointed_thing.under
|
||||
local node = minetest.get_node(under)
|
||||
local udef = minetest.registered_nodes[node.name]
|
||||
if udef and udef.on_rightclick and
|
||||
not (placer and placer:is_player() and
|
||||
placer:get_player_control().sneak) then
|
||||
return udef.on_rightclick(under, node, placer, itemstack,
|
||||
pointed_thing) or itemstack
|
||||
end
|
||||
if pointed_thing.type ~= "node" then
|
||||
return itemstack
|
||||
end
|
||||
if not isnt_lava then
|
||||
if not is_water(pointed_thing.under) then
|
||||
return itemstack
|
||||
end
|
||||
else
|
||||
if not is_lava(pointed_thing.under) then
|
||||
return itemstack
|
||||
end
|
||||
end
|
||||
pointed_thing.under.y = pointed_thing.under.y + 0.5
|
||||
boat = minetest.add_entity(pointed_thing.under, name)
|
||||
if boat then
|
||||
if placer then
|
||||
boat:set_yaw(placer:get_look_horizontal())
|
||||
end
|
||||
local player_name = placer and placer:get_player_name() or ""
|
||||
if not minetest.is_creative_enabled(player_name) then
|
||||
itemstack:take_item()
|
||||
end
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
minetest.register_craft({
|
||||
output = name,
|
||||
recipe = {
|
||||
{"", "", ""},
|
||||
{material, "", material},
|
||||
{material, material, material},
|
||||
}
|
||||
})
|
||||
if not is_lava then
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = name,
|
||||
burntime = 20,
|
||||
})
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue