diff --git a/CHANGELOG.md b/CHANGELOG.md index 4698ac3..b57e552 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## [Jul 10th 2024] Unnamed Minor Update + +- Add Unified Inventory categories +- Fixed ocean biomes messing up caves + +## [Jul 9th 2024] Unnamed Minor Update + +- Increase Torch light range from 12 to minetest.LIGHT_MAX (14) + ## [Jul 9th 2024] Hotfix: 07.09.2024 - Fix ores not spawning in any Y level below PyuTestCore_DeepOceanMin (-31) diff --git a/mods/pyutest_core/blocks.lua b/mods/pyutest_core/blocks.lua index 7c9dc29..e765f44 100644 --- a/mods/pyutest_core/blocks.lua +++ b/mods/pyutest_core/blocks.lua @@ -338,7 +338,7 @@ PyuTestCore.make_node("pyutest_core:torch", "Torch", { "torch.png^[transform6", "torch.png^[transform1" }, { - light_source = 12, + light_source = minetest.LIGHT_MAX, walkable = false, drawtype = "torchlike", paramtype = "light", diff --git a/mods/pyutest_core/mapgen.lua b/mods/pyutest_core/mapgen.lua index 313bb63..922b1e3 100644 --- a/mods/pyutest_core/mapgen.lua +++ b/mods/pyutest_core/mapgen.lua @@ -13,7 +13,7 @@ PyuTestCore_DeepOceanMax = PyuTestCore_OceanMin - 1 PyuTestCore_DeepOceanMin = -31 -PyuTestCore_SurfaceBottom = 2 +PyuTestCore_SurfaceBottom = 1 PyuTestCore_WorldBottom = -31000 PyuTestCore_BiomeTops = { @@ -28,90 +28,104 @@ PyuTestCore_BiomeTops = { ice_spikes = 250 } --- wrapper around minetest.register_biome but with defaults. -PyuTestCore.register_biome = function(opts) - local nopts = PyuTestCore.util.tablecopy(opts) or {} - nopts["depth_top"] = nopts["depth_top"] or 1 - nopts["depth_filler"] = nopts["depth_filler"] or 3 - nopts["depth_riverbed"] = nopts["depth_riverbed"] or 2 - nopts["depth_water_top"] = nopts["depth_water_top"] or nil -- cant think of a sane default.. - - nopts["node_river_water"] = nopts["node_river_water"] or "pyutest_core:water_source" - nopts["node_riverbed"] = nopts["node_riverbed"] or "pyutest_core:gravel_block" - - minetest.register_biome(nopts) -end - PyuTestCore.register_ocean = function(name, heat_point, top_node, water_node, ground_node) - PyuTestCore.register_biome({ + minetest.register_biome({ name = name.."_ocean", node_water = water_node or "pyutest_core:water_source", node_river_water = water_node or "pyutest_core:water_source", node_riverbed = ground_node or "pyutest_core:gravel_block", node_top = ground_node or "pyutest_core:gravel_block", + node_stone = ground_node or "pyutest_core:gravel_block", depth_top = 3, node_water_top = top_node or nil, - depth_water_top = 5, + depth_water_top = top_node ~= nil and 5 or nil, y_max = 0, y_min = PyuTestCore_OceanMin, heat_point = heat_point or 50, humidity_point = 100 }) - PyuTestCore.register_biome({ + minetest.register_biome({ name = name.."_deep_ocean", node_water = water_node or "pyutest_core:water_source", node_river_water = water_node or "pyutest_core:water_source", node_riverbed = ground_node or "pyutest_core:gravel_block", node_top = ground_node or "pyutest_core:gravel_block", + node_stone = ground_node or "pyutest_core:gravel_block", depth_top = 3, node_water_top = top_node or nil, - depth_water_top = 5, + depth_water_top = top_node ~= nil and 5 or nil, y_max = PyuTestCore_DeepOceanMax, y_min = PyuTestCore_DeepOceanMin, - heat_point = heat_point or 30, + heat_point = heat_point or 50, humidity_point = 100 }) end -PyuTestCore.register_biome({ - name = "beach", +-- wrapper around minetest.register_biome but with defaults and caves +PyuTestCore.register_biome = function(name, opts) + local nopts = PyuTestCore.util.tablecopy(opts) or {} + nopts["name"] = name + nopts["depth_top"] = nopts["depth_top"] or 1 + nopts["depth_filler"] = nopts["depth_filler"] or 3 + nopts["depth_riverbed"] = nopts["depth_riverbed"] or 2 + nopts["depth_water_top"] = nopts["depth_water_top"] or nil -- cant think of a sane default.. - node_top = "pyutest_core:sand_block", - node_filler = nil, + nopts["node_water"] = nopts["node_water"] or "pyutest_core:water_source" + nopts["node_river_water"] = nopts["node_river_water"] or "pyutest_core:water_source" + nopts["node_riverbed"] = nopts["node_riverbed"] or "pyutest_core:gravel_block" - y_max = PyuTestCore_SurfaceBottom, - y_min = PyuTestCore_SurfaceBottom - 1, + minetest.register_biome(nopts) - heat_point = 40, - humidity_point = 40 -}) + minetest.register_biome({ + name = name.."_ocean", + node_top = nopts["node_riverbed"], + depth_top = 2, + node_filler = nopts["node_riverbed"], + depth_filler = 3, + depth_riverbed = 2, + + node_water = nopts["node_water"], + node_river_water = nopts["node_river_water"], -PyuTestCore.register_biome({ - name = "snowy_beach", + heat_point = nopts["heat_point"], + humidity_point = nopts["humidity_point"], - node_dust = "pyutest_core:snow_carpet", + y_max = 0, + y_min = PyuTestCore_OceanMin + }) - node_top = "pyutest_core:sand_block", - node_filler = nil, + minetest.register_biome({ + name = name.."_deep_ocean", + + node_top = nopts["node_riverbed"], + depth_top = 2, + node_filler = nopts["node_riverbed"], + depth_filler = 3, + depth_riverbed = 2, + + node_water = nopts["node_water"], + node_river_water = nopts["node_river_water"], - y_max = PyuTestCore_SurfaceBottom, - y_min = PyuTestCore_SurfaceBottom - 3, + heat_point = nopts["heat_point"], + humidity_point = nopts["humidity_point"], - heat_point = 9, - humidity_point = 40 -}) + y_max = PyuTestCore_DeepOceanMax, + y_min = PyuTestCore_DeepOceanMin, -PyuTestCore.register_biome({ - name = "cave", + vertical_blend = 5 + }) - y_max = PyuTestCore_DeepOceanMin, - y_min = PyuTestCore_WorldBottom -}) - -PyuTestCore.register_biome({ - name = "grassland", + minetest.register_biome({ + name = name.."_cave", + heat_point = nopts["heat_point"], + humidity_point = nopts["humidity_point"], + y_max = PyuTestCore_DeepOceanMin - 1, + y_min = PyuTestCore_WorldBottom + }) +end +PyuTestCore.register_biome("grassland", { node_top = "pyutest_core:grass_block", node_filler = "pyutest_core:dirt_block", @@ -122,9 +136,7 @@ PyuTestCore.register_biome({ humidity_point = 38, }) -PyuTestCore.register_biome({ - name = "forest", - +PyuTestCore.register_biome("forest", { node_top = "pyutest_core:dark_grass_block", node_filler = "pyutest_core:dirt_block", @@ -135,9 +147,7 @@ PyuTestCore.register_biome({ humidity_point = 63 }) -PyuTestCore.register_biome({ - name = "stony_mountains", - +PyuTestCore.register_biome("stony_mountains", { node_top = "pyutest_core:stone_block", node_filler = "pyutest_core:stone_block", @@ -148,9 +158,7 @@ PyuTestCore.register_biome({ humidity_point = 34 }) -PyuTestCore.register_biome({ - name = "desert", - +PyuTestCore.register_biome("desert", { node_top = "pyutest_core:sand_block", node_filler = "pyutest_core:sandstone_block", @@ -161,9 +169,7 @@ PyuTestCore.register_biome({ humidity_point = 4 }) -PyuTestCore.register_biome({ - name = "desert_mountains", - +PyuTestCore.register_biome("desert_mountains", { node_top = "pyutest_core:sand_block", node_filler = "pyutest_core:sandstone_block", @@ -174,9 +180,7 @@ PyuTestCore.register_biome({ humidity_point = 8 }) -PyuTestCore.register_biome({ - name = "snowy_mountains", - +PyuTestCore.register_biome("snowy_mountains", { node_top = "pyutest_core:snow_block", node_filler = "pyutest_core:snow_block", @@ -187,17 +191,12 @@ PyuTestCore.register_biome({ humidity_point = 23 }) -PyuTestCore.register_biome({ - name = "frozen_plains", - +PyuTestCore.register_biome("frozen_plains", { node_dust = "pyutest_core:snow_carpet", node_top = "pyutest_core:snow_block", node_filler = "pyutest_core:snow_block", - node_water_top = "pyutest_core:ice_block", - depth_water_top = 10, - y_max = PyuTestCore_BiomeTops.frozen_plains, y_min = PyuTestCore_SurfaceBottom, @@ -205,23 +204,17 @@ PyuTestCore.register_biome({ humidity_point = 32 }) -PyuTestCore.register_biome({ - name = "wasteland", - +PyuTestCore.register_biome("wasteland", { node_top = "pyutest_core:dirt_block", node_filler = "pyutest_core:dirt_block", - node_water_top = "pyutest_core:ice_block", - depth_water_top = 10, - y_max = PyuTestCore_BiomeTops.frozen_plains, y_min = PyuTestCore_SurfaceBottom, heat_point = 9, humidity_point = 9 }) -PyuTestCore.register_biome({ - name = "mushroom_fields", +PyuTestCore.register_biome("mushroom_fields", { node_top = "pyutest_core:mycelium_block", node_filler = "pyutest_core:dirt_block", @@ -232,40 +225,29 @@ PyuTestCore.register_biome({ humidity_point = 76 }) -PyuTestCore.register_biome({ - name = "volcano", - +PyuTestCore.register_biome("volcano", { node_top = "pyutest_core:molten_rock_block", node_filler = "pyutest_core:basalt_block", depth_filler = 9, - node_water = "pyutest_core:lava_source", - node_river_water = "pyutest_core:lava_source", - y_max = PyuTestCore_BiomeTops.volcano, y_min = PyuTestCore_SurfaceBottom, - heat_point = 98, + heat_point = 160, humidity_point = 3 }) -PyuTestCore.register_biome({ - name = "ice_spikes", - +PyuTestCore.register_biome("ice_spikes", { node_top = "pyutest_core:ice_block", node_filler = "pyutest_core:ice_block", - node_water_top = "pyutest_core:ice_block", - depth_water_top = 10, - y_max = PyuTestCore_BiomeTops.ice_spikes, y_min = PyuTestCore_SurfaceBottom, heat_point = 9, humidity_point = 28 }) -PyuTestCore.register_biome({ - name = "grassy_hills", +PyuTestCore.register_biome("grassy_hills", { node_top = "pyutest_core:dark_grass_block", node_filler = "pyutest_core:dirt_block", depth_filler = 4, @@ -277,9 +259,7 @@ PyuTestCore.register_biome({ humidity_point = 54 }) -PyuTestCore.register_biome({ - name = "old_growth_forest", - +PyuTestCore.register_biome("old_growth_forest", { node_top = "pyutest_core:dark_grass_block", node_filler = "pyutest_core:dirt_block", @@ -290,9 +270,7 @@ PyuTestCore.register_biome({ humidity_point = 66 }) -PyuTestCore.register_biome({ - name = "snowy_forest", - +PyuTestCore.register_biome("snowy_forest", { node_top = "pyutest_core:snow_block", node_filler = "pyutest_core:dirt_block", @@ -303,9 +281,7 @@ PyuTestCore.register_biome({ humidity_point = 28 }) -PyuTestCore.register_biome({ - name = "savanna", - +PyuTestCore.register_biome("savanna", { node_top = "pyutest_core:savanna_grass_block", node_filler = "pyutest_core:dirt_block", @@ -316,9 +292,7 @@ PyuTestCore.register_biome({ humidity_point = 38 }) -PyuTestCore.register_biome({ - name = "taiga", - +PyuTestCore.register_biome("taiga", { node_top = "pyutest_core:dark_grass_block", node_filler = "pyutest_core:dirt_block", @@ -329,9 +303,7 @@ PyuTestCore.register_biome({ humidity_point = 53 }) -PyuTestCore.register_biome({ - name = "birch_forest", - +PyuTestCore.register_biome("birch_forest", { node_top = "pyutest_core:grass_block", node_filler = "pyutest_core:dirt_block", @@ -342,9 +314,7 @@ PyuTestCore.register_biome({ humidity_point = 63 }) -PyuTestCore.register_biome({ - name = "cherry_grove", - +PyuTestCore.register_biome("cherry_grove", { node_top = "pyutest_core:grass_block", node_filler = "pyutest_core:dirt_block", @@ -355,7 +325,8 @@ PyuTestCore.register_biome({ humidity_point = 64 }) -PyuTestCore.register_ocean("normal") +-- PyuTestCore.register_ocean("normal") +-- PyuTestCore.register_ocean("volcanic", 160, nil, "pyutest_core:lava_source", "pyutest_core:basalt_block") PyuTestCore.BIOMES = {} for k, _ in pairs(minetest.registered_biomes) do diff --git a/mods/pyutest_core/tools.lua b/mods/pyutest_core/tools.lua index fd49655..e82db4d 100644 --- a/mods/pyutest_core/tools.lua +++ b/mods/pyutest_core/tools.lua @@ -3,7 +3,9 @@ PyuTestCore.make_tool = function (nsname, desc, groups, wield_image, extra_conf) description = Translate(desc), wield_image = wield_image, inventory_image = wield_image, - groups = groups + groups = PyuTestCore.util.tableconcat(groups, { + tool = 1 + }) } if extra_conf ~= nil then diff --git a/mods/pyutest_inventory/README.md b/mods/pyutest_inventory/README.md new file mode 100644 index 0000000..98285c2 --- /dev/null +++ b/mods/pyutest_inventory/README.md @@ -0,0 +1,3 @@ +# pyutest_inventory + +PyuTest support for unified_inventory diff --git a/mods/pyutest_inventory/init.lua b/mods/pyutest_inventory/init.lua new file mode 100644 index 0000000..268422e --- /dev/null +++ b/mods/pyutest_inventory/init.lua @@ -0,0 +1,28 @@ +local function get_items_from_group(name) + local list = {} + for k, v in pairs(minetest.registered_items) do + if minetest.get_item_group(k, name) ~= 0 then + table.insert(list, k) + end + end + return list +end + +-- Remove built-in Unified Inventory categories +for k, v in pairs(unified_inventory.registered_categories) do + unified_inventory.remove_category(k) +end + +unified_inventory.register_category("pyutest_inventory:blocks", { + symbol = "pyutest_core:stone_block", + label = "Blocks", + index = 3, + items = get_items_from_group("block") +}) + +unified_inventory.register_category("pyutest_inventory:tools", { + symbol = "pyutest_core:iron_pickaxe", + label = "Tools", + index = 4, + items = get_items_from_group("tool") +}) diff --git a/mods/pyutest_inventory/mod.conf b/mods/pyutest_inventory/mod.conf new file mode 100644 index 0000000..5406959 --- /dev/null +++ b/mods/pyutest_inventory/mod.conf @@ -0,0 +1,2 @@ +name = pyutest_inventory +depends = unified_inventory,pyutest_core