|
@ -0,0 +1 @@
|
|||
default_override
|
|
@ -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)
|
After Width: | Height: | Size: 327 B |
|
@ -0,0 +1,2 @@
|
|||
default
|
||||
datalib
|
|
@ -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
|
||||
})
|
|
@ -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
|
||||
})
|
|
@ -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")
|
|
@ -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
|
||||
})
|
|
@ -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,
|
||||
})
|
|
@ -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"}},
|
||||
--})
|
|
@ -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,
|
||||
})
|
|
@ -0,0 +1,6 @@
|
|||
default
|
||||
dye
|
||||
fire
|
||||
farming
|
||||
stairs
|
||||
beds
|
|
@ -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
|
|
@ -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")
|
|
@ -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,
|
||||
})
|
|
@ -0,0 +1,4 @@
|
|||
[Dolphin]
|
||||
PreviewsShown=true
|
||||
Timestamp=2017,1,10,2,43,49
|
||||
Version=3
|
After Width: | Height: | Size: 5.4 KiB |
|
@ -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())
|
||||
]]--
|
|
@ -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),
|
||||
--})
|
|
@ -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,
|
||||
})
|
||||
]]--
|
|
@ -0,0 +1,4 @@
|
|||
[Dolphin]
|
||||
PreviewsShown=true
|
||||
Timestamp=2016,12,30,1,11,30
|
||||
Version=3
|
After Width: | Height: | Size: 240 B |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 411 B |
After Width: | Height: | Size: 293 B |
After Width: | Height: | Size: 469 B |
After Width: | Height: | Size: 328 B |
After Width: | Height: | Size: 352 B |
After Width: | Height: | Size: 586 B |
After Width: | Height: | Size: 658 B |
After Width: | Height: | Size: 187 B |
After Width: | Height: | Size: 939 B |
After Width: | Height: | Size: 718 B |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 4.5 KiB |
After Width: | Height: | Size: 659 B |
After Width: | Height: | Size: 567 B |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 555 B |
After Width: | Height: | Size: 495 B |
After Width: | Height: | Size: 515 B |
After Width: | Height: | Size: 496 B |
After Width: | Height: | Size: 736 B |
After Width: | Height: | Size: 360 B |
After Width: | Height: | Size: 372 B |
After Width: | Height: | Size: 118 B |
After Width: | Height: | Size: 4.1 KiB |
After Width: | Height: | Size: 530 B |
After Width: | Height: | Size: 894 B |
After Width: | Height: | Size: 375 B |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 910 B |
After Width: | Height: | Size: 385 B |
After Width: | Height: | Size: 491 B |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 434 B |
After Width: | Height: | Size: 429 B |
After Width: | Height: | Size: 582 B |
After Width: | Height: | Size: 342 B |
After Width: | Height: | Size: 343 B |