From 696d8e86363c0205ce5532636742f7296d519d5e Mon Sep 17 00:00:00 2001 From: IamPyu Date: Sun, 3 Nov 2024 20:39:38 -0600 Subject: [PATCH] Rename biomes, add fire animation, new world, and more --- CHANGELOG.md | 12 ++- mods/CORE/pyutest/damage.lua | 23 +++++ mods/CORE/pyutest/init.lua | 3 +- mods/CORE/pyutest/sounds/pyutest-special1.ogg | Bin 0 -> 8330 bytes mods/CORE/pyutest/util.lua | 9 +- mods/ENTITIES/pyutest_entities/api.lua | 6 +- mods/ENTITIES/pyutest_entities/init.lua | 9 +- mods/ENTITIES/pyutest_mobs/snowman.lua | 2 +- mods/ITEMS/pyutest_blocks/api.lua | 6 +- mods/ITEMS/pyutest_blocks/basic.lua | 1 - mods/ITEMS/pyutest_blocks/special.lua | 15 +++- mods/ITEMS/pyutest_crafts/init.lua | 9 ++ mods/ITEMS/pyutest_tools/tools.lua | 2 +- mods/PLAYER/pyutest_cmds/fun.lua | 2 +- mods/PLAYER/pyutest_cmds/worldedit.lua | 22 ++++- mods/WORLD/pyutest_mapgen/api.lua | 5 +- mods/WORLD/pyutest_ores/api.lua | 8 +- mods/WORLD/pyutest_ores/init.lua | 3 +- mods/WORLD/pyutest_overworld/biomes.lua | 40 ++++----- mods/WORLD/pyutest_overworld/mod.conf | 2 +- mods/WORLD/pyutest_overworld/structures.lua | 6 +- mods/WORLD/pyutest_overworld/trees.lua | 80 +++++++++--------- mods/WORLD/pyutest_worlds/api.lua | 12 +-- mods/WORLD/pyutest_worlds/ice.lua | 4 +- mods/WORLD/pyutest_worlds/init.lua | 1 + mods/WORLD/pyutest_worlds/lava.lua | 6 +- mods/WORLD/pyutest_worlds/sky.lua | 25 ++++++ textures/pyutest-coin.png | Bin 175 -> 182 bytes textures/pyutest-fire-animated.png | Bin 0 -> 352 bytes 29 files changed, 210 insertions(+), 103 deletions(-) create mode 100644 mods/CORE/pyutest/damage.lua create mode 100644 mods/CORE/pyutest/sounds/pyutest-special1.ogg create mode 100644 mods/WORLD/pyutest_worlds/sky.lua create mode 100644 textures/pyutest-fire-animated.png diff --git a/CHANGELOG.md b/CHANGELOG.md index 91f8c91..fb0aae3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## [Nov 3rd - STILL UNDERDEVELOPMENT] Update: The "Another update with no special name" Update + +I should just start giving updates a version number to avoid naming updates. + +- Added various new sounds +- Give Fire an animated texture +- Added a Sky Dimension for people using `floatlands` mapgen setting in v7 + ## [Oct 20th - Nov 2nd] Update: The Something Update - Make some changes to world generation @@ -13,8 +21,8 @@ - Add Time Device, it is not craftable in Survival mode and is only for Creative mode. - Improve death messages - Added stats which can improve your defense and attack capabilities -- Defense stat is only applied when your health is greater than one fourth of it! -- Added upgrade runes which can be used to improve your defense and attack stats + - Defense stat is only applied when your health is greater than one fourth of it! + - Added upgrade runes which can be used to improve your defense and attack stats - Added buckets - Added beaches - Added various small overworld features diff --git a/mods/CORE/pyutest/damage.lua b/mods/CORE/pyutest/damage.lua new file mode 100644 index 0000000..cb728a9 --- /dev/null +++ b/mods/CORE/pyutest/damage.lua @@ -0,0 +1,23 @@ +PyuTest.deal_damage = function(target, damage, reason) + local hp = target:get_hp() + + if hp > 0 then + target:set_hp(hp - damage, reason) + end +end + +PyuTest.DAMAGE_TYPES = { + explosion = function (range) + return { + type = "set_hp", + _pyutest = { + type = "explosion", + range = range + } + } + end +} + +PyuTest.mt_damage_to_pyutest_damage = function(reason) + +end diff --git a/mods/CORE/pyutest/init.lua b/mods/CORE/pyutest/init.lua index d858c32..cb0069c 100644 --- a/mods/CORE/pyutest/init.lua +++ b/mods/CORE/pyutest/init.lua @@ -35,9 +35,10 @@ PyuTest.DEFAULT_EFFECTS = { PyuTest.WORLD_GRAVITY = minetest.settings:get("movement_gravity") -PyuTest.get_schem_path = function (name) +PyuTest.get_schematic_path = function (name) return minetest.get_modpath("pyutest") .. "/schematics/"..name..".mts" end local modpath = minetest.get_modpath("pyutest") +dofile(modpath.."/damage.lua") dofile(modpath.."/util.lua") diff --git a/mods/CORE/pyutest/sounds/pyutest-special1.ogg b/mods/CORE/pyutest/sounds/pyutest-special1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..9fbb40983e0255ff452a90c0448ac3fd5e35edb2 GIT binary patch literal 8330 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 literal 0 HcmV?d00001 diff --git a/mods/CORE/pyutest/util.lua b/mods/CORE/pyutest/util.lua index 7766ff2..fee78ae 100644 --- a/mods/CORE/pyutest/util.lua +++ b/mods/CORE/pyutest/util.lua @@ -113,6 +113,7 @@ PyuTest.create_explosion = function (pos, range, rm_pos, dmg, damage_whitelist) v:punch(v, nil, { damage_groups = {fleshy = dmg} }, nil) + PyuTest.deal_damage(v, dmg, PyuTest.DAMAGE_TYPES.explosion(range)) end if damage_whitelist ~= nil then @@ -275,14 +276,6 @@ PyuTest.register_interval = function(fn, time) interval() end -PyuTest.deal_damage = function(target, damage, reason) - local hp = target:get_hp() - - if hp > 0 then - target:set_hp(hp - damage, reason) - end -end - PyuTest.give_item_or_drop = function(stack, inventory, listname, pos) local leftover = inventory:add_item(listname, stack) diff --git a/mods/ENTITIES/pyutest_entities/api.lua b/mods/ENTITIES/pyutest_entities/api.lua index 161234f..739da48 100644 --- a/mods/ENTITIES/pyutest_entities/api.lua +++ b/mods/ENTITIES/pyutest_entities/api.lua @@ -259,7 +259,11 @@ PyuTest.make_mob = function (name, properties, options) local pos = self.object:get_pos() for _, v in pairs(self.options.drops) do - minetest.add_item(pos, v) + local o = minetest.add_item(pos, v) + + if o then + o:add_velocity(vector.new(math.random(-2, 2), 5, math.random(-2, 2))) + end end end }, {__index = class})) diff --git a/mods/ENTITIES/pyutest_entities/init.lua b/mods/ENTITIES/pyutest_entities/init.lua index 7dc09d5..b01da66 100644 --- a/mods/ENTITIES/pyutest_entities/init.lua +++ b/mods/ENTITIES/pyutest_entities/init.lua @@ -28,4 +28,11 @@ PyuTest.make_mob("pyutest_entities:dummy", { "player.png", "player_back.png" }, nametag = "Dummy", -}, {}) +}, { + drops = { + "pyutest_tools:apple 3", + "pyutest_ores:diamond_shard 3", + "pyutest_ores:emerald_shard 3", + "pyutest_magic:windball 3" + } +}) diff --git a/mods/ENTITIES/pyutest_mobs/snowman.lua b/mods/ENTITIES/pyutest_mobs/snowman.lua index ac9fb90..9826083 100644 --- a/mods/ENTITIES/pyutest_mobs/snowman.lua +++ b/mods/ENTITIES/pyutest_mobs/snowman.lua @@ -9,7 +9,7 @@ mobs:register_arrow("pyutest_mobs:arrow_snowball", { visual_size = {x = 1, y = 1}, textures = {"pyutest-snowball.png"}, hit_node = function (self, pos) - PyuTest.create_explosion(pos, 1, false, 9, self.object, false) + PyuTest.create_explosion(pos, 1, false, 9, {self.object}) end, hit_player = snowball_hit_player, hit_mob = snowball_hit_player, diff --git a/mods/ITEMS/pyutest_blocks/api.lua b/mods/ITEMS/pyutest_blocks/api.lua index eae5ca2..5d48e0b 100644 --- a/mods/ITEMS/pyutest_blocks/api.lua +++ b/mods/ITEMS/pyutest_blocks/api.lua @@ -99,7 +99,7 @@ PyuTest.make_building_blocks = function(name, desc, tex, colortint, cgroups, ext }), drawtype = "nodebox", paramtype = "light", - paramtype2 = "facedir", + paramtype2 = "colorfacedir", node_box = PyuTest.NODE_BOXES.CARPET, sounds = PyuTest.make_node_sounds(), buildable_to = true, @@ -112,7 +112,7 @@ PyuTest.make_building_blocks = function(name, desc, tex, colortint, cgroups, ext groups = groups, drawtype = "nodebox", paramtype = "light", - paramtype2 = "facedir", + paramtype2 = "colorfacedir", node_box = PyuTest.NODE_BOXES.SLAB, sounds = PyuTest.make_node_sounds(), }, econf)) @@ -133,7 +133,7 @@ PyuTest.make_building_blocks = function(name, desc, tex, colortint, cgroups, ext groups = groups, drawtype = "nodebox", paramtype = "light", - paramtype2 = "facedir", + paramtype2 = "colorfacedir", node_box = PyuTest.NODE_BOXES.STAIRS, sounds = PyuTest.make_node_sounds(), }, econf)) diff --git a/mods/ITEMS/pyutest_blocks/basic.lua b/mods/ITEMS/pyutest_blocks/basic.lua index 35db89c..50f273a 100644 --- a/mods/ITEMS/pyutest_blocks/basic.lua +++ b/mods/ITEMS/pyutest_blocks/basic.lua @@ -144,7 +144,6 @@ PyuTest.make_building_blocks("pyutest_blocks:tuff_bricks", "Tuff Bricks", { cracky = PyuTest.BLOCK_NORMAL, }, { is_ground_content = false, - paramtype2 = "color", }) PyuTest.make_building_blocks("pyutest_blocks:sandstone", "Sandstone", { "pyutest-sandstone.png" }, nil, { diff --git a/mods/ITEMS/pyutest_blocks/special.lua b/mods/ITEMS/pyutest_blocks/special.lua index 988688a..97695bc 100644 --- a/mods/ITEMS/pyutest_blocks/special.lua +++ b/mods/ITEMS/pyutest_blocks/special.lua @@ -68,7 +68,17 @@ PyuTest.make_node("pyutest_blocks:fire", "Fire", { dig_immediate = 1, oddly_breakable_by_hand = PyuTest.BLOCK_FAST, emits_heat = 1 -}, { "pyutest-fire.png" }, { +}, { + { + name = "pyutest-fire-animated.png", + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 1 + } + } +}, { drawtype = "firelike", walkable = false, buildable_to = true, @@ -159,7 +169,8 @@ PyuTest.make_node("pyutest_blocks:workbench", "Workbench", { }) PyuTest.make_node("pyutest_blocks:ladder", "Ladder", { - dig_immediate = 1 + dig_immediate = 1, + oddly_breakable_by_hand = PyuTest.BLOCK_FAST }, { "pyutest-ladder.png" }, { drawtype = "signlike", paramtype = "light", diff --git a/mods/ITEMS/pyutest_crafts/init.lua b/mods/ITEMS/pyutest_crafts/init.lua index 8da3d5d..ce3b232 100644 --- a/mods/ITEMS/pyutest_crafts/init.lua +++ b/mods/ITEMS/pyutest_crafts/init.lua @@ -268,6 +268,15 @@ minetest.register_craft({ } }) +minetest.register_craft({ + output = "pyutest_blocks:ladder 16", + recipe = { + {"pyutest_tools:stick", "", "pyutest_tools:stick"}, + {"pyutest_tools:stick", "pyutest_tools:stick", "pyutest_tools:stick"}, + {"pyutest_tools:stick", "", "pyutest_tools:stick"} + } +}) + minetest.register_craft({ output = "pyutest_tools:wheat 4", recipe = { diff --git a/mods/ITEMS/pyutest_tools/tools.lua b/mods/ITEMS/pyutest_tools/tools.lua index 953a9c2..b825f65 100644 --- a/mods/ITEMS/pyutest_tools/tools.lua +++ b/mods/ITEMS/pyutest_tools/tools.lua @@ -170,7 +170,7 @@ PyuTest.make_item("pyutest_tools:bomb", "Bomb", {}, "pyutest-bomb.png", { return end local pos = user:get_pos() - PyuTest.create_explosion(pos, 2, false, 6, user) + PyuTest.create_explosion(pos, 2, false, 6, {user}) local stack = user:get_wielded_item() stack:set_count(stack:get_count() - 1) diff --git a/mods/PLAYER/pyutest_cmds/fun.lua b/mods/PLAYER/pyutest_cmds/fun.lua index 3189556..c359701 100644 --- a/mods/PLAYER/pyutest_cmds/fun.lua +++ b/mods/PLAYER/pyutest_cmds/fun.lua @@ -17,7 +17,7 @@ minetest.register_chatcommand("explode", { return false, "Please use a number for the range." end - PyuTest.create_explosion(player:get_pos(), range, false, range, player, true) + PyuTest.create_explosion(player:get_pos(), range, false, range, {player}) end }) diff --git a/mods/PLAYER/pyutest_cmds/worldedit.lua b/mods/PLAYER/pyutest_cmds/worldedit.lua index 28ade16..63454ad 100644 --- a/mods/PLAYER/pyutest_cmds/worldedit.lua +++ b/mods/PLAYER/pyutest_cmds/worldedit.lua @@ -53,7 +53,7 @@ minetest.register_chatcommand("place", { func = function(name, param) local player = minetest.get_player_by_name(name) minetest.place_schematic(player:get_pos(), - PyuTest.get_schem_path(param), + PyuTest.get_schematic_path(param), "random", nil, false, @@ -61,3 +61,23 @@ minetest.register_chatcommand("place", { ) end }) + +minetest.register_chatcommand("drain", { + params = "", + description = "Drain all liquid in RANGE", + privs = { + builder = true + }, + func = function (name, param) + local player = minetest.get_player_by_name(name) + local range = tonumber(param) or 1 + + PyuTest.dorange(player:get_pos(), range, function (p) + local node = minetest.get_node(p) + + if minetest.get_item_group(node.name, "liquid") ~= 0 then + minetest.remove_node(p) + end + end) + end +}) diff --git a/mods/WORLD/pyutest_mapgen/api.lua b/mods/WORLD/pyutest_mapgen/api.lua index fdf774e..79162e8 100644 --- a/mods/WORLD/pyutest_mapgen/api.lua +++ b/mods/WORLD/pyutest_mapgen/api.lua @@ -32,7 +32,7 @@ PyuTest.register_structure = function (name, schematic, def) nodenames = {id}, action = function (pos, node) minetest.remove_node(pos) - minetest.place_schematic(pos, PyuTest.get_schem_path(schematic), def.rotation or "random", def.replacements or {}, def.force_placement or true, def.flags or "place_center_x, place_center_z") + minetest.place_schematic(pos, PyuTest.get_schematic_path(schematic), def.rotation or "random", def.replacements or {}, def.force_placement or true, def.flags or "place_center_x, place_center_z") end }) end @@ -153,6 +153,9 @@ PyuTest.register_overworld_biome = function(name, type, opts, only_base) nopts["node_riverbed"] = nopts["node_riverbed"] or "pyutest_blocks:gravel_block" nopts["node_sand"] = nopts["node_sand"] or "pyutest_blocks:sand_block" nopts["node_sandstone"] = nopts["node_sandstone"] or "pyutest_blocks:sandstone_block" + + nopts["_pyutest_biome_flowering"] = nopts["_pyutest_biome_flowering"] or false + nopts["_pyutest_biome_flowering_extra"] = nopts["_pyutest_biome_flowering_extra"] or false if nopts["enable_beaches"] == nil then nopts["enable_beaches"] = true diff --git a/mods/WORLD/pyutest_ores/api.lua b/mods/WORLD/pyutest_ores/api.lua index 85556dd..5665cfe 100644 --- a/mods/WORLD/pyutest_ores/api.lua +++ b/mods/WORLD/pyutest_ores/api.lua @@ -71,6 +71,8 @@ PyuTest.make_ore = function(id, desc, options) y_max = conf.y_max, y_min = conf.y_min, }) + + return conf end PyuTest.make_ore_and_item = function(id, desc, item_id_suffix, item_description_suffix, options) @@ -108,8 +110,8 @@ PyuTest.make_ore_and_item = function(id, desc, item_id_suffix, item_description_ local iid = id.."_"..item_id_suffix local rid = conf.make_raw and id.."_raw" or nil - PyuTest.make_ore(oid, desc .. " Ore", PyuTest.util.tableconcat(conf.ore_options, { - ore_drop = conf.ore_drop or (rid or iid) + local ore_conf = PyuTest.make_ore(oid, desc .. " Ore", PyuTest.util.tableconcat(conf.ore_options, { + ore_drop = conf.ore_options.ore_drop or (rid or iid) })) minetest.register_craftitem(iid, PyuTest.util.tableconcat({ @@ -140,7 +142,7 @@ PyuTest.make_ore_and_item = function(id, desc, item_id_suffix, item_description_ end PyuTest.make_building_blocks(id, desc, conf.block_tiles, conf.block_color, PyuTest.util.tableconcat({ - cracky = conf.ore_strength + cracky = ore_conf.ore_strength }, conf.block_groups), PyuTest.util.tableconcat(conf.block_conf, { overlay_tiles = conf.block_shiny and { "pyutest-shiny-metal-overlay.png" diff --git a/mods/WORLD/pyutest_ores/init.lua b/mods/WORLD/pyutest_ores/init.lua index 9683cc2..e224b4c 100644 --- a/mods/WORLD/pyutest_ores/init.lua +++ b/mods/WORLD/pyutest_ores/init.lua @@ -66,7 +66,8 @@ PyuTest.ORE_STONES = { "pyutest_blocks:granite_block", "pyutest_blocks:andesite_block", "pyutest_blocks:diorite_block", - "pyutest_blocks:tuff_block" + "pyutest_blocks:tuff_block", + "pyutest_blocks:calcite_block" } minetest.register_ore({ diff --git a/mods/WORLD/pyutest_overworld/biomes.lua b/mods/WORLD/pyutest_overworld/biomes.lua index 4627a41..53386cf 100644 --- a/mods/WORLD/pyutest_overworld/biomes.lua +++ b/mods/WORLD/pyutest_overworld/biomes.lua @@ -14,7 +14,7 @@ if PyuTest.is_flat() then end -- Plains like biomes -PyuTest.register_overworld_biome("grassland", PyuTest.BIOME_TYPES.NORMAL, { +PyuTest.register_overworld_biome("Grassland", PyuTest.BIOME_TYPES.NORMAL, { node_top = "pyutest_grass:grass_block", node_filler = "pyutest_blocks:dirt_block", @@ -27,7 +27,7 @@ PyuTest.register_overworld_biome("grassland", PyuTest.BIOME_TYPES.NORMAL, { _pyutest_biome_flowering = true }) -PyuTest.register_overworld_biome("desert", PyuTest.BIOME_TYPES.HOT, { +PyuTest.register_overworld_biome("Desert", PyuTest.BIOME_TYPES.HOT, { node_top = "pyutest_blocks:sand_block", node_filler = "pyutest_blocks:sandstone_block", node_riverbed = "pyutest_blocks:sand_block", @@ -41,7 +41,7 @@ PyuTest.register_overworld_biome("desert", PyuTest.BIOME_TYPES.HOT, { enable_beaches = false }) -PyuTest.register_overworld_biome("frozen_plains", PyuTest.BIOME_TYPES.COLD, { +PyuTest.register_overworld_biome("FrozenPlains", PyuTest.BIOME_TYPES.COLD, { node_dust = "pyutest_blocks:snow_carpet", node_top = "pyutest_blocks:snow_block", node_filler = "pyutest_blocks:snow_block", @@ -56,7 +56,7 @@ PyuTest.register_overworld_biome("frozen_plains", PyuTest.BIOME_TYPES.COLD, { humidity_point = 60 }) -PyuTest.register_overworld_biome("savanna", PyuTest.BIOME_TYPES.WARM, { +PyuTest.register_overworld_biome("Savanna", PyuTest.BIOME_TYPES.WARM, { node_top = "pyutest_grass:savanna_grass_block", node_filler = "pyutest_blocks:dirt_block", @@ -68,7 +68,7 @@ PyuTest.register_overworld_biome("savanna", PyuTest.BIOME_TYPES.WARM, { }) -- Forest like biomes -PyuTest.register_overworld_biome("forest", PyuTest.BIOME_TYPES.NORMAL, { +PyuTest.register_overworld_biome("Forest", PyuTest.BIOME_TYPES.NORMAL, { node_top = "pyutest_grass:dark_grass_block", node_filler = "pyutest_blocks:dirt_block", @@ -81,7 +81,7 @@ PyuTest.register_overworld_biome("forest", PyuTest.BIOME_TYPES.NORMAL, { _pyutest_biome_flowering = true }) -PyuTest.register_overworld_biome("mushroom_fields", PyuTest.BIOME_TYPES.NORMAL, { +PyuTest.register_overworld_biome("MushroomFields", PyuTest.BIOME_TYPES.NORMAL, { node_top = "pyutest_blocks:mycelium_block", node_filler = "pyutest_blocks:dirt_block", @@ -95,7 +95,7 @@ PyuTest.register_overworld_biome("mushroom_fields", PyuTest.BIOME_TYPES.NORMAL, _pyutest_fog_distance = 40, }) -PyuTest.register_overworld_biome("large_mushroom_forest", PyuTest.BIOME_TYPES.NORMAL, { +PyuTest.register_overworld_biome("LargeMushroomForest", PyuTest.BIOME_TYPES.NORMAL, { node_top = "pyutest_blocks:mycelium_block", node_filler = "pyutest_blocks:dirt_block", @@ -109,7 +109,7 @@ PyuTest.register_overworld_biome("large_mushroom_forest", PyuTest.BIOME_TYPES.NO _pyutest_fog_distance = 40, }) -PyuTest.register_overworld_biome("snowy_forest", PyuTest.BIOME_TYPES.COLD, { +PyuTest.register_overworld_biome("SnowyForest", PyuTest.BIOME_TYPES.COLD, { node_dust = "pyutest_blocks:snow_carpet", node_top = "pyutest_blocks:snow_block", node_filler = "pyutest_blocks:dirt_block", @@ -124,7 +124,7 @@ PyuTest.register_overworld_biome("snowy_forest", PyuTest.BIOME_TYPES.COLD, { humidity_point = 60 }) -PyuTest.register_overworld_biome("taiga", PyuTest.BIOME_TYPES.CHILLY, { +PyuTest.register_overworld_biome("Taiga", PyuTest.BIOME_TYPES.CHILLY, { node_top = "pyutest_grass:dark_grass_block", node_filler = "pyutest_blocks:dirt_block", @@ -137,7 +137,7 @@ PyuTest.register_overworld_biome("taiga", PyuTest.BIOME_TYPES.CHILLY, { _pyutest_biome_flowering = true }) -PyuTest.register_overworld_biome("cherry_grove", PyuTest.BIOME_TYPES.NORMAL, { +PyuTest.register_overworld_biome("CherryGrove", PyuTest.BIOME_TYPES.NORMAL, { node_top = "pyutest_grass:grass_block", node_filler = "pyutest_blocks:dirt_block", @@ -152,7 +152,7 @@ PyuTest.register_overworld_biome("cherry_grove", PyuTest.BIOME_TYPES.NORMAL, { }) -PyuTest.register_overworld_biome("birch_forest", PyuTest.BIOME_TYPES.NORMAL, { +PyuTest.register_overworld_biome("BirchForest", PyuTest.BIOME_TYPES.NORMAL, { node_top = "pyutest_grass:grass_block", node_filler = "pyutest_blocks:dirt_block", @@ -165,7 +165,7 @@ PyuTest.register_overworld_biome("birch_forest", PyuTest.BIOME_TYPES.NORMAL, { _pyutest_biome_flowering = true }) -PyuTest.register_overworld_biome("old_growth_birch_forest", PyuTest.BIOME_TYPES.NORMAL, { +PyuTest.register_overworld_biome("OldGrowthBirchForest", PyuTest.BIOME_TYPES.NORMAL, { node_top = "pyutest_grass:grass_block", node_filler = "pyutest_blocks:dirt_block", @@ -179,7 +179,7 @@ PyuTest.register_overworld_biome("old_growth_birch_forest", PyuTest.BIOME_TYPES. _pyutest_biome_flowering_extra = true }) -PyuTest.register_overworld_biome("aspen_forest", PyuTest.BIOME_TYPES.CHILLY, { +PyuTest.register_overworld_biome("AspenForest", PyuTest.BIOME_TYPES.CHILLY, { node_top = "pyutest_grass:aspen_grass_block", node_filler = "pyutest_blocks:dirt_block", @@ -193,7 +193,7 @@ PyuTest.register_overworld_biome("aspen_forest", PyuTest.BIOME_TYPES.CHILLY, { _pyutest_fog_distance = 40, }) -PyuTest.register_overworld_biome("redwood_forest", PyuTest.BIOME_TYPES.CHILLY, { +PyuTest.register_overworld_biome("RedwoodForest", PyuTest.BIOME_TYPES.CHILLY, { node_top = "pyutest_blocks:podzol_block", node_filler = "pyutest_blocks:podzol_block", @@ -208,7 +208,7 @@ PyuTest.register_overworld_biome("redwood_forest", PyuTest.BIOME_TYPES.CHILLY, { }) -- Marsh biomes -PyuTest.register_overworld_biome("swamp", PyuTest.BIOME_TYPES.WETLAND, { +PyuTest.register_overworld_biome("Swamp", PyuTest.BIOME_TYPES.WETLAND, { node_top = "pyutest_grass:swampy_grass_block", node_filler = "pyutest_blocks:dirt_block", @@ -224,7 +224,7 @@ PyuTest.register_overworld_biome("swamp", PyuTest.BIOME_TYPES.WETLAND, { -- Mountainous biomes -PyuTest.register_overworld_biome("stony_mountains", PyuTest.BIOME_TYPES.WARM, { +PyuTest.register_overworld_biome("StonyMountains", PyuTest.BIOME_TYPES.WARM, { node_top = "pyutest_blocks:stone_block", node_filler = "pyutest_blocks:stone_block", @@ -235,7 +235,7 @@ PyuTest.register_overworld_biome("stony_mountains", PyuTest.BIOME_TYPES.WARM, { humidity_point = 10 }, true) -PyuTest.register_overworld_biome("desert_mountains", PyuTest.BIOME_TYPES.HOT, { +PyuTest.register_overworld_biome("DesertMountains", PyuTest.BIOME_TYPES.HOT, { node_top = "pyutest_blocks:sand_block", node_filler = "pyutest_blocks:sandstone_block", @@ -246,7 +246,7 @@ PyuTest.register_overworld_biome("desert_mountains", PyuTest.BIOME_TYPES.HOT, { humidity_point = 5 }, true) -PyuTest.register_overworld_biome("snowy_mountains", PyuTest.BIOME_TYPES.COLD, { +PyuTest.register_overworld_biome("SnowyMountains", PyuTest.BIOME_TYPES.COLD, { node_dust = "pyutest_blocks:snow_carpet", node_top = "pyutest_blocks:snow_block", node_filler = "pyutest_blocks:snow_block", @@ -258,7 +258,7 @@ PyuTest.register_overworld_biome("snowy_mountains", PyuTest.BIOME_TYPES.COLD, { humidity_point = 60 }, true) -PyuTest.register_overworld_biome("ice_spikes", PyuTest.BIOME_TYPES.COLD, { +PyuTest.register_overworld_biome("IceSpikes", PyuTest.BIOME_TYPES.COLD, { node_top = "pyutest_blocks:ice_block", node_filler = "pyutest_blocks:ice_block", @@ -272,7 +272,7 @@ PyuTest.register_overworld_biome("ice_spikes", PyuTest.BIOME_TYPES.COLD, { humidity_point = 60 }) -PyuTest.register_overworld_biome("meadow", PyuTest.BIOME_TYPES.NORMAL, { +PyuTest.register_overworld_biome("Meadow", PyuTest.BIOME_TYPES.NORMAL, { node_top = "pyutest_grass:dark_grass_block", node_filler = "pyutest_blocks:dirt_block", depth_filler = 4, diff --git a/mods/WORLD/pyutest_overworld/mod.conf b/mods/WORLD/pyutest_overworld/mod.conf index 6bd0ee3..d81086b 100644 --- a/mods/WORLD/pyutest_overworld/mod.conf +++ b/mods/WORLD/pyutest_overworld/mod.conf @@ -1 +1 @@ -depends = pyutest_mapgen,pyutest_blocks,pyutest_flowers,pyutest_lootboxes,pyutest_ores +depends = pyutest_mapgen,pyutest_blocks,pyutest_flowers,pyutest_lootboxes,pyutest_ores,pyutest_worlds diff --git a/mods/WORLD/pyutest_overworld/structures.lua b/mods/WORLD/pyutest_overworld/structures.lua index 8b1f397..73278a8 100644 --- a/mods/WORLD/pyutest_overworld/structures.lua +++ b/mods/WORLD/pyutest_overworld/structures.lua @@ -9,7 +9,7 @@ minetest.register_decoration({ PyuTest.register_structure("igloo", "Igloo", { place_on = {"pyutest_blocks:snow_block"}, fill_ratio = 0.00004, - biomes = {"frozen_plains"}, + biomes = {"FrozenPlains"}, rotation = "random", flags = "place_center_x, place_center_z", place_offset_y = 1 @@ -18,7 +18,7 @@ PyuTest.register_structure("igloo", "Igloo", { PyuTest.register_structure("desert_well", "DesertWell", { place_on = {"pyutest_blocks:sand_block"}, fill_ratio = 0.00006, - biomes = {"desert"}, + biomes = {"Desert"}, rotation = "random" }) @@ -28,7 +28,7 @@ PyuTest.register_structure("ice_spike", "IceSpike", { "pyutest_blocks:ice_block", }, biomes = { - "ice_spikes", + "IceSpikes", }, }) diff --git a/mods/WORLD/pyutest_overworld/trees.lua b/mods/WORLD/pyutest_overworld/trees.lua index cbbd6e8..88c68fa 100644 --- a/mods/WORLD/pyutest_overworld/trees.lua +++ b/mods/WORLD/pyutest_overworld/trees.lua @@ -22,7 +22,7 @@ minetest.register_decoration({ place_on = {"group:grass"}, sidelen = 16, fill_ratio = 0.048, - biomes = {"grassland"}, + biomes = {"Grassland"}, decoration = "pyutest_grass:grass_plant" }) @@ -31,7 +31,7 @@ minetest.register_decoration({ place_on = {"group:grass"}, sidelen = 16, fill_ratio = 0.0018, - biomes = {"grassland"}, + biomes = {"Grassland"}, decoration = "pyutest_blocks:haybale_block" }) @@ -40,7 +40,7 @@ minetest.register_decoration({ place_on = {"pyutest_blocks:dirt_block", "pyutest_blocks:sand_block"}, sidelen = 16, fill_ratio = 0.019, - biomes = {"desert"}, + biomes = {"Desert"}, decoration = "pyutest_flowers:deadbush" }) @@ -49,7 +49,7 @@ minetest.register_decoration({ sidelen = 16, fill_ratio = 0.03, place_on = {"pyutest_blocks:water_source"}, - biomes = {"swamp", "swamp_ocean"}, + biomes = {"Swamp", "Swamp_ocean"}, y_max = PyuTest.OVERWORLD_TOP, y_min = 0, decoration = "pyutest_flowers:lilypad", @@ -76,8 +76,8 @@ minetest.register_decoration({ place_on = {"group:grass"}, sidelen = 16, fill_ratio = 0.03, - biomes = {"forest"}, - schematic = PyuTest.get_schem_path("Tree"), + biomes = {"Forest"}, + schematic = PyuTest.get_schematic_path("Tree"), rotation = "random", flags = "place_center_x, place_center_z", force_placement = true @@ -88,8 +88,8 @@ minetest.register_decoration({ place_on = {"group:grass"}, sidelen = 16, fill_ratio = 0.00045, - biomes = {"grassland"}, - schematic = PyuTest.get_schem_path("Tree"), + biomes = {"Grassland"}, + schematic = PyuTest.get_schematic_path("Tree"), rotation = "random", flags = "place_center_x, place_center_z", force_placement = true @@ -100,8 +100,8 @@ minetest.register_decoration({ place_on = {"group:grass"}, sidelen = 16, fill_ratio = 0.00085, - biomes = {"savanna"}, - schematic = PyuTest.get_schem_path("SavannaTree"), + biomes = {"Savanna"}, + schematic = PyuTest.get_schematic_path("SavannaTree"), rotation = "random", flags = "place_center_x, place_center_z", force_placement = true, @@ -113,8 +113,8 @@ minetest.register_decoration({ place_on = {"pyutest_blocks:mycelium_block"}, sidelen = 16, fill_ratio = 0.003, - biomes = {"mushroom_fields", "large_mushroom_forest"}, - schematic = PyuTest.get_schem_path("Mushroom"), + biomes = {"MushroomFields", "LargeMushroomForest"}, + schematic = PyuTest.get_schematic_path("Mushroom"), rotation = "random", flags = "place_center_x, place_center_z", force_placement = true, @@ -126,8 +126,8 @@ minetest.register_decoration({ place_on = {"group:grass"}, sidelen = 16, fill_ratio = 0.005, - biomes = {"taiga"}, - schematic = PyuTest.get_schem_path("TaigaTree"), + biomes = {"Taiga"}, + schematic = PyuTest.get_schematic_path("TaigaTree"), rotation = "random", flags = "place_center_x, place_center_z", force_placement = true, @@ -139,8 +139,8 @@ minetest.register_decoration({ place_on = {"group:grass"}, sidelen = 16, fill_ratio = 0.03, - biomes = {"birch_forest"}, - schematic = PyuTest.get_schem_path("BirchTree"), + biomes = {"BirchForest"}, + schematic = PyuTest.get_schematic_path("BirchTree"), rotation = "random", flags = "place_center_x, place_center_z", force_placement = true @@ -151,8 +151,8 @@ minetest.register_decoration({ place_on = {"group:grass"}, sidelen = 16, fill_ratio = 0.02, - biomes = {"birch_forest", "old_growth_birch_forest"}, - schematic = PyuTest.get_schem_path("TallBirchTree"), + biomes = {"BirchForest", "OldGrowthBirchForest"}, + schematic = PyuTest.get_schematic_path("TallBirchTree"), rotation = "random", flags = "place_center_x, place_center_z", force_placement = true @@ -163,8 +163,8 @@ minetest.register_decoration({ place_on = {"group:grass"}, sidelen = 16, fill_ratio = 0.005, - biomes = {"cherry_grove"}, - schematic = PyuTest.get_schem_path("CherryTree"), + biomes = {"CherryGrove"}, + schematic = PyuTest.get_schematic_path("CherryTree"), rotation = "random", flags = "place_center_x, place_center_z", force_placement = true, @@ -176,8 +176,8 @@ minetest.register_decoration({ place_on = {"pyutest_blocks:snow_block"}, sidelen = 16, fill_ratio = 0.004, - biomes = {"snowy_forest"}, - schematic = PyuTest.get_schem_path("SnowyTree1"), + biomes = {"SnowyForest"}, + schematic = PyuTest.get_schematic_path("SnowyTree1"), rotation = "random", flags = "place_center_x, place_center_z", force_placement = true @@ -188,8 +188,8 @@ minetest.register_decoration({ place_on = {"pyutest_blocks:snow_block"}, sidelen = 16, fill_ratio = 0.004, - biomes = {"snowy_forest"}, - schematic = PyuTest.get_schem_path("SnowyTree2"), + biomes = {"SnowyForest"}, + schematic = PyuTest.get_schematic_path("SnowyTree2"), rotation = "random", flags = "place_center_x, place_center_z", force_placement = true, @@ -201,8 +201,8 @@ minetest.register_decoration({ place_on = {"group:grass"}, sidelen = 16, fill_ratio = 0.004, - biomes = {"swamp"}, - schematic = PyuTest.get_schem_path("SwampTree"), + biomes = {"Swamp"}, + schematic = PyuTest.get_schematic_path("SwampTree"), rotation = "random", flags = "place_center_x, place_center_z", force_placement = true @@ -213,8 +213,8 @@ minetest.register_decoration({ place_on = {"group:grass"}, sidelen = 16, fill_ratio = 0.004, - biomes = {"old_growth_birch_forest"}, - schematic = PyuTest.get_schem_path("VeryTallBirchTree"), + biomes = {"OldGrowthBirchForest"}, + schematic = PyuTest.get_schematic_path("VeryTallBirchTree"), rotation = "random", flags = "place_center_x, place_center_z", force_placement = true @@ -225,8 +225,8 @@ minetest.register_decoration({ place_on = {"group:grass"}, sidelen = 16, fill_ratio = 0.016, - biomes = {"aspen_forest"}, - schematic = PyuTest.get_schem_path("AspenTree1"), + biomes = {"AspenForest"}, + schematic = PyuTest.get_schematic_path("AspenTree1"), rotation = "random", flags = "place_center_x, place_center_z", force_placement = true @@ -237,8 +237,8 @@ minetest.register_decoration({ place_on = {"group:grass"}, sidelen = 16, fill_ratio = 0.008, - biomes = {"aspen_forest"}, - schematic = PyuTest.get_schem_path("AspenTree2"), + biomes = {"AspenForest"}, + schematic = PyuTest.get_schematic_path("AspenTree2"), rotation = "random", flags = "place_center_x, place_center_z", force_placement = true @@ -249,8 +249,8 @@ minetest.register_decoration({ place_on = {"pyutest_blocks:podzol_block"}, sidelen = 16, fill_ratio = 0.019, - biomes = {"redwood_forest"}, - schematic = PyuTest.get_schem_path("RedwoodTree"), + biomes = {"RedwoodForest"}, + schematic = PyuTest.get_schematic_path("RedwoodTree"), rotation = "random", flags = "place_center_x, place_center_z", force_placement = true @@ -261,8 +261,8 @@ minetest.register_decoration({ place_on = {"pyutest_blocks:mycelium_block"}, sidelen = 16, fill_ratio = 0.006, - biomes = {"large_mushroom_forest"}, - schematic = PyuTest.get_schem_path("TallMushroom"), + biomes = {"LargeMushroomForest"}, + schematic = PyuTest.get_schematic_path("TallMushroom"), rotation = "random", flags = "place_center_x, place_center_z", force_placement = true @@ -273,8 +273,8 @@ minetest.register_decoration({ place_on = {"pyutest_blocks:mycelium_block"}, sidelen = 16, fill_ratio = 0.002, - biomes = {"large_mushroom_forest"}, - schematic = PyuTest.get_schem_path("SmallMushroom"), + biomes = {"LargeMushroomForest"}, + schematic = PyuTest.get_schematic_path("SmallMushroom"), rotation = "random", flags = "place_center_x, place_center_z", place_offset_y = 1, @@ -286,8 +286,8 @@ minetest.register_decoration({ place_on = {"pyutest_blocks:mycelium_block"}, sidelen = 16, fill_ratio = 0.007, - biomes = {"large_mushroom_forest"}, - schematic = PyuTest.get_schem_path("FallenMushroom"), + biomes = {"LargeMushroomForest"}, + schematic = PyuTest.get_schematic_path("FallenMushroom"), rotation = "random", flags = "place_center_x, place_center_z", place_offset_y = 1, diff --git a/mods/WORLD/pyutest_worlds/api.lua b/mods/WORLD/pyutest_worlds/api.lua index 26bb0e5..b56ff13 100644 --- a/mods/WORLD/pyutest_worlds/api.lua +++ b/mods/WORLD/pyutest_worlds/api.lua @@ -49,7 +49,7 @@ PyuTest.register_world = function (options) biome_names = {} } - function World:register_biome(name, type, opts) + function World:register_biome(name, type, opts, overworld) local newname = conf.name .. "-" .. name if opts["_pyutest_sky"] == nil then @@ -60,14 +60,14 @@ PyuTest.register_world = function (options) opts["_pyutest_sky_base_color"] = opts["_pyutest_sky_base_color"] or conf.sky_color or "#000000" PyuTest.register_overworld_biome(newname, type, PyuTest.util.tableconcat(opts, { - depth_top = 0, - depth_filler = 0, - y_max = conf.y_max, - y_min = conf.y_min, + depth_top = opts.depth_top or 0, + depth_filler = opts.depth_filler or 0, + y_max = opts.y_max or conf.y_max, + y_min = opts.y_min or conf.y_min, node_water = opts.node_water or "air", node_river_water = opts.node_water or "air", node_cave_liquid = opts.node_water or "air", - }), true) + }), not overworld) self.biome_names[#self.biome_names+1] = newname return name diff --git a/mods/WORLD/pyutest_worlds/ice.lua b/mods/WORLD/pyutest_worlds/ice.lua index 3bf2368..8903fb0 100644 --- a/mods/WORLD/pyutest_worlds/ice.lua +++ b/mods/WORLD/pyutest_worlds/ice.lua @@ -1,12 +1,12 @@ PyuTest.IceWorld = PyuTest.register_world({ - name = "ice_world", + name = "IceWorld", y_max = -1000, y_min = -1999, sky_color = "#555588" }) PyuTest.IceWorld:create_token("pyutest_worlds:ice_world_token", "Ice World", "#cbdbfc", "pyutest_blocks:ice_block") -local icy_cavern = PyuTest.IceWorld:register_biome("icy_cavern", PyuTest.BIOME_TYPES.COLD, { +local icy_cavern = PyuTest.IceWorld:register_biome("IcyCavern", PyuTest.BIOME_TYPES.COLD, { node_stone = "pyutest_blocks:ice_block", heat_point = -10, humidity_point = 0 diff --git a/mods/WORLD/pyutest_worlds/init.lua b/mods/WORLD/pyutest_worlds/init.lua index c3f1f41..f716ce0 100644 --- a/mods/WORLD/pyutest_worlds/init.lua +++ b/mods/WORLD/pyutest_worlds/init.lua @@ -4,3 +4,4 @@ dofile(modpath.."/api.lua") dofile(modpath.."/ice.lua") dofile(modpath.."/lava.lua") +dofile(modpath.."/sky.lua") diff --git a/mods/WORLD/pyutest_worlds/lava.lua b/mods/WORLD/pyutest_worlds/lava.lua index 036f2bb..9d1d727 100644 --- a/mods/WORLD/pyutest_worlds/lava.lua +++ b/mods/WORLD/pyutest_worlds/lava.lua @@ -1,5 +1,5 @@ PyuTest.LavaWorld = PyuTest.register_world({ - name = "lava_world", + name = "LavaWorld", y_max = -3000, y_min = -3999, sky_color = "#330000" @@ -11,13 +11,13 @@ local node_stones = { "pyutest_blocks:basalt_block" } -local lava_cavern = PyuTest.LavaWorld:register_biome("lava_cavern", PyuTest.BIOME_TYPES.HOT, { +local lava_cavern = PyuTest.LavaWorld:register_biome("LavaCavern", PyuTest.BIOME_TYPES.HOT, { node_stone = "pyutest_blocks:molten_rock_block", heat_point = 100, humidity_point = 0, }) -local basalt_volcano = PyuTest.LavaWorld:register_biome("basalt_volcano", PyuTest.BIOME_TYPES.HOT, { +local basalt_volcano = PyuTest.LavaWorld:register_biome("BasaltVolcano", PyuTest.BIOME_TYPES.HOT, { node_stone = "pyutest_blocks:basalt_block", heat_point = 100, humidity_point = 0, diff --git a/mods/WORLD/pyutest_worlds/sky.lua b/mods/WORLD/pyutest_worlds/sky.lua new file mode 100644 index 0000000..a6fd9a6 --- /dev/null +++ b/mods/WORLD/pyutest_worlds/sky.lua @@ -0,0 +1,25 @@ +PyuTest.SkyWorld = PyuTest.register_world({ + name = "SkyWorld", + y_max = 4096, + y_min = 1024, + sky_color = "#8888cc" +}) +PyuTest.SkyWorld:create_token("pyutest_worlds:sky_world_token", "Sky World", "#ffffff", "pyutest_magic:windball") + +PyuTest.SkyWorld:register_biome("SkyMeadow", PyuTest.BIOME_TYPES.NORMAL, { + node_top = "pyutest_grass:dark_grass_block", + depth_top = 1, + node_filler = "pyutest_blocks:dirt_block", + depth_filler = 3, + node_stone = "pyutest_blocks:stone_block", + heat_point = 50, + humidity_point = 50, + _pyutest_flowering = true, + _pyutest_extra_flowering = true +}) + +PyuTest.SkyWorld:register_biome("CalciteGrove", PyuTest.BIOME_TYPES.NORMAL, { + node_stone = "pyutest_blocks:calcite_block", + heat_point = 50, + humidity_point = 50, +}) diff --git a/textures/pyutest-coin.png b/textures/pyutest-coin.png index b2ff9571f7695ba7b1069189534417b90924fe7a..ea61f6c27973b7d8cfe9a16399d09155b490e2a9 100644 GIT binary patch delta 154 zcmV;L0A>HL0k#2ZiSNAv;%0|NuYm)8bZ4T2fMh^`r?5tn9kLs*an@!5(Cpcp`kMi^is zS;wF=0B1Df0~pbWYzPAbnF$G-LFfQmQXY5!06@q#C2Tuz;tT))002ovPDHLkV1nw4 BIP3rb diff --git a/textures/pyutest-fire-animated.png b/textures/pyutest-fire-animated.png new file mode 100644 index 0000000000000000000000000000000000000000..97a8be75d2552fe8ebca90cdf0e0b702084be56b GIT binary patch literal 352 zcmV-m0iXVfP)mRa>BH3z(^I901J20!@(9)d*G}zZ2eo zw5-uJ8UG1~Blr~MJS=Kx^z&jo9{~~MN_%@z-A(UGlw(z}%lFxv41HihBqY+5K6h(4y z@_vvH*L?8WtMh^M5SkkZ`CsS!2Cn(wAbvX^q$mS{=RH-~8_*aj{ou_27f9&`v>u)h ytj3UDV%Qw_i5KEu4MhxDdq7uQ#_l?0(0Bqf{Rz@;cT*z(0000