1
0
mirror of https://github.com/sys4-fr/server-nalc.git synced 2025-06-28 06:11:47 +02:00

initial commit

subgame + mods
This commit is contained in:
Ombridride
2014-10-28 18:01:32 +01:00
parent baab1b3f7c
commit 232b274c55
6451 changed files with 226156 additions and 0 deletions

69
mods/lavatemple/dagger.lua Executable file
View File

@ -0,0 +1,69 @@
-- Based on compass mod by Echo
minetest.register_globalstep(function(dtime)
local players = minetest.get_connected_players()
for i,player in ipairs(players) do
target = lavatemple.mapgen_data.pos;
if not target then return end
pos = player:getpos()
dir = player:get_look_yaw()
local angle_north = math.deg(math.atan2(target.x - pos.x, target.z - pos.z))
if angle_north < 0 then angle_north = angle_north + 360 end
angle_dir = 90 - math.deg(dir)
local angle_relative = (angle_north - angle_dir) % 360
local compass_image = math.floor((angle_relative/30) + 0.5)%12
local wielded_item = player:get_wielded_item():get_name()
if string.sub(wielded_item, 0, 18) == "lavatemple:dagger_" then
player:set_wielded_item("lavatemple:dagger_"..compass_image)
else
if player:get_inventory() then
for i,stack in ipairs(player:get_inventory():get_list("main")) do
if string.sub(stack:get_name(), 0, 18) == "lavatemple:dagger_" and
stack:get_name() ~= "lavatemple:dagger_"..compass_image then
player:get_inventory():set_stack("main", i, ItemStack("lavatemple:dagger_"..compass_image))
end
end
end
end
end
end)
local images = {
"lavatemple_dagger_0.png",
"lavatemple_dagger_1.png",
"lavatemple_dagger_2.png",
"lavatemple_dagger_3.png",
"lavatemple_dagger_4.png",
"lavatemple_dagger_5.png",
"lavatemple_dagger_6.png",
"lavatemple_dagger_5.png",
"lavatemple_dagger_4.png",
"lavatemple_dagger_3.png",
"lavatemple_dagger_2.png",
"lavatemple_dagger_1.png",
}
local i
for i,img in ipairs(images) do
local inv = 1
if i == 1 then
inv = 0
end
minetest.register_tool("lavatemple:dagger_"..(i-1), {
description = "Lava dagger",
inventory_image = img,
wield_image = img,
groups = {not_in_creative_inventory=inv},
})
end
minetest.register_craft({
output = 'lavatemple:dagger_1',
recipe = {
{'zmobs:lava_orb', 'default:steel_ingot', 'zmobs:lava_orb'},
{'zmobs:lava_orb', 'default:steel_ingot', 'zmobs:lava_orb'},
{'zmobs:lava_orb', 'default:stick', 'zmobs:lava_orb'}
}
})

4
mods/lavatemple/depends.txt Executable file
View File

@ -0,0 +1,4 @@
default
stairs
zmobs
worldedit

7
mods/lavatemple/init.lua Executable file
View File

@ -0,0 +1,7 @@
lavatemple = {}
local MODPATH = minetest.get_modpath("lavatemple")
dofile(MODPATH.."/nodes.lua")
dofile(MODPATH.."/items.lua")
dofile(MODPATH.."/mapgen.lua")
dofile(MODPATH.."/dagger.lua")

21
mods/lavatemple/items.lua Executable file
View File

@ -0,0 +1,21 @@
minetest.register_tool("lavatemple:darkpick", {
description = "Dark Pickaxe",
inventory_image = "lavatemple_tool_darkpick.png",
tool_capabilities = {
full_punch_interval = 1.0,
max_drop_level=0,
groupcaps={
dark = {times={[1]=0.25}, uses=0, maxlevel=1},
},
damage_groups = {},
},
})
minetest.register_craftitem("lavatemple:teleport_orb", {
description = "Teleport'orb (does nothing yet)",
inventory_image = "lavatemple_teleport_orb.png",
on_place = function(itemstack, placer, pointed_thing)
end,
})

56
mods/lavatemple/mapgen.lua Executable file
View File

@ -0,0 +1,56 @@
lavatemple.mapgen_data = {}
lavatemple.file = minetest.get_worldpath()..'/lavatemple.mt'
-- try to load the data from file
local f = io.open(lavatemple.file, "r")
if f then
local contents = f:read()
io.close(f)
if contents ~= nil then
lavatemple.mapgen_data = minetest.deserialize(contents)
end
end
-- generate position of the temple (if not done already)
if type (lavatemple.mapgen_data) ~= "table" or
lavatemple.mapgen_data.pos == nil or
lavatemple.mapgen_data.pos.x == nil or
lavatemple.mapgen_data.pos.y == nil or
lavatemple.mapgen_data.pos.z == nil then
-- generate the temple position
math.randomseed(os.time())
lavatemple.mapgen_data.pos = {
x=math.random(-2000,2000),
y=math.random(-500,-50),
z=math.random(-2000,2000)
}
-- save data
local f = io.open(lavatemple.file, "w")
f:write(minetest.serialize(lavatemple.mapgen_data))
io.close(f)
end
minetest.register_on_generated(function(minp,maxp,seed)
local ltp = lavatemple.mapgen_data.pos
if ltp.x > minp.x and ltp.x < maxp.x and
ltp.y > minp.y and ltp.y < maxp.y and
ltp.z > minp.z and ltp.z < maxp.z then
local f = io.open(minetest.get_modpath("lavatemple").."/schems/lavatemple.we", "r")
if not f then return end
local contents = f:read()
io.close(f)
if not contents then return end
-- Clear the area since worldedit doesn't save "air" nodes
pos1, pos2, count = worldedit.allocate(ltp, contents)
for x=pos1.x,pos2.x do
for y=pos1.y,pos2.y do
for z=pos1.z,pos2.z do
minetest.env:remove_node({x=x,y=y,z=z})
end end end
-- Deserialize the temple
worldedit.deserialize(ltp, contents, minetest.env)
end
end)

42
mods/lavatemple/nodes.lua Executable file
View File

@ -0,0 +1,42 @@
minetest.register_node("lavatemple:brick", {
description = "Darkbrick",
tiles = {"lavatemple_brick.png"},
groups = {dark=1},
sounds = default.node_sound_stone_defaults(),
})
stairs.register_stair_and_slab(
"lavatemple_brick",
"lavatemple:brick",
{dark=1},
{"lavatemple_brick.png"},
"Darkbrick Stair",
"Darkbrick Slab",
default.node_sound_stone_defaults()
)
minetest.register_node("lavatemple:ladder", {
description = "Darkbrick Ladder",
drawtype = "signlike",
tiles = {"lavatemple_ladder.png"},
inventory_image = "lavatemple_ladder.png",
wield_image = "lavatemple_ladder.png",
paramtype = "light",
paramtype2 = "wallmounted",
walkable = false,
climbable = true,
selection_box = {type = "wallmounted"},
groups = {dark=1},
legacy_wallmounted = true,
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("lavatemple:fence_brick", {
description = "Darkbrick fence",
drawtype = "fencelike",
paramtype = "light",
tiles = {"lavatemple_brick.png"},
groups = {dark=1},
sounds = default.node_sound_stone_defaults(),
})

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 376 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 416 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 427 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 430 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 423 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 424 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 410 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 287 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 424 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 524 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 327 B