First commit

-- Yawin
master
Yawin 2017-02-08 21:13:07 +01:00
commit 8bba17fd67
261 changed files with 9103 additions and 0 deletions

View File

@ -0,0 +1 @@
default_override

28
bedrock_layer/init.lua Normal file
View File

@ -0,0 +1,28 @@
-- Boilerplate to support localized strings if intllib mod is installed.
local S
local bedrock_layer = {}
bedrock_layer.layer = -1000
bedrock_layer.node = {name = "default_override:bedrock"}
minetest.register_on_generated(function(minp, maxp)
if maxp.y >= bedrock_layer.layer and minp.y <= bedrock_layer.layer then
local vm, emin, emax = minetest.get_mapgen_object("voxelmanip")
local data = vm:get_data()
local area = VoxelArea:new({MinEdge=emin, MaxEdge=emax})
local c_bedrock = minetest.get_content_id("default_override:bedrock")
for x = minp.x, maxp.x do
for z = minp.z, maxp.z do
local p_pos = area:index(x, bedrock_layer.layer, z)
data[p_pos] = c_bedrock
end
end
vm:set_data(data)
vm:calc_lighting()
vm:update_liquids()
vm:write_to_map()
end
end)

Binary file not shown.

After

Width:  |  Height:  |  Size: 327 B

2
commands/depends.txt Normal file
View File

@ -0,0 +1,2 @@
default
datalib

94
commands/gm.lua Normal file
View File

@ -0,0 +1,94 @@
vanished_players = {}
minetest.register_chatcommand("vanish", {
params = "",
description = "Make user invisible at eye of all",
privs = {admin = true},
func = function(name, param)
local prop
vanished_players[name] = not vanished_players[name]
if vanished_players[name] then
prop = {visual_size = {x=0, y=0}, collisionbox = {0,0,0,0,0,0}}
minetest.chat_send_player(name, "Vannish Command: You are Invisible now")
else
-- default player size
prop = {visual_size = {x=1, y=1},
collisionbox = {-0.35, -1, -0.35, 0.35, 1, 0.35}}
minetest.chat_send_player(name, "Vannish Command: You are Visible now")
end
minetest.get_player_by_name(name):set_properties(prop)
end
})
-- create file
datalib.create(datalib.datapath.."/genesis.txt")
-- Set Genesis Command
minetest.register_chatcommand("setgenesis", {
params = "",
privs = {admin = true},
description = "Set the Genesis point (beginning).",
func = function(name, param)
--Check for proper player [forbids console commands, not really needed]
local player = minetest.get_player_by_name(name)
if not player then
return
end
--Get player position and set genesis just below that just because it looks cooler.
local pos = vector.round(player:getpos())
pos.y = pos.y + 0.5
local pos_str = minetest.pos_to_string(pos)
datalib.write(datalib.datapath.."/genesis.txt", pos_str, false)
--Notify admin who set genesis.
return true, "Genesis point set to position "..pos_str
end,
})
-- Make sure player initializes at set genesis when he hurts himself badly if it exists.
minetest.register_on_respawnplayer(function(player)
if not player then
return
end
local genesis_pos = minetest.string_to_pos(minetest.setting_get("static_genesis"))
if not genesis_pos then
return
end
player:setpos(genesis_pos)
end)
-- Make sure player initializes at set genesis when he joins if it exists.
minetest.register_on_newplayer(function(player)
if not player then
return
end
local genesis_pos = minetest.string_to_pos(minetest.setting_get("static_genesis"))
if not genesis_pos then
return
end
player:setpos(genesis_pos)
end)
-- Make /genesis go to a genesis point set by admins if it exists.
minetest.register_chatcommand("genesis", {
params = "",
privs = {},
description = "Initialize transportation to the Genesis.",
func = function(name, param)
local player = minetest.get_player_by_name(name)
if not player then
return
end
local genesis = datalib.read(datalib.datapath.."/genesis.txt", false)
local genesis_pos = minetest.string_to_pos(genesis)
if not genesis_pos then
return false, "Static genesis point is not set or improperly formatted."
end
player:setpos(genesis_pos)
return true, "Initializing transportation to the Genesis point..."
end
})

26
commands/info.lua Normal file
View File

@ -0,0 +1,26 @@
INFO_BLANK = "To find out more about certain items type the command '/info' with the params 'update', 'version', 'creative', 'suprise'"
INFO_VERSION = "0.1"
INFO_UPDATE = "Nothing ATM"
INFO_CREATIVE = "Type the command '/gamemode_'(change the underscore to a space) and use the params '0' or 's' for survival and '1' or 'c' for creative"
minetest.register_chatcommand("info", {
params = "(blank) | update | version | creative | suprise",
description = "To get info on stuff.",
func = function(name, param)
if param == "" then
minetest.chat_send_player(name, INFO_BLANK)
end
if param == "update" then
minetest.chat_send_player(name, INFO_UPDATE)
end
if param == "version" then
minetest.chat_send_player(name, INFO_VERSION)
end
if param == "creative" then
minetest.chat_send_player(name, INFO_CREATIVE)
end
if param == "random" then
minetest.chat_send_player(name, INFO_RANDOM)
end
end
})

8
commands/init.lua Normal file
View File

@ -0,0 +1,8 @@
local path = minetest.get_modpath("commands")
minetest.register_privilege("admin","Dios en la tierra");
dofile(path.."/info.lua")
dofile(path.."/timeset.lua")
dofile(path.."/gm.lua")
dofile(path.."/kits.lua")

13
commands/kits.lua Normal file
View File

@ -0,0 +1,13 @@
minetest.register_chatcommand("kit", {
params = "",
description = "Add a Kit to player",
privs = {},
func = function(name)
local receiverref = core.get_player_by_name(name)
receiverref:get_inventory():add_item('main', 'default:pick_stone')
receiverref:get_inventory():add_item('main', 'default:shovel_stone')
receiverref:get_inventory():add_item('main', 'default:axe_stone')
receiverref:get_inventory():add_item('main', 'default:sword_stone')
end
})

27
commands/timeset.lua Normal file
View File

@ -0,0 +1,27 @@
minetest.register_chatcommand("timeset", {
params = "<0...24000>",
description = "set time of day",
privs = {admin=true},
func = function(name, param)
local newtime = tonumber(param)
if param == "" then
return false, "Missing time."
end
if param == "day" then
minetest.set_timeofday((6000 % 24000) / 24000)
minetest.log("action", name .. " sets time to day")
return true, "Time of day changed."
elseif param == "night" then
minetest.set_timeofday((20000 % 24000) / 24000)
minetest.log("action", name .. " sets time to night")
return true, "Time of day changed."
else
if newtime == nil then
return false, "Invalid time."
end
minetest.set_timeofday((newtime % 24000) / 24000)
minetest.log("action", name .. " sets time to "..newtime)
return true, "Time of day changed."
end
end,
})

View File

@ -0,0 +1,338 @@
-- mods/default_override/crafting.lua
minetest.register_craft({
output = 'default:stick 4',
recipe = {
{'group:wood'},
{'group:wood'},
}
})
minetest.register_craft({
output = 'default:torch 4',
recipe = {
{'default:charcoal_lump'},
{'default:stick'},
}
})
minetest.register_craft({
output = 'default:pick_gold',
recipe = {
{'default:gold_ingot', 'default:gold_ingot', 'default:gold_ingot'},
{'', 'default:stick', ''},
{'', 'default:stick', ''},
}
})
minetest.register_craft({
output = 'default:shovel_gold',
recipe = {
{'default:gold_ingot'},
{'default:stick'},
{'default:stick'},
}
})
minetest.register_craft({
output = 'default:axe_gold',
recipe = {
{'default:gold_ingot', 'default:gold_ingot'},
{'default:gold_ingot', 'default:stick'},
{'', 'default:stick'},
}
})
minetest.register_craft({
output = 'default:sword_gold',
recipe = {
{'default:gold_ingot'},
{'default:gold_ingot'},
{'default:stick'},
}
})
minetest.register_craft({
output = 'default_override:pick_emerald',
recipe = {
{'default_override:emerald', 'default_override:emerald', 'default_override:emerald'},
{'', 'default:stick', ''},
{'', 'default:stick', ''},
}
})
minetest.register_craft({
output = 'default_override:shovel_emerald',
recipe = {
{'', 'default_override:emerald', ''},
{'', 'default:stick', ''},
{'', 'default:stick', ''},
}
})
minetest.register_craft({
output = 'default_override:axe_emerald',
recipe = {
{'default_override:emerald', 'default_override:emerald', ''},
{'default_override:emerald', 'default:stick', ''},
{'', 'default:stick', ''},
}
})
minetest.register_craft({
output = 'default_override:axe_emerald',
recipe = {
{'', 'default_override:emerald', 'default_override:emerald'},
{'', 'default:stick', 'default_override:emerald'},
{'', 'default:stick', ''},
}
})
minetest.register_craft({
output = 'default_override:sword_emerald',
recipe = {
{'', 'default_override:emerald', ''},
{'', 'default_override:emerald', ''},
{'', 'default:stick', ''},
}
})
--minetest.register_craft({
-- output = 'default:flint_and_steel',
-- recipe = {
-- {'default:steel_ingot', ''},
-- {'', 'default:flint'},
-- }
--})
--minetest.register_craft({
-- output = "default:pole",
-- recipe = {
-- {'','','default:stick'},
-- {'','default:stick','farming:string'},
-- {'default:stick','','farming:string'},
-- }
--})
--minetest.register_craft({
-- output = "default:pole",
-- recipe = {
-- {'', '', 'default:stick'},
-- {'', 'default:stick', 'default:string'},
-- {'default:stick', '', 'default:string'},
-- }
--})
minetest.register_craft({
output = 'default:rail 15',
recipe = {
{'default:steel_ingot', '', 'default:steel_ingot'},
{'default:steel_ingot', 'default:stick', 'default:steel_ingot'},
{'default:steel_ingot', '', 'default:steel_ingot'},
}
})
--minetest.register_craft({
-- output = "default:gold_nugget 9",
-- recipe = {{"default:gold_ingot"}},
--})
--minetest.register_craft({
-- output = 'dye:white 3',
-- recipe = {
-- {'default:bone'},
-- }
--})
minetest.register_craft({
output = 'default_override:lapisblock',
recipe = {
{'dye:blue', 'dye:blue', 'dye:blue'},
{'dye:blue', 'dye:blue', 'dye:blue'},
{'dye:blue', 'dye:blue', 'dye:blue'},
}
})
minetest.register_craft({
output = 'dye:blue 9',
recipe = {
{'default_override:lapisblock'},
}
})
minetest.register_craft({
output = "default_override:emeraldblock",
recipe = {
{'default_override:emerald', 'default_override:emerald', 'default_override:emerald'},
{'default_override:emerald', 'default_override:emerald', 'default_override:emerald'},
{'default_override:emerald', 'default_override:emerald', 'default_override:emerald'},
}
})
minetest.register_craft({
output = 'default_override:emerald 9',
recipe = {
{'default_override:emeraldblock'},
}
})
minetest.register_craft({
output = "default_override:glowstone",
recipe = {
{'default_override:glowstone_dust', 'default_override:glowstone_dust'},
{'default_override:glowstone_dust', 'default_override:glowstone_dust'},
}
})
minetest.register_craft({
output = 'default_override:glowstone_dust 4',
recipe = {
{'default_override:glowstone'},
}
})
minetest.register_craft({
output = "default_override:redstoneblock",
recipe = {
{'default_override:redstone_dust','default_override:redstone_dust','default_override:redstone_dust'},
{'default_override:redstone_dust','default_override:redstone_dust','default_override:redstone_dust'},
{'default_override:redstone_dust','default_override:redstone_dust','default_override:redstone_dust'},
}
})
minetest.register_craft({
output = 'default_override:redstone_dust 9',
recipe = {
{'default_override:redstoneblock'},
}
})
--minetest.register_craft({
-- output = 'default_override:redstone_dust',
-- recipe = {{"mesecons:wire_00000000_off"}},
--})
--minetest.register_craft({
-- output = "mesecons:wire_00000000_off",
-- recipe = {{'default_override:redstone_dust'}},
--})
minetest.register_craft({
output = "default_override:apple_gold",
recipe = {
{"default_override:gold_nugget", "default_override:gold_nugget", "default_override:gold_nugget"},
{"default_override:gold_nugget", 'default:apple', "default_override:gold_nugget"},
{"default_override:gold_nugget", "default_override:gold_nugget", "default_override:gold_nugget"},
}
})
minetest.register_craft({
output = "default_override:sugar",
recipe = {
{"default:papyrus"},
}
})
minetest.register_craft({
output = "beds:bed",
recipe = {
{"group:wool", 'group:wool', "group:wool"},
{"group:wood", "group:wood", "group:wood"},
}
})
minetest.register_craft({
output = "stairs:slab_grass 6",
recipe = {
{"default:grass_1", "default:grass_1", "default:grass_1"},
{"default:dirt", "default:dirt", "default:dirt"},
}
})
minetest.register_craft({
output = "stairs:slab_grass 3",
recipe = {
{"default:grass_1", "default:grass_1", "default:grass_1"},
{"stairs:slab_dirt", "stairs:slab_dirt", "stairs:slab_dirt"},
}
})
minetest.register_craft({
type = "shapeless",
output = "default:sandstone 4",
recipe = {"group:sand", "group:sand", "group:sand", "group:sand"}
})
--[[
minetest.register_craft({
output = "stairs:slab_dirt_with_grass",
recipe = {
{"default:dirt_with_grass", "default:dirt_with_grass", "default:dirt_with_grass"},
}
})]]--
--
-- Cooking recipes
--
--minetest.register_craft({
-- type = "cooking",
-- output = "default:fish",
-- recipe = "default:fish_raw",
-- cooktime = 2,
--})
minetest.register_craft({
type = "cooking",
output = "default_override:charcoal_lump",
recipe = "group:tree",
})
minetest.register_craft({
type = "cooking",
output = "default:steel_ingot",
recipe = "default:stone_with_iron",
})
minetest.register_craft({
type = "cooking",
output = "default:gold_ingot",
recipe = "default:stone_with_gold",
})
minetest.register_craft({
type = "shapeless",
output = "farming:flour",
recipe = {"farming:wheat"}
})
minetest.register_craft({
type = "shapeless",
output = "farming:flour 4",
recipe = {"farming:wheat", "farming:wheat", "farming:wheat", "farming:wheat"}
})
--
-- Fuels
--
minetest.register_craft({
type = "fuel",
recipe = "default_override:charcoal_lump",
burntime = 40,
})
minetest.register_craft({
type = "fuel",
recipe = "default:coal_lump",
burntime = 40,
})
--
--Temporary
--
--minetest.register_craft({
-- output = "default:string",
-- recipe = {{"default:paper", "default:paper"}},
--})

View File

@ -0,0 +1,95 @@
-- mods/default_override/craftitems.lua
--
-- Crafting items
--
minetest.register_craftitem("default_override:redstone_dust", {
description = "Redstone Dust",
inventory_image = "default_redstone_dust.png",
stack_max = 64,
})
minetest.register_craftitem("default_override:charcoal_lump", {
description = "Charcoal Lump",
inventory_image = "default_charcoal_lump.png",
stack_max = 64,
})
minetest.register_craftitem("default_override:gold_nugget", {
description = "Gold Nugget",
inventory_image = "default_gold_nugget.png",
stack_max = 64,
})
minetest.register_craftitem("default_override:emerald", {
description = "Emerald",
inventory_image = "default_emerald.png",
stack_max = 64,
})
minetest.register_craftitem("default_override:clay_brick", {
description = "Clay Brick",
inventory_image = "default_clay_brick.png",
stack_max = 64,
})
minetest.register_craftitem("default_override:gunpowder", {
description = "Gunpowder",
inventory_image = "default_gunpowder.png",
stack_max = 64,
})
minetest.register_craftitem("default_override:bone", {
description = "Bone",
inventory_image = "default_bone.png",
stack_max = 64,
})
minetest.register_craftitem("default_override:glowstone_dust", {
description = "Glowstone Dust",
inventory_image = "default_glowstone_dust.png",
stack_max = 64,
})
minetest.register_craftitem("default_override:fish_raw", {
description = "Raw Fish",
groups = {},
inventory_image = "default_fish.png",
on_use = minetest.item_eat(2),
stack_max = 64,
})
minetest.register_craftitem("default_override:fish", {
description = "Cooked Fish",
groups = {},
inventory_image = "default_fish_cooked.png",
on_use = minetest.item_eat(4),
stack_max = 64,
})
minetest.register_craftitem("default_override:sugar", {
description = "Sugar",
inventory_image = "default_sugar.png",
stack_max = 64,
})
minetest.register_craftitem("default_override:string",{
description = "String",
inventory_image = "default_string.png",
stack_max = 64,
})
farming.register_hoe(":farming:hoe_gold", {
description = "Gold Hoe",
inventory_image = "farming_tool_goldhoe.png",
max_uses = 350,
material = "default:gold_ingot"
})
minetest.override_item("farming:hoe_gold", {
on_use = function(itemstack, user, pointed_thing)
return itemstack
end,
on_place = function(itemstack, user, pointed_thing)
return farming.hoe_on_use(itemstack, user, pointed_thing, 350)
end,
})

View File

@ -0,0 +1,6 @@
default
dye
fire
farming
stairs
beds

View File

@ -0,0 +1,333 @@
-- mods/default_override/functions.lua
-- Functions
minetest.register_abm({
label = "Grow cactus",
nodenames = {"default:cactus"},
neighbors = {"group:sand"},
interval = 5,
chance = 83,
action = function(...)
default.grow_cactus(...)
end
})
local timber_nodenames={"default:papyrus", "default:cactus"}
minetest.register_on_dignode(function(pos, node)
local i=1
while timber_nodenames[i]~=nil do
if node.name==timber_nodenames[i] then
np={x=pos.x, y=pos.y+1, z=pos.z}
while minetest.env:get_node(np).name==timber_nodenames[i] do
minetest.env:remove_node(np)
minetest.env:add_item(np, timber_nodenames[i])
np={x=np.x, y=np.y+1, z=np.z}
end
end
i=i+1
end
end)
function get_nodedef_field(nodename, fieldname)
if not minetest.registered_nodes[nodename] then
return nil
end
return minetest.registered_nodes[nodename][fieldname]
end
function set_fire(pointed_thing)
local n = minetest.env:get_node(pointed_thing.above)
if n.name ~= "" and n.name == "air" then
minetest.env:add_node(pointed_thing.above, {name="fire:basic_flame"})
end
end
--
-- Fire Particles
--
function add_fire(pos)
local null = {x=0, y=0, z=0}
pos.y = pos.y+0.19
minetest.add_particle(pos, null, null, 1.1,
1.5, true, "default_fire_particle"..tostring(math.random(1,2)) ..".png")
pos.y = pos.y +0.01
minetest.add_particle(pos, null, null, 0.8,
1.5, true, "default_fire_particle"..tostring(math.random(1,2)) ..".png")
end
--
-- Bone Meal
--
local n
local n2
local pos
function apple_leave()
if math.random(0, 10) == 3 then
return {name = "default:apple"}
else
return {name = "default:leaves"}
end
end
function air_leave()
if math.random(0, 50) == 3 then
return {name = "air"}
else
return {name = "default:leaves"}
end
end
function generate_tree(pos, trunk, leaves)
pos.y = pos.y-1
local nodename = minetest.env:get_node(pos).name
pos.y = pos.y+1
if not minetest.env:get_node_light(pos) then
return
end
node = {name = ""}
for dy=1,4 do
pos.y = pos.y+dy
if minetest.env:get_node(pos).name ~= "air" then
return
end
pos.y = pos.y-dy
end
node = {name = "default:tree"}
for dy=0,4 do
pos.y = pos.y+dy
minetest.env:add_node(pos, node)
pos.y = pos.y-dy
end
node = {name = "default:leaves"}
pos.y = pos.y+3
local rarity = 0
if math.random(0, 10) == 3 then
rarity = 1
end
for dx=-2,2 do
for dz=-2,2 do
for dy=0,3 do
pos.x = pos.x+dx
pos.y = pos.y+dy
pos.z = pos.z+dz
if dx == 0 and dz == 0 and dy==3 then
if minetest.env:get_node(pos).name == "air" and math.random(1, 5) <= 4 then
minetest.env:add_node(pos, node)
if rarity == 1 then
minetest.env:add_node(pos, apple_leave())
else
minetest.env:add_node(pos, air_leave())
end
end
elseif dx == 0 and dz == 0 and dy==4 then
if minetest.env:get_node(pos).name == "air" and math.random(1, 5) <= 4 then
minetest.env:add_node(pos, node)
if rarity == 1 then
minetest.env:add_node(pos, apple_leave())
else
minetest.env:add_node(pos, air_leave())
end
end
elseif math.abs(dx) ~= 2 and math.abs(dz) ~= 2 then
if minetest.env:get_node(pos).name == "air" then
minetest.env:add_node(pos, node)
if rarity == 1 then
minetest.env:add_node(pos, apple_leave())
else
minetest.env:add_node(pos, air_leave())
end
end
else
if math.abs(dx) ~= 2 or math.abs(dz) ~= 2 then
if minetest.env:get_node(pos).name == "air" and math.random(1, 5) <= 4 then
minetest.env:add_node(pos, node)
if rarity == 1 then
minetest.env:add_node(pos, apple_leave())
else
minetest.env:add_node(pos, air_leave())
end
end
end
end
pos.x = pos.x-dx
pos.y = pos.y-dy
pos.z = pos.z-dz
end
end
end
end
local plant_tab = {}
local rnd_max = 5
minetest.after(0.5, function()
plant_tab[0] = "air"
plant_tab[1] = "default:grass_1"
plant_tab[2] = "default:grass_2"
plant_tab[3] = "default:grass_3"
plant_tab[4] = "default:grass_4"
plant_tab[5] = "default:grass_5"
if minetest.get_modpath("flowers") ~= nil then
rnd_max = 7
plant_tab[6] = "flowers:dandelion_yellow"
plant_tab[7] = "flowers:rose"
end
end)
function duengen(pointed_thing)
pos = pointed_thing.under
n = minetest.env:get_node(pos)
if n.name == "" then return end
local stage = ""
if n.name == "default:sapling" then
minetest.env:add_node(pos, {name="air"})
generate_tree(pos, "default:tree", "default:leaves")
elseif string.find(n.name, "farming:wheat_") ~= nil then
stage = string.sub(n.name, 15)
if stage == "3" then
minetest.env:add_node(pos, {name="farming:wheat"})
elseif math.random(1,5) < 3 then
minetest.env:add_node(pos, {name="farming:wheat"})
else
minetest.env:add_node(pos, {name="farming:wheat_"..math.random(2,3)})
end
elseif string.find(n.name, "farming:potato_") ~= nil then
stage = tonumber(string.sub(n.name, 16))
if stage == 1 then
minetest.env:add_node(pos, {name="farming:potato_"..math.random(stage,2)})
else
minetest.env:add_node(pos, {name="farming:potato"})
end
elseif string.find(n.name, "farming:carrot_") ~= nil then
stage = tonumber(string.sub(n.name, 16))
if stage == 1 then
minetest.env:add_node(pos, {name="farming:carrot_"..math.random(stage,2)})
else
minetest.env:add_node(pos, {name="farming:carrot"})
end
elseif string.find(n.name, "farming:pumpkin_") ~= nil then
stage = tonumber(string.sub(n.name, 17))
if stage == 1 then
minetest.env:add_node(pos, {name="farming:pumpkin_"..math.random(stage,2)})
else
minetest.env:add_node(pos, {name="farming:pumpkin"})
end
elseif n.name ~= "" and n.name == "default:junglesapling" then
minetest.env:add_node(pos, {name="air"})
generate_tree(pos, "default:jungletree", "default:jungleleaves")
elseif n.name ~="" and n.name == "default:papyrus" then
grow_reeds(pos)
elseif n.name ~="" and n.name == "default:cactus" then
grow_cactus(pos)
elseif n.name == "default:dirt_with_grass" then
for i = -2, 3, 1 do
for j = -3, 2, 1 do
pos = pointed_thing.above
pos = {x=pos.x+i, y=pos.y, z=pos.z+j}
n = minetest.env:get_node(pos)
n2 = minetest.env:get_node({x=pos.x, y=pos.y-1, z=pos.z})
if n.name ~= "" and n.name == "air" and n2.name == "default:dirt_with_grass" then
if math.random(0,5) > 3 then
minetest.env:add_node(pos, {name=plant_tab[math.random(0, rnd_max)]})
else
minetest.env:add_node(pos, {name=plant_tab[math.random(0, 5)]})
end
end
end
end
end
end
--
-- Snowballs
--
snowball_GRAVITY=9
snowball_VELOCITY=19
--Shoot snowball.
snow_shoot_snowball=function (item, player, pointed_thing)
local playerpos=player:getpos()
local obj=minetest.env:add_entity({x=playerpos.x,y=playerpos.y+1.5,z=playerpos.z}, "default_override:snowball_entity")
local dir=player:get_look_dir()
obj:setvelocity({x=dir.x*snowball_VELOCITY, y=dir.y*snowball_VELOCITY, z=dir.z*snowball_VELOCITY})
obj:setacceleration({x=dir.x*-3, y=-snowball_GRAVITY, z=dir.z*-3})
item:take_item()
return item
end
--The snowball Entity
snowball_ENTITY={
physical = false,
timer=0,
textures = {"default_snowball.png"},
lastpos={},
collisionbox = {0,0,0,0,0,0},
}
--Snowball_entity.on_step()--> called when snowball is moving.
snowball_ENTITY.on_step = function(self, dtime)
self.timer=self.timer+dtime
local pos = self.object:getpos()
local node = minetest.env:get_node(pos)
--Become item when hitting a node.
if self.lastpos.x~=nil then --If there is no lastpos for some reason.
if node.name ~= "air" then
self.object:remove()
end
end
self.lastpos={x=pos.x, y=pos.y, z=pos.z} -- Set lastpos-->Node will be added at last pos outside the node
end
minetest.register_entity("default_override:snowball_entity", snowball_ENTITY)
-- Global environment step function
function on_step(dtime)
-- print("on_step")
end
minetest.register_globalstep(on_step)
function on_placenode(p, node)
--print("on_placenode")
end
minetest.register_on_placenode(on_placenode)
function on_dignode(p, node)
--print("on_dignode")
end
minetest.register_on_dignode(on_dignode)
function on_punchnode(p, node)
end
minetest.register_on_punchnode(on_punchnode)
-- END
-- Support old code
function default.spawn_falling_node(p, nodename)
spawn_falling_node(p, nodename)
end
-- Horrible crap to support old code
-- Don't use this and never do what this does, it's completely wrong!
-- (More specifically, the client and the C++ code doesn't get the group)
function default.register_falling_node(nodename, texture)
minetest.log("error", debug.traceback())
minetest.log('error', "WARNING: default.register_falling_node is deprecated")
if minetest.registered_nodes[nodename] then
minetest.registered_nodes[nodename].groups.falling_node = 1
end
end

19
default_override/init.lua Normal file
View File

@ -0,0 +1,19 @@
-- Minetest 0.4 mod: default
-- See README.txt for licensing and other information.
-- The API documentation in here was moved into doc/lua_api.txt
local path = minetest.get_modpath("default_override")
-- Definitions made by this mod that other mods can use too
default_override = {}
-- Load files
dofile(path.."/functions.lua")
dofile(path.."/overrides/node_override.lua")
dofile(path.."/overrides/craftitems_override.lua")
dofile(path.."/nodes.lua")
dofile(path.."/tools.lua")
dofile(path.."/craftitems.lua")
dofile(path.."/crafting.lua")
dofile(path.."/mapgen.lua")

133
default_override/mapgen.lua Normal file
View File

@ -0,0 +1,133 @@
-- mods/default_override/mapgen.lua
-- Ores
function default_override.register_ores()
-- Blob ores
-- These first to avoid other ores in blobs
-- Clay
-- This first to avoid clay in sand blobs
minetest.register_ore({
ore_type = "scatter",
ore = "default:stone_with_diamond",
wherein = "default:stone",
clust_scarcity = 17 * 17 * 17,
clust_num_ores = 4,
clust_size = 3,
y_min = -1000,
y_max = -15,
})
minetest.register_ore({
ore_type = "scatter",
ore = "default:stone_with_gold",
wherein = "default:stone",
clust_scarcity = 15 * 15 * 15,
clust_num_ores = 3,
clust_size = 2,
y_min = -1000,
y_max = -15,
})
minetest.register_ore({
ore_type = "scatter",
ore = "default_override:stone_with_redstone",
wherein = {"default:stone"},
clust_scarcity = 8 * 8 * 8,
clust_size = 5,
y_min = -1000,
y_max = -15,
noise_threshold = 0.0,
noise_params = {
offset = 0.5,
scale = 0.2,
spread = {x = 5, y = 5, z = 5},
seed = -316,
octaves = 1,
persist = 0.0
},
})
minetest.register_ore({
ore_type = "scatter",
ore = "default_override:stone_with_lapis",
wherein = {"default:stone"},
clust_scarcity = 8 * 8 * 8,
clust_size = 5,
y_min = -1000,
y_max = -15,
noise_threshold = 0.0,
noise_params = {
offset = 0.5,
scale = 0.2,
spread = {x = 5, y = 5, z = 5},
seed = -316,
octaves = 1,
persist = 0.0
},
})
minetest.register_ore({
ore_type = "scatter",
ore = "default_override:stone_with_emerald",
wherein = {"default:stone"},
clust_scarcity = 1 * 3 * 2,
clust_size = 2,
y_min = -1000,
y_max = -13,
noise_threshold = 0.0,
noise_params = {
offset = 0.5,
scale = 0.2,
spread = {x = 5, y = 5, z = 5},
seed = -316,
octaves = 1,
persist = 0.0
},
})
end
default_override.register_ores()
--minetest.clear_registered_biomes()
minetest.register_biome({
name = "underground",
--node_dust = "",
--node_top = "",
--depth_top = ,
--node_filler = "",
--depth_filler = ,
--node_stone = "",
--node_water_top = "",
--depth_water_top = ,
--node_water = "",
--node_river_water = "",
y_min = -31000,
y_max = -13,
heat_point = 50,
humidity_point = 50,
})
minetest.register_biome({
name = "over_grassland",
--node_dust = "",
node_top = "default:dirt_with_grass",
node_filler = "default:dirt",
depth_top = 1,
depth_filler = 1,
--node_stone = "",
--node_water_top = "",
--depth_water_top = ,
--node_water = "",
--node_river_water = "",
node_riverbed = "default:sand",
depth_riverbed = 2,
y_min = 10000,
y_max = 31000,
heat_point = 50,
humidity_point = 35,
})

View File

@ -0,0 +1,4 @@
[Dolphin]
PreviewsShown=true
Timestamp=2017,1,10,2,43,49
Version=3

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

File diff suppressed because it is too large Load Diff

152
default_override/nodes.lua Normal file
View File

@ -0,0 +1,152 @@
-- mods/default_override/nodes.lua
minetest.register_node("default_override:stone_with_redstone", {
description = "Redstone Ore",
tiles = {"default_stone.png^default_mineral_redstone.png"},
is_ground_content = false,
stack_max = 64,
groups = {cracky=2},
drop = "default_override:redstone_dust 5",
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("default_override:stone_with_lapis", {
description = "Lapis Lazuli Ore",
tiles = {"default_stone.png^default_mineral_lapis.png"},
is_ground_content = false,
stack_max = 64,
groups = {cracky=2},
drop = {
max_items = 2,
items = {
{items = {'dye:blue 5'},rarity = 16},
{items = {'dye:blue 4'},rarity = 12},
{items = {'dye:blue 3'},rarity = 8},
{items = {'dye:blue 2'},rarity = 6},
{items = {'dye:blue 1'}},
}
},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("default_override:stone_with_emerald", {
description = "Emerald Ore",
tiles = {"default_stone.png^default_mineral_emerald.png"},
is_ground_content = false,
stack_max = 64,
groups = {cracky=2},
sounds = default.node_sound_stone_defaults(),
drop = "default_override:emerald"
})
minetest.register_node("default_override:bedrock", {
description = "Bedrock",
tiles = {"default_bedrock.png"},
stack_max = 64,
groups = {cracky=9},
drop = "",
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("default_override:lapisblock", {
description = "Lapis Lazul Block",
tiles = {"default_lapis_block.png"},
stack_max = 64,
groups = {cracky=1},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("default_override:emeraldblock", {
description = "Emerald Block",
tiles = {"default_emerald_block.png"},
stack_max = 64,
groups = {cracky=1},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("default_override:redstoneblock", {
description = "Redstone Block",
tiles = {"default_redstone_block.png"},
stack_max = 64,
groups = {cracky=1},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("default_override:apple_gold", {
description = "Golden Apple",
drawtype = "plantlike",
visual_scale = 1.0,
tiles = {"default_apple_gold.png"},
inventory_image = "default_apple_gold.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.2, -0.5, -0.2, 0.2, 0, 0.2}
},
stack_max = 64,
groups = {fleshy=3,dig_immediate=3,flammable=2},
on_use = minetest.item_eat(8),
sounds = default.node_sound_defaults(),
})
minetest.register_node("default_override:glowstone", {
description = "Glowstone",
tiles = {"default_glowstone.png"},
is_ground_content = true,
stack_max = 64,
groups = {cracky=3,oddly_breakable_by_hand=2},
drop = 'default_override:glowstone_dust ',--..math.random(1,9),
light_source = 12,
})
minetest.register_node("default_override:sponge", {
description = "Sponge",
drawtype = "normal",
tiles = {"default_sponge.png"},
paramtype = 'light',
sunlight_propagates = true,
walkable = true,
pointable = true,
diggable = true,
buildable_to = false,
stack_max = 64,
groups = {snappy=2, flammable=1},
})
stairs.register_stair_and_slab(
"gravel",
"default:gravel",
{crumbly = 2, falling_node = 1},
{"default_gravel.png"},
"Gravel Stair",
"Gravel Slab",
default.node_sound_gravel_defaults()
)
stairs.register_stair_and_slab(
"dirt",
"default:dirt",
{crumbly = 3, soil = 1},
{"default_dirt.png"},
"Dirt Stair",
"Dirt Slab",
default.node_sound_dirt_defaults()
)
stairs.register_stair_and_slab(
"grass",
"default:dirt_with_grass",
{crumbly = 3, soil = 1},
{"default_grass.png", "default_grass_slab_side.png"},
"Grass Stair",
"Grass Slab",
default.node_sound_dirt_defaults()
)
--[[walls.register("walls:sandstonebrick", "Sandstonebrick Wall", "default_sandstone_brick.png",
"default:sandstonebrick", default.node_sound_stone_defaults())
]]--

View File

@ -0,0 +1,118 @@
-- mods/default_override/craftitems_override.lua
minetest.override_item("default:stick", {
stack_max = 64,
})
minetest.override_item("default:paper", {
stack_max = 64,
})
minetest.override_item("default:book", {
stack_max = 64,
})
minetest.override_item("default:book_written", {
stack_max = 1,
})
minetest.override_item("default:coal_lump", {
stack_max = 64,
})
minetest.override_item("default:iron_lump", {
stack_max = 64,
})
minetest.override_item("default:copper_lump", {
stack_max = 64,
})
minetest.override_item("default:mese_crystal", {
stack_max = 64,
})
minetest.override_item("default:gold_lump", {
stack_max = 64,
})
minetest.override_item("default:diamond", {
stack_max = 64,
})
minetest.override_item("default:clay_lump", {
stack_max = 64,
})
minetest.override_item("default:steel_ingot", {
stack_max = 64,
})
minetest.override_item("default:copper_ingot", {
stack_max = 64,
})
minetest.override_item("default:bronze_ingot", {
stack_max = 64,
})
minetest.override_item("default:gold_ingot", {
stack_max = 64,
})
minetest.override_item("default:mese_crystal_fragment", {
stack_max = 64,
})
minetest.override_item("default:clay_brick", {
stack_max = 64,
})
minetest.override_item("default:obsidian_shard", {
stack_max = 64,
})
minetest.override_item("default:flint", {
stack_max = 64,
})
minetest.override_item("farming:hoe_wood", {
on_use = function(itemstack, user, pointed_thing)
return itemstack
end,
on_place = function(itemstack, user, pointed_thing)
return farming.hoe_on_use(itemstack, user, pointed_thing, 30)
end,
})
minetest.override_item("farming:hoe_stone", {
on_use = function(itemstack, user, pointed_thing)
return itemstack
end,
on_place = function(itemstack, user, pointed_thing)
return farming.hoe_on_use(itemstack, user, pointed_thing, 90)
end,
})
minetest.override_item("farming:hoe_steel", {
on_use = function(itemstack, user, pointed_thing)
return itemstack
end,
on_place = function(itemstack, user, pointed_thing)
return farming.hoe_on_use(itemstack, user, pointed_thing, 200)
end,
})
minetest.override_item("farming:hoe_diamond", {
on_use = function(itemstack, user, pointed_thing)
return itemstack
end,
on_place = function(itemstack, user, pointed_thing)
return farming.hoe_on_use(itemstack, user, pointed_thing, 500)
end,
})
--minetest.override_item("farming:bread", {
-- on_use = "",
-- on_place = minetest.item_eat(5),
--})

View File

@ -0,0 +1,736 @@
-- mods/default_override/nodes_override.lua
minetest.override_item("default:stone", {
is_ground_content = true,
stack_max = 64,
})
minetest.override_item("default:cobble", {
stack_max = 64,
})
minetest.override_item("default:stonebrick", {
stack_max = 64,
})
minetest.override_item("default:stone_block", {
stack_max = 64,
})
minetest.override_item("default:mossycobble", {
stack_max = 64,
})
minetest.override_item("default:desert_stone", {
stack_max = 64,
})
minetest.override_item("default:desert_cobble", {
stack_max = 64,
})
minetest.override_item("default:desert_stonebrick", {
stack_max = 64,
})
minetest.override_item("default:desert_stone_block", {
stack_max = 64,
})
minetest.override_item("default:sandstone", {
stack_max = 64,
})
minetest.override_item("default:sandstonebrick", {
stack_max = 64,
})
minetest.override_item("default:sandstone_block", {
stack_max = 64,
})
minetest.override_item("default:obsidian", {
stack_max = 64,
})
minetest.override_item("default:obsidianbrick", {
stack_max = 64,
})
minetest.override_item("default:obsidian_block", {
stack_max = 64,
})
minetest.override_item("default:dirt", {
stack_max = 64,
})
minetest.override_item("default:dirt_with_grass", {
stack_max = 64,
})
minetest.override_item("default:dirt_with_grass_footsteps", {
stack_max = 64,
})
minetest.override_item("default:dirt_with_dry_grass", {
stack_max = 64,
})
minetest.override_item("default:dirt_with_snow", {
stack_max = 64,
})
minetest.override_item("default:sand", {
stack_max = 64,
})
minetest.override_item("default:desert_sand", {
stack_max = 64,
})
minetest.override_item("default:silver_sand", {
stack_max = 64,
})
minetest.override_item("default:gravel", {
stack_max = 64,
})
minetest.override_item("default:clay", {
stack_max = 64,
})
minetest.override_item("default:snow", {
stack_max = 64,
})
minetest.override_item("default:snowblock", {
stack_max = 64,
})
minetest.override_item("default:ice", {
stack_max = 64,
--on_destruct = function(pos)
-- minetest.set_node(pos, {name = "default:water_source"})
--end,
})
minetest.override_item("default:tree", {
stack_max = 64,
})
minetest.override_item("default:wood", {
stack_max = 64,
})
minetest.override_item("default:sapling", {
stack_max = 64,
})
minetest.override_item("default:leaves", {
stack_max = 64,
})
minetest.override_item("default:apple", {
stack_max = 64,
})
minetest.override_item("default:jungletree", {
stack_max = 64,
})
minetest.override_item("default:junglewood", {
stack_max = 64,
})
minetest.override_item("default:jungleleaves", {
stack_max = 64,
})
minetest.override_item("default:junglesapling", {
stack_max = 64,
})
minetest.override_item("default:pine_tree", {
stack_max = 64,
})
minetest.override_item("default:pine_wood", {
stack_max = 64,
})
minetest.override_item("default:pine_needles",{
stack_max = 64,
})
minetest.override_item("default:pine_sapling", {
stack_max = 64,
})
minetest.override_item("default:acacia_tree", {
stack_max = 64,
})
minetest.override_item("default:acacia_wood", {
stack_max = 64,
})
minetest.override_item("default:acacia_leaves", {
stack_max = 64,
})
minetest.override_item("default:acacia_sapling", {
stack_max = 64,
})
minetest.override_item("default:aspen_tree", {
stack_max = 64,
})
minetest.override_item("default:aspen_wood", {
stack_max = 64,
})
minetest.override_item("default:aspen_leaves", {
stack_max = 64,
})
minetest.override_item("default:aspen_sapling", {
stack_max = 64,
})
minetest.override_item("default:stone_with_coal", {
stack_max = 64,
})
minetest.override_item("default:coalblock", {
stack_max = 64,
})
minetest.override_item("default:stone_with_iron", {
stack_max = 64,
drop="stone_with_iron",
})
minetest.override_item("default:steelblock", {
description = "Iron Block",
stack_max = 64,
})
minetest.override_item("default:stone_with_copper", {
stack_max = 64,
})
minetest.override_item("default:copperblock", {
stack_max = 64,
})
minetest.override_item("default:bronzeblock", {
stack_max = 64,
})
minetest.override_item("default:stone_with_mese", {
stack_max = 64,
})
minetest.override_item("default:mese", {
stack_max = 64,
})
minetest.override_item("default:stone_with_gold", {
stack_max = 64,
drop="default:stone_with_gold",
})
minetest.override_item("default:goldblock", {
stack_max = 64,
})
minetest.override_item("default:stone_with_diamond", {
stack_max = 64,
})
minetest.override_item("default:diamondblock", {
stack_max = 64,
})
minetest.override_item("default:cactus", {
drawtype = "nodebox",
tiles = {"default_cactus_top.png", "default_cactus_bottom.png", "default_cactus_side.png","default_cactus_side.png","default_cactus_side.png","default_cactus_side.png"},
stack_max = 64,
groups = {snappy=1,choppy=3,flammable=2},
paramtype = "light",
node_box = {
type = "fixed",
fixed = {
{-7/16, -8/16, -7/16, 7/16, 8/16, 7/16}, -- Main Body
{-8/16, -8/16, -7/16, 8/16, 8/16, -7/16}, -- Spikes
{-8/16, -8/16, 7/16, 8/16, 8/16, 7/16}, -- Spikes
{-7/16, -8/16, -8/16, -7/16, 8/16, 8/16}, -- Spikes
{7/16, -8/16, 8/16, 7/16, 8/16, -8/16}, -- Spikes
},
},
selection_box = {
type = "fixed",
fixed = {
{-7/16, -8/16, -7/16, 7/16, 8/16, 7/16},
},
},
})
minetest.override_item("default:papyrus", {
description = "Sugarcane",
inventory_image = "default_sugar_cane.png",
wield_image = "default_sugar_cane.png",
is_ground_content = true,
node_box = {
type = "fixed",
fixed = {
{-7/16, -8/16, -7/16, 7/16, 8/16, 7/16}, -- Main Body
{-8/16, -8/16, -7/16, 8/16, 8/16, -7/16}, -- Spikes
{-8/16, -8/16, 7/16, 8/16, 8/16, 7/16}, -- Spikes
{-7/16, -8/16, -8/16, -7/16, 8/16, 8/16}, -- Spikes
{7/16, -8/16, 8/16, 7/16, 8/16, -8/16}, -- Spikes
},
},
selection_box = {
type = "fixed",
fixed = {
{-7/16, -8/16, -7/16, 7/16, 8/16, 7/16},
},
},
stack_max = 64,
})
minetest.override_item("default:dry_shrub", {
stack_max = 64,
})
minetest.override_item("default:junglegrass", {
stack_max = 64,
})
minetest.override_item("default:grass_1", {
stack_max = 64,
})
for i = 2, 5 do
minetest.override_item("default:grass_" .. i, {
stack_max = 64,
})
end
minetest.override_item("default:dry_grass_1", {
stack_max = 64,
})
for i = 2, 5 do
minetest.override_item("default:dry_grass_" .. i, {
stack_max = 64,
})
end
minetest.override_item("default:bush_stem", {
stack_max = 64,
})
minetest.override_item("default:bush_leaves", {
stack_max = 64,
})
minetest.override_item("default:acacia_bush_stem", {
stack_max = 64,
})
minetest.override_item("default:acacia_bush_leaves", {
stack_max = 64,
})
minetest.override_item("default:coral_brown", {
stack_max = 64,
})
minetest.override_item("default:coral_orange", {
stack_max = 64,
})
minetest.override_item("default:coral_skeleton", {
stack_max = 64,
})
minetest.override_item("default:water_source", {
stack_max = 64,
})
minetest.override_item("default:river_water_source", {
stack_max = 64,
})
minetest.override_item("default:lava_source", {
stack_max = 64,
})
minetest.override_item("default:chest",{
stack_max = 64,
can_dig = function(pos,player)
return true
end,
on_dig = function(pos)
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory("main");
for i,stack in ipairs(inv:get_list("main")) do
local x = math.random(-4, 4)/10
local z = math.random(-4, 4)/10
pos.x = pos.x + x
pos.z = pos.z + z
minetest.env:add_item(pos, stack)
stack:clear()
inv:set_stack("main", i, stack)
pos.x = pos.x - x
pos.z = pos.z - z
end
minetest.env:add_item(pos, minetest.get_node(pos))
minetest.remove_node(pos)
return
end,
})
minetest.override_item("default:chest_locked", {
stack_max = 64,
can_dig = function(pos,player)
local meta = minetest.get_meta(pos)
if has_locked_chest_privilege(meta, clicker) then
return true;
end
return false;
end,
on_dig = function(pos)
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory("main");
for i,stack in ipairs(inv:get_list("main")) do
local x = math.random(-4, 4)/10
local z = math.random(-4, 4)/10
pos.x = pos.x + x
pos.z = pos.z + z
minetest.env:add_item(pos, stack)
stack:clear()
inv:set_stack("main", i, stack)
pos.x = pos.x - x
pos.z = pos.z - z
end
minetest.env:add_item(pos, minetest.get_node(pos))
minetest.remove_node(pos)
return
end,
})
minetest.override_item("default:bookshelf", {
stack_max = 64,
})
minetest.override_item("default:sign_wall_wood", {
stack_max = 64,
})
minetest.override_item("default:sign_wall_steel", {
stack_max = 64,
})
minetest.override_item("default:ladder_wood", {
stack_max = 64,
})
minetest.override_item("default:ladder_steel", {
stack_max = 64,
})
minetest.override_item("default:fence_wood", {
stack_max = 64,
})
minetest.override_item("default:fence_acacia_wood", {
stack_max = 64,
})
minetest.override_item("default:fence_junglewood", {
stack_max = 64,
})
minetest.override_item("default:fence_pine_wood", {
stack_max = 64,
})
minetest.override_item("default:fence_aspen_wood", {
stack_max = 64,
})
minetest.override_item("default:glass", {
stack_max = 64,
})
minetest.override_item("default:obsidian_glass", {
stack_max = 64,
})
minetest.override_item("default:brick", {
stack_max = 64,
})
minetest.override_item("default:meselamp", {
stack_max = 64,
})
--[[local function get_chest_neighborpos(pos, param2, side)
if side == "right" then
if param2 == 0 then
return {x=pos.x-1, y=pos.y, z=pos.z}
elseif param2 == 1 then
return {x=pos.x, y=pos.y, z=pos.z+1}
elseif param2 == 2 then
return {x=pos.x+1, y=pos.y, z=pos.z}
elseif param2 == 3 then
return {x=pos.x, y=pos.y, z=pos.z-1}
end
else
if param2 == 0 then
return {x=pos.x+1, y=pos.y, z=pos.z}
elseif param2 == 1 then
return {x=pos.x, y=pos.y, z=pos.z-1}
elseif param2 == 2 then
return {x=pos.x-1, y=pos.y, z=pos.z}
elseif param2 == 3 then
return {x=pos.x, y=pos.y, z=pos.z+1}
end
end
end
local function hacky_swap_node(pos,name, param2)
local node = minetest.env:get_node(pos)
local meta = minetest.env:get_meta(pos)
if node.name == name then
return
end
node.name = name
node.param2 = param2 or node.param2
local meta0 = meta:to_table()
minetest.env:set_node(pos,node)
meta = minetest.env:get_meta(pos)
meta:from_table(meta0)
end
minetest.register_node(":default:chest", {
description = "Chest",
tiles = {"default_chest_top.png", "default_chest_top.png", "default_chest_side.png",
"default_chest_side.png", "default_chest_side.png", "default_chest_front.png"},
paramtype2 = "facedir",
stack_max = 64,
groups = {choppy=2,oddly_breakable_by_hand=2},
legacy_facedir_simple = true,
sounds = default.node_sound_wood_defaults(),
on_construct = function(pos)
local param2 = minetest.env:get_node(pos).param2
local meta = minetest.env:get_meta(pos)
if minetest.env:get_node(get_chest_neighborpos(pos, param2, "right")).name == "default:chest" then
minetest.env:set_node(pos, {name="default_override:chest_right",param2=param2})
local p = get_chest_neighborpos(pos, param2, "right")
meta:set_string("formspec",
"size[9,11.5]"..
"list[nodemeta:"..p.x..","..p.y..","..p.z..";main;0,0;9,3;]"..
"list[current_name;main;0,3;9,3;]"..
"list[current_player;main;0,7;9,3;9]"..
"list[current_player;main;0,10.24;9,1;]")
meta:set_string("infotext", "Large Chest")
hacky_swap_node(p, "default_override:chest_left", param2)
local m = minetest.env:get_meta(p)
m:set_string("formspec",
"size[9,11.5]"..
"list[current_name;main;0,0;9,3;]"..
"list[nodemeta:"..pos.x..","..pos.y..","..pos.z..";main;0,3;9,3;]"..
"list[current_player;main;0,7;9,3;9]"..
"list[current_player;main;0,10.24;9,1;]")
m:set_string("infotext", "Large Chest")
elseif minetest.env:get_node(get_chest_neighborpos(pos, param2, "left")).name == "default:chest" then
minetest.env:set_node(pos, {name="default_override:chest_left",param2=param2})
local p = get_chest_neighborpos(pos, param2, "left")
meta:set_string("formspec",
"size[9,11.5]"..
"list[current_name;main;0,0;9,3;]"..
"list[nodemeta:"..p.x..","..p.y..","..p.z..";main;0,3;9,3;]"..
"list[current_player;main;0,7;9,3;9]"..
"list[current_player;main;0,10.24;9,1;]")
meta:set_string("infotext", "Large Chest")
hacky_swap_node(p, "default_override:chest_right", param2)
local m = minetest.env:get_meta(p)
m:set_string("formspec",
"size[9,11.5]"..
"list[nodemeta:"..pos.x..","..pos.y..","..pos.z..";main;0,0;9,3;]"..
"list[current_name;main;0,3;9,3;]"..
"list[current_player;main;0,7;9,3;9]"..
"list[current_player;main;0,10.24;9,1;]")
m:set_string("infotext", "Large Chest")
else
meta:set_string("formspec",
"size[9,8.5]"..
"list[current_name;main;0,0;9,3;]"..
"list[current_player;main;0,4;9,3;9]"..
"list[current_player;main;0,7.24;9,1;]")
meta:set_string("infotext", "Chest")
end
local inv = meta:get_inventory()
inv:set_size("main", 9*3)
end,
after_dig_node = function(pos, oldnode, oldmetadata, digger)
local meta = minetest.env:get_meta(pos)
local meta2 = meta
meta:from_table(oldmetadata)
local inv = meta:get_inventory()
for i=1,inv:get_size("main") do
local stack = inv:get_stack("main", i)
if not stack:is_empty() then
local p = {x=pos.x+math.random(0, 10)/10-0.5, y=pos.y, z=pos.z+math.random(0, 10)/10-0.5}
minetest.env:add_item(p, stack)
end
end
meta:from_table(meta2:to_table())
end,
on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
minetest.log("action", player:get_player_name()..
" moves stuff in chest at "..minetest.pos_to_string(pos))
end,
on_metadata_inventory_put = function(pos, listname, index, stack, player)
minetest.log("action", player:get_player_name()..
" moves stuff to chest at "..minetest.pos_to_string(pos))
end,
on_metadata_inventory_take = function(pos, listname, index, stack, player)
minetest.log("action", player:get_player_name()..
" takes stuff from chest at "..minetest.pos_to_string(pos))
end,
})
minetest.register_node("default_override:chest_left", {
tiles = {"default_chest_top_big.png", "default_chest_top_big.png", "default_chest_side.png",
"default_chest_side.png", "default_chest_side_big.png^[transformFX", "default_chest_front_big.png"},
paramtype2 = "facedir",
groups = {choppy=2,oddly_breakable_by_hand=2,not_in_creative_inventory=1},
drop = "default:chest",
sounds = default.node_sound_wood_defaults(),
on_destruct = function(pos)
local m = minetest.env:get_meta(pos)
if m:get_string("infotext") == "Chest" then
return
end
local param2 = minetest.env:get_node(pos).param2
local p = get_chest_neighborpos(pos, param2, "left")
if not p or minetest.env:get_node(p).name ~= "default_override:chest_right" then
return
end
local meta = minetest.env:get_meta(p)
meta:set_string("formspec",
"size[9,8.5]"..
"list[current_name;main;0,0;9,3;]"..
"list[current_player;main;0,4;9,3;9]"..
"list[current_player;main;0,7.24;9,1;]")
meta:set_string("infotext", "Chest")
hacky_swap_node(p, "default:chest")
end,
after_dig_node = function(pos, oldnode, oldmetadata, digger)
local meta = minetest.env:get_meta(pos)
local meta2 = meta
meta:from_table(oldmetadata)
local inv = meta:get_inventory()
for i=1,inv:get_size("main") do
local stack = inv:get_stack("main", i)
if not stack:is_empty() then
local p = {x=pos.x+math.random(0, 10)/10-0.5, y=pos.y, z=pos.z+math.random(0, 10)/10-0.5}
minetest.env:add_item(p, stack)
end
end
meta:from_table(meta2:to_table())
end,
on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
minetest.log("action", player:get_player_name()..
" moves stuff in chest at "..minetest.pos_to_string(pos))
end,
on_metadata_inventory_put = function(pos, listname, index, stack, player)
minetest.log("action", player:get_player_name()..
" moves stuff to chest at "..minetest.pos_to_string(pos))
end,
on_metadata_inventory_take = function(pos, listname, index, stack, player)
minetest.log("action", player:get_player_name()..
" takes stuff from chest at "..minetest.pos_to_string(pos))
end,
})
minetest.register_node("default_override:chest_right", {
tiles = {"default_chest_top_big.png^[transformFX", "default_chest_top_big.png^[transformFX", "default_chest_side.png",
"default_chest_side.png", "default_chest_side_big.png", "default_chest_front_big.png^[transformFX"},
paramtype2 = "facedir",
groups = {choppy=2,oddly_breakable_by_hand=2,not_in_creative_inventory=1},
drop = "default:chest",
sounds = default.node_sound_wood_defaults(),
on_destruct = function(pos)
local m = minetest.env:get_meta(pos)
if m:get_string("infotext") == "Chest" then
return
end
local param2 = minetest.env:get_node(pos).param2
local p = get_chest_neighborpos(pos, param2, "right")
if not p or minetest.env:get_node(p).name ~= "default_override:chest_left" then
return
end
local meta = minetest.env:get_meta(p)
meta:set_string("formspec",
"size[9,8.5]"..
"list[current_name;main;0,0;9,3;]"..
"list[current_player;main;0,4;9,3;9]"..
"list[current_player;main;0,7.24;9,1;]")
meta:set_string("infotext", "Chest")
hacky_swap_node(p, "default:chest")
end,
after_dig_node = function(pos, oldnode, oldmetadata, digger)
local meta = minetest.env:get_meta(pos)
local meta2 = meta
meta:from_table(oldmetadata)
local inv = meta:get_inventory()
for i=1,inv:get_size("main") do
local stack = inv:get_stack("main", i)
if not stack:is_empty() then
local p = {x=pos.x+math.random(0, 10)/10-0.5, y=pos.y, z=pos.z+math.random(0, 10)/10-0.5}
minetest.env:add_item(p, stack)
end
end
meta:from_table(meta2:to_table())
end,
on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
minetest.log("action", player:get_player_name()..
" moves stuff in chest at "..minetest.pos_to_string(pos))
end,
on_metadata_inventory_put = function(pos, listname, index, stack, player)
minetest.log("action", player:get_player_name()..
" moves stuff to chest at "..minetest.pos_to_string(pos))
end,
on_metadata_inventory_take = function(pos, listname, index, stack, player)
minetest.log("action", player:get_player_name()..
" takes stuff from chest at "..minetest.pos_to_string(pos))
end,
})
]]--

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,4 @@
[Dolphin]
PreviewsShown=true
Timestamp=2016,12,30,1,11,30
Version=3

Binary file not shown.

After

Width:  |  Height:  |  Size: 240 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 411 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 293 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 469 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 328 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 352 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 586 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 658 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 939 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 718 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 659 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 567 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 555 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 495 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 515 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 496 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 736 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 360 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 372 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 530 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 894 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 375 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 910 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 385 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 491 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 434 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 429 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 582 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 342 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 343 B

Some files were not shown because too many files have changed in this diff Show More