mirror of
https://github.com/mt-mods/xcompat.git
synced 2025-11-05 18:45:33 +01:00
Compare commits
3 Commits
master
...
sound_api_
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d266415853 | ||
|
|
b832ca00da | ||
|
|
d3ddfb09b1 |
7
.github/dependabot.yml
vendored
Normal file
7
.github/dependabot.yml
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: gitsubmodule
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: daily
|
||||
open-pull-requests-limit: 20
|
||||
23
.github/workflows/farlands_reloaded.yml
vendored
23
.github/workflows/farlands_reloaded.yml
vendored
@@ -1,23 +0,0 @@
|
||||
name: farlands_reloaded
|
||||
on: [push, pull_request]
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 10
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@main
|
||||
- uses: buckaroobanzay/mtt@main
|
||||
with:
|
||||
modname: xcompat
|
||||
git_game_repo: https://github.com/TerraQuest-Studios/farlands_reloaded
|
||||
git_dependencies: |
|
||||
https://github.com/mt-mods/unifieddyes
|
||||
https://github.com/mt-mods/basic_materials
|
||||
https://github.com/OgelGames/fakelib
|
||||
https://github.com/mt-mods/pipeworks
|
||||
https://github.com/mt-mods/steel
|
||||
https://github.com/mt-mods/display_modpack
|
||||
https://github.com/mt-mods/homedecor_modpack
|
||||
additional_config: |
|
||||
mtt_nodelist = farlands_reloaded.txt
|
||||
23
.github/workflows/hades_revisited.yml
vendored
23
.github/workflows/hades_revisited.yml
vendored
@@ -1,23 +0,0 @@
|
||||
name: hades_revisited
|
||||
on: [push, pull_request]
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 10
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@main
|
||||
- uses: buckaroobanzay/mtt@main
|
||||
with:
|
||||
modname: xcompat
|
||||
git_game_repo: https://codeberg.org/Wuzzy/Hades_Revisited
|
||||
git_dependencies: |
|
||||
https://github.com/mt-mods/unifieddyes
|
||||
https://github.com/mt-mods/basic_materials
|
||||
https://github.com/OgelGames/fakelib
|
||||
https://github.com/mt-mods/pipeworks
|
||||
https://github.com/mt-mods/steel
|
||||
https://github.com/mt-mods/display_modpack
|
||||
https://github.com/mt-mods/homedecor_modpack
|
||||
additional_config: |
|
||||
mtt_nodelist = hades_revisited.txt
|
||||
13
.github/workflows/luacheck.yml
vendored
13
.github/workflows/luacheck.yml
vendored
@@ -1,10 +1,13 @@
|
||||
name: luacheck
|
||||
on: [push, pull_request]
|
||||
jobs:
|
||||
luacheck:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@main
|
||||
- name: Luacheck
|
||||
uses: lunarmodules/luacheck@master
|
||||
- uses: actions/checkout@master
|
||||
- name: apt
|
||||
run: sudo apt-get install -y luarocks
|
||||
- name: luacheck install
|
||||
run: luarocks install --local luacheck
|
||||
- name: luacheck run
|
||||
run: $HOME/.luarocks/bin/luacheck ./
|
||||
23
.github/workflows/mineclonia.yml
vendored
23
.github/workflows/mineclonia.yml
vendored
@@ -1,23 +0,0 @@
|
||||
name: mineclonia
|
||||
on: [push, pull_request]
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 10
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@main
|
||||
- uses: buckaroobanzay/mtt@main
|
||||
with:
|
||||
modname: xcompat
|
||||
git_game_repo: https://codeberg.org/mineclonia/mineclonia
|
||||
git_dependencies: |
|
||||
https://github.com/mt-mods/unifieddyes
|
||||
https://github.com/mt-mods/basic_materials
|
||||
https://github.com/OgelGames/fakelib
|
||||
https://github.com/mt-mods/pipeworks
|
||||
https://github.com/mt-mods/steel
|
||||
https://github.com/mt-mods/display_modpack
|
||||
https://github.com/mt-mods/homedecor_modpack
|
||||
additional_config: |
|
||||
mtt_nodelist = mineclonia.txt
|
||||
23
.github/workflows/minetest_game.yml
vendored
23
.github/workflows/minetest_game.yml
vendored
@@ -1,23 +0,0 @@
|
||||
name: minetest_game
|
||||
on: [push, pull_request]
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 10
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@main
|
||||
- uses: buckaroobanzay/mtt@main
|
||||
with:
|
||||
modname: xcompat
|
||||
git_game_repo: https://github.com/minetest/minetest_game
|
||||
git_dependencies: |
|
||||
https://github.com/mt-mods/unifieddyes
|
||||
https://github.com/mt-mods/basic_materials
|
||||
https://github.com/OgelGames/fakelib
|
||||
https://github.com/mt-mods/pipeworks
|
||||
https://github.com/mt-mods/steel
|
||||
https://github.com/mt-mods/display_modpack
|
||||
https://github.com/mt-mods/homedecor_modpack
|
||||
additional_config: |
|
||||
mtt_nodelist = minetest.txt
|
||||
23
.github/workflows/voxelibre.yml
vendored
23
.github/workflows/voxelibre.yml
vendored
@@ -1,23 +0,0 @@
|
||||
name: voxelibre
|
||||
on: [push, pull_request]
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 10
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@main
|
||||
- uses: buckaroobanzay/mtt@main
|
||||
with:
|
||||
modname: xcompat
|
||||
git_game_repo: https://git.minetest.land/VoxeLibre/VoxeLibre/
|
||||
git_dependencies: |
|
||||
https://github.com/mt-mods/unifieddyes
|
||||
https://github.com/mt-mods/basic_materials
|
||||
https://github.com/OgelGames/fakelib
|
||||
https://github.com/mt-mods/pipeworks
|
||||
https://github.com/mt-mods/steel
|
||||
https://github.com/mt-mods/display_modpack
|
||||
https://github.com/mt-mods/homedecor_modpack
|
||||
additional_config: |
|
||||
mtt_nodelist = voxelibre.txt
|
||||
34
.luacheckrc
34
.luacheckrc
@@ -1,26 +1,22 @@
|
||||
unused_args = false
|
||||
allow_defined_top = true
|
||||
|
||||
exclude_files = {".luacheckrc"}
|
||||
|
||||
globals = {
|
||||
"minetest",
|
||||
"core",
|
||||
"xcompat",
|
||||
"minetest", "xcompat",
|
||||
}
|
||||
|
||||
read_globals = {
|
||||
string = {fields = {"split"}},
|
||||
string = {fields = {"split"}},
|
||||
table = {fields = {"copy", "getn"}},
|
||||
|
||||
"default",
|
||||
"mcl_sounds",
|
||||
"ks_sounds",
|
||||
"nodes_nature",
|
||||
"fl_stone",
|
||||
"fl_topsoil",
|
||||
"fl_trees",
|
||||
"hades_sounds",
|
||||
"rp_sounds",
|
||||
"mtt",
|
||||
"sounds",
|
||||
"player_api",
|
||||
"mcl_player",
|
||||
"fl_player",
|
||||
"stairs",
|
||||
--luac
|
||||
"math", "table",
|
||||
|
||||
-- Builtin
|
||||
"vector", "ItemStack", "dump", "DIR_DELIM", "VoxelArea", "Settings", "PcgRandom", "VoxelManip", "PseudoRandom",
|
||||
|
||||
--mod produced
|
||||
"default", "mcl_sounds", "ks_sounds", "nodes_nature", "fl_stone", "fl_topsoil", "fl_trees", "hades_sounds", "rp_sounds",
|
||||
}
|
||||
@@ -1,7 +1,8 @@
|
||||
# Sound API
|
||||
# Xcompat dev docs
|
||||
|
||||
## Sound API
|
||||
|
||||
## Option 1: Agnostically depend
|
||||
### Option 1: Agnostically depend
|
||||
|
||||
You can do this by using a custom field in your node def instead of the `sounds` key.
|
||||
|
||||
@@ -21,9 +22,9 @@ where:
|
||||
* key: string name of the field from the sound api you want to use, for example `node_sound_stone_defaults`
|
||||
* input: table input of fields you want passed to the key field, used to override specific sounds.
|
||||
|
||||
## Option 2: Hard depend
|
||||
### Option 2: Hard depend
|
||||
|
||||
add this mod to your mod.confs depends and directly call the `sound_api` as follows
|
||||
add this mod to your mod.confs depends and directly call the sound_api as follows
|
||||
|
||||
```lua
|
||||
minetest.register_node(nodename, {
|
||||
@@ -35,11 +36,6 @@ minetest.register_node(nodename, {
|
||||
|
||||
* input: optional table to override some or all of returned values
|
||||
|
||||
## Materials API
|
||||
|
||||
## Note
|
||||
|
||||
In some instances, when sounds are defined by strings and the sound doesn't
|
||||
belong to a block or anything mod-specific, xcompat may not be needed. E.g.
|
||||
the sound `"default_dig_choppy"` is accessed in the same way in both Mineclonia
|
||||
and Minetest Game, without xcompat.
|
||||
|
||||
consult `/src/materials.lua` at this time
|
||||
2
LICENSE
2
LICENSE
@@ -1,5 +1,5 @@
|
||||
|
||||
MIT Copyright 2021-2025 wsor4035, mt-mods and contributors
|
||||
MIT Copyright 2021-2024 wsor4035
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
|
||||
37
README.md
37
README.md
@@ -1,34 +1,15 @@
|
||||
# XCompat
|
||||
# xcompat
|
||||
|
||||
[](https://github.com/mt-mods/xcompat/actions/workflows/luacheck.yml)
|
||||
[](https://content.minetest.net/packages/mt-mods/xcompat/)
|
||||
a mod that aims to facilitate other mods to be game agnostic by handling sounds and crafting
|
||||
|
||||
Provides cross compatibility between games and mods for sounds and crafting materials.
|
||||
thanks to:
|
||||
* MisterE, OgelGames, and Blockhead for naming advice/suggestion
|
||||
* luk3yx, Blockhead, Buckaroo for bouncing ideas on the concept of this mod
|
||||
|
||||
Thanks to:
|
||||
* MisterE, OgelGames, and Blockhead for naming advice/suggestion.
|
||||
* luk3yx, Blockhead, BuckarooBanzai for bouncing ideas on the concept of this mod.
|
||||
## Installing
|
||||
|
||||
## Usage
|
||||
clone via git or install via contentdb (soon)
|
||||
|
||||
See the respective sub apis doc file in /doc for detailed documentation.
|
||||
## Dev Docs
|
||||
|
||||
## Directly supported games and mods
|
||||
|
||||
| Games | Sounds | Materials | Textures | Player | Stairs |
|
||||
| ----------------- | --------- | --------- | --------- | ------ | ------ |
|
||||
| Minetest Game | x | x | x | x | x |
|
||||
| MineClone2 | x | x | | x | |
|
||||
| Mineclonia | x | x | | x | |
|
||||
| Hades Revisited | x | x | | | |
|
||||
| Farlands Reloaded | x | x | x | x | x |
|
||||
| Exile | x | | | | |
|
||||
| KSurvive 2 | x | | | | |
|
||||
| Forgotten Lands | x | | | | |
|
||||
|
||||
For functions see /doc/functions.md for the specifics relating to the function
|
||||
|
||||
**Mods**
|
||||
* `basic_materials`
|
||||
* `mesecons_materials`
|
||||
* `moreores`
|
||||
Can be found at /DEV.md
|
||||
@@ -1,16 +0,0 @@
|
||||
# Functions API
|
||||
|
||||
## `can_interact_with_node(player, pos)`
|
||||
|
||||
returns `bool`
|
||||
|
||||
checks for the ability to interact with a node via:
|
||||
|
||||
* if a player
|
||||
* owner metadata key
|
||||
* `protection_bypass`
|
||||
|
||||
supports
|
||||
|
||||
* minetest game default if present
|
||||
* else polyfill
|
||||
@@ -1,12 +0,0 @@
|
||||
# GameId API
|
||||
|
||||
## minetest versions >= 5.7
|
||||
|
||||
simply returns `minetest.get_game_info().id`
|
||||
|
||||
## minetest versions < 5.7
|
||||
|
||||
approximates the gameid value via a hardcoded table of gameid =\> modname,
|
||||
and then checks via `minetest.get_modpath()`. If it fails, it falls
|
||||
back to using `xcompat_unknown_gameid` as the id. See the chart in the
|
||||
readme for which games are supported
|
||||
@@ -1,26 +0,0 @@
|
||||
# Materials API
|
||||
|
||||
## Usage
|
||||
|
||||
The materials can be accessed anywhere in your mod with `xcompat.materials.material_name`.
|
||||
|
||||
Behind the scenes, xcompat automatically changes the `xcompat.materials`
|
||||
variable to contain the correct materials for whichever game the mod is
|
||||
launched in.
|
||||
|
||||
## Game support
|
||||
|
||||
See the [the support table in the readme](https://github.com/mt-mods/xcompat/tree/master?tab=readme-ov-file#directly-supported-games-and-mods)
|
||||
for an overview of supported games, and see the contents of `/src/materials/`
|
||||
for the supported materials and their names.
|
||||
|
||||
## Examples
|
||||
|
||||
Writing `xcompat.materials.steel_ingot` returns the string of whichever item
|
||||
would closest represent the `steel_ingot` material in the current game.
|
||||
|
||||
The `/src/materials/mineclonia.lua` file shows what the keys of
|
||||
`xcompat.materials` resolve to when playing Mineclonia, such as
|
||||
`xcompat.materials.steel_ingot` resolving to `mcl_core:iron_ingot`, and
|
||||
`xcompat.materials.mesa_crystal` resolving to `mcl_redstone:redstone` if
|
||||
supported.
|
||||
@@ -1,21 +0,0 @@
|
||||
# Player API
|
||||
|
||||
## Usage
|
||||
|
||||
The player api can be accessed in your script through `xcompat.player`.
|
||||
|
||||
This object mimics the `player_api` from Minetest Game, and should be a drop-in
|
||||
replacement in most cases. You should be able to simply replace instances
|
||||
of `player_api` in your script with `xcompat.player`.
|
||||
|
||||
|
||||
## Note on `xcompat.player.player_attached`
|
||||
|
||||
Reading & writing to this object works, but because it's a proxy table it can't
|
||||
be looped over.
|
||||
|
||||
Looping over this object would require lua5.2 `__pairs`/`__ipairs` metamethod support.
|
||||
It would be possible to implement support for this through polyfill,
|
||||
using [this method](https://stackoverflow.com/a/77354254)
|
||||
(luajit supports this via 5.2 extensions), but it's not implemented as of now.
|
||||
Additionally see [this engine issue](https://github.com/minetest/minetest/issues/15133).
|
||||
@@ -1,30 +0,0 @@
|
||||
you can use this via `xcompat.stairs.register(nodename, def)`
|
||||
|
||||
an example would be:
|
||||
```lua
|
||||
xcompat.stairs.register(
|
||||
"xcompat_stairs_test:fake_node",
|
||||
core.registered_nodes["xcompat_stairs_test:fake_node"]
|
||||
)
|
||||
```
|
||||
|
||||
if the game you are running on isnt supported (see readme),
|
||||
it falls back to using a polyfill. each backend adds aliases
|
||||
to the polyfill, mainly so that if we add a future backend
|
||||
that ran on polyfill, everything keeps working (yay)
|
||||
|
||||
at this time stairsplus/moreblocks compatibility/upgrading
|
||||
isnt supported, however should be added in the future. for
|
||||
now, in your mod code do something like the following:
|
||||
|
||||
```lua
|
||||
if core.registered_modes("moreblocks") then
|
||||
--call stairs plus
|
||||
else
|
||||
xcompat.stairs.register(node, def)
|
||||
end
|
||||
```
|
||||
|
||||
that way in the future nothing will break when support is
|
||||
added and at your convince the first part of the if can be
|
||||
removed
|
||||
@@ -1,20 +0,0 @@
|
||||
# Textures API
|
||||
|
||||
## Usage
|
||||
|
||||
To use a texture in your mod, find the texture you want by looking at one of
|
||||
the files in `/src/texture`, and append its path to `xcompat.textures`.
|
||||
|
||||
If a texture isn't supported for the current game, xcompat creates a solid
|
||||
color texture using texture modifiers as a fallback, ensuring compatibility.
|
||||
|
||||
## Example
|
||||
|
||||
| Path | Result in Minetest Game |
|
||||
| - | - |
|
||||
| xcompat.textures.wool.white | `"wool_white.png"` |
|
||||
| xcompat.textures.wood.apple.planks | `"default_wood.png"` |
|
||||
| xcompat.textures.wood.jungle.leaves | `"default_jungleleaves.png"` |
|
||||
| xcompat.textures.glass.pane | `"default_glass.png"` |
|
||||
|
||||
For games like Minetest and Mineclonia, see the file `/src/textures/minetest.lua`.
|
||||
@@ -1,2 +0,0 @@
|
||||
test export-ignore
|
||||
.github export-ignore
|
||||
20
init.lua
20
init.lua
@@ -1,19 +1,10 @@
|
||||
local modpath = minetest.get_modpath("xcompat")
|
||||
|
||||
xcompat = {
|
||||
modpath = modpath,
|
||||
sounds = dofile(modpath .. "/src/sounds.lua"),
|
||||
materials = dofile(modpath .. "/src/materials.lua"),
|
||||
}
|
||||
|
||||
xcompat.gameid = dofile(modpath .. "/src/gameid.lua")
|
||||
xcompat.utilities = dofile(modpath .. "/src/utilities.lua")
|
||||
|
||||
xcompat.sounds = dofile(modpath .. "/src/sounds.lua")
|
||||
xcompat.materials = dofile(modpath .. "/src/materials.lua")
|
||||
xcompat.textures = dofile(modpath .. "/src/textures.lua")
|
||||
xcompat.functions = dofile(modpath .. "/src/functions.lua")
|
||||
xcompat.player = dofile(modpath .. "/src/player.lua")
|
||||
xcompat.stairs = dofile(modpath .. "/src/stairs.lua")
|
||||
|
||||
local function validate_sound(key)
|
||||
if key and xcompat.sounds[key] then
|
||||
return true
|
||||
@@ -43,10 +34,3 @@ minetest.register_on_mods_loaded(function()
|
||||
old_reg_node(name, def)
|
||||
end
|
||||
end)
|
||||
|
||||
dofile(modpath .. "/src/commands.lua")
|
||||
|
||||
if minetest.get_modpath("mtt") and mtt.enabled then
|
||||
-- register tests
|
||||
dofile(modpath .. "/mtt.lua")
|
||||
end
|
||||
|
||||
3
mod.conf
3
mod.conf
@@ -1,3 +1,2 @@
|
||||
name = xcompat
|
||||
description = Provides cross compatibility between mods and games for sounds and crafting materials.
|
||||
optional_depends = default, fl_stone, fl_trees, mcl_sounds, hades_sounds, ks_sounds, nodes_nature, fl_topsoil, fl_trees, mcl_core, farming, x_farming, sounds, mtt, player_api, mcl_player, fl_player, stairs
|
||||
optional_depends = default, fl_stone, fl_trees, mcl_sounds, hades_sounds, ks_sounds, nodes_nature, fl_topsoil, fl_trees
|
||||
10
mtt.lua
10
mtt.lua
@@ -1,10 +0,0 @@
|
||||
|
||||
-- emerge a part of the world (basic smoketest)
|
||||
mtt.emerge_area({ x=0, y=0, z=0 }, { x=10, y=10, z=10 })
|
||||
|
||||
-- check nodelist
|
||||
local mtt_nodelist = minetest.settings:get("mtt_nodelist")
|
||||
if mtt_nodelist then
|
||||
-- nodelist specified, check if all the required nodes are present
|
||||
mtt.validate_nodenames(minetest.get_modpath("xcompat") .. "/test/nodelist/" .. mtt_nodelist)
|
||||
end
|
||||
@@ -1,76 +0,0 @@
|
||||
local materials_list = minetest.get_dir_list(xcompat.modpath.."/src/materials", false)
|
||||
local materials = {}
|
||||
for _, material in ipairs(materials_list) do
|
||||
local gameid = material:sub(1, -5)
|
||||
materials[gameid] = dofile(xcompat.modpath.."/src/materials/"..material)
|
||||
end
|
||||
|
||||
local textures_list = minetest.get_dir_list(xcompat.modpath.."/src/textures", false)
|
||||
local textures = {}
|
||||
for _, texture in ipairs(textures_list) do
|
||||
local gameid = texture:sub(1, -5)
|
||||
textures[gameid] = dofile(xcompat.modpath.."/src/textures/"..texture)
|
||||
end
|
||||
|
||||
local sounds_list = minetest.get_dir_list(xcompat.modpath.."/src/sounds", false)
|
||||
local sounds = {}
|
||||
for _, sound in ipairs(sounds_list) do
|
||||
local gameid = sound:sub(1, -5)
|
||||
sounds[gameid] = dofile(xcompat.modpath.."/src/sounds/"..sound)
|
||||
end
|
||||
|
||||
minetest.register_chatcommand("xcompat_test_materials", {
|
||||
description = "Test materials",
|
||||
privs = {server=true},
|
||||
func = function(name, _)
|
||||
local reference_materials = materials["minetest"]
|
||||
|
||||
for gameid, game_materials in pairs(materials) do
|
||||
for material, _ in pairs(reference_materials) do
|
||||
if not game_materials[material] then
|
||||
minetest.chat_send_player(name, "Missing material: "..material.." in game: "..gameid)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
minetest.chat_send_player(name, "Materials test complete")
|
||||
end
|
||||
})
|
||||
|
||||
--WARNING: only handles top level of table currently
|
||||
--TODO: handle nested tables
|
||||
minetest.register_chatcommand("xcompat_test_textures", {
|
||||
description = "Test textures",
|
||||
privs = {server=true},
|
||||
func = function(name, _)
|
||||
local reference_textures = textures["xcompat_agnostic"]
|
||||
|
||||
for gameid, game_textures in pairs(textures) do
|
||||
for texture, _ in pairs(reference_textures) do
|
||||
if not game_textures[texture] then
|
||||
minetest.chat_send_player(name, "Missing texture: "..texture.." in game: "..gameid)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
minetest.chat_send_player(name, "Textures test complete")
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_chatcommand("xcompat_test_sounds", {
|
||||
description = "Test sounds",
|
||||
privs = {server=true},
|
||||
func = function(name, _)
|
||||
local reference_sounds = sounds["xcompat_agnostic"]
|
||||
|
||||
for gameid, game_sounds in pairs(sounds) do
|
||||
for sound, _ in pairs(reference_sounds) do
|
||||
if not game_sounds[sound] then
|
||||
minetest.chat_send_player(name, "Missing sound: "..sound.." in game: "..gameid)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
minetest.chat_send_player(name, "Sounds test complete")
|
||||
end
|
||||
})
|
||||
@@ -1,55 +0,0 @@
|
||||
local functions = {}
|
||||
|
||||
function functions.can_interact_with_node(player, pos)
|
||||
--if we have default, use it
|
||||
if default then return default.can_interact_with_node(player, pos) end
|
||||
|
||||
local owner = minetest.get_meta(pos):get_string("owner") or ""
|
||||
|
||||
--check that we have a valid player
|
||||
if not player or not player:is_player() then return false end
|
||||
--check there privs for compat with areas
|
||||
if minetest.check_player_privs(player, "protection_bypass") then return true end
|
||||
--if a normal player, check if they are the owner
|
||||
if owner == "" or owner == player:get_player_name() then return true end
|
||||
|
||||
return false
|
||||
end
|
||||
|
||||
function functions.sapling_on_place(
|
||||
itemstack, player, pointed_thing, sapling_name, minp_relative, maxp_relative, interval
|
||||
)
|
||||
if default then
|
||||
return default.sapling_on_place(
|
||||
itemstack, player, pointed_thing, sapling_name, minp_relative, maxp_relative, interval
|
||||
)
|
||||
end
|
||||
|
||||
local pos = pointed_thing.above
|
||||
local pname = player and player:get_player_name() or ""
|
||||
local below_node = minetest.get_node_or_nil(pointed_thing.under)
|
||||
|
||||
if below_node and minetest.registered_items[below_node.name] and
|
||||
minetest.registered_items[below_node.name].buildable_to then
|
||||
|
||||
pos = pointed_thing.under
|
||||
end
|
||||
|
||||
--check protection
|
||||
if minetest.is_protected(pos, pname) then
|
||||
minetest.record_protection_violation(pos, pname)
|
||||
return itemstack
|
||||
end
|
||||
|
||||
--actually place sapling
|
||||
minetest.set_node(pos, {name = sapling_name})
|
||||
|
||||
--handle survival
|
||||
if not minetest.is_creative_enabled(pname) then
|
||||
itemstack:take_item()
|
||||
end
|
||||
|
||||
return itemstack
|
||||
end
|
||||
|
||||
return functions
|
||||
@@ -1,33 +0,0 @@
|
||||
local game_alias = {
|
||||
mineclone2 = "mineclonia",
|
||||
}
|
||||
|
||||
local game_modnames = {
|
||||
mineclonia = "mcl_core",
|
||||
farlands_reloaded = "fl_core",
|
||||
minetest = "default",
|
||||
hades = "hades_core",
|
||||
exile = "exile_env_sounds",
|
||||
ksurvive2 = "ks_metals",
|
||||
}
|
||||
|
||||
local gameid = "xcompat_unknown_gameid"
|
||||
|
||||
if type(minetest.get_game_info) == "function" then
|
||||
gameid = minetest.get_game_info().id
|
||||
else
|
||||
for game, modname in pairs(game_modnames) do
|
||||
if minetest.get_modpath(modname) then
|
||||
gameid = game
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--for games that are similar/derviatives of other games
|
||||
if game_alias[gameid] then gameid = game_alias[gameid] end
|
||||
|
||||
--while minetest game derviates are not supported, we can still try to detect them
|
||||
if minetest.get_modpath("default") then gameid = "minetest" end
|
||||
|
||||
return gameid
|
||||
@@ -1,8 +1,242 @@
|
||||
local filename = xcompat.gameid
|
||||
local materials = {
|
||||
dirt = "default:dirt",
|
||||
sand = "default:sand",
|
||||
gravel = "default:gravel",
|
||||
copper_ingot = "default:copper_ingot",
|
||||
steel_ingot = "default:steel_ingot",
|
||||
gold_ingot = "default:gold_ingot",
|
||||
tin_ingot = "default:tin_ingot",
|
||||
mese = "default:mese",
|
||||
mese_crystal = "default:mese_crystal",
|
||||
mese_crystal_fragment = "default:mese_crystal_fragment",
|
||||
torch = "default:torch",
|
||||
diamond = "default:diamond",
|
||||
clay_lump = "default:clay_lump",
|
||||
water_bucket = "bucket:bucket_water",
|
||||
empty_bucket = "bucket:bucket_empty",
|
||||
dye_dark_grey = "dye:dark_grey",
|
||||
dye_black = "dye:black",
|
||||
dye_white = "dye:white",
|
||||
dye_green = "dye:green",
|
||||
dye_red = "dye:red",
|
||||
dye_yellow = "dye:yellow",
|
||||
dye_brown = "dye:brown",
|
||||
dye_blue = "dye:blue",
|
||||
dye_violet = "dye:violet",
|
||||
dye_grey = "dye:grey",
|
||||
dye_dark_green = "dye:dark_green",
|
||||
dye_orange = "dye:orange",
|
||||
dye_pink = "dye:pink",
|
||||
silicon = "mesecons_materials:silicon",
|
||||
string = "farming:string",
|
||||
paper = "default:paper",
|
||||
book = "default:book",
|
||||
iron_lump = "default:iron_lump",
|
||||
wool_grey = "wool:grey",
|
||||
wool_green = "wool:green",
|
||||
wool_dark_green = "wool:dark_green",
|
||||
wool_brown = "wool:brown",
|
||||
wool_black = "wool:black",
|
||||
wool_white = "wool:white",
|
||||
slab_stone = "stairs:slab_stone",
|
||||
slab_wood = "stairs:slab_wood",
|
||||
glass = "default:glass",
|
||||
glass_block = "default:glass",
|
||||
glass_bottle = "vessels:glass_bottle",
|
||||
coal_lump = "default:coal_lump",
|
||||
stone = "default:stone",
|
||||
desert_stone = "default:desert_stone",
|
||||
desert_sand = "default:desert_sand",
|
||||
chest = "default:chest",
|
||||
cobble = "default:cobble",
|
||||
brick = "default:brick",
|
||||
obsidian_glass = "default:obsidian_glass",
|
||||
}
|
||||
|
||||
--if we dont have a materials file for the game, use minetest
|
||||
if not xcompat.utilities.file_exists(xcompat.modpath .. "/src/materials/" .. filename .. ".lua") then
|
||||
filename = "minetest"
|
||||
if minetest.get_modpath("moreores") then
|
||||
materials.silver_ingot = "moreores:silver_ingot"
|
||||
end
|
||||
|
||||
return dofile(xcompat.modpath .. "/src/materials/" .. filename .. ".lua")
|
||||
if minetest.get_modpath("mcl_core") then
|
||||
materials = {
|
||||
dirt = "mcl_core:dirt",
|
||||
sand = "mcl_core:sand",
|
||||
gravel = "mcl_core:gravel",
|
||||
copper_ingot = "mcl_copper:copper_ingot",
|
||||
steel_ingot = "mcl_core:iron_ingot",
|
||||
gold_ingot = "mcl_core:gold_ingot",
|
||||
tin_ingot = "mcl_core:iron_ingot",
|
||||
mese = "mesecons_torch:redstoneblock",
|
||||
mese_crystal = "mesecons:redstone",
|
||||
mese_crystal_fragment = "mcl_core:iron_ingot",
|
||||
torch = "mcl_torches:torch",
|
||||
diamond = "mcl_core:diamond",
|
||||
clay_lump = "default:clay_lump",
|
||||
water_bucket = "mcl_buckets:bucket:bucket_water",
|
||||
empty_bucket = "mcl_buckets:bucket_empty",
|
||||
dye_dark_grey = "mcl_dyes:dark_grey",
|
||||
dye_black = "mcl_dyes:black",
|
||||
dye_white = "mcl_dyes:white",
|
||||
dye_green = "mcl_dyes:green",
|
||||
dye_red = "mcl_dyes:red",
|
||||
dye_yellow = "mcl_dyes:yellow",
|
||||
dye_brown = "mcl_dyes:brown",
|
||||
dye_blue = "mcl_dyes:blue",
|
||||
dye_violet = "mcl_dyes:violet",
|
||||
dye_grey = "mcl_dyes:grey",
|
||||
dye_dark_green = "mcl_dyes:dark_green",
|
||||
dye_orange = "mcl_dyes:orange",
|
||||
dye_pink = "mcl_dyes:pink",
|
||||
silicon = "mcl_core:iron_ingot",
|
||||
string = "mcl_mobitems:string",
|
||||
paper = "mcl_core:paper",
|
||||
book = "mcl_core:book",
|
||||
iron_lump = "mcl_core:stone_with_iron",
|
||||
wool_grey = "mcl_wool:grey",
|
||||
wool_green = "mcl_wool:green",
|
||||
wool_dark_green = "mcl_wool:dark_green",
|
||||
wool_brown = "mcl_wool:brown",
|
||||
wool_black = "mcl_wool:black",
|
||||
wool_white = "mcl_wool:white",
|
||||
slab_stone = "mcl_stairs:slab_stone",
|
||||
slab_wood = "mcl_stairs:slab_wood",
|
||||
glass = "mcl_core:glass",
|
||||
glass_block = "mcl_core:glass",
|
||||
glass_bottle = "mcl_core:glass_bottle",
|
||||
coal_lump = "mcl_core:coal",
|
||||
stone = "mcl_core:stone",
|
||||
desert_stone = "mcl_core:redsandstone",
|
||||
desert_sand = "mcl_core:sand",
|
||||
chest = "mcl_chests:chest",
|
||||
cobble = "mcl_core:cobble",
|
||||
brick = "mcl_core:brick",
|
||||
}
|
||||
elseif minetest.get_modpath("fl_ores") and minetest.get_modpath("fl_stone") then
|
||||
materials = {
|
||||
dirt = "fl_topsoil:dirt",
|
||||
sand = "fl_stone:sand",
|
||||
gravel = "fl_topsoil:gravel",
|
||||
steel_ingot = "fl_ores:iron_ingot",
|
||||
gold_ingot = "fl_ores:gold_ingot",
|
||||
mese = "fl_ores:iron_ingot",
|
||||
mese_crystal = "fl_ores:iron_ingot",
|
||||
mese_crystal_fragment = "fl_ores:iron_ingot",
|
||||
torch = "fl_light_sources:torch",
|
||||
diamond = "fl_ores:diamond",
|
||||
clay_lump = "fl_bricks:clay_lump",
|
||||
water_bucket = "fl_bucket:bucket_water",
|
||||
empty_bucket = "fl_bucket:bucket",
|
||||
dye_dark_grey = "fl_dyes:dark_grey_dye",
|
||||
dye_black = "fl_dyes:black_dye",
|
||||
dye_white = "fl_dyes:white_dye",
|
||||
dye_green = "fl_dyes:green_dye",
|
||||
dye_red = "fl_dyes:red_dye",
|
||||
dye_yellow = "fl_dyes:yellow_dye",
|
||||
dye_brown = "fl_dyes:brown_dye",
|
||||
dye_blue = "fl_dyes:blue_dye",
|
||||
dye_violet = "fl_dyes:violet_dye",
|
||||
dye_grey = "fl_dyes:grey_dye",
|
||||
dye_dark_green = "fl_dyes:dark_green_dye",
|
||||
dye_orange = "fl_dyes:orange_dye",
|
||||
dye_pink = "fl_dyes:pink_dye",
|
||||
copper_ingot = "fl_ores:copper_ingot",
|
||||
tin_ingot = "fl_ores:tin_ingot",
|
||||
silver_ingot = "fl_ores:iron_ingot",
|
||||
silicon = "mesecons_materials:silicon",
|
||||
string = "fl_plantlife:oxeye_daisy",
|
||||
paper = "basic_materials:plastic_sheet",
|
||||
iron_lump = "fl_ores:iron_ore",
|
||||
wool_grey = "",
|
||||
wool_green = "",
|
||||
wool_dark_green = "",
|
||||
wool_brown = "",
|
||||
wool_black = "",
|
||||
wool_white = "",
|
||||
slab_stone = "fl_stone:stone_slab",
|
||||
slab_wood = "fl_trees:apple_plank_slab",
|
||||
glass = "fl_glass:framed_glass",
|
||||
glass_block = "fl_glass:framed_glass",
|
||||
glass_bottle = "fl_bottles:bottle",
|
||||
coal_lump = "fl_ores:coal_ore",
|
||||
stone = "fl_stone:stone",
|
||||
desert_stone = "fl_stone:desert_stone",
|
||||
desert_sand = "fl_stone:desert_sand",
|
||||
chest = "fl_storage:wood_chest",
|
||||
cobble = "fl_stone:stone_rubble",
|
||||
brick = "",
|
||||
}
|
||||
elseif minetest.get_modpath("hades_core") then
|
||||
materials = {
|
||||
sand = "hades_core:fertile_sand",
|
||||
gravel = "hades_core:gravel",
|
||||
copper_ingot = "hades_core:copper_ingot",
|
||||
steel_ingot = "hades_core:steel_ingot",
|
||||
gold_ingot = "hades_core:gold_ingot",
|
||||
tin_ingot = "hades_core:tin_ingot",
|
||||
silver_ingot = "--unknown--",
|
||||
mese = "hades_core:mese",
|
||||
mese_crystal = "hades_core:mese_crystal",
|
||||
mese_crystal_fragment = "hades_core:mese_crystal_fragment",
|
||||
torch = "hades_torches:torch",
|
||||
diamond = "hades_core:diamond",
|
||||
clay_lump = "hades_core:clay_lump",
|
||||
clay_brick = "hades_core:clay_brick",
|
||||
|
||||
--[[
|
||||
Since hades doesnt have buckets or water for the user,
|
||||
using dirt from near water to pull the water out
|
||||
]]
|
||||
water_bucket = "hades_core:dirt",
|
||||
empty_bucket = "hades_core:fertile_sand",
|
||||
dye_dark_grey = "dye:dark_grey",
|
||||
dye_black = "dye:black",
|
||||
dye_white = "dye:white",
|
||||
dye_green = "dye:green",
|
||||
dye_red = "dye:red",
|
||||
dye_yellow = "dye:yellow",
|
||||
dye_brown = "dye:brown",
|
||||
dye_blue = "dye:blue",
|
||||
dye_violet = "dye:violet",
|
||||
dye_grey = "dye:grey",
|
||||
dye_dark_green = "dye:dark_green",
|
||||
dye_orange = "dye:orange",
|
||||
dye_pink = "dye:pink",
|
||||
silicon = "hades_materials:silicon",
|
||||
string = "hades_farming:string",
|
||||
paper = "hades_core:paper",
|
||||
book = "hades_core:book",
|
||||
iron_lump = "hades_core:iron_lump",
|
||||
wool_grey = "wool:grey",
|
||||
wool_green = "wool:green",
|
||||
wool_dark_green = "wool:dark_green",
|
||||
wool_brown = "wool:brown",
|
||||
wool_black = "wool:black",
|
||||
wool_white = "wool:white",
|
||||
slab_stone = "stairs:slab_stone",
|
||||
slab_wood = "stairs:slab_wood",
|
||||
glass = "hades_core:glass",
|
||||
glass_block = "hades_core:glass",
|
||||
glass_bottle = "vessels:glass_bottle",
|
||||
obsidian_glass = "hades_core:obsidian_glass",
|
||||
coal_lump = "hades_core:coal_lump",
|
||||
stone = "hades_core:stone",
|
||||
desert_stone = "hades_core:stone_baked",
|
||||
desert_sand = "hades_core:volcanic_sand",
|
||||
chest = "hades_chests:chest";
|
||||
cobble = "hades_core:cobble",
|
||||
brick = "hades_core:brick"
|
||||
}
|
||||
|
||||
if minetest.get_modpath("hades_bucket") then
|
||||
materials["water_bucket"] = "hades_bucket:bucket_water"
|
||||
materials["empty_bucket"] = "hades_bucket:bucket_empty"
|
||||
end
|
||||
if minetest.get_modpath("hades_extraores") then
|
||||
materials["silver_ingot"] = "hades_extraores:silver_ingot"
|
||||
end
|
||||
if minetest.get_modpath("hades_default") then
|
||||
materials.desert_sand = "hades_default:desert_sand"
|
||||
end
|
||||
end
|
||||
|
||||
return materials
|
||||
@@ -1,94 +0,0 @@
|
||||
local materials = {
|
||||
sand = "fl_stone:sand",
|
||||
sandstone = "fl_stone:sandstone",
|
||||
gravel = "fl_topsoil:gravel",
|
||||
flint = "fl_topsoil:flint",
|
||||
copper_ingot = "fl_ores:copper_ingot",
|
||||
steel_ingot = "fl_ores:iron_ingot",
|
||||
gold_ingot = "fl_ores:gold_ingot",
|
||||
tin_ingot = "fl_ores:tin_ingot",
|
||||
copper_block = "fl_ores:copper_block",
|
||||
steel_block = "fl_ores:iron_block",
|
||||
gold_block = "fl_ores:gold_block",
|
||||
tin_block = "fl_ores:tin_block",
|
||||
axe_steel = "fl_tools:steel_axe",
|
||||
axe_diamond = "fl_tools:diamond_axe",
|
||||
axe_bronze = "fl_tools:bronze_axe",
|
||||
axe_stone = "fl_tools:stone_axe",
|
||||
axe_wood = "fl_tools:wood_axe",
|
||||
pick_steel = "fl_tools:steel_pick",
|
||||
mese = "fl_ores:iron_ingot",
|
||||
mese_crystal = "fl_ores:iron_ingot",
|
||||
mese_crystal_fragment = "fl_ores:iron_ingot",
|
||||
torch = "fl_light_sources:torch",
|
||||
diamond = "fl_ores:diamond",
|
||||
clay_lump = "fl_bricks:clay_lump",
|
||||
water_bucket = "fl_bucket:bucket_water",
|
||||
empty_bucket = "fl_bucket:bucket",
|
||||
dye_dark_grey = "fl_dyes:dark_grey_dye",
|
||||
dye_black = "fl_dyes:black_dye",
|
||||
dye_white = "fl_dyes:white_dye",
|
||||
dye_green = "fl_dyes:green_dye",
|
||||
dye_red = "fl_dyes:red_dye",
|
||||
dye_yellow = "fl_dyes:yellow_dye",
|
||||
dye_brown = "fl_dyes:brown_dye",
|
||||
dye_blue = "fl_dyes:blue_dye",
|
||||
dye_violet = "fl_dyes:violet_dye",
|
||||
dye_grey = "fl_dyes:grey_dye",
|
||||
dye_dark_green = "fl_dyes:dark_green_dye",
|
||||
dye_orange = "fl_dyes:orange_dye",
|
||||
dye_pink = "fl_dyes:pink_dye",
|
||||
dye_cyan = "fl_dyes:cyan_dye",
|
||||
dye_magenta = "fl_dyes:magenta_dye",
|
||||
silver_ingot = "fl_ores:iron_ingot",
|
||||
silicon = "mesecons_materials:silicon",
|
||||
string = "fl_plantlife:oxeye_daisy",
|
||||
paper = "",
|
||||
book = "",
|
||||
iron_lump = "fl_ores:iron_ore",
|
||||
wool_grey = "",
|
||||
wool_green = "",
|
||||
wool_dark_green = "",
|
||||
wool_brown = "",
|
||||
wool_black = "",
|
||||
wool_white = "",
|
||||
slab_stone = "fl_stone:stone_slab",
|
||||
slab_wood = "fl_trees:apple_plank_slab",
|
||||
glass = "fl_glass:framed_glass",
|
||||
glass_block = "fl_glass:framed_glass",
|
||||
glass_bottle = "fl_bottles:bottle",
|
||||
coal_lump = "fl_ores:coal_ore",
|
||||
stone = "fl_stone:stone",
|
||||
desert_stone = "fl_stone:desert_stone",
|
||||
desert_sand = "fl_stone:desert_sand",
|
||||
chest = "fl_storage:wood_chest",
|
||||
cobble = "fl_stone:stone_rubble",
|
||||
brick = "",
|
||||
obsidian_glass = "",
|
||||
water_source = "fl_liquids:water_source",
|
||||
water_flowing = "fl_liquids:water_flowing",
|
||||
dirt = "fl_stone:dirt",
|
||||
dirt_with_grass = "fl_topsoil:dirt_with_grass",
|
||||
apple_leaves = "fl_trees:apple_leaves",
|
||||
apple_log = "fl_trees:apple_trunk",
|
||||
apple_planks = "fl_trees:apple_plank",
|
||||
birch_leaves = "fl_trees:aspen_leaves",
|
||||
birch_log = "fl_trees:aspen_trunk",
|
||||
birch_planks = "fl_trees:aspen_plank",
|
||||
jungle_leaves = "fl_trees:jungletree_leaves",
|
||||
bowl = "",
|
||||
stick = "fl_trees:stick",
|
||||
obsidian = "",
|
||||
}
|
||||
|
||||
if minetest.get_modpath("basic_materials") then
|
||||
materials.paper = "basic_materials:plastic_sheet"
|
||||
end
|
||||
|
||||
if minetest.registered_items["farming:bowl"] then
|
||||
materials.bowl = "farming:bowl"
|
||||
elseif minetest.get_modpath("x_farming") then
|
||||
materials.bowl = "x_farming:bowl"
|
||||
end
|
||||
|
||||
return materials
|
||||
@@ -1,108 +0,0 @@
|
||||
local materials = {
|
||||
sand = "hades_core:fertile_sand",
|
||||
sandstone = "hades_core:sandstone",
|
||||
gravel = "hades_core:gravel",
|
||||
flint = "",
|
||||
copper_ingot = "hades_core:copper_ingot",
|
||||
steel_ingot = "hades_core:steel_ingot",
|
||||
gold_ingot = "hades_core:gold_ingot",
|
||||
tin_ingot = "hades_core:tin_ingot",
|
||||
silver_ingot = "--unknown--",
|
||||
copper_block = "hades_core:copperblock",
|
||||
steel_block = "hades_core:steelblock",
|
||||
gold_block = "hades_core:goldblock",
|
||||
tin_block = "hades_core:tinblock",
|
||||
axe_steel = "hades_core:axe_steel",
|
||||
axe_diamond = "hades_core:axe_diamond",
|
||||
axe_bronze = "hades_core:axe_bronze",
|
||||
axe_stone = "hades_core:axe_stone",
|
||||
axe_wood = "hades_core:axe_wood",
|
||||
pick_steel = "hades_core:pick_steel",
|
||||
mese = "hades_core:mese",
|
||||
mese_crystal = "hades_core:mese_crystal",
|
||||
mese_crystal_fragment = "hades_core:mese_crystal_fragment",
|
||||
torch = "hades_torches:torch",
|
||||
diamond = "hades_core:diamond",
|
||||
clay_lump = "hades_core:clay_lump",
|
||||
clay_brick = "hades_core:clay_brick",
|
||||
|
||||
--[[
|
||||
Since hades doesnt have buckets or water for the user,
|
||||
using dirt from near water to pull the water out
|
||||
]]
|
||||
water_bucket = "hades_core:dirt",
|
||||
empty_bucket = "hades_core:fertile_sand",
|
||||
dye_dark_grey = "dye:dark_grey",
|
||||
dye_black = "dye:black",
|
||||
dye_white = "dye:white",
|
||||
dye_green = "dye:green",
|
||||
dye_red = "dye:red",
|
||||
dye_yellow = "dye:yellow",
|
||||
dye_brown = "dye:brown",
|
||||
dye_blue = "dye:blue",
|
||||
dye_violet = "dye:violet",
|
||||
dye_grey = "dye:grey",
|
||||
dye_dark_green = "dye:dark_green",
|
||||
dye_orange = "dye:orange",
|
||||
dye_pink = "dye:pink",
|
||||
dye_cyan = "dye:cyan",
|
||||
dye_magenta = "dye:magenta",
|
||||
silicon = "hades_materials:silicon",
|
||||
string = "hades_farming:string",
|
||||
paper = "hades_core:paper",
|
||||
book = "hades_core:book",
|
||||
iron_lump = "hades_core:iron_lump",
|
||||
wool_grey = "wool:grey",
|
||||
wool_green = "wool:green",
|
||||
wool_dark_green = "wool:dark_green",
|
||||
wool_brown = "wool:brown",
|
||||
wool_black = "wool:black",
|
||||
wool_white = "wool:white",
|
||||
slab_stone = "stairs:slab_stone",
|
||||
slab_wood = "stairs:slab_wood",
|
||||
glass = "hades_core:glass",
|
||||
glass_block = "hades_core:glass",
|
||||
glass_bottle = "vessels:glass_bottle",
|
||||
obsidian_glass = "hades_core:obsidian_glass",
|
||||
coal_lump = "hades_core:coal_lump",
|
||||
stone = "hades_core:stone",
|
||||
desert_stone = "hades_core:stone_baked",
|
||||
desert_sand = "hades_core:volcanic_sand",
|
||||
chest = "hades_chests:chest";
|
||||
cobble = "hades_core:cobble",
|
||||
brick = "hades_core:brick",
|
||||
water_source = "hades_core:water_source",
|
||||
water_flowing = "hades_core:water_flowing",
|
||||
dirt = "hades_core:dirt",
|
||||
dirt_with_grass = "hades_core:dirt_with_grass",
|
||||
apple_leaves = "hades_trees:leaves",
|
||||
apple_log = "hades_trees:tree",
|
||||
apple_planks = "hades_trees:wood",
|
||||
birch_leaves = "hades_core:birch_leaves",
|
||||
birch_log = "hades_trees:birch_tree",
|
||||
birch_planks = "hades_trees:cream_wood",
|
||||
jungle_leaves = "hades_trees:jungle_leaves",
|
||||
--hades has no bowl but you get plate on eat so makes most sense?
|
||||
bowl = "hades_food:plate",
|
||||
stick = "hades_core:stick",
|
||||
obsidian = "hades_core:obsidian",
|
||||
}
|
||||
|
||||
if minetest.get_modpath("hades_bucket") then
|
||||
materials["water_bucket"] = "hades_bucket:bucket_water"
|
||||
materials["empty_bucket"] = "hades_bucket:bucket_empty"
|
||||
end
|
||||
if minetest.get_modpath("hades_extraores") then
|
||||
materials["silver_ingot"] = "hades_extraores:silver_ingot"
|
||||
materials["aluminum_ingot"] = "hades_extraores:aluminum_ingot"
|
||||
end
|
||||
if minetest.get_modpath("hades_default") then
|
||||
materials.desert_sand = "hades_default:desert_sand"
|
||||
end
|
||||
if minetest.get_modpath("hades_technic") then
|
||||
materials.lead_ingot = "hades_technic:lead_ingot"
|
||||
materials.carbon_steel_ingot = "hades_technic:carbon_steel_ingot"
|
||||
materials.stainless_steel_ingot = "hades_technic:stainless_steel_ingot"
|
||||
end
|
||||
|
||||
return materials
|
||||
@@ -1,118 +0,0 @@
|
||||
--note this file handles mineclonia, mineclone2, and its rename voxelibre
|
||||
|
||||
local mcl_dyes = minetest.get_modpath("mcl_dyes")
|
||||
local mcl_dyes_name = mcl_dyes and "mcl_dyes" or "mcl_dye"
|
||||
|
||||
local materials = {
|
||||
sand = "mcl_core:sand",
|
||||
sandstone = "mcl_core:sandstone",
|
||||
gravel = "mcl_core:gravel",
|
||||
flint = "mcl_core:flint",
|
||||
copper_ingot = "mcl_copper:copper_ingot",
|
||||
steel_ingot = "mcl_core:iron_ingot",
|
||||
gold_ingot = "mcl_core:gold_ingot",
|
||||
tin_ingot = "mcl_core:iron_ingot",
|
||||
copper_block = "mcl_copper:block",
|
||||
steel_block = "mcl_core:ironblock",
|
||||
gold_block = "mcl_core:goldblock",
|
||||
tin_block = "mcl_core:ironblock",
|
||||
axe_steel = "mcl_core:axe_steel",
|
||||
axe_diamond = "mcl_core:axe_diamond",
|
||||
axe_bronze = "mcl_core:axe_bronze",
|
||||
axe_stone = "mcl_core:axe_stone",
|
||||
axe_wood = "mcl_core:axe_wood",
|
||||
pick_steel = "mcl_core:pick_steel",
|
||||
torch = "mcl_torches:torch",
|
||||
diamond = "mcl_core:diamond",
|
||||
clay_lump = "mcl_core:clay_lump",
|
||||
water_bucket = "mcl_buckets:bucket_water",
|
||||
empty_bucket = "mcl_buckets:bucket_empty",
|
||||
dye_dark_grey = mcl_dyes_name .. ":dark_grey",
|
||||
dye_black = mcl_dyes_name .. ":black",
|
||||
dye_white = mcl_dyes_name .. ":white",
|
||||
dye_green = mcl_dyes_name .. ":green",
|
||||
dye_red = mcl_dyes_name .. ":red",
|
||||
dye_yellow = mcl_dyes_name .. ":yellow",
|
||||
dye_brown = mcl_dyes_name .. ":brown",
|
||||
dye_blue = mcl_dyes_name .. ":blue",
|
||||
dye_violet = mcl_dyes_name .. ":violet",
|
||||
dye_grey = mcl_dyes_name .. ":grey",
|
||||
dye_dark_green = mcl_dyes_name .. ":dark_green",
|
||||
dye_orange = mcl_dyes_name .. ":orange",
|
||||
dye_pink = mcl_dyes_name .. ":pink",
|
||||
dye_cyan = mcl_dyes_name .. ":cyan",
|
||||
dye_magenta = mcl_dyes_name .. ":magenta",
|
||||
silicon = "mcl_core:iron_ingot",
|
||||
string = "mcl_mobitems:string",
|
||||
paper = "mcl_core:paper",
|
||||
book = "mcl_books:book",
|
||||
iron_lump = "mcl_raw_ores:raw_iron",
|
||||
wool_grey = "mcl_wool:grey",
|
||||
wool_green = "mcl_wool:green",
|
||||
wool_dark_green = "mcl_wool:dark_green",
|
||||
wool_brown = "mcl_wool:brown",
|
||||
wool_black = "mcl_wool:black",
|
||||
wool_white = "mcl_wool:white",
|
||||
slab_stone = "mcl_stairs:slab_stone",
|
||||
slab_wood = "mcl_stairs:slab_wood",
|
||||
glass = "mcl_core:glass",
|
||||
glass_block = "mcl_core:glass",
|
||||
glass_bottle = "mcl_potions:glass_bottle",
|
||||
coal_lump = "mcl_core:coal_lump",
|
||||
stone = "mcl_core:stone",
|
||||
desert_stone = "mcl_core:redsandstone",
|
||||
desert_sand = "mcl_core:sand",
|
||||
chest = "mcl_chests:chest",
|
||||
cobble = "mcl_core:cobble",
|
||||
brick = "mcl_core:brick",
|
||||
obsidian_glass = "",
|
||||
water_source = "mcl_core:water_source",
|
||||
water_flowing = "mcl_core:water_flowing",
|
||||
dirt = "mcl_core:dirt",
|
||||
dirt_with_grass = "mcl_core:dirt_with_grass",
|
||||
bowl = "mcl_core:bowl",
|
||||
stick = "mcl_core:stick",
|
||||
obsidian = "mcl_core:obsidian",
|
||||
}
|
||||
|
||||
if minetest.get_modpath("mcl_redstone") then
|
||||
materials.mese = "mcl_redstone_torch:redstoneblock"
|
||||
materials.mese_crystal = "mcl_redstone:redstone"
|
||||
materials.mese_crystal_fragment = "mcl_core:iron_ingot"
|
||||
else
|
||||
materials.mese = "mesecons_torch:redstoneblock"
|
||||
materials.mese_crystal = "mesecons:redstone"
|
||||
materials.mese_crystal_fragment = "mcl_core:iron_ingot"
|
||||
end
|
||||
|
||||
if minetest.get_modpath("mcl_trees") then
|
||||
materials.apple_leaves = "mcl_trees:leaves_oak"
|
||||
materials.apple_log = "mcl_trees:tree_oak"
|
||||
materials.apple_planks = "mcl_trees:wood_oak"
|
||||
materials.birch_leaves = "mcl_trees:leaves_birch"
|
||||
materials.birch_log = "mcl_trees:tree_birch"
|
||||
materials.birch_planks = "mcl_trees:wood_birch"
|
||||
materials.jungle_leaves = "mcl_trees:leaves_jungle"
|
||||
else
|
||||
materials.apple_leaves = "mcl_core:leaves"
|
||||
materials.apple_log = "mcl_core:tree"
|
||||
materials.apple_planks = "mcl_core:wood"
|
||||
materials.birch_leaves = "mcl_core:birchleaves"
|
||||
materials.birch_log = "mcl_core:birchtree"
|
||||
materials.birch_planks = "mcl_core:birchwood"
|
||||
materials.jungle_leaves = "mcl_core:jungleleaves"
|
||||
end
|
||||
|
||||
if minetest.get_modpath("moreores") then
|
||||
materials.tin_ingot = "moreores:tin_ingot"
|
||||
materials.tin_block = "moreores:tin_block"
|
||||
materials.silver_ingot = "moreores:silver_ingot"
|
||||
end
|
||||
|
||||
if minetest.get_modpath("technic") then
|
||||
materials.lead_ingot = "technic:lead_ingot"
|
||||
materials.carbon_steel_ingot = "technic:carbon_steel_ingot"
|
||||
materials.stainless_steel_ingot = "technic:stainless_steel_ingot"
|
||||
end
|
||||
|
||||
return materials
|
||||
@@ -1,107 +0,0 @@
|
||||
local materials = {
|
||||
sand = "default:sand",
|
||||
sandstone = "default:sandstone",
|
||||
gravel = "default:gravel",
|
||||
flint = "default:flint",
|
||||
copper_ingot = "default:copper_ingot",
|
||||
steel_ingot = "default:steel_ingot",
|
||||
gold_ingot = "default:gold_ingot",
|
||||
tin_ingot = "default:tin_ingot",
|
||||
copper_block = "default:copperblock",
|
||||
steel_block = "default:steelblock",
|
||||
gold_block = "default:goldblock",
|
||||
tin_block = "default:tinblock",
|
||||
axe_steel = "default:axe_steel",
|
||||
axe_diamond = "default:axe_diamond",
|
||||
axe_bronze = "default:axe_bronze",
|
||||
axe_stone = "default:axe_stone",
|
||||
axe_wood = "default:axe_wood",
|
||||
pick_steel = "default:pick_steel",
|
||||
mese = "default:mese",
|
||||
mese_crystal = "default:mese_crystal",
|
||||
mese_crystal_fragment = "default:mese_crystal_fragment",
|
||||
torch = "default:torch",
|
||||
diamond = "default:diamond",
|
||||
clay_lump = "default:clay_lump",
|
||||
water_bucket = "bucket:bucket_water",
|
||||
empty_bucket = "bucket:bucket_empty",
|
||||
dye_dark_grey = "dye:dark_grey",
|
||||
dye_black = "dye:black",
|
||||
dye_white = "dye:white",
|
||||
dye_green = "dye:green",
|
||||
dye_red = "dye:red",
|
||||
dye_yellow = "dye:yellow",
|
||||
dye_brown = "dye:brown",
|
||||
dye_blue = "dye:blue",
|
||||
dye_violet = "dye:violet",
|
||||
dye_grey = "dye:grey",
|
||||
dye_dark_green = "dye:dark_green",
|
||||
dye_orange = "dye:orange",
|
||||
dye_pink = "dye:pink",
|
||||
dye_cyan = "dye:cyan",
|
||||
dye_magenta = "dye:magenta",
|
||||
silicon = "mesecons_materials:silicon",
|
||||
string = "farming:string",
|
||||
paper = "default:paper",
|
||||
book = "default:book",
|
||||
iron_lump = "default:iron_lump",
|
||||
wool_grey = "wool:grey",
|
||||
wool_green = "wool:green",
|
||||
wool_dark_green = "wool:dark_green",
|
||||
wool_brown = "wool:brown",
|
||||
wool_black = "wool:black",
|
||||
wool_white = "wool:white",
|
||||
slab_stone = "stairs:slab_stone",
|
||||
slab_wood = "stairs:slab_wood",
|
||||
glass = "default:glass",
|
||||
glass_block = "default:glass",
|
||||
glass_bottle = "vessels:glass_bottle",
|
||||
coal_lump = "default:coal_lump",
|
||||
stone = "default:stone",
|
||||
desert_stone = "default:desert_stone",
|
||||
desert_sand = "default:desert_sand",
|
||||
chest = "default:chest",
|
||||
cobble = "default:cobble",
|
||||
brick = "default:brick",
|
||||
obsidian_glass = "default:obsidian_glass",
|
||||
water_source = "default:water_source",
|
||||
water_flowing = "default:water_flowing",
|
||||
dirt = "default:dirt",
|
||||
dirt_with_grass = "default:dirt_with_grass",
|
||||
apple_leaves = "default:leaves",
|
||||
apple_log = "default:tree",
|
||||
apple_planks = "default:wood",
|
||||
birch_leaves = "default:aspen_leaves",
|
||||
birch_log = "default:aspen_tree",
|
||||
birch_planks = "default:aspen_wood",
|
||||
jungle_leaves = "default:jungleleaves",
|
||||
bowl = "",
|
||||
stick = "default:stick",
|
||||
obsidian = "default:obsidian",
|
||||
}
|
||||
|
||||
if minetest.registered_items["farming:bowl"] then
|
||||
materials.bowl = "farming:bowl"
|
||||
elseif minetest.get_modpath("x_farming") then
|
||||
materials.bowl = "x_farming:bowl"
|
||||
end
|
||||
|
||||
if minetest.get_modpath("moreores") then
|
||||
materials.silver_ingot = "moreores:silver_ingot"
|
||||
end
|
||||
|
||||
if minetest.get_modpath("technic") then
|
||||
materials.lead_ingot = "technic:lead_ingot"
|
||||
materials.carbon_steel_ingot = "technic:carbon_steel_ingot"
|
||||
materials.stainless_steel_ingot = "technic:stainless_steel_ingot"
|
||||
end
|
||||
|
||||
if minetest.get_modpath("aloz") then
|
||||
materials.aluminum_ingot = "aloz:aluminum_ingot"
|
||||
end
|
||||
|
||||
if minetest.get_modpath("techage") then
|
||||
materials.aluminum_ingot = "techage:aluminum"
|
||||
end
|
||||
|
||||
return materials
|
||||
@@ -1,8 +0,0 @@
|
||||
local filename = xcompat.gameid
|
||||
|
||||
--if we dont have a player file for the game, use minetest
|
||||
if not xcompat.utilities.file_exists(xcompat.modpath .. "/src/player/" .. filename .. ".lua") then
|
||||
filename = "xcompat_agnostic"
|
||||
end
|
||||
|
||||
return dofile(xcompat.modpath .. "/src/player/" .. filename .. ".lua")
|
||||
@@ -1,51 +0,0 @@
|
||||
local papi = {}
|
||||
|
||||
local models = {}
|
||||
function papi.register_model(name, def)
|
||||
models[name] = def
|
||||
end
|
||||
|
||||
function papi.set_model(player, model_name)
|
||||
local model = models[model_name]
|
||||
|
||||
if not model then return end
|
||||
|
||||
player:set_properties({
|
||||
mesh = model_name,
|
||||
textures = model.textures,
|
||||
visual = "mesh",
|
||||
visual_size = model.visual_size,
|
||||
stepheight = model.stepheight
|
||||
})
|
||||
end
|
||||
|
||||
function papi.get_animation(_)
|
||||
--stub to keep from crashing
|
||||
end
|
||||
|
||||
function papi.get_textures(player)
|
||||
return player:get_properties().textures
|
||||
end
|
||||
|
||||
function papi.set_textures(player, textures)
|
||||
player:set_properties({textures = textures})
|
||||
end
|
||||
|
||||
function papi.set_animation(player, anim_name, speed, loop)
|
||||
player:set_animation(fl_player.animations[anim_name], speed, 0, loop)
|
||||
end
|
||||
|
||||
local metatable = {
|
||||
__index = function (_, key)
|
||||
return fl_player.ignore[key]
|
||||
end,
|
||||
__newindex = function (_, key, value)
|
||||
rawset(fl_player.ignore, key, value)
|
||||
end
|
||||
}
|
||||
|
||||
papi.player_attached = {}
|
||||
|
||||
setmetatable(papi.player_attached, metatable)
|
||||
|
||||
return papi
|
||||
@@ -1,40 +0,0 @@
|
||||
local papi = {}
|
||||
|
||||
function papi.register_model(name, def)
|
||||
return mcl_player.player_register_model(name, def)
|
||||
end
|
||||
|
||||
function papi.set_model(player, model)
|
||||
return mcl_player.player_set_model(player, model)
|
||||
end
|
||||
|
||||
function papi.get_animation(player)
|
||||
return mcl_player.player_get_animation(player)
|
||||
end
|
||||
|
||||
function papi.get_textures(player)
|
||||
return player:get_properties().textures
|
||||
end
|
||||
|
||||
function papi.set_textures(player, textures)
|
||||
player:set_properties({textures = textures})
|
||||
end
|
||||
|
||||
function papi.set_animation(player, anim_name, speed, _)
|
||||
return mcl_player.player_set_animation(player, anim_name, speed)
|
||||
end
|
||||
|
||||
local metatable = {
|
||||
__index = function (_, key)
|
||||
return mcl_player.player_attached[key]
|
||||
end,
|
||||
__newindex = function (_, key, value)
|
||||
rawset(mcl_player.player_attached, key, value)
|
||||
end
|
||||
}
|
||||
|
||||
papi.player_attached = {}
|
||||
|
||||
setmetatable(papi.player_attached, metatable)
|
||||
|
||||
return papi
|
||||
@@ -1,41 +0,0 @@
|
||||
local papi = {}
|
||||
|
||||
function papi.register_model(name, def)
|
||||
return player_api.register_model(name, def)
|
||||
end
|
||||
|
||||
function papi.set_model(player, model)
|
||||
return player_api.set_model(player, model)
|
||||
end
|
||||
|
||||
function papi.get_animation(player)
|
||||
return player_api.get_animation(player)
|
||||
end
|
||||
|
||||
function papi.get_textures(player)
|
||||
return player_api.get_textures(player)
|
||||
end
|
||||
|
||||
function papi.set_textures(player, texture)
|
||||
return player_api.set_textures(player, texture)
|
||||
end
|
||||
|
||||
function papi.set_animation(player, anim_name, speed, loop)
|
||||
return player_api.set_animation(player, anim_name, speed, loop)
|
||||
end
|
||||
|
||||
|
||||
local metatable = {
|
||||
__index = function (_, key)
|
||||
return player_api.player_attached[key]
|
||||
end,
|
||||
__newindex = function (_, key, value)
|
||||
rawset(player_api.player_attached, key, value)
|
||||
end
|
||||
}
|
||||
|
||||
papi.player_attached = {}
|
||||
|
||||
setmetatable(papi.player_attached, metatable)
|
||||
|
||||
return papi
|
||||
@@ -1,41 +0,0 @@
|
||||
local papi = {}
|
||||
|
||||
local models = {}
|
||||
function papi.register_model(name, def)
|
||||
models[name] = def
|
||||
end
|
||||
|
||||
function papi.set_model(player, model_name)
|
||||
local model = models[model_name]
|
||||
|
||||
if not model then return end
|
||||
|
||||
player:set_properties({
|
||||
mesh = model_name,
|
||||
textures = model.textures,
|
||||
visual = "mesh",
|
||||
visual_size = model.visual_size,
|
||||
stepheight = model.stepheight
|
||||
})
|
||||
end
|
||||
|
||||
function papi.get_animation(_)
|
||||
--stub to keep from crashing
|
||||
end
|
||||
|
||||
function papi.get_textures(player)
|
||||
return player:get_properties().textures
|
||||
end
|
||||
|
||||
function papi.set_textures(player, textures)
|
||||
player:set_properties({textures = textures})
|
||||
end
|
||||
|
||||
function papi.set_animation(_, _, _, _)
|
||||
--stub to keep from crashing
|
||||
end
|
||||
|
||||
--nothing to do here as we have no globalstep .....that we know about anyways
|
||||
papi.player_attached = {}
|
||||
|
||||
return papi
|
||||
299
src/sounds.lua
299
src/sounds.lua
@@ -1,8 +1,297 @@
|
||||
local filename = xcompat.gameid
|
||||
local sound_api = {}
|
||||
|
||||
--if we dont have a materials file for the game, use minetest
|
||||
if not xcompat.utilities.file_exists(xcompat.modpath .. "/src/sounds/" .. filename .. ".lua") then
|
||||
filename = "xcompat_agnostic"
|
||||
--convert some games for api usage
|
||||
|
||||
--ks_sounds conversion
|
||||
--currently loggy and bedrock are ignored
|
||||
local ks = {}
|
||||
|
||||
function ks.node_sound_defaults(table)
|
||||
table = table or {}
|
||||
table.footstep = table.footstep or ks_sounds.generalnode_sounds.footstep
|
||||
table.dug = table.dug or ks_sounds.generalnode_sounds.dug
|
||||
table.dig = table.dig or ks_sounds.generalnode_sounds.dig
|
||||
table.place = table.place or ks_sounds.generalnode_sounds.place
|
||||
return table
|
||||
end
|
||||
|
||||
return dofile(xcompat.modpath .. "/src/sounds/" .. filename .. ".lua")
|
||||
function ks.node_sound_wood_defaults(table)
|
||||
table = table or {}
|
||||
table.footstep = table.footstep or ks_sounds.woodennode_sounds.footstep
|
||||
table.dug = table.dug or ks_sounds.woodennode_sounds.dug
|
||||
table.dig = table.dig or ks_sounds.woodennode_sounds.dig
|
||||
table.place = table.place or ks_sounds.woodennode_sounds.place
|
||||
ks.node_sound_defaults(table)
|
||||
return table
|
||||
end
|
||||
|
||||
function ks.node_sound_leaves_defaults(table)
|
||||
table = table or {}
|
||||
table.footstep = table.footstep or ks_sounds.leafynode_sounds.footstep
|
||||
table.dug = table.dug or ks_sounds.leafynode_sounds.dug
|
||||
table.dig = table.dig or ks_sounds.leafynode_sounds.dig
|
||||
table.place = table.place or ks_sounds.leafynode_sounds.place
|
||||
ks.node_sound_defaults(table)
|
||||
return table
|
||||
end
|
||||
|
||||
function ks.node_sound_snow_defaults(table)
|
||||
table = table or {}
|
||||
table.footstep = table.footstep or ks_sounds.snowynode_sounds.footstep
|
||||
table.dug = table.dug or ks_sounds.snowynode_sounds.dug
|
||||
table.dig = table.dig or ks_sounds.snowynode_sounds.dig
|
||||
table.place = table.place or ks_sounds.snowynode_sounds.place
|
||||
ks.node_sound_defaults(table)
|
||||
return table
|
||||
end
|
||||
|
||||
|
||||
--api
|
||||
function sound_api.node_sound_default(table)
|
||||
if minetest.get_modpath("default") then
|
||||
return default.node_sound_defaults(table)
|
||||
elseif minetest.get_modpath("mcl_sounds") then
|
||||
return mcl_sounds.node_sound_defaults(table)
|
||||
elseif minetest.get_modpath("ks_sounds") then
|
||||
return ks.node_sound_default(table)
|
||||
elseif minetest.get_modpath("nodes_nature") then
|
||||
return nodes_nature.node_sound_default(table)
|
||||
elseif minetest.get_modpath("hades_sounds") then
|
||||
return hades_sounds.node_sound_defaults(table)
|
||||
elseif minetest.get_modpath("rp_sounds") then
|
||||
return rp_sounds.node_sound_defaults(table)
|
||||
else
|
||||
return table
|
||||
end
|
||||
end
|
||||
|
||||
function sound_api.node_sound_stone_defaults(table)
|
||||
if minetest.get_modpath("default") then
|
||||
return default.node_sound_stone_defaults(table)
|
||||
elseif minetest.get_modpath("mcl_sounds") then
|
||||
return mcl_sounds.node_sound_stone_defaults(table)
|
||||
elseif minetest.get_modpath("nodes_nature") then
|
||||
return nodes_nature.node_sound_stone_defaults(table)
|
||||
elseif minetest.get_modpath("fl_stone") then
|
||||
return fl_stone.sounds.stone(table)
|
||||
elseif minetest.get_modpath("hades_sounds") then
|
||||
return hades_sounds.node_sound_stone_defaults(table)
|
||||
elseif minetest.get_modpath("rp_sounds") then
|
||||
return rp_sounds.node_sound_stone_defaults(table)
|
||||
else
|
||||
return table
|
||||
end
|
||||
end
|
||||
|
||||
function sound_api.node_sound_dirt_defaults(table)
|
||||
if minetest.get_modpath("default") then
|
||||
return default.node_sound_dirt_defaults(table)
|
||||
elseif minetest.get_modpath("mcl_sounds") then
|
||||
return mcl_sounds.node_sound_dirt_defaults(table)
|
||||
elseif minetest.get_modpath("nodes_nature") then
|
||||
return nodes_nature.node_sound_dirt_defaults(table)
|
||||
--s/dirt/grass
|
||||
elseif minetest.get_modpath("fl_topsoil") then
|
||||
return fl_topsoil.sounds.grass(table)
|
||||
elseif minetest.get_modpath("hades_sounds") then
|
||||
return hades_sounds.node_sound_dirt_defaults(table)
|
||||
elseif minetest.get_modpath("rp_sounds") then
|
||||
return rp_sounds.node_sound_dirt_defaults(table)
|
||||
else
|
||||
return table
|
||||
end
|
||||
end
|
||||
|
||||
--return dirt as some games use dirt vs grass
|
||||
function sound_api.node_sound_grass_defaults(table)
|
||||
if minetest.get_modpath("hades_sounds") then
|
||||
return hades_sounds.node_sound_grass_defaults(table)
|
||||
else
|
||||
return sound_api.node_sound_dirt_defaults(table)
|
||||
end
|
||||
end
|
||||
|
||||
function sound_api.node_sound_sand_defaults(table)
|
||||
if minetest.get_modpath("default") then
|
||||
return default.node_sound_sand_defaults(table)
|
||||
elseif minetest.get_modpath("mcl_sounds") then
|
||||
return mcl_sounds.node_sound_sand_defaults(table)
|
||||
elseif minetest.get_modpath("nodes_nature") then
|
||||
return nodes_nature.node_sound_sand_defaults(table)
|
||||
elseif minetest.get_modpath("fl_stone") then
|
||||
return fl_stone.sounds.sand(table)
|
||||
elseif minetest.get_modpath("hades_sounds") then
|
||||
return hades_sounds.node_sound_sand_defaults(table)
|
||||
elseif minetest.get_modpath("rp_sounds") then
|
||||
return rp_sounds.node_sound_sand_defaults(table)
|
||||
else
|
||||
return table
|
||||
end
|
||||
end
|
||||
|
||||
function sound_api.node_sound_gravel_defaults(table)
|
||||
if minetest.get_modpath("default") then
|
||||
return default.node_sound_gravel_defaults(table)
|
||||
--s/gravel/sand
|
||||
elseif minetest.get_modpath("mcl_sounds") then
|
||||
return mcl_sounds.node_sound_sand_defaults(table)
|
||||
elseif minetest.get_modpath("nodes_nature") then
|
||||
return nodes_nature.node_sound_gravel_defaults(table)
|
||||
elseif minetest.get_modpath("fl_topsoil") then
|
||||
return fl_topsoil.sounds.gravel(table)
|
||||
elseif minetest.get_modpath("hades_sounds") then
|
||||
return hades_sounds.node_sound_gravel_defaults(table)
|
||||
else
|
||||
return table
|
||||
end
|
||||
end
|
||||
|
||||
function sound_api.node_sound_wood_defaults(table)
|
||||
if minetest.get_modpath("default") then
|
||||
return default.node_sound_wood_defaults(table)
|
||||
elseif minetest.get_modpath("mcl_sounds") then
|
||||
return mcl_sounds.node_sound_wood_defaults(table)
|
||||
elseif minetest.get_modpath("ks_sounds") then
|
||||
return ks.node_sound_wood_default(table)
|
||||
elseif minetest.get_modpath("nodes_nature") then
|
||||
return nodes_nature.node_sound_wood_defaults(table)
|
||||
elseif minetest.get_modpath("fl_trees") then
|
||||
return fl_trees.sounds.wood(table)
|
||||
elseif minetest.get_modpath("hades_sounds") then
|
||||
return hades_sounds.node_sound_wood_defaults(table)
|
||||
elseif minetest.get_modpath("rp_sounds") then
|
||||
return rp_sounds.node_sound_wood_defaults(table)
|
||||
else
|
||||
return table
|
||||
end
|
||||
end
|
||||
|
||||
function sound_api.node_sound_leaves_defaults(table)
|
||||
if minetest.get_modpath("default") then
|
||||
return default.node_sound_leaves_defaults(table)
|
||||
elseif minetest.get_modpath("mcl_sounds") then
|
||||
return mcl_sounds.node_sound_leaves_defaults(table)
|
||||
elseif minetest.get_modpath("ks_sounds") then
|
||||
return ks.node_sound_leaves_default(table)
|
||||
elseif minetest.get_modpath("nodes_nature") then
|
||||
return nodes_nature.node_sound_leaves_defaults(table)
|
||||
elseif minetest.get_modpath("hades_sounds") then
|
||||
return hades_sounds.node_sound_leaves_defaults(table)
|
||||
elseif minetest.get_modpath("rp_sounds") then
|
||||
return rp_sounds.node_sound_leaves_defaults(table)
|
||||
else
|
||||
return table
|
||||
end
|
||||
end
|
||||
|
||||
function sound_api.node_sound_glass_defaults(table)
|
||||
if minetest.get_modpath("default") then
|
||||
return default.node_sound_glass_defaults(table)
|
||||
elseif minetest.get_modpath("mcl_sounds") then
|
||||
return mcl_sounds.node_sound_glass_defaults(table)
|
||||
elseif minetest.get_modpath("nodes_nature") then
|
||||
return nodes_nature.node_sound_glass_defaults(table)
|
||||
elseif minetest.get_modpath("hades_sounds") then
|
||||
return hades_sounds.node_sound_glass_defaults(table)
|
||||
elseif minetest.get_modpath("rp_sounds") then
|
||||
return rp_sounds.node_sound_glass_defaults(table)
|
||||
else
|
||||
return table
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
function sound_api.node_sound_ice_defaults(table)
|
||||
if minetest.get_modpath("default") then
|
||||
return default.node_sound_ice_defaults(table)
|
||||
--s/ice/glass
|
||||
elseif minetest.get_modpath("mcl_sounds") then
|
||||
return mcl_sounds.node_sound_glass_defaults(table)
|
||||
--s/ice/glass
|
||||
elseif minetest.get_modpath("nodes_nature") then
|
||||
return nodes_nature.node_sound_glass_defaults(table)
|
||||
--s/ice/glass
|
||||
elseif minetest.get_modpath("hades_sounds") then
|
||||
return hades_sounds.node_sound_glass_defaults(table)
|
||||
else
|
||||
return table
|
||||
end
|
||||
end
|
||||
|
||||
function sound_api.node_sound_metal_defaults(table)
|
||||
if minetest.get_modpath("default") then
|
||||
return default.node_sound_metal_defaults(table)
|
||||
elseif minetest.get_modpath("mcl_sounds") then
|
||||
return mcl_sounds.node_sound_metal_defaults(table)
|
||||
elseif minetest.get_modpath("hades_sounds") then
|
||||
return hades_sounds.node_sound_metal_defaults(table)
|
||||
else
|
||||
return table
|
||||
end
|
||||
end
|
||||
|
||||
function sound_api.node_sound_water_defaults(table)
|
||||
if minetest.get_modpath("default") then
|
||||
return default.node_sound_water_defaults(table)
|
||||
elseif minetest.get_modpath("mcl_sounds") then
|
||||
return mcl_sounds.node_sound_water_defaults(table)
|
||||
elseif minetest.get_modpath("nodes_nature") then
|
||||
return nodes_nature.node_sound_water_defaults(table)
|
||||
elseif minetest.get_modpath("hades_sounds") then
|
||||
return hades_sounds.node_sound_water_defaults(table)
|
||||
elseif minetest.get_modpath("rp_sounds") then
|
||||
return rp_sounds.node_sound_water_defaults(table)
|
||||
else
|
||||
return table
|
||||
end
|
||||
end
|
||||
|
||||
function sound_api.node_sound_lava_defaults(table)
|
||||
--s/lava/water
|
||||
if minetest.get_modpath("default") then
|
||||
return default.node_sound_water_defaults(table)
|
||||
elseif minetest.get_modpath("mcl_sounds") then
|
||||
return mcl_sounds.node_sound_lava_defaults(table)
|
||||
--s/lava/water
|
||||
elseif minetest.get_modpath("nodes_nature") then
|
||||
return nodes_nature.node_sound_water_defaults(table)
|
||||
elseif minetest.get_modpath("hades_sounds") then
|
||||
return hades_sounds.node_sound_lava_defaults(table)
|
||||
--s/lava/water
|
||||
elseif minetest.get_modpath("rp_sounds") then
|
||||
return rp_sounds.node_sound_water_defaults(table)
|
||||
else
|
||||
return table
|
||||
end
|
||||
end
|
||||
|
||||
function sound_api.node_sound_snow_defaults(table)
|
||||
if minetest.get_modpath("default") then
|
||||
return default.node_sound_snow_defaults(table)
|
||||
elseif minetest.get_modpath("mcl_sounds") then
|
||||
return mcl_sounds.node_sound_snow_defaults(table)
|
||||
elseif minetest.get_modpath("ks_sounds") then
|
||||
return ks.node_sound_snow_default(table)
|
||||
elseif minetest.get_modpath("nodes_nature") then
|
||||
return nodes_nature.node_sound_snow_defaults(table)
|
||||
elseif minetest.get_modpath("fl_topsoil") then
|
||||
return fl_topsoil.sounds.snow(table)
|
||||
elseif minetest.get_modpath("rp_sounds") then
|
||||
return rp_sounds.node_sound_snow_defaults(table)
|
||||
else
|
||||
return table
|
||||
end
|
||||
end
|
||||
|
||||
function sound_api.node_sound_wool_defaults(table)
|
||||
--s/wool/default
|
||||
if minetest.get_modpath("default") then
|
||||
return default.node_sound_defaults(table)
|
||||
elseif minetest.get_modpath("mcl_sounds") then
|
||||
return mcl_sounds.node_sound_wool_defaults(table)
|
||||
else
|
||||
return table
|
||||
end
|
||||
end
|
||||
|
||||
return sound_api
|
||||
@@ -1,67 +0,0 @@
|
||||
local sound_api = {}
|
||||
|
||||
function sound_api.node_sound_default(soundtable)
|
||||
return nodes_nature.node_sound_default(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_stone_defaults(soundtable)
|
||||
return nodes_nature.node_sound_stone_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_dirt_defaults(soundtable)
|
||||
return nodes_nature.node_sound_dirt_defaults(soundtable)
|
||||
end
|
||||
|
||||
--return dirt as some games use dirt vs grass
|
||||
function sound_api.node_sound_grass_defaults(soundtable)
|
||||
return sound_api.node_sound_dirt_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_sand_defaults(soundtable)
|
||||
return nodes_nature.node_sound_sand_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_gravel_defaults(soundtable)
|
||||
return nodes_nature.node_sound_gravel_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_wood_defaults(soundtable)
|
||||
return nodes_nature.node_sound_wood_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_leaves_defaults(soundtable)
|
||||
return nodes_nature.node_sound_leaves_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_glass_defaults(soundtable)
|
||||
return nodes_nature.node_sound_glass_defaults(soundtable)
|
||||
end
|
||||
|
||||
|
||||
function sound_api.node_sound_ice_defaults(soundtable)
|
||||
--s/ice/glass
|
||||
return nodes_nature.node_sound_glass_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_metal_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
function sound_api.node_sound_water_defaults(soundtable)
|
||||
return nodes_nature.node_sound_water_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_lava_defaults(soundtable)
|
||||
--s/lava/water
|
||||
return nodes_nature.node_sound_water_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_snow_defaults(soundtable)
|
||||
return nodes_nature.node_sound_snow_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_wool_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
return sound_api
|
||||
@@ -1,65 +0,0 @@
|
||||
local sound_api = {}
|
||||
|
||||
function sound_api.node_sound_default(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
function sound_api.node_sound_stone_defaults(soundtable)
|
||||
return fl_stone.sounds.stone(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_dirt_defaults(soundtable)
|
||||
return fl_topsoil.sounds.grass(soundtable)
|
||||
end
|
||||
|
||||
--return dirt as some games use dirt vs grass
|
||||
function sound_api.node_sound_grass_defaults(soundtable)
|
||||
return sound_api.node_sound_dirt_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_sand_defaults(soundtable)
|
||||
return fl_stone.sounds.sand(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_gravel_defaults(soundtable)
|
||||
return fl_topsoil.sounds.gravel(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_wood_defaults(soundtable)
|
||||
return fl_trees.sounds.wood(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_leaves_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
function sound_api.node_sound_glass_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
|
||||
function sound_api.node_sound_ice_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
function sound_api.node_sound_metal_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
function sound_api.node_sound_water_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
function sound_api.node_sound_lava_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
function sound_api.node_sound_snow_defaults(soundtable)
|
||||
return fl_topsoil.sounds.snow(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_wool_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
return sound_api
|
||||
@@ -1,63 +0,0 @@
|
||||
local sound_api = {}
|
||||
|
||||
function sound_api.node_sound_default(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
function sound_api.node_sound_stone_defaults(soundtable)
|
||||
return sounds.stone(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_dirt_defaults(soundtable)
|
||||
return sounds.dirt(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_grass_defaults(soundtable)
|
||||
return sounds.grass(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_sand_defaults(soundtable)
|
||||
return sounds.sand(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_gravel_defaults(soundtable)
|
||||
return sounds.gravel(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_wood_defaults(soundtable)
|
||||
return sounds.wood(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_leaves_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
function sound_api.node_sound_glass_defaults(soundtable)
|
||||
return sounds.glass(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_ice_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
function sound_api.node_sound_metal_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
function sound_api.node_sound_water_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
function sound_api.node_sound_lava_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
function sound_api.node_sound_snow_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
function sound_api.node_sound_wool_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
return sound_api
|
||||
@@ -1,66 +0,0 @@
|
||||
local sound_api = {}
|
||||
|
||||
function sound_api.node_sound_default(soundtable)
|
||||
return hades_sounds.node_sound_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_stone_defaults(soundtable)
|
||||
return hades_sounds.node_sound_stone_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_dirt_defaults(soundtable)
|
||||
return hades_sounds.node_sound_dirt_defaults(soundtable)
|
||||
end
|
||||
|
||||
--return dirt as some games use dirt vs grass
|
||||
function sound_api.node_sound_grass_defaults(soundtable)
|
||||
return hades_sounds.node_sound_grass_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_sand_defaults(soundtable)
|
||||
return hades_sounds.node_sound_sand_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_gravel_defaults(soundtable)
|
||||
return hades_sounds.node_sound_gravel_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_wood_defaults(soundtable)
|
||||
return hades_sounds.node_sound_wood_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_leaves_defaults(soundtable)
|
||||
return hades_sounds.node_sound_leaves_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_glass_defaults(soundtable)
|
||||
return hades_sounds.node_sound_glass_defaults(soundtable)
|
||||
end
|
||||
|
||||
|
||||
function sound_api.node_sound_ice_defaults(soundtable)
|
||||
--s/ice/glass
|
||||
return hades_sounds.node_sound_glass_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_metal_defaults(soundtable)
|
||||
return hades_sounds.node_sound_metal_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_water_defaults(soundtable)
|
||||
return hades_sounds.node_sound_water_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_lava_defaults(soundtable)
|
||||
return hades_sounds.node_sound_lava_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_snow_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
function sound_api.node_sound_wool_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
return sound_api
|
||||
@@ -1,107 +0,0 @@
|
||||
local sound_api = {}
|
||||
|
||||
--ks_sounds conversion
|
||||
--currently loggy and bedrock are ignored
|
||||
local ks = {}
|
||||
|
||||
function ks.node_sound_defaults(soundtable)
|
||||
soundtable = soundtable or {}
|
||||
soundtable.footstep = soundtable.footstep or ks_sounds.generalnode_sounds.footstep
|
||||
soundtable.dug = soundtable.dug or ks_sounds.generalnode_sounds.dug
|
||||
soundtable.dig = soundtable.dig or ks_sounds.generalnode_sounds.dig
|
||||
soundtable.place = soundtable.place or ks_sounds.generalnode_sounds.place
|
||||
return soundtable
|
||||
end
|
||||
|
||||
function ks.node_sound_wood_defaults(soundtable)
|
||||
soundtable = soundtable or {}
|
||||
soundtable.footstep = soundtable.footstep or ks_sounds.woodennode_sounds.footstep
|
||||
soundtable.dug = soundtable.dug or ks_sounds.woodennode_sounds.dug
|
||||
soundtable.dig = soundtable.dig or ks_sounds.woodennode_sounds.dig
|
||||
soundtable.place = soundtable.place or ks_sounds.woodennode_sounds.place
|
||||
ks.node_sound_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
function ks.node_sound_leaves_defaults(soundtable)
|
||||
soundtable = soundtable or {}
|
||||
soundtable.footstep = soundtable.footstep or ks_sounds.leafynode_sounds.footstep
|
||||
soundtable.dug = soundtable.dug or ks_sounds.leafynode_sounds.dug
|
||||
soundtable.dig = soundtable.dig or ks_sounds.leafynode_sounds.dig
|
||||
soundtable.place = soundtable.place or ks_sounds.leafynode_sounds.place
|
||||
ks.node_sound_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
function ks.node_sound_snow_defaults(soundtable)
|
||||
soundtable = soundtable or {}
|
||||
soundtable.footstep = soundtable.footstep or ks_sounds.snowynode_sounds.footstep
|
||||
soundtable.dug = soundtable.dug or ks_sounds.snowynode_sounds.dug
|
||||
soundtable.dig = soundtable.dig or ks_sounds.snowynode_sounds.dig
|
||||
soundtable.place = soundtable.place or ks_sounds.snowynode_sounds.place
|
||||
ks.node_sound_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
function sound_api.node_sound_default(soundtable)
|
||||
return ks.node_sound_default(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_stone_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
function sound_api.node_sound_dirt_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
--return dirt as some games use dirt vs grass
|
||||
function sound_api.node_sound_grass_defaults(soundtable)
|
||||
return sound_api.node_sound_dirt_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_sand_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
function sound_api.node_sound_gravel_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
function sound_api.node_sound_wood_defaults(soundtable)
|
||||
return ks.node_sound_wood_default(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_leaves_defaults(soundtable)
|
||||
return ks.node_sound_leaves_default(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_glass_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
function sound_api.node_sound_ice_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
function sound_api.node_sound_metal_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
function sound_api.node_sound_water_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
function sound_api.node_sound_lava_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
function sound_api.node_sound_snow_defaults(soundtable)
|
||||
return ks.node_sound_snow_default(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_wool_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
return sound_api
|
||||
@@ -1,67 +0,0 @@
|
||||
--note this file handles mineclonia, mineclone2, and its rename voxelibre
|
||||
|
||||
local sound_api = {}
|
||||
|
||||
function sound_api.node_sound_default(soundtable)
|
||||
return mcl_sounds.node_sound_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_stone_defaults(soundtable)
|
||||
return mcl_sounds.node_sound_stone_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_dirt_defaults(soundtable)
|
||||
return mcl_sounds.node_sound_dirt_defaults(soundtable)
|
||||
end
|
||||
|
||||
--return dirt as some games use dirt vs grass
|
||||
function sound_api.node_sound_grass_defaults(soundtable)
|
||||
return sound_api.node_sound_dirt_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_sand_defaults(soundtable)
|
||||
return mcl_sounds.node_sound_sand_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_gravel_defaults(soundtable)
|
||||
return mcl_sounds.node_sound_sand_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_wood_defaults(soundtable)
|
||||
return mcl_sounds.node_sound_wood_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_leaves_defaults(soundtable)
|
||||
return mcl_sounds.node_sound_leaves_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_glass_defaults(soundtable)
|
||||
return mcl_sounds.node_sound_glass_defaults(soundtable)
|
||||
end
|
||||
|
||||
|
||||
function sound_api.node_sound_ice_defaults(soundtable)
|
||||
return mcl_sounds.node_sound_glass_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_metal_defaults(soundtable)
|
||||
return mcl_sounds.node_sound_metal_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_water_defaults(soundtable)
|
||||
return mcl_sounds.node_sound_water_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_lava_defaults(soundtable)
|
||||
return mcl_sounds.node_sound_lava_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_snow_defaults(soundtable)
|
||||
return mcl_sounds.node_sound_snow_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_wool_defaults(soundtable)
|
||||
return mcl_sounds.node_sound_wool_defaults(soundtable)
|
||||
end
|
||||
|
||||
return sound_api
|
||||
@@ -1,67 +0,0 @@
|
||||
local sound_api = {}
|
||||
|
||||
function sound_api.node_sound_default(soundtable)
|
||||
return default.node_sound_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_stone_defaults(soundtable)
|
||||
return default.node_sound_stone_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_dirt_defaults(soundtable)
|
||||
return default.node_sound_dirt_defaults(soundtable)
|
||||
end
|
||||
|
||||
--return dirt as some games use dirt vs grass
|
||||
function sound_api.node_sound_grass_defaults(soundtable)
|
||||
return sound_api.node_sound_dirt_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_sand_defaults(soundtable)
|
||||
return default.node_sound_sand_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_gravel_defaults(soundtable)
|
||||
return default.node_sound_gravel_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_wood_defaults(soundtable)
|
||||
return default.node_sound_wood_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_leaves_defaults(soundtable)
|
||||
return default.node_sound_leaves_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_glass_defaults(soundtable)
|
||||
return default.node_sound_glass_defaults(soundtable)
|
||||
end
|
||||
|
||||
|
||||
function sound_api.node_sound_ice_defaults(soundtable)
|
||||
return default.node_sound_ice_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_metal_defaults(soundtable)
|
||||
return default.node_sound_metal_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_water_defaults(soundtable)
|
||||
return default.node_sound_water_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_lava_defaults(soundtable)
|
||||
--s/lava/water
|
||||
return default.node_sound_water_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_snow_defaults(soundtable)
|
||||
return default.node_sound_snow_defaults(soundtable)
|
||||
end
|
||||
|
||||
function sound_api.node_sound_wool_defaults(soundtable)
|
||||
--s/wool/default
|
||||
return default.node_sound_defaults(soundtable)
|
||||
end
|
||||
|
||||
return sound_api
|
||||
@@ -1,63 +0,0 @@
|
||||
local sound_api = {}
|
||||
|
||||
function sound_api.node_sound_default(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
function sound_api.node_sound_stone_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
function sound_api.node_sound_dirt_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
function sound_api.node_sound_grass_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
function sound_api.node_sound_sand_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
function sound_api.node_sound_gravel_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
function sound_api.node_sound_wood_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
function sound_api.node_sound_leaves_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
function sound_api.node_sound_glass_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
function sound_api.node_sound_ice_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
function sound_api.node_sound_metal_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
function sound_api.node_sound_water_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
function sound_api.node_sound_lava_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
function sound_api.node_sound_snow_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
function sound_api.node_sound_wool_defaults(soundtable)
|
||||
return soundtable
|
||||
end
|
||||
|
||||
return sound_api
|
||||
@@ -1,8 +0,0 @@
|
||||
local filename = xcompat.gameid
|
||||
|
||||
--if we dont have a stairs file for the game, use xcompat_agnostic
|
||||
if not xcompat.utilities.file_exists(xcompat.modpath .. "/src/stairs/" .. filename .. ".lua") then
|
||||
filename = "xcompat_agnostic"
|
||||
end
|
||||
|
||||
return dofile(xcompat.modpath .. "/src/stairs/" .. filename .. ".lua")
|
||||
@@ -1,25 +0,0 @@
|
||||
local function register(name, _)
|
||||
local splitName = name:split(":")
|
||||
local sName = splitName[2]
|
||||
|
||||
local groups = core.registered_nodes[name].groups
|
||||
groups.stairable = 1
|
||||
|
||||
core.override_item(name, {groups = groups})
|
||||
|
||||
local flStairNameOverrides = {
|
||||
["stair_inner"] = "inner_stair",
|
||||
["stair_outer"] = "outer_stair"
|
||||
}
|
||||
|
||||
for _, type in pairs({"slab", "stair", "stair_inner", "stair_outer"}) do
|
||||
|
||||
|
||||
minetest.register_alias(
|
||||
splitName[1] .. ":" .. type .. "_" .. sName,
|
||||
splitName[1] .. ":" .. sName .. "_" .. (flStairNameOverrides[type] or type)
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
return {register = register}
|
||||
@@ -1,19 +0,0 @@
|
||||
local function register(name, def)
|
||||
local splitName = name:split(":")
|
||||
local sName = splitName[2]
|
||||
|
||||
stairs.register_stair_and_slab(
|
||||
sName,
|
||||
nil,
|
||||
def.groups,
|
||||
def.tiles,
|
||||
def.description,
|
||||
def.sounds
|
||||
)
|
||||
|
||||
for _, type in pairs({"slab", "stair", "stair_inner", "stair_outer"}) do
|
||||
minetest.register_alias(splitName[1] .. ":" .. type .. "_" .. sName, "stairs:" .. type .. "_" .. sName)
|
||||
end
|
||||
end
|
||||
|
||||
return {register = register}
|
||||
@@ -1,48 +0,0 @@
|
||||
local stairtable = {
|
||||
{
|
||||
"slab",
|
||||
{-0.5, -0.5, -0.5, 0.5, 0, 0.5},
|
||||
},
|
||||
{
|
||||
"stair",
|
||||
{
|
||||
{-0.5, -0.5, -0.5, 0.5, 0.0, 0.5},
|
||||
{-0.5, 0.0, 0.0, 0.5, 0.5, 0.5},
|
||||
},
|
||||
},
|
||||
{
|
||||
"stair_inner",
|
||||
{
|
||||
{-0.5, -0.5, -0.5, 0.5, 0.0, 0.5},
|
||||
{-0.5, 0.0, 0.0, 0.5, 0.5, 0.5},
|
||||
{-0.5, 0.0, -0.5, 0.0, 0.5, 0.0},
|
||||
},
|
||||
},
|
||||
{
|
||||
"stair_outer",
|
||||
{
|
||||
{-0.5, -0.5, -0.5, 0.5, 0.0, 0.5},
|
||||
{-0.5, 0.0, 0.0, 0.0, 0.5, 0.5},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
local function register(name, def)
|
||||
for _, sdef in pairs(stairtable) do
|
||||
local split = name:split(":")
|
||||
local ndef = table.copy(def)
|
||||
local item_name = ":" .. sdef[1] .. "_" .. split[2]
|
||||
|
||||
ndef.description = def.description .. " " .. string.gsub(sdef[1], "_", " ")
|
||||
ndef.paramtype, ndef.paramtype2 = "light", "facedir"
|
||||
ndef.drawtype = "nodebox"
|
||||
ndef.node_box = {
|
||||
type = "fixed",
|
||||
fixed = sdef[2],
|
||||
}
|
||||
|
||||
minetest.register_node(":" .. split[1] .. item_name, ndef)
|
||||
end
|
||||
end
|
||||
|
||||
return {register = register}
|
||||
@@ -1,8 +0,0 @@
|
||||
local filename = xcompat.gameid
|
||||
|
||||
--if we dont have a materials file for the game, use minetest
|
||||
if not xcompat.utilities.file_exists(xcompat.modpath .. "/src/textures/" .. filename .. ".lua") then
|
||||
filename = "xcompat_agnostic"
|
||||
end
|
||||
|
||||
return dofile(xcompat.modpath .. "/src/textures/" .. filename .. ".lua")
|
||||
@@ -1,57 +0,0 @@
|
||||
local textures = {
|
||||
gravel = "farlands_gravel.png",
|
||||
brick = "farlands_brick.png",
|
||||
|
||||
metal = {
|
||||
steel = {
|
||||
ore = "farlands_iron_ingot.png",
|
||||
ingot = "farlands_iron_ingot.png",
|
||||
block = "farlands_iron_block.png",
|
||||
},
|
||||
gold = {
|
||||
ore = "farlands_gold_ore.png",
|
||||
ingot = "farlands_gold_ingot.png",
|
||||
block = "farlands_gold_block.png",
|
||||
},
|
||||
},
|
||||
glass = {
|
||||
pane = "farlands_glass.png",
|
||||
detail = "farlands_glass_detail.png",
|
||||
},
|
||||
wood = {
|
||||
apple = {
|
||||
sapling = "farlands_apple_sapling.png",
|
||||
planks = "farlands_apple_planks.png",
|
||||
trunk_side = "farlands_apple_trunk.png",
|
||||
trunk_top = "farlands_apple_trunk_top.png",
|
||||
leaves = "farlands_apple_leaves.png",
|
||||
},
|
||||
jungle = {
|
||||
sapling = "farlands_jungletree_sapling.png",
|
||||
planks = "farlands_jungletree_planks.png",
|
||||
trunk_side = "farlands_jungletree_trunk.png",
|
||||
trunk_top = "farlands_jungletree_trunk_top.png",
|
||||
leaves = "farlands_jungletree_leaves.png",
|
||||
},
|
||||
},
|
||||
water = {
|
||||
tile = "farlands_water.png",
|
||||
animated = {
|
||||
source = "farlands_water_source_animated.png",
|
||||
flowing = "farlands_water_flowing_animated.png",
|
||||
},
|
||||
},
|
||||
wool = {
|
||||
white = "farlands_wool.png",
|
||||
black = "farlands_wool.png",
|
||||
grey = "farlands_wool.png",
|
||||
dark_grey = "farlands_wool.png",
|
||||
},
|
||||
grass = {
|
||||
top = "farlands_grass.png",
|
||||
side = "farlands_dirt.png^farlands_grass_side.png",
|
||||
dirt = "farlands_dirt.png",
|
||||
},
|
||||
}
|
||||
|
||||
return textures
|
||||
@@ -1,57 +0,0 @@
|
||||
local textures = {
|
||||
gravel = "default_gravel.png",
|
||||
brick = "default_brick.png",
|
||||
|
||||
metal = {
|
||||
steel = {
|
||||
ore = "default_iron_lump.png",
|
||||
ingot = "default_steel_ingot.png",
|
||||
block = "default_steel_block.png",
|
||||
},
|
||||
gold = {
|
||||
ore = "default_gold_lump.png",
|
||||
ingot = "default_gold_ingot.png",
|
||||
block = "default_gold_block.png",
|
||||
},
|
||||
},
|
||||
glass = {
|
||||
pane = "default_glass.png",
|
||||
detail = "default_glass_detail.png",
|
||||
},
|
||||
wood = {
|
||||
apple = {
|
||||
sapling = "default_sapling.png",
|
||||
planks = "default_wood.png",
|
||||
trunk_side = "default_tree.png",
|
||||
trunk_top = "default_tree_top.png",
|
||||
leaves = "default_leaves.png",
|
||||
},
|
||||
jungle = {
|
||||
sapling = "default_junglesapling.png",
|
||||
planks = "default_junglewood.png",
|
||||
trunk_side = "default_jungletree.png",
|
||||
trunk_top = "default_jungletree_top.png",
|
||||
leaves = "default_jungleleaves.png",
|
||||
},
|
||||
},
|
||||
water = {
|
||||
tile = "default_water.png",
|
||||
animated = {
|
||||
source = "default_water_source_animated.png",
|
||||
flowing = "default_water_flowing_animated.png",
|
||||
},
|
||||
},
|
||||
wool = {
|
||||
white = "wool_white.png",
|
||||
black = "wool_black.png",
|
||||
grey = "wool_grey.png",
|
||||
dark_grey = "wool_dark_grey.png",
|
||||
},
|
||||
grass = {
|
||||
top = "default_grass.png",
|
||||
side = "default_dirt.png^default_grass_side.png",
|
||||
dirt = "default_dirt.png",
|
||||
},
|
||||
}
|
||||
|
||||
return textures
|
||||
@@ -1,65 +0,0 @@
|
||||
local textures = {
|
||||
gravel = "[combine:16x16^[noalpha^[colorize:#3a3b3c",
|
||||
brick = "[combine:16x16^[noalpha^[colorize:#AA4A44",
|
||||
|
||||
metal = {
|
||||
steel = {
|
||||
ore = "[combine:16x16^[noalpha^[colorize:#D3D3D3",
|
||||
ingot = "[combine:16x16^[noalpha^[colorize:#D3D3D3",
|
||||
block = "[combine:16x16^[noalpha^[colorize:#D3D3D3",
|
||||
},
|
||||
gold = {
|
||||
ore = "[combine:16x16^[noalpha^[colorize:#FFD700",
|
||||
ingot = "[combine:16x16^[noalpha^[colorize:#FFD700",
|
||||
block = "[combine:16x16^[noalpha^[colorize:#FFD700",
|
||||
},
|
||||
},
|
||||
glass = {
|
||||
pane = "[combine:16x16:" ..
|
||||
"0,0=\\[combine\\:1x16\\^[noalpha\\^[colorize\\:#ffffff:" ..
|
||||
"0,0=\\[combine\\:16x1\\^[noalpha\\^[colorize\\:#ffffff:" ..
|
||||
"0,15=\\[combine\\:16x1\\^[noalpha\\^[colorize\\:#ffffff:" ..
|
||||
"15,0=\\[combine\\:1x16\\^[noalpha\\^[colorize\\:#ffffff",
|
||||
detail = "[combine:16x16:" ..
|
||||
"0,0=\\[combine\\:1x16\\^[noalpha\\^[colorize\\:#ffffff:" ..
|
||||
"0,0=\\[combine\\:16x1\\^[noalpha\\^[colorize\\:#ffffff:" ..
|
||||
"0,15=\\[combine\\:16x1\\^[noalpha\\^[colorize\\:#ffffff:" ..
|
||||
"15,0=\\[combine\\:1x16\\^[noalpha\\^[colorize\\:#ffffff",
|
||||
},
|
||||
wood = {
|
||||
apple = {
|
||||
sapling = "[combine:16x16^[noalpha^[colorize:#654321",
|
||||
planks = "[combine:16x16^[noalpha^[colorize:#654321",
|
||||
trunk_side = "[combine:16x16^[noalpha^[colorize:#654321",
|
||||
trunk_top = "[combine:16x16^[noalpha^[colorize:#654321",
|
||||
leaves = "[combine:16x16^[noalpha^[colorize:#654321",
|
||||
},
|
||||
jungle = {
|
||||
sapling = "[combine:16x16^[noalpha^[colorize:#563d2d",
|
||||
planks = "[combine:16x16^[noalpha^[colorize:#563d2d",
|
||||
trunk_side = "[combine:16x16^[noalpha^[colorize:#563d2d",
|
||||
trunk_top = "[combine:16x16^[noalpha^[colorize:#563d2d",
|
||||
leaves = "[combine:16x16^[noalpha^[colorize:#563d2d",
|
||||
},
|
||||
},
|
||||
water = {
|
||||
tile = "[combine:16x16^[noalpha^[colorize:#00008b",
|
||||
animated = {
|
||||
source = "[combine:16x16^[noalpha^[colorize:#00008b",
|
||||
flowing = "[combine:16x16^[noalpha^[colorize:#00008b",
|
||||
},
|
||||
},
|
||||
wool = {
|
||||
white = "[combine:16x16^[noalpha^[colorize:#ffffff",
|
||||
black = "[combine:16x16^[noalpha^[colorize:#000000",
|
||||
grey = "[combine:16x16^[noalpha^[colorize:#313b3c",
|
||||
dark_grey = "[combine:16x16^[noalpha^[colorize:#313b3c",
|
||||
},
|
||||
grass = {
|
||||
top = "[combine:16x16^[noalpha^[colorize:#006400",
|
||||
side = "[combine:16x16^[noalpha^[colorize:#006400",
|
||||
dirt = "[combine:16x16^[noalpha^[colorize:#563d2d",
|
||||
},
|
||||
}
|
||||
|
||||
return textures
|
||||
@@ -1,8 +0,0 @@
|
||||
local utilities = {}
|
||||
|
||||
function utilities.file_exists(name)
|
||||
local f=io.open(name,"r")
|
||||
if f~=nil then io.close(f) return true else return false end
|
||||
end
|
||||
|
||||
return utilities
|
||||
@@ -1,356 +0,0 @@
|
||||
fl_furniture:yellow_ipe_table
|
||||
fl_trees:palm_trunk
|
||||
fl_stone:mossy_stone
|
||||
fl_trees:acacia_sapling
|
||||
fl_doors:copper_door_a
|
||||
fl_trees:jungletree_plank
|
||||
fl_workshop:furnace_active
|
||||
fl_topsoil:wet_farmland
|
||||
fl_trees:spruce_leaves
|
||||
fl_stone:stone_brick
|
||||
fl_light_sources:lantern
|
||||
fl_plantlife:red_mushroom_leaves
|
||||
fl_stone:basalt
|
||||
fl_topsoil:condensed_ice
|
||||
fl_doors:apple_door_b
|
||||
fl_beds:bed_pink
|
||||
fl_plantlife:petunia_blue
|
||||
fl_trees:acacia_leaves
|
||||
fl_stone:basalt_block
|
||||
fl_ores:coal_in_tuff
|
||||
fl_topsoil:sea_grass_3
|
||||
fl_agriculture:carrot_2
|
||||
fl_beds:bed_violet
|
||||
fl_stone:basalt_rubble
|
||||
fl_furniture:spruce_bench
|
||||
fl_ores:copper_in_tuff
|
||||
fl_trees:willow_plank
|
||||
fl_trees:yellow_ipe_plank_fence
|
||||
fl_storage:spruce_vessel_shelf
|
||||
fl_beds:bed_blue
|
||||
fl_stone:stone_block
|
||||
fl_stone:tuff_rubble
|
||||
fl_ores:mithite_in_stone
|
||||
fl_topsoil:savannah_dirt_with_grass
|
||||
fl_furniture:pine_table
|
||||
fl_trees:pine_plank_fence
|
||||
fl_furniture:baobab_chair
|
||||
fl_plantlife:grass_2
|
||||
fl_trees:pine_sapling
|
||||
fl_beds:bed_dark_green
|
||||
fl_plantlife:cactus
|
||||
fl_storage:spruce_book_shelf
|
||||
fl_signs:sign_wood
|
||||
fl_plantlife:pink_ground_flower
|
||||
fl_doors:steel_door_b
|
||||
fl_topsoil:sea_grass_1
|
||||
fl_trees:aspen_leaves
|
||||
fl_stone:ors_brick
|
||||
fl_doors:jungletree_door_a
|
||||
fl_paintings:forest
|
||||
fl_storage:spruce_multi_shelf
|
||||
fl_beds:bed_red
|
||||
fl_tnt:tnt
|
||||
fl_beds:bed_brown
|
||||
fl_storage:pine_multi_shelf
|
||||
fl_ores:mithite_block
|
||||
fl_beds:bed_orange
|
||||
fl_ores:coal_in_desert_stone
|
||||
fl_plantlife:red_ground_flower
|
||||
fl_ores:gold_in_desert_stone
|
||||
fl_stone:silver_sandstone_block
|
||||
fl_storage:wood_chest
|
||||
fl_furniture:aspen_table
|
||||
fl_doors:aspen_door_a
|
||||
fl_stone:ors
|
||||
fl_stone:sandstone_brick
|
||||
fl_doors:pine_door_b
|
||||
fl_furniture:acacia_table
|
||||
fl_trees:acacia_trunk
|
||||
fl_stone:mossy_stone_block
|
||||
fl_doors:baobab_door_b
|
||||
fl_plantlife:pansy_purple
|
||||
fl_industrial:conveyor_funnel
|
||||
fl_stone:savannah_rubble
|
||||
fl_trains:straight_rise_track
|
||||
fl_storage:baobab_book_shelf
|
||||
fl_plantlife:purple_allium
|
||||
fl_ores:diamond_block
|
||||
fl_topsoil:dirt_with_grass
|
||||
fl_plantlife:ground_waterlily
|
||||
fl_plantlife:flowerpot
|
||||
fl_plantlife:grass_4
|
||||
fl_storage:pine_book_shelf
|
||||
fl_doors:palm_door_a
|
||||
fl_furniture:willow_table
|
||||
fl_trains:straight_45_track
|
||||
fl_trees:palm_leaves
|
||||
fl_glass:framed_glass_panes
|
||||
fl_storage:yellow_ipe_vessel_shelf
|
||||
fl_ores:coal_block
|
||||
fl_plantlife:dandelion_yellow
|
||||
fl_beds:bed_cyan
|
||||
fl_topsoil:gravel
|
||||
fl_storage:acacia_book_shelf
|
||||
fl_furniture:baobab_bench
|
||||
fl_furniture:willow_bench
|
||||
fl_plantlife:savannah_grass_1
|
||||
fl_industrial:conveyor
|
||||
fl_storage:acacia_vessel_shelf
|
||||
fl_light_sources:chain
|
||||
fl_trees:spruce_plank
|
||||
fl_trees:apple_leaves
|
||||
fl_trees:baobab_leaves
|
||||
fl_stone:silver_sand
|
||||
fl_stone:desert_stone
|
||||
fl_furniture:spruce_chair
|
||||
fl_ores:copper_in_desert_stone
|
||||
fl_topsoil:snow_block
|
||||
fl_ores:mithite_in_savannah
|
||||
fl_trees:acacia_plank
|
||||
fl_topsoil:dirt
|
||||
fl_fire:fire
|
||||
fl_stone:gneiss_rubble
|
||||
fl_furniture:acacia_bench
|
||||
fl_storage:willow_vessel_shelf
|
||||
fl_plantlife:lantana
|
||||
fl_stone:sandstone
|
||||
fl_furniture:jungletree_chair
|
||||
fl_workshop:furnace
|
||||
fl_stone:gneiss
|
||||
fl_agriculture:potato_4
|
||||
fl_topsoil:permafrost_with_stones
|
||||
fl_topsoil:snow
|
||||
fl_trees:baobab_plank
|
||||
fl_stone:tuff_brick
|
||||
fl_stone:desert_sandstone_block
|
||||
fl_bones:bone_block
|
||||
fl_stone:basalt_brick
|
||||
fl_doors:steel_door_a
|
||||
fl_furniture:aspen_bench
|
||||
fl_ores:tin_in_savannah
|
||||
fl_trees:palm_plank_fence
|
||||
fl_doors:apple_door_a
|
||||
fl_wool:wool
|
||||
fl_furniture:spruce_table
|
||||
fl_agriculture:carrot_1
|
||||
fl_ores:iron_in_stone
|
||||
fl_stone:desert_sandstone_brick
|
||||
fl_storage:apple_empty_shelf
|
||||
fl_stone:gneiss_block
|
||||
fl_stone:mossy_stone_rubble
|
||||
fl_agriculture:carrot_3
|
||||
fl_trees:willow_trunk
|
||||
fl_trees:pine_leaves
|
||||
fl_trains:curve_right_track
|
||||
fl_doors:copper_door_b
|
||||
fl_doors:jungletree_door_b
|
||||
fl_furniture:jungletree_bench
|
||||
fl_doors:willow_door_b
|
||||
fl_topsoil:sea_grass_2
|
||||
fl_ores:gold_in_ors
|
||||
fl_doors:willow_door_a
|
||||
fl_trains:switch_right_track
|
||||
fl_doors:aspen_door_b
|
||||
fl_doors:palm_door_b
|
||||
fl_stone:stone
|
||||
fl_plantlife:rose
|
||||
fl_doors:yellow_ipe_door_b
|
||||
fl_doors:yellow_ipe_door_a
|
||||
fl_plantlife:grass_3
|
||||
fl_storage:apple_vessel_shelf
|
||||
fl_plantlife:tulip
|
||||
fl_light_sources:torch
|
||||
fl_trees:palm_sapling
|
||||
fl_doors:blocker_top
|
||||
fl_bricks:terracotta
|
||||
fl_bricks:clay_block
|
||||
fl_bricks:brick
|
||||
fl_agriculture:carrot_4
|
||||
fl_paintings:cthulhu
|
||||
fl_trees:aspen_trunk
|
||||
fl_furniture:willow_chair
|
||||
fl_glass:tinted_framed_glass_panes
|
||||
fl_stone:sandstone_block
|
||||
fl_glass:tinted_framed_glass
|
||||
fl_ores:gold_block
|
||||
fl_furniture:apple_chair
|
||||
fl_glass:framed_glass
|
||||
fl_storage:pine_vessel_shelf
|
||||
fl_beds:bed_yellow
|
||||
fl_beds:bed_black
|
||||
fl_stone:silver_sandstone
|
||||
fl_beds:bed_dark_grey
|
||||
fl_beds:bed_green
|
||||
fl_ores:tin_in_tuff
|
||||
fl_beds:bed_grey
|
||||
fl_beds:bed_magenta
|
||||
fl_beds:bed_white
|
||||
fl_wildlife:spawner
|
||||
fl_wool:wool_carpet
|
||||
fl_paintings:dragon
|
||||
fl_topsoil:dirt_with_snow
|
||||
fl_ores:tin_block
|
||||
fl_furniture:baobab_table
|
||||
fl_dyes:demo_node
|
||||
fl_plantlife:viola
|
||||
fl_ores:diamond_in_ors
|
||||
fl_plantlife:savannah_grass_4
|
||||
fl_plantlife:oxeye_daisy
|
||||
fl_plantlife:geranium
|
||||
fl_plantlife:mushroom_trunk
|
||||
fl_stone:ors_rubble
|
||||
fl_doors:baobab_door_a
|
||||
fl_light_sources:lantern_c
|
||||
fl_doors:acacia_door_b
|
||||
fl_plantlife:petunia_white
|
||||
fl_storage:spruce_empty_shelf
|
||||
fl_plantlife:petunia_pink
|
||||
fl_ores:tin_in_stone
|
||||
fl_ores:mithite_in_desert_stone
|
||||
fl_stone:desert_sand
|
||||
fl_plantlife:pansy_blue
|
||||
fl_plantlife:frozen_rose
|
||||
fl_ores:gold_in_tuff
|
||||
fl_stone:savannah_brick
|
||||
fl_ores:coal_in_savannah
|
||||
fl_plantlife:blue_ground_flower
|
||||
fl_ores:iron_in_desert_stone
|
||||
fl_industrial:injector
|
||||
fl_trees:aspen_plank_fence
|
||||
fl_plantlife:savannah_grass_2
|
||||
fl_plantlife:dandelion_white
|
||||
fl_plantlife:flame_lily
|
||||
fl_plantlife:brown_mushroom
|
||||
fl_plantlife:red_mushroom
|
||||
fl_trees:jungletree_plank_fence
|
||||
fl_plantlife:brown_mushroom_leaves
|
||||
fl_plantlife:raw_mushroom_leaves
|
||||
fl_plantlife:savannah_grass_5
|
||||
fl_stone:tuff_block
|
||||
fl_plantlife:savannah_grass_3
|
||||
fl_trees:acacia_plank_fence
|
||||
fl_trees:jungletree_sapling
|
||||
fl_furniture:pine_bench
|
||||
fl_plantlife:grass_1
|
||||
fl_plantlife:lavender_flower
|
||||
fl_ores:coal_in_stone
|
||||
fl_plantlife:grass_5
|
||||
fl_ores:bronze_block
|
||||
fl_trees:yellow_ipe_plank
|
||||
fl_stone:gneiss_brick
|
||||
fl_ores:diamond_in_savannah
|
||||
fl_trees:pine_plank
|
||||
fl_ores:diamond_in_desert_stone
|
||||
fl_ores:diamond_in_tuff
|
||||
fl_storage:baobab_empty_shelf
|
||||
fl_storage:yellow_ipe_empty_shelf
|
||||
fl_paintings:landscape
|
||||
fl_stairs:tablesaw
|
||||
fl_furniture:yellow_ipe_chair
|
||||
fl_ores:copper_in_ors
|
||||
fl_trees:apple_trunk
|
||||
fl_trees:yellow_ipe_leaves
|
||||
fl_trees:dead_aspen_leaves
|
||||
fl_liquids:water_flowing
|
||||
fl_furniture:aspen_chair
|
||||
fl_plantlife:lobelia
|
||||
fl_topsoil:dry_farmland
|
||||
fl_trees:apple_plank
|
||||
ignore
|
||||
fl_trains:switch_left_track
|
||||
fl_storage:willow_empty_shelf
|
||||
fl_trees:spruce_plank_fence
|
||||
fl_ores:copper_in_savannah
|
||||
fl_stone:sand
|
||||
fl_furniture:pine_chair
|
||||
fl_storage:aspen_empty_shelf
|
||||
fl_topsoil:coarse_dirt
|
||||
fl_storage:acacia_multi_shelf
|
||||
fl_ores:mithite_in_ors
|
||||
fl_paintings:waterlilie
|
||||
fl_stone:tuff
|
||||
fl_stone:savannah_block
|
||||
fl_trees:willow_plank_fence
|
||||
fl_storage:baobab_vessel_shelf
|
||||
fl_furniture:apple_table
|
||||
fl_paintings:rose
|
||||
fl_liquids:river_water_source
|
||||
fl_trees:pine_trunk
|
||||
fl_storage:aspen_vessel_shelf
|
||||
fl_topsoil:ice
|
||||
fl_storage:aspen_book_shelf
|
||||
fl_liquids:lava_source
|
||||
fl_agriculture:potato_2
|
||||
fl_storage:aspen_multi_shelf
|
||||
fl_storage:willow_book_shelf
|
||||
fl_furniture:acacia_chair
|
||||
fl_trains:crossing_track
|
||||
fl_trees:apple_plank_fence
|
||||
fl_liquids:river_water_flowing
|
||||
fl_trees:baobab_sapling
|
||||
fl_ores:gold_in_stone
|
||||
fl_trains:curve_left_track
|
||||
fl_trains:straight_track
|
||||
fl_doors:acacia_door_a
|
||||
fl_storage:apple_multi_shelf
|
||||
fl_trees:aspen_plank
|
||||
fl_trees:spruce_trunk
|
||||
fl_stone:desert_stone_rubble
|
||||
fl_trees:baobab_trunk
|
||||
fl_ores:copper_in_stone
|
||||
fl_industrial:conveyor_left
|
||||
fl_storage:acacia_empty_shelf
|
||||
fl_trees:palm_plank
|
||||
fl_agriculture:potato_1
|
||||
fl_trees:apple_sapling
|
||||
fl_trees:baobab_plank_fence
|
||||
fl_furniture:yellow_ipe_bench
|
||||
fl_ores:tin_in_desert_stone
|
||||
fl_furniture:palm_bench
|
||||
fl_storage:yellow_ipe_book_shelf
|
||||
fl_stone:savannah
|
||||
fl_furniture:apple_bench
|
||||
fl_ores:iron_block
|
||||
fl_furniture:palm_chair
|
||||
fl_glass:tinted_connected_glass
|
||||
fl_agriculture:potato_3
|
||||
fl_trees:aspen_sapling
|
||||
fl_storage:baobab_multi_shelf
|
||||
fl_storage:willow_multi_shelf
|
||||
fl_furniture:palm_table
|
||||
fl_furniture:jungletree_table
|
||||
fl_trees:jungletree_trunk
|
||||
fl_stone:stone_rubble
|
||||
fl_doors:pine_door_a
|
||||
fl_storage:pine_empty_shelf
|
||||
fl_stone:mossy_stone_brick
|
||||
fl_stone:ors_block
|
||||
fl_paintings:possessedwoman
|
||||
fl_storage:apple_book_shelf
|
||||
fl_storage:yellow_ipe_multi_shelf
|
||||
fl_stone:desert_stone_block
|
||||
fl_stone:desert_stone_brick
|
||||
fl_trees:jungletree_leaves
|
||||
fl_liquids:water_source
|
||||
fl_stone:desert_sandstone
|
||||
fl_trees:willow_leaves
|
||||
fl_workshop:anvil
|
||||
fl_paintings:mistiriusgirl
|
||||
fl_trees:yellow_ipe_trunk
|
||||
fl_topsoil:savannah_dirt
|
||||
fl_ores:coal_in_ors
|
||||
fl_topsoil:permafrost
|
||||
fl_liquids:lava_flowing
|
||||
fl_ores:iron_in_ors
|
||||
fl_industrial:conveyor_right
|
||||
fl_ores:iron_in_tuff
|
||||
fl_ores:iron_in_savannah
|
||||
fl_ores:copper_block
|
||||
fl_stone:silver_sandstone_brick
|
||||
air
|
||||
fl_ores:gold_in_savannah
|
||||
fl_ores:tin_in_ors
|
||||
fl_ores:mithite_in_tuff
|
||||
fl_stone:bedrock
|
||||
fl_ores:diamond_in_stone
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user