write something there
45
mods/lootchests_modpack/README.md
Normal file
|
@ -0,0 +1,45 @@
|
|||
# lootchests_modpack
|
||||
Modpack adding various loot containers across the world to be found and providing an API, resources and integrations for other mods.
|
||||
|
||||

|
||||
|
||||
## Requirements
|
||||
|
||||
- Minetest 5.0.0+
|
||||
- Minetest_game 5.0.0+
|
||||
- [magic_materials](https://github.com/ClockGen/magic_materials) (optional)
|
||||
|
||||
## Recommended mods
|
||||
- [decorations_sea](https://github.com/ClockGen/decorations_sea) (Provides decorations when looking for ocean chests)
|
||||
- [shipwrecks](https://github.com/ClockGen/shipwrecks) (Shipwrecks depend on lootchests_modpack to spawn lootchests in shipwrecks)
|
||||
|
||||
## Integrations
|
||||
lootchests_default adds loot from following mods, if they are installed:
|
||||
|
||||
- 3d_armor
|
||||
- Bonemeal
|
||||
- farming_redo
|
||||
- gadgets_modpack
|
||||
- moreores
|
||||
- moretrees
|
||||
|
||||
|
||||
## Contents
|
||||
Default lootchest pack provides:
|
||||
|
||||
- Baskets, spawning in caves from 0 to -128, containing various organic items (food, seeds, saplings, etc)
|
||||
- Urns, spawning in caves from 0 to -128, containing various low-grade craftitems and tools (stone tools, ores up to iron, sticks, etc)
|
||||
- Ocean chests, spawning in seabed and also very rare in caves, containing many precious materials and tools
|
||||
- Ancient chests, spawning from -128 to -4096 in solid rock and also very rare in caverns, containing very expensive loot
|
||||
|
||||
Magic_materials pack provides:
|
||||
- Rune urn, spawning in caves from -64 to -4096, containing low grade magic items from magic_materials
|
||||
- rune chest, spawning from -64 to -4096 in solid rock and very rare in caverns, contains high grade items from magic_materials
|
||||
|
||||
## Making your own lootchests
|
||||
Process of making your own lootchests is described in [documentation](lootchests/documentation.txt)
|
||||
|
||||
## License
|
||||
All code is licensed under GPLv3 [link to the license](https://www.gnu.org/licenses/gpl-3.0.en.html)
|
||||
All resources are licensed under CC BY 4.0 [link to the license](https://creativecommons.org/licenses/by/4.0/legalcode)
|
||||
|
1
mods/lootchests_modpack/description.txt
Normal file
|
@ -0,0 +1 @@
|
|||
Modpack adding a lot of various loot containers across the world to be found and providing an API, resources and integrations for other mods
|
197
mods/lootchests_modpack/lootchests/api.lua
Normal file
|
@ -0,0 +1,197 @@
|
|||
lootchests = {}
|
||||
|
||||
lootchests.loot_table = {}
|
||||
|
||||
lootchests.spawn_chests = asuna.content.wayfarer.loot_chests
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
local debug = minetest.settings:get("lootchests_debug") or false
|
||||
|
||||
local function list_length(list)
|
||||
local count = 0
|
||||
for _,_ in pairs(list) do
|
||||
count = count + 1
|
||||
end
|
||||
return count
|
||||
end
|
||||
|
||||
lootchests.add_to_loot_table = function(key, add)
|
||||
if not lootchests.loot_table[key] then
|
||||
lootchests.loot_table[key] = {}
|
||||
end
|
||||
for _,v in pairs(add) do
|
||||
table.insert(lootchests.loot_table[key], v)
|
||||
end
|
||||
end
|
||||
|
||||
local water_nodes = {
|
||||
"default:water_source",
|
||||
"default:river_water_source",
|
||||
"default:lava_source",
|
||||
"ethereal:quicksand2",
|
||||
}
|
||||
|
||||
lootchests.register_lootchest = function(def)
|
||||
|
||||
if not def.name or not def.description then
|
||||
minetest.log("error", S("[lootchests] Missing fields in chest definition!"))
|
||||
return
|
||||
end
|
||||
|
||||
if not lootchests.loot_table[def.name] then
|
||||
minetest.log("error", S("[lootchests] Missing loot table for") .. " " .. def.name .. "!")
|
||||
return
|
||||
end
|
||||
|
||||
local tiles = def.tiles or {
|
||||
"default_chest_top.png",
|
||||
"default_chest_top.png",
|
||||
"default_chest_side.png",
|
||||
"default_chest_side.png",
|
||||
"default_chest_front.png",
|
||||
}
|
||||
|
||||
local sounds = def.sounds or default.node_sound_wood_defaults()
|
||||
local groups = def.groups or {choppy = 2, oddly_breakable_by_hand = 2}
|
||||
local rarity = def.spawn_in_rarity or 512
|
||||
local fill_ratio = def.spawn_on_rarity or 512
|
||||
local ymax = def.ymax or 31000
|
||||
local ymin = def.ymin or -31000
|
||||
local slot_spawn_chance = def.slot_spawn_chance or 0.25
|
||||
local slots = def.slots or 32
|
||||
local node_box = def.node_box or {
|
||||
type = "fixed",
|
||||
fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
|
||||
}
|
||||
|
||||
local marker_drawtype = "airlike"
|
||||
local marker_groups = {dig_immediate = 2, not_in_creative_inventory = 1}
|
||||
if debug then
|
||||
marker_drawtype = nil
|
||||
marker_groups = {dig_immediate = 2}
|
||||
end
|
||||
|
||||
minetest.register_node(def.name .. "_marker", {
|
||||
drawtype = marker_drawtype,
|
||||
description = def.description .. " " .. S("Spawn Marker"),
|
||||
tiles = {"lootchests_marker_top.png", "lootchests_marker_side.png"},
|
||||
groups = marker_groups,
|
||||
paramtype2 = "facedir",
|
||||
})
|
||||
|
||||
minetest.register_node(def.name, {
|
||||
description = def.description,
|
||||
drawtype = def.drawtype,
|
||||
tiles = tiles,
|
||||
node_box = node_box,
|
||||
selection_box = node_box,
|
||||
groups = groups,
|
||||
sounds = sounds,
|
||||
paramtype = "light",
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_string("formspec",
|
||||
"size[8,9]" ..
|
||||
default.gui_bg ..
|
||||
default.gui_bg_img ..
|
||||
default.gui_slots ..
|
||||
"list[current_name;main;0,0;8,5;]" ..
|
||||
"list[current_player;main;0,5;8,4;]" ..
|
||||
"listring[current_name;main]" ..
|
||||
"listring[current_player;main]"
|
||||
)
|
||||
meta:set_string("infotext", def.description)
|
||||
local inv = meta:get_inventory()
|
||||
inv:set_size("main", slots)
|
||||
end,
|
||||
can_dig = function(pos,player)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
return inv:is_empty("main")
|
||||
end,
|
||||
})
|
||||
|
||||
-- Function for checking underwater
|
||||
local check_water
|
||||
if not def.underwater then
|
||||
check_water = function(pos)
|
||||
for _,waterpos in ipairs({
|
||||
{ x = pos.x - 1, y = pos.y, z = pos.z - 1 },
|
||||
{ x = pos.x + 1, y = pos.y, z = pos.z - 1 },
|
||||
{ x = pos.x - 1, y = pos.y, z = pos.z + 1 },
|
||||
{ x = pos.x + 1, y = pos.y, z = pos.z + 1 },
|
||||
}) do
|
||||
for _,water_node in ipairs(water_nodes) do
|
||||
if minetest.get_node(waterpos).name == water_node then
|
||||
return true -- found nearby water, trigger check
|
||||
end
|
||||
end
|
||||
end
|
||||
return false -- did not find nearby water, do not trigger check
|
||||
end
|
||||
else
|
||||
check_water = function()
|
||||
return false -- check never triggers
|
||||
end
|
||||
end
|
||||
|
||||
if not debug and lootchests.spawn_chests then
|
||||
minetest.register_lbm({
|
||||
label = S("Upgrade") .. " " .. def.description,
|
||||
name = def.name .. "_marker_replace",
|
||||
nodenames = def.name .. "_marker",
|
||||
run_at_every_load = true,
|
||||
action = function(pos, node)
|
||||
if check_water(pos) then
|
||||
minetest.set_node(pos, {name = "default:water_source", param2 = 0})
|
||||
return -- loot chest is underwater and should not be, do not place here
|
||||
else
|
||||
minetest.set_node(pos, {name = def.name, param2 = 0})
|
||||
end
|
||||
local rand = PcgRandom(pos.x * pos.y * pos.z)
|
||||
local inv = minetest.get_inventory({type = "node", pos = pos})
|
||||
for i = 1, slots do
|
||||
if rand:next(0,100) <= slot_spawn_chance then
|
||||
local item_def = lootchests.loot_table[def.name][rand:next(1, #lootchests.loot_table[def.name])]
|
||||
local item_name = item_def[#item_def < 3 and 1 or rand:next(1,#item_def - 1)]
|
||||
local stack = ItemStack(item_name)
|
||||
if minetest.registered_tools[item_name] then
|
||||
stack:set_wear(rand:next(1,65535))
|
||||
else
|
||||
stack:set_count(rand:next(1, item_def[#item_def]))
|
||||
end
|
||||
inv:set_stack("main", i, stack)
|
||||
end
|
||||
end
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
||||
if def.spawn_in and lootchests.spawn_chests then
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = def.name .. "_marker",
|
||||
wherein = def.spawn_in,
|
||||
clust_scarcity = rarity * rarity * rarity,
|
||||
clust_num_ores = 1,
|
||||
clust_size = 25,
|
||||
y_min = ymin,
|
||||
y_max = ymax,
|
||||
})
|
||||
end
|
||||
|
||||
if def.spawn_on and lootchests.spawn_chests then
|
||||
minetest.register_decoration({
|
||||
deco_type = "simple",
|
||||
place_on = def.spawn_on,
|
||||
spawn_by = def.spawn_by,
|
||||
num_spawn_by = def.num_spawn_by,
|
||||
sidelen = 80,
|
||||
fill_ratio = 1/fill_ratio,
|
||||
y_min = ymin,
|
||||
y_max = ymax,
|
||||
flags = "force_placement, all_floors",
|
||||
decoration = def.name .. "_marker",
|
||||
})
|
||||
end
|
||||
end
|
1
mods/lootchests_modpack/lootchests/depends.txt
Normal file
|
@ -0,0 +1 @@
|
|||
default
|
1
mods/lootchests_modpack/lootchests/description.txt
Normal file
|
@ -0,0 +1 @@
|
|||
An API for registering various loot containers
|
70
mods/lootchests_modpack/lootchests/documentation.txt
Normal file
|
@ -0,0 +1,70 @@
|
|||
To spawn the lootchests, world is populated by spawn chest markers of corresponding type.
|
||||
During the normal gameplay, they are of "airlike" type and are replaced with LBM which replaces them with corresponding chests and fill them with loot.
|
||||
If minetest.conf setting "lootchests_debug = true" is active, markers are not replaced and can be taken from the creative inventory.
|
||||
This can be used for placing them manually for various purposes, mainly for adding lootchest markers to schematics.
|
||||
|
||||
Creating a lootchest consists of two parts: defining the lootchest itself with lootchests.register_lootchest(def)
|
||||
and creating a corresponding loot table in lootchests.loot_table[def.name]. Examples are below.
|
||||
|
||||
Example of a lootchest definition:
|
||||
lootchests.register_lootchest({
|
||||
--Mandatory
|
||||
name = "lootchests:default_chest", --ID of the lootchest. A table with corresponding key should be created in tables.loot_table
|
||||
description = "Loot Chest", --Name as it appears in inventory, also lootchest infobox
|
||||
|
||||
--Visuals
|
||||
drawtype = "nodebox", --Drawtype of the node. Don't define for default node look
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
|
||||
}, --Nodebox def if drawtype is "nodebox"
|
||||
tiles = {
|
||||
"default_chest_top.png",
|
||||
"default_chest_top.png",
|
||||
"default_chest_side.png",
|
||||
"default_chest_side.png",
|
||||
"default_chest_front.png",
|
||||
}, --Node tile definition
|
||||
|
||||
--Sounds and groups
|
||||
sounds = default.node_sound_wood_defaults(), --Node sound definition
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2}, --Node groups
|
||||
|
||||
--Spawning
|
||||
spawn_in = {"default:sand", "default:desert_sand"}, --Spawn in which nodes, may be one itemstring or a list of them
|
||||
spawn_on = {"default:stone", "default:desert_stone"}, --Spawn on which nodes, may be one itemstring or a list of them
|
||||
spawn_in_rarity = 25, --Spawn in rarity, approximate spacing between each node
|
||||
spawn_on_rarity = 1000. --Spawn on rarity, spawns one out of defined value (if default is 1000 then on 1 out of 1000)
|
||||
|
||||
--Height limit
|
||||
ymax = 5, --Max Y limit
|
||||
ymin = -64, --Min Y limit
|
||||
|
||||
--Container parameters
|
||||
slot_spawn_chance = 50, --Chance to spawn something in a container slot. Ranges from 0 to 100
|
||||
slots = 32, --Total amount of slots in the container. Max is 32
|
||||
})
|
||||
|
||||
|
||||
To actually add loot to your lootchests, you need to define a loot table in lootchests.loot_table. Table must be accessible by the key which equals to
|
||||
the lootchest ID.
|
||||
|
||||
Example of a loot table definition for "lootchests:default_chest":
|
||||
lootchests.loot_table["lootchests:default_chest"] = {
|
||||
{"default:stick", 16}, --Each item definition is a table with 2 elements - their itemstring and maximum amount
|
||||
{"default:axe_stone"}, --If defined item is a tool, it doesn't need an amount definition, there will always be one anyway
|
||||
--Tools spawn with random wear instead
|
||||
{"default:stone", 64},
|
||||
}
|
||||
|
||||
Third-party mods can also access and modify loot tables, you can add custom items to them manually, or by using
|
||||
lootchests.add_to_loot_table(key, items), where "key" is the lootchest ID and "items" is another table with loot.
|
||||
|
||||
Example:
|
||||
|
||||
local items = {
|
||||
{"custom_mod:custom_item_01", 15},
|
||||
{"custom_mod:custom_item_02", 32},
|
||||
}
|
||||
|
||||
lootchests.add_to_loot_table("lootchests:default_chest", items)
|
1
mods/lootchests_modpack/lootchests/init.lua
Normal file
|
@ -0,0 +1 @@
|
|||
dofile(minetest.get_modpath("lootchests").."/api.lua")
|
|
@ -0,0 +1,6 @@
|
|||
# textdomain: lootchests
|
||||
|
||||
[lootchests] Missing fields in chest definition!=[lootchests] Отсутствуют поля в определении сундука!
|
||||
[lootchests] Missing loot table for=[lootchests] Отсутствует таблица добычи для
|
||||
Spawn Marker=Маркер появления
|
||||
Upgrade=Обновление
|
1
mods/lootchests_modpack/lootchests/mod.conf
Normal file
|
@ -0,0 +1 @@
|
|||
name = lootchests
|
After Width: | Height: | Size: 582 B |
After Width: | Height: | Size: 644 B |
203
mods/lootchests_modpack/lootchests_default/chests.lua
Normal file
|
@ -0,0 +1,203 @@
|
|||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
lootchests.register_lootchest({
|
||||
name = "lootchests_default:ocean_chest",
|
||||
description = S("Ocean Chest"),
|
||||
spawn_in = {"default:sand", "default:desert_sand", "default:silver_sand"},
|
||||
spawn_on = {"default:sand"},
|
||||
underwater = true,
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2},
|
||||
ymax = -11,
|
||||
ymin = -36,
|
||||
spawn_in_rarity = 80,
|
||||
spawn_on_rarity = 2750,
|
||||
spawn_by = {
|
||||
"group:wood", -- sunken ships
|
||||
"marinara:sand_with_kelp", -- thick kelp
|
||||
},
|
||||
num_spawn_by = 2,
|
||||
slot_spawn_chance = 55,
|
||||
slots = 32,
|
||||
})
|
||||
|
||||
local chest_spawning = {
|
||||
on = {
|
||||
"group:stone",
|
||||
"default:sand",
|
||||
"default:dirt",
|
||||
"default:dry_dirt",
|
||||
"default:dirt_with_grass",
|
||||
"default:dirt_with_dry_grass",
|
||||
"default:dry_dirt_with_dry_grass",
|
||||
"default:dirt_with_coniferous_litter",
|
||||
"default:dirt_with_rainforest_litter",
|
||||
"default:desert_sand",
|
||||
"ethereal:grove_dirt",
|
||||
"ethereal:bamboo_dirt",
|
||||
"dorwinion:dorwinion_grass",
|
||||
"prairie:prairie_dirt_with_grass",
|
||||
"nightshade:nightshade_dirt_with_grass",
|
||||
"badland:badland_grass",
|
||||
"japaneseforest:japanese_dirt_with_grass",
|
||||
"naturalbiomes:alderswamp_litter",
|
||||
"naturalbiomes:alpine_litter",
|
||||
"naturalbiomes:mediterran_litter",
|
||||
"naturalbiomes:outback_litter",
|
||||
"naturalbiomes:savanna_litter",
|
||||
"livingjungle:jungleground",
|
||||
"livingjungle:leafyjungleground",
|
||||
"group:soil",
|
||||
"caverealms:stone_with_moss",
|
||||
"caverealms:stone_with_lichen",
|
||||
"caverealms:stone_with_algae",
|
||||
"caverealms:stone_with_salt",
|
||||
"caverealms:hot_cobble",
|
||||
"default:clay",
|
||||
"everness:forsaken_desert_sand",
|
||||
"everness:forsaken_tundra_dirt",
|
||||
"everness:frosted_snowblock",
|
||||
"default:snowblock",
|
||||
"everness:dirt_with_cursed_grass",
|
||||
"everness:dirt_with_crystal_grass",
|
||||
"everness:dirt_with_coral_grass",
|
||||
"everness:moss_block",
|
||||
"everness:crystal_moss_block",
|
||||
"everness:emerald_ice",
|
||||
"everness:ancient_emerald_ice",
|
||||
"everness:dense_emerald_ice",
|
||||
"everness:frosted_ice",
|
||||
"everness:frosted_ice_translucent",
|
||||
},
|
||||
by = {
|
||||
"group:tree",
|
||||
"group:leaves",
|
||||
"group:stone",
|
||||
"default:sand",
|
||||
"default:dirt",
|
||||
"default:dry_dirt",
|
||||
"default:dirt_with_grass",
|
||||
"default:dirt_with_dry_grass",
|
||||
"default:dry_dirt_with_dry_grass",
|
||||
"default:dirt_with_coniferous_litter",
|
||||
"default:dirt_with_rainforest_litter",
|
||||
"default:desert_sand",
|
||||
"ethereal:grove_dirt",
|
||||
"ethereal:bamboo_dirt",
|
||||
"dorwinion:dorwinion_grass",
|
||||
"prairie:prairie_dirt_with_grass",
|
||||
"nightshade:nightshade_dirt_with_grass",
|
||||
"badland:badland_grass",
|
||||
"japaneseforest:japanese_dirt_with_grass",
|
||||
"naturalbiomes:alderswamp_litter",
|
||||
"naturalbiomes:alpine_litter",
|
||||
"naturalbiomes:mediterran_litter",
|
||||
"naturalbiomes:outback_litter",
|
||||
"naturalbiomes:savanna_litter",
|
||||
"livingjungle:jungleground",
|
||||
"livingjungle:leafyjungleground",
|
||||
"group:soil",
|
||||
"caverealms:stone_with_moss",
|
||||
"caverealms:stone_with_lichen",
|
||||
"caverealms:stone_with_algae",
|
||||
"caverealms:stone_with_salt",
|
||||
"caverealms:hot_cobble",
|
||||
"default:clay",
|
||||
"everness:forsaken_desert_sand",
|
||||
"everness:forsaken_tundra_dirt",
|
||||
"everness:frosted_snowblock",
|
||||
"default:snowblock",
|
||||
"everness:dirt_with_cursed_grass",
|
||||
"everness:dirt_with_crystal_grass",
|
||||
"everness:dirt_with_coral_grass",
|
||||
"everness:moss_block",
|
||||
"everness:crystal_moss_block",
|
||||
"everness:emerald_ice",
|
||||
"everness:ancient_emerald_ice",
|
||||
"everness:dense_emerald_ice",
|
||||
"everness:frosted_ice",
|
||||
"everness:frosted_ice_translucent",
|
||||
}
|
||||
}
|
||||
|
||||
lootchests.register_lootchest({
|
||||
name = "lootchests_default:basket",
|
||||
description = S("Basket"),
|
||||
tiles = {
|
||||
"lootchests_default_basket_top.png",
|
||||
"lootchests_default_basket_top.png",
|
||||
"lootchests_default_basket_side.png",
|
||||
},
|
||||
spawn_on = chest_spawning.on,
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
groups = {snappy = 2, oddly_breakable_by_hand = 2},
|
||||
ymax = 31000,
|
||||
ymin = -256,
|
||||
spawn_on_rarity = 4900,
|
||||
spawn_by = chest_spawning.by,
|
||||
num_spawn_by = 9,
|
||||
slot_spawn_chance = 40,
|
||||
slots = 24,
|
||||
})
|
||||
|
||||
lootchests.register_lootchest({
|
||||
name = "lootchests_default:urn",
|
||||
description = S("Urn"),
|
||||
tiles = {
|
||||
"lootchests_default_urn_top.png",
|
||||
"lootchests_default_urn_top.png",
|
||||
"lootchests_default_urn_side.png",
|
||||
},
|
||||
spawn_on = chest_spawning.on,
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
groups = {cracky = 2, oddly_breakable_by_hand = 2},
|
||||
ymax = 0,
|
||||
ymin = -4096,
|
||||
spawn_on_rarity = 4900,
|
||||
spawn_by = chest_spawning.by,
|
||||
num_spawn_by = 9,
|
||||
slot_spawn_chance = 40,
|
||||
slots = 24,
|
||||
})
|
||||
|
||||
lootchests.register_lootchest({
|
||||
name = "lootchests_default:barrel",
|
||||
description = S("Barrel"),
|
||||
tiles = {
|
||||
"lootchests_default_barrel_top.png",
|
||||
"lootchests_default_barrel_top.png",
|
||||
"lootchests_default_barrel_side.png",
|
||||
},
|
||||
spawn_in = {"default:sand", "default:desert_sand", "default:silver_sand"},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2},
|
||||
ymax = -3,
|
||||
ymin = -32,
|
||||
spawn_in_rarity = 80,
|
||||
slot_spawn_chance = 40,
|
||||
slots = 24,
|
||||
})
|
||||
|
||||
lootchests.register_lootchest({
|
||||
name = "lootchests_default:stone_chest",
|
||||
description = S("Ancient Chest"),
|
||||
tiles = {
|
||||
"lootchests_default_stone_chest_top.png",
|
||||
"lootchests_default_stone_chest_top.png",
|
||||
"lootchests_default_stone_chest_side.png",
|
||||
"lootchests_default_stone_chest_side.png",
|
||||
"lootchests_default_stone_chest_front.png",
|
||||
},
|
||||
spawn_in = {"group:stone"},
|
||||
spawn_on = {"group:stone"},
|
||||
spawn_by = {"group:stone"},
|
||||
num_spawn_by = 11,
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
groups = {cracky = 2},
|
||||
ymax = -256,
|
||||
ymin = -31000,
|
||||
spawn_in_rarity = 80,
|
||||
spawn_on_rarity = 12500,
|
||||
slot_spawn_chance = 55,
|
||||
slots = 32,
|
||||
})
|
38
mods/lootchests_modpack/lootchests_default/depends.txt
Normal file
|
@ -0,0 +1,38 @@
|
|||
default
|
||||
lootchests
|
||||
tnt
|
||||
vessels
|
||||
screwdriver
|
||||
map
|
||||
fire
|
||||
dye
|
||||
wool
|
||||
carts
|
||||
bucket
|
||||
boats
|
||||
binoculars
|
||||
farming
|
||||
flowers
|
||||
flowerpot?
|
||||
beautiflowers?
|
||||
herbs?
|
||||
3d_armor?
|
||||
shields?
|
||||
bonemeal?
|
||||
moreores?
|
||||
moretrees?
|
||||
too_many_stones?
|
||||
bakedclay?
|
||||
animalia?
|
||||
gadgets_consumables?
|
||||
ethereal?
|
||||
livingjungle?
|
||||
marinara?
|
||||
naturalbiomes?
|
||||
dorwinion?
|
||||
prairie?
|
||||
badland?
|
||||
frost_land?
|
||||
japanese_forest?
|
||||
asuna_core?
|
||||
x_farming?
|
|
@ -0,0 +1 @@
|
|||
Part of lootchests_modpack, providing lootchests for minetest_game, as well as integration with some mods
|
35
mods/lootchests_modpack/lootchests_default/init.lua
Normal file
|
@ -0,0 +1,35 @@
|
|||
local path = minetest.get_modpath("lootchests_default")
|
||||
dofile(path .. "/item_tables.lua")
|
||||
dofile(path .. "/chests.lua")
|
||||
|
||||
if minetest.get_modpath("3d_armor") then
|
||||
dofile(path .. "/mod_support/3d_armor.lua")
|
||||
end
|
||||
|
||||
if minetest.get_modpath("shields") then
|
||||
dofile(path .. "/mod_support/3d_armor_shields.lua")
|
||||
end
|
||||
|
||||
if minetest.get_modpath("bonemeal") then
|
||||
dofile(path .. "/mod_support/bonemeal.lua")
|
||||
end
|
||||
|
||||
if minetest.get_modpath("farming") and farming and farming.mod == "redo" then
|
||||
dofile(path .. "/mod_support/farming_redo.lua")
|
||||
end
|
||||
|
||||
if minetest.get_modpath("gadgets_consumables") then
|
||||
dofile(path .. "/mod_support/gadgets_modpack.lua")
|
||||
end
|
||||
|
||||
if minetest.get_modpath("moreores") then
|
||||
dofile(path .. "/mod_support/moreores.lua")
|
||||
end
|
||||
|
||||
if minetest.get_modpath("moretrees") then
|
||||
dofile(path .. "/mod_support/moretrees.lua")
|
||||
end
|
||||
|
||||
if minetest.get_modpath("asuna_core") then
|
||||
dofile(path .. "/mod_support/asuna.lua")
|
||||
end
|
173
mods/lootchests_modpack/lootchests_default/item_tables.lua
Normal file
|
@ -0,0 +1,173 @@
|
|||
lootchests.loot_table["lootchests_default:ocean_chest"] = {
|
||||
{"default:stick", 16},
|
||||
{"default:paper", 4},
|
||||
{"default:book", 3},
|
||||
{"default:skeleton_key", 1},
|
||||
{"default:flint", 4},
|
||||
{"default:obsidian_shard", 24},
|
||||
{"default:clay_brick", 32},
|
||||
{"default:mese_crystal_fragment", 4},
|
||||
{"default:gold_ingot", 8},
|
||||
{"default:bronze_ingot", 8},
|
||||
{"default:tin_ingot", 8},
|
||||
{"default:copper_ingot", 8},
|
||||
{"default:steel_ingot", 8},
|
||||
{"default:coal_lump", 16},
|
||||
{"default:pick_stone"},
|
||||
{"default:pick_bronze"},
|
||||
{"default:pick_steel"},
|
||||
{"default:shovel_stone"},
|
||||
{"default:shovel_bronze"},
|
||||
{"default:shovel_steel"},
|
||||
{"default:axe_stone"},
|
||||
{"default:axe_bronze"},
|
||||
{"default:axe_steel"},
|
||||
{"default:sword_stone"},
|
||||
{"default:sword_bronze"},
|
||||
{"default:sword_steel"},
|
||||
{"default:bookshelf", 4},
|
||||
{"default:sign_wall_wood", 2},
|
||||
{"default:ladder_wood", 32},
|
||||
{"default:ladder_steel", 16},
|
||||
{"default:glass", 24},
|
||||
{"default:obsidian_glass", 8},
|
||||
{"tnt:gunpowder", 16},
|
||||
{"vessels:glass_bottle", 8},
|
||||
{"vessels:drinking_glass", 8},
|
||||
{"screwdriver:screwdriver"},
|
||||
{"map:mapping_kit", 1},
|
||||
{"fire:flint_and_steel"},
|
||||
{"wool:white", 16},
|
||||
{"carts:rail", 24},
|
||||
{"carts:powerrail", 12},
|
||||
{"carts:brakerail", 12},
|
||||
{"carts:cart", 1},
|
||||
{"bucket:bucket_empty", 2},
|
||||
{"boats:boat", 1},
|
||||
{"binoculars:binoculars", 1},
|
||||
{
|
||||
"default:coral_green",
|
||||
"default:coral_pink",
|
||||
"default:coral_cyan",
|
||||
"default:coral_brown",
|
||||
"default:coral_orange",
|
||||
3,
|
||||
},
|
||||
}
|
||||
|
||||
lootchests.loot_table["lootchests_default:basket"] = {
|
||||
{"default:stick", 16},
|
||||
{"default:tree", 4},
|
||||
{"default:jungletree", 4},
|
||||
{"default:pine_tree", 4},
|
||||
{"default:cactus", 4},
|
||||
{"default:large_cactus_seedling", 2},
|
||||
{"default:papyrus", 8},
|
||||
{"default:junglegrass", 4},
|
||||
{"default:grass_1", 4},
|
||||
{"default:blueberry_bush_sapling", 4},
|
||||
{
|
||||
"default:sapling",
|
||||
"default:junglesapling",
|
||||
"default:pine_sapling",
|
||||
"default:acacia_sapling",
|
||||
"default:aspen_sapling",
|
||||
1,
|
||||
},
|
||||
{
|
||||
"default:leaves",
|
||||
"default:acacia_leaves",
|
||||
"default:pine_needles",
|
||||
"default:aspen_leaves",
|
||||
"default:jungleleaves",
|
||||
10,
|
||||
},
|
||||
{"wool:white", 8},
|
||||
{"farming:wheat", 8},
|
||||
{"farming:flour", 4},
|
||||
{"farming:cotton", 4},
|
||||
{"farming:string", 4},
|
||||
{"flowers:mushroom_red", 8},
|
||||
{"ethereal:vine", 6},
|
||||
{"vessels:glass_bottle", 2},
|
||||
}
|
||||
|
||||
lootchests.loot_table["lootchests_default:urn"] = {
|
||||
{"default:stick", 16},
|
||||
{"default:paper", 4},
|
||||
{"default:flint", 4},
|
||||
{"default:clay_lump", 16},
|
||||
{"default:tin_lump", 8},
|
||||
{"default:copper_lump", 8},
|
||||
{"default:iron_lump", 8},
|
||||
{"default:coal_lump", 16},
|
||||
{"default:pick_stone"},
|
||||
{"default:shovel_stone"},
|
||||
{"default:axe_stone"},
|
||||
{"default:sword_stone"},
|
||||
{"default:sign_wall_wood", 1},
|
||||
{"default:ladder_wood", 8},
|
||||
{"vessels:glass_bottle", 4},
|
||||
{"fire:flint_and_steel"},
|
||||
{"wool:white", 8},
|
||||
{"farming:flour", 4},
|
||||
{"default:tree", 2},
|
||||
{"default:jungletree", 2},
|
||||
{"default:pine_tree", 2},
|
||||
{"default:cobble", 60},
|
||||
{"caverealms:glow_gem", 6},
|
||||
{"default:gravel", 24},
|
||||
{"default:torch", 8},
|
||||
{"default:obsidian", 3}
|
||||
}
|
||||
|
||||
lootchests.loot_table["lootchests_default:barrel"] = lootchests.loot_table["lootchests_default:urn"]
|
||||
|
||||
lootchests.loot_table["lootchests_default:stone_chest"] = {
|
||||
{"default:coalblock", 4},
|
||||
{"default:steelblock", 2},
|
||||
{"default:copperblock", 2},
|
||||
{"default:tinblock", 2},
|
||||
{"default:bronzeblock", 2},
|
||||
{"default:mese", 2},
|
||||
{"default:meselamp", 4},
|
||||
{"default:stick", 16},
|
||||
{"default:paper", 4},
|
||||
{"default:book", 3},
|
||||
{"default:skeleton_key", 1},
|
||||
{"default:flint", 4},
|
||||
{"default:obsidian", 24},
|
||||
{"default:clay_brick", 32},
|
||||
{"default:mese_crystal", 16},
|
||||
{"default:diamond", 16},
|
||||
{"default:gold_ingot", 16},
|
||||
{"default:bronze_ingot", 16},
|
||||
{"default:tin_ingot", 16},
|
||||
{"default:copper_ingot", 16},
|
||||
{"default:steel_ingot", 16},
|
||||
{"default:coal_lump", 32},
|
||||
{"default:pick_bronze"},
|
||||
{"default:pick_steel"},
|
||||
{"default:pick_mese"},
|
||||
{"default:shovel_bronze"},
|
||||
{"default:shovel_steel"},
|
||||
{"default:shovel_mese"},
|
||||
{"default:axe_bronze"},
|
||||
{"default:axe_steel"},
|
||||
{"default:axe_mese"},
|
||||
{"default:sword_bronze"},
|
||||
{"default:sword_steel"},
|
||||
{"default:sword_mese"},
|
||||
{"default:glass", 32},
|
||||
{"default:obsidian_glass", 16},
|
||||
{"tnt:gunpowder", 32},
|
||||
{"vessels:glass_bottle", 32},
|
||||
{"vessels:drinking_glass", 32},
|
||||
{"fire:flint_and_steel"},
|
||||
{"carts:rail", 64},
|
||||
{"carts:powerrail", 32},
|
||||
{"carts:brakerail", 32},
|
||||
{"carts:cart", 2},
|
||||
{"bucket:bucket_empty", 8},
|
||||
{"boats:boat", 2},
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
# textdomain: lootchests_default
|
||||
|
||||
Loot Chest=Сундук с добычей
|
||||
Basket=Корзина
|
||||
Urn=Урна
|
||||
Barrel=Бочка
|
||||
Ancient Chest=Древний сундук
|
1
mods/lootchests_modpack/lootchests_default/mod.conf
Normal file
|
@ -0,0 +1 @@
|
|||
name = lootchests_default
|
|
@ -0,0 +1,36 @@
|
|||
local cheap_items = {
|
||||
{"3d_armor:helmet_wood"},
|
||||
{"3d_armor:chestplate_wood"},
|
||||
{"3d_armor:leggings_wood"},
|
||||
{"3d_armor:boots_wood"},
|
||||
{"3d_armor:helmet_cactus"},
|
||||
{"3d_armor:chestplate_cactus"},
|
||||
{"3d_armor:leggings_cactus"},
|
||||
{"3d_armor:boots_cactus"},
|
||||
}
|
||||
|
||||
local medium_items = {
|
||||
{"3d_armor:helmet_steel"},
|
||||
{"3d_armor:chestplate_steel"},
|
||||
{"3d_armor:leggings_steel"},
|
||||
{"3d_armor:boots_steel"},
|
||||
{"3d_armor:helmet_bronze"},
|
||||
{"3d_armor:chestplate_bronze"},
|
||||
{"3d_armor:leggings_bronze"},
|
||||
{"3d_armor:boots_bronze"},
|
||||
}
|
||||
|
||||
local expensive_items = {
|
||||
{"3d_armor:helmet_gold"},
|
||||
{"3d_armor:chestplate_gold"},
|
||||
{"3d_armor:leggings_gold"},
|
||||
{"3d_armor:boots_gold"},
|
||||
{"3d_armor:helmet_diamond"},
|
||||
{"3d_armor:chestplate_diamond"},
|
||||
{"3d_armor:leggings_diamond"},
|
||||
{"3d_armor:boots_diamond"},
|
||||
}
|
||||
|
||||
lootchests.add_to_loot_table("lootchests_default:ocean_chest", medium_items)
|
||||
lootchests.add_to_loot_table("lootchests_default:urn", cheap_items)
|
||||
lootchests.add_to_loot_table("lootchests_default:stone_chest", expensive_items)
|
|
@ -0,0 +1,20 @@
|
|||
local cheap_items = {
|
||||
{"shields:shield_wood"},
|
||||
{"shields:shield_enhanced_wood"},
|
||||
{"shields:shield_cactus"},
|
||||
{"shields:shield_enhanced_cactus"},
|
||||
}
|
||||
|
||||
local medium_items = {
|
||||
{"shields:shield_steel"},
|
||||
{"shields:shield_bronze"},
|
||||
}
|
||||
|
||||
local expensive_items = {
|
||||
{"shields:shield_gold"},
|
||||
{"shields:shield_diamond"},
|
||||
}
|
||||
|
||||
lootchests.add_to_loot_table("lootchests_default:ocean_chest", medium_items)
|
||||
lootchests.add_to_loot_table("lootchests_default:urn", cheap_items)
|
||||
lootchests.add_to_loot_table("lootchests_default:stone_chest", expensive_items)
|
388
mods/lootchests_modpack/lootchests_default/mod_support/asuna.lua
Normal file
|
@ -0,0 +1,388 @@
|
|||
--[[
|
||||
Define loot groups
|
||||
]]
|
||||
|
||||
local loot_groups = {
|
||||
too_many_stones = {
|
||||
crystals = {
|
||||
"too_many_stones:celestine_crystal",
|
||||
"too_many_stones:amethyst_crystal",
|
||||
"too_many_stones:heliodor_crystal",
|
||||
"too_many_stones:vivianite_crystal",
|
||||
"too_many_stones:prasiolite_crystal",
|
||||
"too_many_stones:crocoite_crystal",
|
||||
"too_many_stones:quartz_crystal",
|
||||
"too_many_stones:rose_quartz_crystal",
|
||||
"too_many_stones:smokey_quartz_crystal",
|
||||
"too_many_stones:citrine_crystal",
|
||||
8,
|
||||
},
|
||||
precious_stones = {
|
||||
"too_many_stones:celestine",
|
||||
"too_many_stones:amethyst",
|
||||
"too_many_stones:heliodor",
|
||||
"too_many_stones:vivianite",
|
||||
"too_many_stones:prasiolite",
|
||||
"too_many_stones:crocoite",
|
||||
"too_many_stones:quartz",
|
||||
"too_many_stones:rose_quartz",
|
||||
"too_many_stones:smokey_quartz",
|
||||
"too_many_stones:citrine",
|
||||
"too_many_stones:black_moonstone",
|
||||
"too_many_stones:marble",
|
||||
8,
|
||||
},
|
||||
common_stones = {
|
||||
"too_many_stones:granite_white",
|
||||
"too_many_stones:granite_gray",
|
||||
30,
|
||||
},
|
||||
opal = {
|
||||
"too_many_stones:opal",
|
||||
"too_many_stones:fire_opal",
|
||||
"too_many_stones:black_opal",
|
||||
8,
|
||||
},
|
||||
glowing_stones = {
|
||||
"too_many_stones:glow_apatite",
|
||||
"too_many_stones:glow_calcite",
|
||||
"too_many_stones:glow_esperite",
|
||||
"too_many_stones:glow_fluorite",
|
||||
"too_many_stones:glow_selenite",
|
||||
"too_many_stones:glow_sodalite",
|
||||
"too_many_stones:glow_willemite",
|
||||
"too_many_stones:glow_apatite",
|
||||
"too_many_stones:glow_calcite",
|
||||
"too_many_stones:glow_esperite",
|
||||
"too_many_stones:glow_fluorite",
|
||||
"too_many_stones:glow_selenite",
|
||||
"too_many_stones:glow_sodalite",
|
||||
"too_many_stones:glow_willemite",
|
||||
6,
|
||||
}
|
||||
},
|
||||
|
||||
marinara = {
|
||||
seashells = {
|
||||
"marinara:seashells_white",
|
||||
"marinara:seashells_yellow",
|
||||
"marinara:seashells_brown",
|
||||
"marinara:seashells_pink",
|
||||
"marinara:seashells_orange",
|
||||
4,
|
||||
},
|
||||
},
|
||||
|
||||
x_farming = {
|
||||
seeds = {
|
||||
"x_farming:seed_barley",
|
||||
"x_farming:seed_beetroot",
|
||||
"x_farming:large_cactus_with_fruit_seedling",
|
||||
"x_farming:seed_carrot",
|
||||
"x_farming:jungle_with_cocoa_sapling",
|
||||
"x_farming:seed_coffee",
|
||||
"x_farming:seed_corn",
|
||||
"x_farming:kiwi_sapling",
|
||||
"x_farming:seed_melon",
|
||||
"x_farming:pine_nut_sapling",
|
||||
"x_farming:seed_pumpkin",
|
||||
"x_farming:seed_rice",
|
||||
"x_farming:seed_potato",
|
||||
"x_farming:seed_soybean",
|
||||
"x_farming:seed_stevia",
|
||||
"x_farming:seed_strawberry",
|
||||
4,
|
||||
},
|
||||
surface_crops = {
|
||||
"x_farming:barley",
|
||||
"x_farming:beetroot",
|
||||
"x_farming:cactus_fruit_item",
|
||||
"x_farming:carrot",
|
||||
"x_farming:cocoa_bean",
|
||||
"x_farming:coffee",
|
||||
"x_farming:corn",
|
||||
"x_farming:kiwi_fruit",
|
||||
"x_farming:melon",
|
||||
"x_farming:pine_nut_sapling",
|
||||
"x_farming:pumpkin",
|
||||
"x_farming:rice",
|
||||
"x_farming:potato",
|
||||
"x_farming:soybean",
|
||||
"x_farming:stevia",
|
||||
"x_farming:strawberry",
|
||||
4,
|
||||
},
|
||||
underground_crops = {
|
||||
"x_farming:seed_beetroot",
|
||||
"x_farming:potato",
|
||||
4,
|
||||
},
|
||||
rope = {
|
||||
"x_farming:rope",
|
||||
16,
|
||||
},
|
||||
},
|
||||
|
||||
flowers = {
|
||||
all_flowers = {
|
||||
"flowers:tulip_black",
|
||||
"beautiflowers:carla",
|
||||
"beautiflowers:cloe",
|
||||
"beautiflowers:genesis",
|
||||
"beautiflowers:gloria",
|
||||
"beautiflowers:hadassa",
|
||||
"beautiflowers:ingrid",
|
||||
"beautiflowers:irene",
|
||||
"beautiflowers:iris",
|
||||
"beautiflowers:ivette",
|
||||
"beautiflowers:michelle",
|
||||
"beautiflowers:suri",
|
||||
"flowers:dandelion_white",
|
||||
"herbs:achillea_white",
|
||||
"herbs:leontopodium_white",
|
||||
"herbs:leucanthemum_white",
|
||||
"herbs:trifolium_white",
|
||||
"beautiflowers:beatriz",
|
||||
"beautiflowers:berta",
|
||||
"flowers:geranium",
|
||||
"herbs:centaurea",
|
||||
"herbs:campanula_blue",
|
||||
"herbs:digitalis_blue",
|
||||
"herbs:iris",
|
||||
"bakedclay:delphinium",
|
||||
"beautiflowers:thais",
|
||||
"beautiflowers:valentina",
|
||||
"beautiflowers:valeria",
|
||||
"beautiflowers:vera",
|
||||
"beautiflowers:victoria",
|
||||
"beautiflowers:virginia",
|
||||
"beautiflowers:xenia",
|
||||
"beautiflowers:zaida",
|
||||
"beautiflowers:dafne",
|
||||
"beautiflowers:dana",
|
||||
"beautiflowers:delia",
|
||||
"beautiflowers:elena",
|
||||
"beautiflowers:erica",
|
||||
"beautiflowers:estela",
|
||||
"beautiflowers:eva",
|
||||
"beautiflowers:fabiola",
|
||||
"beautiflowers:fiona",
|
||||
"beautiflowers:gala",
|
||||
"flowers:tulip",
|
||||
"beautiflowers:ada",
|
||||
"beautiflowers:agnes",
|
||||
"beautiflowers:alicia",
|
||||
"beautiflowers:alma",
|
||||
"beautiflowers:amaia",
|
||||
"beautiflowers:anastasia",
|
||||
"beautiflowers:any",
|
||||
"flowers:dandelion_yellow",
|
||||
"herbs:digitalis_yellow",
|
||||
"herbs:plantago",
|
||||
"beautiflowers:arleth",
|
||||
"beautiflowers:astrid",
|
||||
"beautiflowers:belen",
|
||||
"beautiflowers:blanca",
|
||||
"beautiflowers:casandra",
|
||||
"beautiflowers:clara",
|
||||
"beautiflowers:claudia",
|
||||
"beautiflowers:minerva",
|
||||
"beautiflowers:miriam",
|
||||
"beautiflowers:nazareth",
|
||||
"beautiflowers:noemi",
|
||||
"beautiflowers:olga",
|
||||
"beautiflowers:paula",
|
||||
"beautiflowers:regina",
|
||||
"beautiflowers:rocio",
|
||||
"beautiflowers:sabrina",
|
||||
"beautiflowers:vanesa",
|
||||
"flowers:viola",
|
||||
"beautiflowers:xena",
|
||||
"beautiflowers:arcoiris",
|
||||
"beautiflowers:jennifer",
|
||||
"beautiflowers:lara",
|
||||
"beautiflowers:laura",
|
||||
"beautiflowers:lidia",
|
||||
"beautiflowers:lucia",
|
||||
"beautiflowers:mara",
|
||||
"beautiflowers:martina",
|
||||
"beautiflowers:melania",
|
||||
"beautiflowers:mireia",
|
||||
"beautiflowers:nadia",
|
||||
"beautiflowers:nerea",
|
||||
"beautiflowers:noelia",
|
||||
"flowers:rose",
|
||||
"herbs:dosera",
|
||||
"herbs:papaver_red",
|
||||
"beautiflowers:caroline",
|
||||
"beautiflowers:cristina",
|
||||
"beautiflowers:diana",
|
||||
"beautiflowers:gisela",
|
||||
"beautiflowers:olimpia",
|
||||
"beautiflowers:oriana",
|
||||
"beautiflowers:pia",
|
||||
"beautiflowers:raquel",
|
||||
"beautiflowers:ruth",
|
||||
"beautiflowers:sandra",
|
||||
"beautiflowers:sara",
|
||||
"beautiflowers:silvia",
|
||||
"beautiflowers:sofia",
|
||||
"beautiflowers:sonia",
|
||||
"beautiflowers:talia",
|
||||
"herbs:antirrhinum",
|
||||
"herbs:trifolium_red",
|
||||
"bakedclay:thistle",
|
||||
"bakedclay:lazarus",
|
||||
"flowers:chrysanthemum_green",
|
||||
"beautiflowers:pasto_1",
|
||||
"beautiflowers:pasto_2",
|
||||
"beautiflowers:pasto_3",
|
||||
"beautiflowers:pasto_4",
|
||||
"beautiflowers:pasto_5",
|
||||
"beautiflowers:pasto_6",
|
||||
"beautiflowers:pasto_7",
|
||||
"beautiflowers:pasto_8",
|
||||
"beautiflowers:pasto_9",
|
||||
"beautiflowers:pasto_10",
|
||||
"bakedclay:mannagrass",
|
||||
6,
|
||||
},
|
||||
brown_mushrooms = {
|
||||
"flowers:mushroom_brown",
|
||||
"herbs:mushroom_boletus",
|
||||
"herbs:mushroom_macrolepiota",
|
||||
4,
|
||||
},
|
||||
},
|
||||
|
||||
flowerpot = {
|
||||
pot = {
|
||||
"flowerpot:empty",
|
||||
1,
|
||||
},
|
||||
},
|
||||
|
||||
animalia = {
|
||||
feather = {
|
||||
"animalia:feather",
|
||||
3,
|
||||
},
|
||||
leather = {
|
||||
"animalia:leather",
|
||||
2,
|
||||
},
|
||||
},
|
||||
|
||||
ethereal = {
|
||||
fruit = {
|
||||
"ethereal:banana",
|
||||
3,
|
||||
},
|
||||
bowl = {
|
||||
"ethereal:bowl",
|
||||
1,
|
||||
},
|
||||
},
|
||||
|
||||
bakedclay = {
|
||||
clay = {
|
||||
"bakedclay:natural",
|
||||
"bakedclay:white",
|
||||
"bakedclay:grey",
|
||||
"bakedclay:black",
|
||||
"bakedclay:red",
|
||||
"bakedclay:yellow",
|
||||
"bakedclay:green",
|
||||
"bakedclay:cyan",
|
||||
"bakedclay:blue",
|
||||
"bakedclay:magenta",
|
||||
"bakedclay:orange",
|
||||
"bakedclay:violet",
|
||||
"bakedclay:brown",
|
||||
"bakedclay:pink",
|
||||
"bakedclay:dark_grey",
|
||||
"bakedclay:dark_green",
|
||||
6,
|
||||
},
|
||||
terracotta = {
|
||||
"bakedclay:terracotta_white",
|
||||
"bakedclay:terracotta_grey",
|
||||
"bakedclay:terracotta_black",
|
||||
"bakedclay:terracotta_red",
|
||||
"bakedclay:terracotta_yellow",
|
||||
"bakedclay:terracotta_green",
|
||||
"bakedclay:terracotta_cyan",
|
||||
"bakedclay:terracotta_blue",
|
||||
"bakedclay:terracotta_magenta",
|
||||
"bakedclay:terracotta_orange",
|
||||
"bakedclay:terracotta_violet",
|
||||
"bakedclay:terracotta_brown",
|
||||
"bakedclay:terracotta_pink",
|
||||
"bakedclay:terracotta_dark_grey",
|
||||
"bakedclay:terracotta_dark_green",
|
||||
10,
|
||||
},
|
||||
},
|
||||
|
||||
food = {
|
||||
bread = {
|
||||
"farming:bread",
|
||||
2,
|
||||
},
|
||||
fruit = {
|
||||
"default:apple",
|
||||
"default:blueberries",
|
||||
"ethereal:banana",
|
||||
"ethereal:orange",
|
||||
"ethereal:lemon",
|
||||
"x_farming:melon_fruit",
|
||||
"x_farming:pumpkin_fruit",
|
||||
"x_farming:kiwi_fruit",
|
||||
"x_farming:cactus_fruit_item",
|
||||
2,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
--[[
|
||||
Apply loot groups
|
||||
]]
|
||||
|
||||
lootchests.add_to_loot_table("lootchests_default:ocean_chest",{
|
||||
loot_groups.marinara.seashells,
|
||||
loot_groups.animalia.leather,
|
||||
loot_groups.bakedclay.terracotta,
|
||||
})
|
||||
|
||||
lootchests.add_to_loot_table("lootchests_default:basket",{
|
||||
loot_groups.x_farming.seeds,
|
||||
loot_groups.x_farming.surface_crops,
|
||||
loot_groups.x_farming.rope,
|
||||
loot_groups.flowers.all_flowers,
|
||||
loot_groups.flowers.all_flowers, -- 2x chance for flowers
|
||||
loot_groups.flowers.all_flowers, -- 3x chance for flowers
|
||||
loot_groups.flowerpot.pot,
|
||||
loot_groups.animalia.feather,
|
||||
loot_groups.animalia.leather,
|
||||
loot_groups.food.bread,
|
||||
loot_groups.food.fruit,
|
||||
loot_groups.ethereal.bowl,
|
||||
loot_groups.flowers.brown_mushrooms,
|
||||
})
|
||||
|
||||
lootchests.add_to_loot_table("lootchests_default:urn",{
|
||||
loot_groups.too_many_stones.crystals,
|
||||
loot_groups.too_many_stones.precious_stones,
|
||||
loot_groups.too_many_stones.common_stones,
|
||||
loot_groups.x_farming.underground_crops,
|
||||
loot_groups.x_farming.rope,
|
||||
loot_groups.flowerpot.pot,
|
||||
loot_groups.bakedclay.clay,
|
||||
loot_groups.ethereal.bowl,
|
||||
})
|
||||
|
||||
lootchests.add_to_loot_table("lootchests_default:stone_chest",{
|
||||
loot_groups.too_many_stones.glowing_stones,
|
||||
loot_groups.too_many_stones.opal,
|
||||
loot_groups.bakedclay.terracotta,
|
||||
})
|
|
@ -0,0 +1,9 @@
|
|||
local items = {
|
||||
{"bonemeal:bonemeal", 8},
|
||||
{"bonemeal:mulch", 8},
|
||||
{"bonemeal:fertiliser", 8},
|
||||
{"bonemeal:bone", 4},
|
||||
{"bonemeal:gelatin_powder", 8},
|
||||
}
|
||||
|
||||
lootchests.add_to_loot_table("lootchests_default:basket", items)
|
|
@ -0,0 +1,44 @@
|
|||
local items = {}
|
||||
|
||||
for _,item in ipairs({
|
||||
{"farming:seed_wheat", 4},
|
||||
{"farming:tomato", 2},
|
||||
{"farming:rye", 4},
|
||||
{"farming:oat", 4},
|
||||
{"farming:rice", 4},
|
||||
{"farming:rhubarb", 2},
|
||||
{"farming:raspberries", 4},
|
||||
{"farming:pumpkin", 1},
|
||||
{"farming:potato", 4},
|
||||
{"farming:pineapple", 2},
|
||||
{"farming:peppercorn", 4},
|
||||
{"farming:pepper", 4},
|
||||
{"farming:pea_pod", 4},
|
||||
{"farming:peas", 8},
|
||||
{"farming:onion", 4},
|
||||
{"farming:melon", 1},
|
||||
{"farming:seed_hemp", 4},
|
||||
{"farming:hemp_leaf", 8},
|
||||
{"farming:hemp_rope", 4},
|
||||
{"farming:grapes", 6},
|
||||
{"farming:garlic_clove", 2},
|
||||
{"farming:garlic", 4},
|
||||
{"farming:cucumber", 2},
|
||||
{"farming:seed_cotton", 4},
|
||||
{"farming:corn", 8},
|
||||
{"farming:coffee_beans", 8},
|
||||
{"farming:cocoa_beans", 8},
|
||||
{"farming:chili_pepper", 2},
|
||||
{"farming:carrot", 4},
|
||||
{"farming:blueberries", 8},
|
||||
{"farming:beetroot", 8},
|
||||
{"farming:beans", 8},
|
||||
{"farming:seed_barley", 4},
|
||||
{"farming:barley", 8},
|
||||
}) do
|
||||
if minetest.registered_items[item[1]] then
|
||||
table.insert(items,item)
|
||||
end
|
||||
end
|
||||
|
||||
lootchests.add_to_loot_table("lootchests_default:basket", items)
|
|
@ -0,0 +1,28 @@
|
|||
local chest_items = {
|
||||
{"gadgets_consumables:potion_speed_01", 2},
|
||||
{"gadgets_consumables:potion_jump_01", 2},
|
||||
{"gadgets_consumables:potion_gravity_01", 2},
|
||||
{"gadgets_consumables:potion_dispel", 2},
|
||||
{"gadgets_consumables:potion_health_regen_01", 2},
|
||||
{"gadgets_consumables:potion_water_breath_01", 2},
|
||||
{"gadgets_consumables:water_bottle", 2},
|
||||
}
|
||||
|
||||
local stone_chest_items = {
|
||||
{"gadgets_consumables:potion_teleport", 2},
|
||||
{"gadgets_consumables:potion_fire_shield_02", 2},
|
||||
{"gadgets_consumables:potion_speed_02", 2},
|
||||
{"gadgets_consumables:potion_jump_02", 2},
|
||||
{"gadgets_consumables:potion_gravity_02", 2},
|
||||
{"gadgets_consumables:potion_dispel", 2},
|
||||
{"gadgets_consumables:potion_health_regen_02", 2},
|
||||
{"gadgets_consumables:potion_water_breath_02", 2},
|
||||
}
|
||||
|
||||
lootchests.add_to_loot_table("lootchests_default:ocean_chest", chest_items)
|
||||
lootchests.add_to_loot_table("lootchests_default:stone_chest", stone_chest_items)
|
||||
|
||||
if minetest.get_modpath("lootchests_magic_materials") then
|
||||
lootchests.add_to_loot_table("lootchests_magic_materials:rune_urn", chest_items)
|
||||
lootchests.add_to_loot_table("lootchests_magic_materials:rune_chest", stone_chest_items)
|
||||
end
|
|
@ -0,0 +1,29 @@
|
|||
local chest_items = {
|
||||
{"moreores:silver_ingot", 8},
|
||||
{"moreores:mithril_lump", 2},
|
||||
{"moreores:sword_silver"},
|
||||
{"moreores:axe_silver"},
|
||||
{"moreores:shovel_silver"},
|
||||
{"moreores:pick_silver"},
|
||||
}
|
||||
|
||||
local urn_items = {
|
||||
{"moreores:silver_lump", 8},
|
||||
}
|
||||
|
||||
local stone_chest_items = {
|
||||
{"moreores:sword_silver"},
|
||||
{"moreores:axe_silver"},
|
||||
{"moreores:shovel_silver"},
|
||||
{"moreores:pick_silver"},
|
||||
{"moreores:sword_mithril"},
|
||||
{"moreores:axe_mithril"},
|
||||
{"moreores:shovel_mithril"},
|
||||
{"moreores:pick_mithril"},
|
||||
{"moreores:mithril_ingot", 4},
|
||||
{"moreores:silver_block", 2},
|
||||
}
|
||||
|
||||
lootchests.add_to_loot_table("lootchests_default:ocean_chest", chest_items)
|
||||
lootchests.add_to_loot_table("lootchests_default:urn", urn_items)
|
||||
lootchests.add_to_loot_table("lootchests_default:stone_chest", stone_chest_items)
|
|
@ -0,0 +1,28 @@
|
|||
local items = {
|
||||
{"moretrees:acorn", 8},
|
||||
{"moretrees:acorn_muffin_batter", 4},
|
||||
{"moretrees:cedar_nuts", 16},
|
||||
{"moretrees:cedar_cone", 4},
|
||||
{"moretrees:coconut", 2},
|
||||
{"moretrees:date", 16},
|
||||
{"moretrees:date_nut_batter", 4},
|
||||
{"moretrees:fir_cone", 4},
|
||||
{"moretrees:fir_nuts", 8},
|
||||
{"moretrees:spruce_cone", 4},
|
||||
{"moretrees:spruce_nuts", 8},
|
||||
{"moretrees:rubber_tree_sapling", 2},
|
||||
{"moretrees:sequoia_sapling", 2},
|
||||
{"moretrees:spruce_sapling", 2},
|
||||
{"moretrees:willow_sapling", 2},
|
||||
{"moretrees:poplar_sapling", 2},
|
||||
{"moretrees:palm_sapling", 2},
|
||||
{"moretrees:oak_sapling", 2},
|
||||
{"moretrees:fir_sapling", 2},
|
||||
{"moretrees:date_palm_sapling", 2},
|
||||
{"moretrees:apple_tree_sapling", 2},
|
||||
{"moretrees:birch_sapling", 2},
|
||||
{"moretrees:cedar_sapling", 2},
|
||||
{"moretrees:beech_sapling", 2},
|
||||
}
|
||||
|
||||
lootchests.add_to_loot_table("lootchests_default:basket", items)
|
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 1.2 KiB |
1
mods/lootchests_modpack/modpack.txt
Normal file
|
@ -0,0 +1 @@
|
|||
|