mirror of
https://github.com/mt-mods/xcompat.git
synced 2025-07-20 09:20:32 +02:00
Compare commits
25 Commits
subtreemer
...
sortMateri
Author | SHA1 | Date | |
---|---|---|---|
4cbdcb0e53 | |||
34781935d6 | |||
cc2da8a2a6 | |||
37a7fd6cc8 | |||
bf15b0232f | |||
745bdbe564 | |||
a3ef7ba4a4 | |||
b9b6d49619 | |||
788217bb8e | |||
5b4b19a184 | |||
eb7d9fd4f6 | |||
215b094515 | |||
08bb0d0ed5 | |||
3da43ebf4e | |||
28df57dd5f | |||
62227b7c88 | |||
9f56ea7ff4 | |||
e73007760e | |||
95d24b4e26 | |||
53c0826bff | |||
1860fa44b6 | |||
7dfc17139f | |||
2729b2c6f5 | |||
b2576e3bcb | |||
ed57962bbd |
7
.github/dependabot.yml
vendored
7
.github/dependabot.yml
vendored
@ -1,7 +0,0 @@
|
|||||||
version: 2
|
|
||||||
updates:
|
|
||||||
- package-ecosystem: gitsubmodule
|
|
||||||
directory: "/"
|
|
||||||
schedule:
|
|
||||||
interval: daily
|
|
||||||
open-pull-requests-limit: 20
|
|
13
.github/workflows/luacheck.yml
vendored
13
.github/workflows/luacheck.yml
vendored
@ -1,13 +1,10 @@
|
|||||||
name: luacheck
|
name: luacheck
|
||||||
on: [push, pull_request]
|
on: [push, pull_request]
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
luacheck:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@master
|
- name: Checkout
|
||||||
- name: apt
|
uses: actions/checkout@main
|
||||||
run: sudo apt-get install -y luarocks
|
- name: Luacheck
|
||||||
- name: luacheck install
|
uses: lunarmodules/luacheck@master
|
||||||
run: luarocks install --local luacheck
|
|
||||||
- name: luacheck run
|
|
||||||
run: $HOME/.luarocks/bin/luacheck ./
|
|
||||||
|
18
.luacheckrc
18
.luacheckrc
@ -1,5 +1,17 @@
|
|||||||
globals = {
|
globals = {
|
||||||
"sound_api", "minetest", "mcl_sounds", "default", "ks_sounds",
|
"minetest",
|
||||||
"nodes_nature", "fl_stone", "fl_topsoil", "fl_trees",
|
"xcompat",
|
||||||
"hades_sounds", "rp_sounds",
|
}
|
||||||
|
|
||||||
|
read_globals = {
|
||||||
|
"default",
|
||||||
|
"mcl_sounds",
|
||||||
|
"ks_sounds",
|
||||||
|
"nodes_nature",
|
||||||
|
"fl_stone",
|
||||||
|
"fl_topsoil",
|
||||||
|
"fl_trees",
|
||||||
|
"hades_sounds",
|
||||||
|
"rp_sounds",
|
||||||
|
"sounds",
|
||||||
}
|
}
|
2
LICENSE
2
LICENSE
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
MIT Copyright 2021 wsor4035
|
MIT Copyright 2021-2024 wsor4035
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
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
|
this software and associated documentation files (the "Software"), to deal in
|
||||||
|
41
README.md
41
README.md
@ -1,19 +1,34 @@
|
|||||||
# Sound API
|
# XCompat
|
||||||
|
|
||||||
mod that enables sound to be game agnostic
|
[](https://github.com/mt-mods/xcompat/actions)
|
||||||
## Installing
|
[](https://content.minetest.net/packages/mt-mods/xcompat/)
|
||||||
|
|
||||||
* `git clone https://github.com/mt-mods/sound_api.git`
|
Provides cross compatibility between games and mods for sounds and crafting materials.
|
||||||
* `cd sound_api`
|
|
||||||
* `git submodule init`
|
|
||||||
* `git submodule update`
|
|
||||||
|
|
||||||
to update please use the following commands starting inside the mod directory
|
Thanks to:
|
||||||
|
* MisterE, OgelGames, and Blockhead for naming advice/suggestion.
|
||||||
|
* luk3yx, Blockhead, BuckarooBanzai for bouncing ideas on the concept of this mod.
|
||||||
|
|
||||||
* `git pull`
|
## Usage
|
||||||
* `git submodule sync`
|
|
||||||
* `git submodule update`
|
|
||||||
|
|
||||||
## Dev Docs
|
See the respective sub apis doc file in /doc for detailed documentation.
|
||||||
|
|
||||||
Can be found at /DEV.md
|
## Directly supported games and mods
|
||||||
|
|
||||||
|
| Games | Sounds | Materials | Textures |
|
||||||
|
| ----------------- | --------- | --------- | --------- |
|
||||||
|
| Minetest Game | x | x | x |
|
||||||
|
| MineClone2 | x | x | |
|
||||||
|
| Mineclonia | x | x | |
|
||||||
|
| Hades Revisited | x | x | |
|
||||||
|
| Farlands Reloaded | 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`
|
||||||
|
13
doc/functions.md
Normal file
13
doc/functions.md
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
# 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
|
12
doc/gameid.md
Normal file
12
doc/gameid.md
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
# 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
|
3
doc/materials.md
Normal file
3
doc/materials.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# Materials API
|
||||||
|
|
||||||
|
consult `/src/materials/minetest.lua` at this time
|
@ -1,20 +1,6 @@
|
|||||||
# Sound API
|
# Sound API
|
||||||
|
|
||||||
This mod is a wrapper for [sound api library](https://github.com/mt-mods/sound_api_core/).
|
## Option 1: Agnostically depend
|
||||||
|
|
||||||
## Usage of the sound api
|
|
||||||
|
|
||||||
### Option 1: embed
|
|
||||||
|
|
||||||
You can insert the [sound api library](https://github.com/mt-mods/sound_api_core/) directly into your mod as a submodule and use the following to load it.
|
|
||||||
|
|
||||||
```lua
|
|
||||||
local sound_api = dofile(modpath .. "/sound_api_core/init.lua")
|
|
||||||
```
|
|
||||||
|
|
||||||
additionally the author recommends that you use dependabot(github) or similar to help you keep the submodule up to date.
|
|
||||||
|
|
||||||
### Option 2: Agnostically depend
|
|
||||||
|
|
||||||
You can do this by using a custom field in your node def instead of the `sounds` key.
|
You can do this by using a custom field in your node def instead of the `sounds` key.
|
||||||
|
|
||||||
@ -34,17 +20,16 @@ where:
|
|||||||
* key: string name of the field from the sound api you want to use, for example `node_sound_stone_defaults`
|
* 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.
|
* input: table input of fields you want passed to the key field, used to override specific sounds.
|
||||||
|
|
||||||
### Option 3: 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
|
```lua
|
||||||
minetest.register_node(nodename, {
|
minetest.register_node(nodename, {
|
||||||
...
|
...
|
||||||
sounds = sound_api.node_sound_stone_defaults(input)
|
sounds = xcompat.sounds.node_sound_stone_defaults(input)
|
||||||
...
|
...
|
||||||
})
|
})
|
||||||
```
|
```
|
||||||
|
|
||||||
* input: optional table to override some or all of returned values
|
* input: optional table to override some or all of returned values
|
||||||
|
|
3
doc/textures.md
Normal file
3
doc/textures.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# Textures API
|
||||||
|
|
||||||
|
consult `/src/texture/minetest.lua` at this time
|
22
init.lua
22
init.lua
@ -1,9 +1,19 @@
|
|||||||
local modpath = minetest.get_modpath("sound_api")
|
local modpath = minetest.get_modpath("xcompat")
|
||||||
|
|
||||||
sound_api = dofile(modpath .. "/sound_api_core/init.lua")
|
xcompat = {
|
||||||
|
modpath = modpath,
|
||||||
|
}
|
||||||
|
|
||||||
|
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")
|
||||||
|
|
||||||
local function validate_sound(key)
|
local function validate_sound(key)
|
||||||
if key and sound_api[key] then
|
if key and xcompat.sounds[key] then
|
||||||
return true
|
return true
|
||||||
elseif key then
|
elseif key then
|
||||||
minetest.log("warning", "attempted to call invalid sound: "..key)
|
minetest.log("warning", "attempted to call invalid sound: "..key)
|
||||||
@ -17,7 +27,7 @@ minetest.register_on_mods_loaded(function()
|
|||||||
for name, def in pairs(minetest.registered_nodes) do
|
for name, def in pairs(minetest.registered_nodes) do
|
||||||
if def._sound_def and validate_sound(def._sound_def.key) then
|
if def._sound_def and validate_sound(def._sound_def.key) then
|
||||||
minetest.override_item(name, {
|
minetest.override_item(name, {
|
||||||
sounds = sound_api[def._sound_def.key](def._sound_def.input)
|
sounds = xcompat.sounds[def._sound_def.key](def._sound_def.input)
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -25,9 +35,11 @@ minetest.register_on_mods_loaded(function()
|
|||||||
local old_reg_node = minetest.register_node
|
local old_reg_node = minetest.register_node
|
||||||
function minetest.register_node(name, def)
|
function minetest.register_node(name, def)
|
||||||
if def._sound_def and validate_sound(def._sound_def.key) then
|
if def._sound_def and validate_sound(def._sound_def.key) then
|
||||||
def.sounds = sound_api[def._sound_def.key](def._sound_def.input)
|
def.sounds = xcompat.sounds[def._sound_def.key](def._sound_def.input)
|
||||||
end
|
end
|
||||||
|
|
||||||
old_reg_node(name, def)
|
old_reg_node(name, def)
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
dofile(modpath .. "/src/commands.lua")
|
5
mod.conf
5
mod.conf
@ -1,2 +1,3 @@
|
|||||||
name = sound_api
|
name = xcompat
|
||||||
optional_depends = default, fl_stone, fl_trees, mcl_sounds, hades_sounds, ks_sounds, nodes_nature, fl_topsoil, fl_trees
|
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
|
||||||
|
@ -1,297 +0,0 @@
|
|||||||
local sound_api = {}
|
|
||||||
|
|
||||||
--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
|
|
||||||
|
|
||||||
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
|
|
76
src/commands.lua
Normal file
76
src/commands.lua
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
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
|
||||||
|
})
|
19
src/functions.lua
Normal file
19
src/functions.lua
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
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
|
||||||
|
|
||||||
|
return functions
|
33
src/gameid.lua
Normal file
33
src/gameid.lua
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
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
|
8
src/materials.lua
Normal file
8
src/materials.lua
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
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/materials/" .. filename .. ".lua") then
|
||||||
|
filename = "minetest"
|
||||||
|
end
|
||||||
|
|
||||||
|
return dofile(xcompat.modpath .. "/src/materials/" .. filename .. ".lua")
|
91
src/materials/farlands_reloaded.lua
Normal file
91
src/materials/farlands_reloaded.lua
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
local materials = {
|
||||||
|
apple_leaves = "fl_trees:apple_leaves",
|
||||||
|
apple_log = "fl_trees:apple_trunk",
|
||||||
|
apple_planks = "fl_trees:apple_plank",
|
||||||
|
axe_bronze = "fl_tools:bronze_axe",
|
||||||
|
axe_diamond = "fl_tools:diamond_axe",
|
||||||
|
axe_steel = "fl_tools:steel_axe",
|
||||||
|
axe_stone = "fl_tools:stone_axe",
|
||||||
|
axe_wood = "fl_tools:wood_axe",
|
||||||
|
birch_leaves = "fl_trees:aspen_leaves",
|
||||||
|
birch_log = "fl_trees:aspen_trunk",
|
||||||
|
birch_planks = "fl_trees:aspen_plank",
|
||||||
|
book = "",
|
||||||
|
bowl = "",
|
||||||
|
brick = "",
|
||||||
|
chest = "fl_storage:wood_chest",
|
||||||
|
clay_lump = "fl_bricks:clay_lump",
|
||||||
|
coal_lump = "fl_ores:coal_ore",
|
||||||
|
cobble = "fl_stone:stone_rubble",
|
||||||
|
copper_block = "fl_ores:copper_block",
|
||||||
|
copper_ingot = "fl_ores:copper_ingot",
|
||||||
|
desert_sand = "fl_stone:desert_sand",
|
||||||
|
desert_stone = "fl_stone:desert_stone",
|
||||||
|
diamond = "fl_ores:diamond",
|
||||||
|
dirt = "fl_stone:dirt",
|
||||||
|
dirt_with_grass = "fl_topsoil:dirt_with_grass",
|
||||||
|
dye_black = "fl_dyes:black_dye",
|
||||||
|
dye_blue = "fl_dyes:blue_dye",
|
||||||
|
dye_brown = "fl_dyes:brown_dye",
|
||||||
|
dye_cyan = "fl_dyes:cyan_dye",
|
||||||
|
dye_dark_green = "fl_dyes:dark_green_dye",
|
||||||
|
dye_dark_grey = "fl_dyes:dark_grey_dye",
|
||||||
|
dye_green = "fl_dyes:green_dye",
|
||||||
|
dye_grey = "fl_dyes:grey_dye",
|
||||||
|
dye_orange = "fl_dyes:orange_dye",
|
||||||
|
dye_pink = "fl_dyes:pink_dye",
|
||||||
|
dye_red = "fl_dyes:red_dye",
|
||||||
|
dye_violet = "fl_dyes:violet_dye",
|
||||||
|
dye_white = "fl_dyes:white_dye",
|
||||||
|
dye_yellow = "fl_dyes:yellow_dye",
|
||||||
|
empty_bucket = "fl_bucket:bucket",
|
||||||
|
flint = "fl_topsoil:flint",
|
||||||
|
glass = "fl_glass:framed_glass",
|
||||||
|
glass_block = "fl_glass:framed_glass",
|
||||||
|
glass_bottle = "fl_bottles:bottle",
|
||||||
|
gold_block = "fl_ores:gold_block",
|
||||||
|
gold_ingot = "fl_ores:gold_ingot",
|
||||||
|
gravel = "fl_topsoil:gravel",
|
||||||
|
iron_lump = "fl_ores:iron_ore",
|
||||||
|
jungle_leaves = "fl_trees:jungletree_leaves",
|
||||||
|
mese = "fl_ores:iron_ingot",
|
||||||
|
mese_crystal = "fl_ores:iron_ingot",
|
||||||
|
mese_crystal_fragment = "fl_ores:iron_ingot",
|
||||||
|
obsidian_glass = "",
|
||||||
|
paper = "",
|
||||||
|
pick_steel = "fl_tools:steel_pick",
|
||||||
|
sand = "fl_stone:sand",
|
||||||
|
sandstone = "fl_stone:sandstone",
|
||||||
|
silicon = "mesecons_materials:silicon",
|
||||||
|
silver_ingot = "fl_ores:iron_ingot",
|
||||||
|
slab_stone = "fl_stone:stone_slab",
|
||||||
|
slab_wood = "fl_trees:apple_plank_slab",
|
||||||
|
steel_block = "fl_ores:iron_block",
|
||||||
|
steel_ingot = "fl_ores:iron_ingot",
|
||||||
|
stone = "fl_stone:stone",
|
||||||
|
string = "fl_plantlife:oxeye_daisy",
|
||||||
|
tin_block = "fl_ores:tin_block",
|
||||||
|
tin_ingot = "fl_ores:tin_ingot",
|
||||||
|
torch = "fl_light_sources:torch",
|
||||||
|
water_bucket = "fl_bucket:bucket_water",
|
||||||
|
water_flowing = "fl_liquids:water_flowing",
|
||||||
|
water_source = "fl_liquids:water_source",
|
||||||
|
wool_black = "",
|
||||||
|
wool_brown = "",
|
||||||
|
wool_dark_green = "",
|
||||||
|
wool_green = "",
|
||||||
|
wool_grey = "",
|
||||||
|
wool_white = "",
|
||||||
|
}
|
||||||
|
|
||||||
|
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
|
102
src/materials/hades_revisited.lua
Normal file
102
src/materials/hades_revisited.lua
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
local materials = {
|
||||||
|
apple_leaves = "hades_trees:leaves",
|
||||||
|
apple_log = "hades_trees:tree",
|
||||||
|
apple_planks = "hades_trees:wood",
|
||||||
|
axe_bronze = "hades_core:axe_bronze",
|
||||||
|
axe_diamond = "hades_core:axe_diamond",
|
||||||
|
axe_steel = "hades_core:axe_steel",
|
||||||
|
axe_stone = "hades_core:axe_stone",
|
||||||
|
axe_wood = "hades_core:axe_wood",
|
||||||
|
birch_leaves = "hades_core:birch_leaves",
|
||||||
|
birch_log = "hades_trees:birch_tree",
|
||||||
|
birch_planks = "hades_trees:cream_wood",
|
||||||
|
book = "hades_core:book",
|
||||||
|
-- hades has no bowl but you get plate on eat so makes most sense.
|
||||||
|
bowl = "hades_food:plate",
|
||||||
|
brick = "hades_core:brick",
|
||||||
|
chest = "hades_chests:chest";
|
||||||
|
clay_brick = "hades_core:clay_brick",
|
||||||
|
clay_lump = "hades_core:clay_lump",
|
||||||
|
coal_lump = "hades_core:coal_lump",
|
||||||
|
cobble = "hades_core:cobble",
|
||||||
|
copper_block = "hades_core:copperblock",
|
||||||
|
copper_ingot = "hades_core:copper_ingot",
|
||||||
|
desert_sand = "hades_core:volcanic_sand",
|
||||||
|
desert_stone = "hades_core:stone_baked",
|
||||||
|
diamond = "hades_core:diamond",
|
||||||
|
dirt = "hades_core:dirt",
|
||||||
|
dirt_with_grass = "hades_core:dirt_with_grass",
|
||||||
|
dye_black = "dye:black",
|
||||||
|
dye_blue = "dye:blue",
|
||||||
|
dye_brown = "dye:brown",
|
||||||
|
dye_cyan = "dye:cyan",
|
||||||
|
dye_dark_green = "dye:dark_green",
|
||||||
|
dye_dark_grey = "dye:dark_grey",
|
||||||
|
dye_green = "dye:green",
|
||||||
|
dye_grey = "dye:grey",
|
||||||
|
dye_orange = "dye:orange",
|
||||||
|
dye_pink = "dye:pink",
|
||||||
|
dye_red = "dye:red",
|
||||||
|
dye_violet = "dye:violet",
|
||||||
|
dye_white = "dye:white",
|
||||||
|
dye_yellow = "dye:yellow",
|
||||||
|
empty_bucket = "hades_core:fertile_sand",
|
||||||
|
flint = "",
|
||||||
|
glass = "hades_core:glass",
|
||||||
|
glass_block = "hades_core:glass",
|
||||||
|
glass_bottle = "vessels:glass_bottle",
|
||||||
|
gold_block = "hades_core:goldblock",
|
||||||
|
gold_ingot = "hades_core:gold_ingot",
|
||||||
|
gravel = "hades_core:gravel",
|
||||||
|
iron_lump = "hades_core:iron_lump",
|
||||||
|
jungle_leaves = "hades_trees:jungle_leaves",
|
||||||
|
mese = "hades_core:mese",
|
||||||
|
mese_crystal = "hades_core:mese_crystal",
|
||||||
|
mese_crystal_fragment = "hades_core:mese_crystal_fragment",
|
||||||
|
obsidian_glass = "hades_core:obsidian_glass",
|
||||||
|
paper = "hades_core:paper",
|
||||||
|
pick_steel = "hades_core:pick_steel",
|
||||||
|
sand = "hades_core:fertile_sand",
|
||||||
|
sandstone = "hades_core:sandstone",
|
||||||
|
silicon = "hades_materials:silicon",
|
||||||
|
silver_ingot = "--unknown--",
|
||||||
|
slab_stone = "stairs:slab_stone",
|
||||||
|
slab_wood = "stairs:slab_wood",
|
||||||
|
steel_block = "hades_core:steelblock",
|
||||||
|
steel_ingot = "hades_core:steel_ingot",
|
||||||
|
stone = "hades_core:stone",
|
||||||
|
string = "hades_farming:string",
|
||||||
|
tin_block = "hades_core:tinblock",
|
||||||
|
tin_ingot = "hades_core:tin_ingot",
|
||||||
|
torch = "hades_torches:torch",
|
||||||
|
-- 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",
|
||||||
|
water_flowing = "hades_core:water_flowing",
|
||||||
|
water_source = "hades_core:water_source",
|
||||||
|
wool_black = "wool:black",
|
||||||
|
wool_brown = "wool:brown",
|
||||||
|
wool_dark_green = "wool:dark_green",
|
||||||
|
wool_green = "wool:green",
|
||||||
|
wool_grey = "wool:grey",
|
||||||
|
wool_white = "wool:white",
|
||||||
|
}
|
||||||
|
|
||||||
|
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
|
82
src/materials/mineclonia.lua
Normal file
82
src/materials/mineclonia.lua
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
--note this file handles mineclonia, mineclone2, and its rename voxelibre
|
||||||
|
|
||||||
|
local materials = {
|
||||||
|
apple_leaves = "mcl_trees:leaves_oak",
|
||||||
|
apple_log = "mcl_trees:tree_oak",
|
||||||
|
apple_planks = "mcl_trees:wood_oak",
|
||||||
|
axe_bronze = "mcl_core:axe_bronze",
|
||||||
|
axe_diamond = "mcl_core:axe_diamond",
|
||||||
|
axe_steel = "mcl_core:axe_steel",
|
||||||
|
axe_stone = "mcl_core:axe_stone",
|
||||||
|
axe_wood = "mcl_core:axe_wood",
|
||||||
|
birch_leaves = "mcl_trees:leaves_birch",
|
||||||
|
birch_log = "mcl_trees:tree_birch",
|
||||||
|
birch_planks = "mcl_trees:wood_birch",
|
||||||
|
book = "mcl_core:book",
|
||||||
|
bowl = "mcl_core:bowl",
|
||||||
|
brick = "mcl_core:brick",
|
||||||
|
chest = "mcl_chests:chest",
|
||||||
|
clay_lump = "default:clay_lump",
|
||||||
|
coal_lump = "mcl_core:coal",
|
||||||
|
cobble = "mcl_core:cobble",
|
||||||
|
copper_block = "mcl_copper:copper_block",
|
||||||
|
copper_ingot = "mcl_copper:copper_ingot",
|
||||||
|
desert_sand = "mcl_core:sand",
|
||||||
|
desert_stone = "mcl_core:redsandstone",
|
||||||
|
diamond = "mcl_core:diamond",
|
||||||
|
dirt = "mcl_core:dirt",
|
||||||
|
dirt_with_grass = "mcl_core:dirt_with_grass",
|
||||||
|
dye_black = "mcl_dyes:black",
|
||||||
|
dye_blue = "mcl_dyes:blue",
|
||||||
|
dye_brown = "mcl_dyes:brown",
|
||||||
|
dye_cyan = "mcl_dyes:cyan",
|
||||||
|
dye_dark_green = "mcl_dyes:dark_green",
|
||||||
|
dye_dark_grey = "mcl_dyes:dark_grey",
|
||||||
|
dye_green = "mcl_dyes:green",
|
||||||
|
dye_grey = "mcl_dyes:grey",
|
||||||
|
dye_orange = "mcl_dyes:orange",
|
||||||
|
dye_pink = "mcl_dyes:pink",
|
||||||
|
dye_red = "mcl_dyes:red",
|
||||||
|
dye_violet = "mcl_dyes:violet",
|
||||||
|
dye_white = "mcl_dyes:white",
|
||||||
|
dye_yellow = "mcl_dyes:yellow",
|
||||||
|
empty_bucket = "mcl_buckets:bucket_empty",
|
||||||
|
flint = "mcl_core:flint",
|
||||||
|
glass = "mcl_core:glass",
|
||||||
|
glass_block = "mcl_core:glass",
|
||||||
|
glass_bottle = "mcl_core:glass_bottle",
|
||||||
|
gold_block = "mcl_core:gold_block",
|
||||||
|
gold_ingot = "mcl_core:gold_ingot",
|
||||||
|
gravel = "mcl_core:gravel",
|
||||||
|
iron_lump = "mcl_core:stone_with_iron",
|
||||||
|
jungle_leaves = "mcl_trees:leaves_jungle",
|
||||||
|
mese = "mesecons_torch:redstoneblock",
|
||||||
|
mese_crystal = "mesecons:redstone",
|
||||||
|
mese_crystal_fragment = "mcl_core:iron_ingot",
|
||||||
|
obsidian_glass = "",
|
||||||
|
paper = "mcl_core:paper",
|
||||||
|
pick_steel = "mcl_core:pick_steel",
|
||||||
|
sand = "mcl_core:sand",
|
||||||
|
sandstone = "mcl_core:sandstone",
|
||||||
|
silicon = "mcl_core:iron_ingot",
|
||||||
|
slab_stone = "mcl_stairs:slab_stone",
|
||||||
|
slab_wood = "mcl_stairs:slab_wood",
|
||||||
|
steel_block = "mcl_core:iron_block",
|
||||||
|
steel_ingot = "mcl_core:iron_ingot",
|
||||||
|
stone = "mcl_core:stone",
|
||||||
|
string = "mcl_mobitems:string",
|
||||||
|
tin_block = "mcl_core:iron_block",
|
||||||
|
tin_ingot = "mcl_core:iron_ingot",
|
||||||
|
torch = "mcl_torches:torch",
|
||||||
|
water_bucket = "mcl_buckets:bucket:bucket_water",
|
||||||
|
water_flowing = "mcl_core:water_flowing",
|
||||||
|
water_source = "mcl_core:water_source",
|
||||||
|
wool_black = "mcl_wool:black",
|
||||||
|
wool_brown = "mcl_wool:brown",
|
||||||
|
wool_dark_green = "mcl_wool:dark_green",
|
||||||
|
wool_green = "mcl_wool:green",
|
||||||
|
wool_grey = "mcl_wool:grey",
|
||||||
|
wool_white = "mcl_wool:white",
|
||||||
|
}
|
||||||
|
|
||||||
|
return materials
|
104
src/materials/minetest.lua
Normal file
104
src/materials/minetest.lua
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
local materials = {
|
||||||
|
apple_leaves = "default:leaves",
|
||||||
|
apple_log = "default:tree",
|
||||||
|
apple_planks = "default:wood",
|
||||||
|
axe_bronze = "default:axe_bronze",
|
||||||
|
axe_diamond = "default:axe_diamond",
|
||||||
|
axe_steel = "default:axe_steel",
|
||||||
|
axe_stone = "default:axe_stone",
|
||||||
|
axe_wood = "default:axe_wood",
|
||||||
|
birch_leaves = "default:aspen_leaves",
|
||||||
|
birch_log = "default:aspen_tree",
|
||||||
|
birch_planks = "default:aspen_wood",
|
||||||
|
book = "default:book",
|
||||||
|
bowl = "",
|
||||||
|
brick = "default:brick",
|
||||||
|
chest = "default:chest",
|
||||||
|
clay_lump = "default:clay_lump",
|
||||||
|
coal_lump = "default:coal_lump",
|
||||||
|
cobble = "default:cobble",
|
||||||
|
copper_block = "default:copperblock",
|
||||||
|
copper_ingot = "default:copper_ingot",
|
||||||
|
desert_sand = "default:desert_sand",
|
||||||
|
desert_stone = "default:desert_stone",
|
||||||
|
diamond = "default:diamond",
|
||||||
|
dirt = "default:dirt",
|
||||||
|
dirt_with_grass = "default:dirt_with_grass",
|
||||||
|
dye_black = "dye:black",
|
||||||
|
dye_blue = "dye:blue",
|
||||||
|
dye_brown = "dye:brown",
|
||||||
|
dye_cyan = "dye:cyan",
|
||||||
|
dye_dark_green = "dye:dark_green",
|
||||||
|
dye_dark_grey = "dye:dark_grey",
|
||||||
|
dye_green = "dye:green",
|
||||||
|
dye_grey = "dye:grey",
|
||||||
|
dye_orange = "dye:orange",
|
||||||
|
dye_pink = "dye:pink",
|
||||||
|
dye_red = "dye:red",
|
||||||
|
dye_violet = "dye:violet",
|
||||||
|
dye_white = "dye:white",
|
||||||
|
dye_yellow = "dye:yellow",
|
||||||
|
empty_bucket = "bucket:bucket_empty",
|
||||||
|
flint = "default:flint",
|
||||||
|
glass = "default:glass",
|
||||||
|
glass_block = "default:glass",
|
||||||
|
glass_bottle = "vessels:glass_bottle",
|
||||||
|
gold_block = "default:goldblock",
|
||||||
|
gold_ingot = "default:gold_ingot",
|
||||||
|
gravel = "default:gravel",
|
||||||
|
iron_lump = "default:iron_lump",
|
||||||
|
jungle_leaves = "default:jungleleaves",
|
||||||
|
mese = "default:mese",
|
||||||
|
mese_crystal = "default:mese_crystal",
|
||||||
|
mese_crystal_fragment = "default:mese_crystal_fragment",
|
||||||
|
obsidian_glass = "default:obsidian_glass",
|
||||||
|
paper = "default:paper",
|
||||||
|
pick_steel = "default:pick_steel",
|
||||||
|
sand = "default:sand",
|
||||||
|
sandstone = "default:sandstone",
|
||||||
|
silicon = "mesecons_materials:silicon",
|
||||||
|
slab_stone = "stairs:slab_stone",
|
||||||
|
slab_wood = "stairs:slab_wood",
|
||||||
|
steel_block = "default:steelblock",
|
||||||
|
steel_ingot = "default:steel_ingot",
|
||||||
|
stone = "default:stone",
|
||||||
|
string = "farming:string",
|
||||||
|
tin_block = "default:tinblock",
|
||||||
|
tin_ingot = "default:tin_ingot",
|
||||||
|
torch = "default:torch",
|
||||||
|
water_bucket = "bucket:bucket_water",
|
||||||
|
water_flowing = "default:water_flowing",
|
||||||
|
water_source = "default:water_source",
|
||||||
|
wool_black = "wool:black",
|
||||||
|
wool_brown = "wool:brown",
|
||||||
|
wool_dark_green = "wool:dark_green",
|
||||||
|
wool_green = "wool:green",
|
||||||
|
wool_grey = "wool:grey",
|
||||||
|
wool_white = "wool:white",
|
||||||
|
}
|
||||||
|
|
||||||
|
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
|
8
src/sounds.lua
Normal file
8
src/sounds.lua
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
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/sounds/" .. filename .. ".lua") then
|
||||||
|
filename = "xcompat_agnostic"
|
||||||
|
end
|
||||||
|
|
||||||
|
return dofile(xcompat.modpath .. "/src/sounds/" .. filename .. ".lua")
|
67
src/sounds/exile.lua
Normal file
67
src/sounds/exile.lua
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
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
|
65
src/sounds/farlands_reloaded.lua
Normal file
65
src/sounds/farlands_reloaded.lua
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
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
|
63
src/sounds/forgotten_lands.lua
Normal file
63
src/sounds/forgotten_lands.lua
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
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
|
66
src/sounds/hades_revisited.lua
Normal file
66
src/sounds/hades_revisited.lua
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
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
|
107
src/sounds/ksurvive2.lua
Normal file
107
src/sounds/ksurvive2.lua
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
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
|
67
src/sounds/mineclonia.lua
Normal file
67
src/sounds/mineclonia.lua
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
--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
|
67
src/sounds/minetest.lua
Normal file
67
src/sounds/minetest.lua
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
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
|
63
src/sounds/xcompat_agnostic.lua
Normal file
63
src/sounds/xcompat_agnostic.lua
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
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
|
8
src/textures.lua
Normal file
8
src/textures.lua
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
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")
|
57
src/textures/farlands_reloaded.lua
Normal file
57
src/textures/farlands_reloaded.lua
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
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
|
57
src/textures/minetest.lua
Normal file
57
src/textures/minetest.lua
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
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
|
65
src/textures/xcompat_agnostic.lua
Normal file
65
src/textures/xcompat_agnostic.lua
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
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
|
8
src/utilities.lua
Normal file
8
src/utilities.lua
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
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
|
Reference in New Issue
Block a user