diff --git a/.luacheckrc b/.luacheckrc index 29af7ef..7dff721 100644 --- a/.luacheckrc +++ b/.luacheckrc @@ -1,4 +1,3 @@ - globals = { "minetest", "xcompat", @@ -15,4 +14,5 @@ read_globals = { "hades_sounds", "rp_sounds", "mtt", + "sounds", } diff --git a/README.md b/README.md index 724fb6a..ba388d4 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ Thanks to: ## Usage -See [DEV.md](DEV.md) for detailed documentation. +See the respective sub apis doc file in /doc for detailed documentation. ## Directly supported games and mods @@ -24,6 +24,9 @@ See [DEV.md](DEV.md) for detailed documentation. | 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` diff --git a/doc/functions.md b/doc/functions.md new file mode 100644 index 0000000..fd4541a --- /dev/null +++ b/doc/functions.md @@ -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 \ No newline at end of file diff --git a/doc/gameid.md b/doc/gameid.md new file mode 100644 index 0000000..a09f9be --- /dev/null +++ b/doc/gameid.md @@ -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 \ No newline at end of file diff --git a/doc/materials.md b/doc/materials.md new file mode 100644 index 0000000..6eca5b3 --- /dev/null +++ b/doc/materials.md @@ -0,0 +1,3 @@ +# Materials API + +consult `/src/materials/minetest.lua` at this time \ No newline at end of file diff --git a/DEV.md b/doc/sounds.md similarity index 81% rename from DEV.md rename to doc/sounds.md index 1fa2412..3b13d62 100644 --- a/DEV.md +++ b/doc/sounds.md @@ -1,8 +1,6 @@ -# Xcompat dev docs +# Sound API -## 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. @@ -22,7 +20,7 @@ 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 @@ -34,8 +32,4 @@ minetest.register_node(nodename, { }) ``` -* input: optional table to override some or all of returned values - -## Materials API - -consult `/src/materials.lua` at this time \ No newline at end of file +* input: optional table to override some or all of returned values \ No newline at end of file diff --git a/doc/textures.md b/doc/textures.md new file mode 100644 index 0000000..973e934 --- /dev/null +++ b/doc/textures.md @@ -0,0 +1,3 @@ +# Textures API + +consult `/src/texture/minetest.lua` at this time \ No newline at end of file diff --git a/init.lua b/init.lua index a3abcea..a1f5e2e 100644 --- a/init.lua +++ b/init.lua @@ -1,11 +1,17 @@ local modpath = minetest.get_modpath("xcompat") xcompat = { - sounds = dofile(modpath .. "/src/sounds.lua"), - materials = dofile(modpath .. "/src/materials.lua"), - textures = dofile(modpath .. "/src/textures.lua"), + 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) if key and xcompat.sounds[key] then return true @@ -36,7 +42,9 @@ minetest.register_on_mods_loaded(function() end end) +dofile(modpath .. "/src/commands.lua") + if minetest.get_modpath("mtt") then -- register tests dofile(modpath .. "/mtt.lua") -end \ No newline at end of file +end diff --git a/mod.conf b/mod.conf index f542d24..5e00a53 100644 --- a/mod.conf +++ b/mod.conf @@ -1,3 +1,3 @@ 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, mtt \ No newline at end of file +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 diff --git a/src/commands.lua b/src/commands.lua new file mode 100644 index 0000000..bee2d11 --- /dev/null +++ b/src/commands.lua @@ -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 material: "..sound.." in game: "..gameid) + end + end + end + + minetest.chat_send_player(name, "Sounds test complete") + end +}) \ No newline at end of file diff --git a/src/functions.lua b/src/functions.lua new file mode 100644 index 0000000..52a1b16 --- /dev/null +++ b/src/functions.lua @@ -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 \ No newline at end of file diff --git a/src/gameid.lua b/src/gameid.lua new file mode 100644 index 0000000..b21b0b1 --- /dev/null +++ b/src/gameid.lua @@ -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 \ No newline at end of file diff --git a/src/materials.lua b/src/materials.lua index cfe8454..0512eaf 100644 --- a/src/materials.lua +++ b/src/materials.lua @@ -1,266 +1,8 @@ -local materials = { - dirt = "default:dirt", - sand = "default:sand", - sandstone = "default:sandstone", - 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", -} +local filename = xcompat.gameid -if minetest.get_modpath("moreores") then - materials.silver_ingot = "moreores:silver_ingot" +--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 -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 - -if minetest.get_modpath("mcl_core") then - materials = { - dirt = "mcl_core:dirt", - sand = "mcl_core:sand", - sandstone = "mcl_core:sandstone", - 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", - sandstone = "fl_stone:sandstone", - 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", - sandstone = "hades_core:sandstone", - 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" - 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 -end - -return materials \ No newline at end of file +return dofile(xcompat.modpath .. "/src/materials/" .. filename .. ".lua") diff --git a/src/materials/farlands_reloaded.lua b/src/materials/farlands_reloaded.lua new file mode 100644 index 0000000..8106e22 --- /dev/null +++ b/src/materials/farlands_reloaded.lua @@ -0,0 +1,90 @@ +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", + 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 = "", +} + +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 \ No newline at end of file diff --git a/src/materials/hades_revisited.lua b/src/materials/hades_revisited.lua new file mode 100644 index 0000000..9463d15 --- /dev/null +++ b/src/materials/hades_revisited.lua @@ -0,0 +1,104 @@ +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", + 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", +} + +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 \ No newline at end of file diff --git a/src/materials/mineclonia.lua b/src/materials/mineclonia.lua new file mode 100644 index 0000000..b4081a5 --- /dev/null +++ b/src/materials/mineclonia.lua @@ -0,0 +1,81 @@ +--note this file handles mineclonia, mineclone2, and its rename voxelibre + +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:copper_block", + steel_block = "mcl_core:iron_block", + gold_block = "mcl_core:gold_block", + tin_block = "mcl_core:iron_block", + 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", + 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", + 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", + apple_leaves = "mcl_trees:leaves_oak", + apple_log = "mcl_trees:tree_oak", + apple_planks = "mcl_trees:wood_oak", + birch_leaves = "mcl_trees:leaves_birch", + birch_log = "mcl_trees:tree_birch", + birch_planks = "mcl_trees:wood_birch", + jungle_leaves = "mcl_trees:leaves_jungle", + bowl = "mcl_core:bowl", +} + +return materials \ No newline at end of file diff --git a/src/materials/minetest.lua b/src/materials/minetest.lua new file mode 100644 index 0000000..07393ac --- /dev/null +++ b/src/materials/minetest.lua @@ -0,0 +1,103 @@ +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", + 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 = "", +} + +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 \ No newline at end of file diff --git a/src/sounds.lua b/src/sounds.lua index 7c64487..a871259 100644 --- a/src/sounds.lua +++ b/src/sounds.lua @@ -1,297 +1,8 @@ -local sound_api = {} +local filename = xcompat.gameid ---convert some games for api usage - ---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 - - ---api -function sound_api.node_sound_default(soundtable) - if minetest.get_modpath("default") then - return default.node_sound_defaults(soundtable) - elseif minetest.get_modpath("mcl_sounds") then - return mcl_sounds.node_sound_defaults(soundtable) - elseif minetest.get_modpath("ks_sounds") then - return ks.node_sound_default(soundtable) - elseif minetest.get_modpath("nodes_nature") then - return nodes_nature.node_sound_default(soundtable) - elseif minetest.get_modpath("hades_sounds") then - return hades_sounds.node_sound_defaults(soundtable) - elseif minetest.get_modpath("rp_sounds") then - return rp_sounds.node_sound_defaults(soundtable) - else - return soundtable - end -end - -function sound_api.node_sound_stone_defaults(soundtable) - if minetest.get_modpath("default") then - return default.node_sound_stone_defaults(soundtable) - elseif minetest.get_modpath("mcl_sounds") then - return mcl_sounds.node_sound_stone_defaults(soundtable) - elseif minetest.get_modpath("nodes_nature") then - return nodes_nature.node_sound_stone_defaults(soundtable) - elseif minetest.get_modpath("fl_stone") then - return fl_stone.sounds.stone(soundtable) - elseif minetest.get_modpath("hades_sounds") then - return hades_sounds.node_sound_stone_defaults(soundtable) - elseif minetest.get_modpath("rp_sounds") then - return rp_sounds.node_sound_stone_defaults(soundtable) - else - return soundtable - end -end - -function sound_api.node_sound_dirt_defaults(soundtable) - if minetest.get_modpath("default") then - return default.node_sound_dirt_defaults(soundtable) - elseif minetest.get_modpath("mcl_sounds") then - return mcl_sounds.node_sound_dirt_defaults(soundtable) - elseif minetest.get_modpath("nodes_nature") then - return nodes_nature.node_sound_dirt_defaults(soundtable) - --s/dirt/grass - elseif minetest.get_modpath("fl_topsoil") then - return fl_topsoil.sounds.grass(soundtable) - elseif minetest.get_modpath("hades_sounds") then - return hades_sounds.node_sound_dirt_defaults(soundtable) - elseif minetest.get_modpath("rp_sounds") then - return rp_sounds.node_sound_dirt_defaults(soundtable) - else - return soundtable - end -end - ---return dirt as some games use dirt vs grass -function sound_api.node_sound_grass_defaults(soundtable) - if minetest.get_modpath("hades_sounds") then - return hades_sounds.node_sound_grass_defaults(soundtable) - else - return sound_api.node_sound_dirt_defaults(soundtable) - end -end - -function sound_api.node_sound_sand_defaults(soundtable) - if minetest.get_modpath("default") then - return default.node_sound_sand_defaults(soundtable) - elseif minetest.get_modpath("mcl_sounds") then - return mcl_sounds.node_sound_sand_defaults(soundtable) - elseif minetest.get_modpath("nodes_nature") then - return nodes_nature.node_sound_sand_defaults(soundtable) - elseif minetest.get_modpath("fl_stone") then - return fl_stone.sounds.sand(soundtable) - elseif minetest.get_modpath("hades_sounds") then - return hades_sounds.node_sound_sand_defaults(soundtable) - elseif minetest.get_modpath("rp_sounds") then - return rp_sounds.node_sound_sand_defaults(soundtable) - else - return soundtable - end -end - -function sound_api.node_sound_gravel_defaults(soundtable) - if minetest.get_modpath("default") then - return default.node_sound_gravel_defaults(soundtable) - --s/gravel/sand - elseif minetest.get_modpath("mcl_sounds") then - return mcl_sounds.node_sound_sand_defaults(soundtable) - elseif minetest.get_modpath("nodes_nature") then - return nodes_nature.node_sound_gravel_defaults(soundtable) - elseif minetest.get_modpath("fl_topsoil") then - return fl_topsoil.sounds.gravel(soundtable) - elseif minetest.get_modpath("hades_sounds") then - return hades_sounds.node_sound_gravel_defaults(soundtable) - else - return soundtable - end -end - -function sound_api.node_sound_wood_defaults(soundtable) - if minetest.get_modpath("default") then - return default.node_sound_wood_defaults(soundtable) - elseif minetest.get_modpath("mcl_sounds") then - return mcl_sounds.node_sound_wood_defaults(soundtable) - elseif minetest.get_modpath("ks_sounds") then - return ks.node_sound_wood_default(soundtable) - elseif minetest.get_modpath("nodes_nature") then - return nodes_nature.node_sound_wood_defaults(soundtable) - elseif minetest.get_modpath("fl_trees") then - return fl_trees.sounds.wood(soundtable) - elseif minetest.get_modpath("hades_sounds") then - return hades_sounds.node_sound_wood_defaults(soundtable) - elseif minetest.get_modpath("rp_sounds") then - return rp_sounds.node_sound_wood_defaults(soundtable) - else - return soundtable - end -end - -function sound_api.node_sound_leaves_defaults(soundtable) - if minetest.get_modpath("default") then - return default.node_sound_leaves_defaults(soundtable) - elseif minetest.get_modpath("mcl_sounds") then - return mcl_sounds.node_sound_leaves_defaults(soundtable) - elseif minetest.get_modpath("ks_sounds") then - return ks.node_sound_leaves_default(soundtable) - elseif minetest.get_modpath("nodes_nature") then - return nodes_nature.node_sound_leaves_defaults(soundtable) - elseif minetest.get_modpath("hades_sounds") then - return hades_sounds.node_sound_leaves_defaults(soundtable) - elseif minetest.get_modpath("rp_sounds") then - return rp_sounds.node_sound_leaves_defaults(soundtable) - else - return soundtable - end -end - -function sound_api.node_sound_glass_defaults(soundtable) - if minetest.get_modpath("default") then - return default.node_sound_glass_defaults(soundtable) - elseif minetest.get_modpath("mcl_sounds") then - return mcl_sounds.node_sound_glass_defaults(soundtable) - elseif minetest.get_modpath("nodes_nature") then - return nodes_nature.node_sound_glass_defaults(soundtable) - elseif minetest.get_modpath("hades_sounds") then - return hades_sounds.node_sound_glass_defaults(soundtable) - elseif minetest.get_modpath("rp_sounds") then - return rp_sounds.node_sound_glass_defaults(soundtable) - else - return soundtable - end -end - - -function sound_api.node_sound_ice_defaults(soundtable) - if minetest.get_modpath("default") then - return default.node_sound_ice_defaults(soundtable) - --s/ice/glass - elseif minetest.get_modpath("mcl_sounds") then - return mcl_sounds.node_sound_glass_defaults(soundtable) - --s/ice/glass - elseif minetest.get_modpath("nodes_nature") then - return nodes_nature.node_sound_glass_defaults(soundtable) - --s/ice/glass - elseif minetest.get_modpath("hades_sounds") then - return hades_sounds.node_sound_glass_defaults(soundtable) - else - return soundtable - end -end - -function sound_api.node_sound_metal_defaults(soundtable) - if minetest.get_modpath("default") then - return default.node_sound_metal_defaults(soundtable) - elseif minetest.get_modpath("mcl_sounds") then - return mcl_sounds.node_sound_metal_defaults(soundtable) - elseif minetest.get_modpath("hades_sounds") then - return hades_sounds.node_sound_metal_defaults(soundtable) - else - return soundtable - end -end - -function sound_api.node_sound_water_defaults(soundtable) - if minetest.get_modpath("default") then - return default.node_sound_water_defaults(soundtable) - elseif minetest.get_modpath("mcl_sounds") then - return mcl_sounds.node_sound_water_defaults(soundtable) - elseif minetest.get_modpath("nodes_nature") then - return nodes_nature.node_sound_water_defaults(soundtable) - elseif minetest.get_modpath("hades_sounds") then - return hades_sounds.node_sound_water_defaults(soundtable) - elseif minetest.get_modpath("rp_sounds") then - return rp_sounds.node_sound_water_defaults(soundtable) - else - return soundtable - end -end - -function sound_api.node_sound_lava_defaults(soundtable) - --s/lava/water - if minetest.get_modpath("default") then - return default.node_sound_water_defaults(soundtable) - elseif minetest.get_modpath("mcl_sounds") then - return mcl_sounds.node_sound_lava_defaults(soundtable) - --s/lava/water - elseif minetest.get_modpath("nodes_nature") then - return nodes_nature.node_sound_water_defaults(soundtable) - elseif minetest.get_modpath("hades_sounds") then - return hades_sounds.node_sound_lava_defaults(soundtable) - --s/lava/water - elseif minetest.get_modpath("rp_sounds") then - return rp_sounds.node_sound_water_defaults(soundtable) - else - return soundtable - end -end - -function sound_api.node_sound_snow_defaults(soundtable) - if minetest.get_modpath("default") then - return default.node_sound_snow_defaults(soundtable) - elseif minetest.get_modpath("mcl_sounds") then - return mcl_sounds.node_sound_snow_defaults(soundtable) - elseif minetest.get_modpath("ks_sounds") then - return ks.node_sound_snow_default(soundtable) - elseif minetest.get_modpath("nodes_nature") then - return nodes_nature.node_sound_snow_defaults(soundtable) - elseif minetest.get_modpath("fl_topsoil") then - return fl_topsoil.sounds.snow(soundtable) - elseif minetest.get_modpath("rp_sounds") then - return rp_sounds.node_sound_snow_defaults(soundtable) - else - return soundtable - end -end - -function sound_api.node_sound_wool_defaults(soundtable) - --s/wool/default - if minetest.get_modpath("default") then - return default.node_sound_defaults(soundtable) - elseif minetest.get_modpath("mcl_sounds") then - return mcl_sounds.node_sound_wool_defaults(soundtable) - else - return soundtable - end +--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 sound_api \ No newline at end of file +return dofile(xcompat.modpath .. "/src/sounds/" .. filename .. ".lua") \ No newline at end of file diff --git a/src/sounds/exile.lua b/src/sounds/exile.lua new file mode 100644 index 0000000..c944ed6 --- /dev/null +++ b/src/sounds/exile.lua @@ -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 \ No newline at end of file diff --git a/src/sounds/farlands_reloaded.lua b/src/sounds/farlands_reloaded.lua new file mode 100644 index 0000000..e5be807 --- /dev/null +++ b/src/sounds/farlands_reloaded.lua @@ -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 \ No newline at end of file diff --git a/src/sounds/forgotten_lands.lua b/src/sounds/forgotten_lands.lua new file mode 100644 index 0000000..96eb7d9 --- /dev/null +++ b/src/sounds/forgotten_lands.lua @@ -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 \ No newline at end of file diff --git a/src/sounds/hades_revisited.lua b/src/sounds/hades_revisited.lua new file mode 100644 index 0000000..a8a2a04 --- /dev/null +++ b/src/sounds/hades_revisited.lua @@ -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 \ No newline at end of file diff --git a/src/sounds/ksurvive2.lua b/src/sounds/ksurvive2.lua new file mode 100644 index 0000000..70ae03b --- /dev/null +++ b/src/sounds/ksurvive2.lua @@ -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 \ No newline at end of file diff --git a/src/sounds/mineclonia.lua b/src/sounds/mineclonia.lua new file mode 100644 index 0000000..5de0753 --- /dev/null +++ b/src/sounds/mineclonia.lua @@ -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 \ No newline at end of file diff --git a/src/sounds/minetest.lua b/src/sounds/minetest.lua new file mode 100644 index 0000000..3c2485e --- /dev/null +++ b/src/sounds/minetest.lua @@ -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 \ No newline at end of file diff --git a/src/sounds/xcompat_agnostic.lua b/src/sounds/xcompat_agnostic.lua new file mode 100644 index 0000000..2dbdf30 --- /dev/null +++ b/src/sounds/xcompat_agnostic.lua @@ -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 \ No newline at end of file diff --git a/src/textures.lua b/src/textures.lua index 71816d1..ceb7736 100644 --- a/src/textures.lua +++ b/src/textures.lua @@ -1,179 +1,8 @@ -local textures = { - gravel = "[combine:16x16^[noalpha^[colorize:#3a3b3c", - brick = "[combine:16x16^[noalpha^[colorize:#AA4A44", +local filename = xcompat.gameid - 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", - }, -} - -if minetest.get_modpath("default") then - 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", - }, - } -elseif minetest.get_modpath("fl_ores") and minetest.get_modpath("fl_stone") then - 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", - }, - } +--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 textures \ No newline at end of file +return dofile(xcompat.modpath .. "/src/textures/" .. filename .. ".lua") \ No newline at end of file diff --git a/src/textures/farlands_reloaded.lua b/src/textures/farlands_reloaded.lua new file mode 100644 index 0000000..eb06cd6 --- /dev/null +++ b/src/textures/farlands_reloaded.lua @@ -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 \ No newline at end of file diff --git a/src/textures/minetest.lua b/src/textures/minetest.lua new file mode 100644 index 0000000..2216922 --- /dev/null +++ b/src/textures/minetest.lua @@ -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 \ No newline at end of file diff --git a/src/textures/xcompat_agnostic.lua b/src/textures/xcompat_agnostic.lua new file mode 100644 index 0000000..ae26238 --- /dev/null +++ b/src/textures/xcompat_agnostic.lua @@ -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 \ No newline at end of file diff --git a/src/utilities.lua b/src/utilities.lua new file mode 100644 index 0000000..61a7411 --- /dev/null +++ b/src/utilities.lua @@ -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 \ No newline at end of file