From dc0234da4c90aa7cf94a7a533109b0787c457cbf Mon Sep 17 00:00:00 2001 From: IamPyu Date: Tue, 19 Nov 2024 18:49:21 -0600 Subject: [PATCH] Many changes --- CHANGELOG.md | 6 + mods/CORE/pyutest/damage.lua | 43 ++- mods/CORE/pyutest/init.lua | 9 +- mods/CORE/pyutest/util.lua | 35 +- mods/CORE/walkin/init.lua | 1 + mods/ENTITIES/pyutest_fireworks/init.lua | 8 +- mods/ENTITIES/pyutest_mobs/init.lua | 8 +- mods/ITEMS/pyutest_blocks/api.lua | 3 +- mods/ITEMS/pyutest_blocks/basic.lua | 93 +++-- mods/ITEMS/pyutest_blocks/crate.lua | 3 +- mods/ITEMS/pyutest_blocks/fire.lua | 3 +- mods/ITEMS/pyutest_blocks/liquid.lua | 2 +- mods/ITEMS/pyutest_blocks/special.lua | 41 ++- mods/ITEMS/pyutest_crafts/init.lua | 434 ++++++++++++----------- mods/ITEMS/pyutest_farming/api.lua | 4 +- mods/ITEMS/pyutest_flowers/init.lua | 11 +- mods/ITEMS/pyutest_furnace/init.lua | 1 + mods/ITEMS/pyutest_leaves/init.lua | 1 + mods/ITEMS/pyutest_wood/init.lua | 2 + mods/ITEMS/pyutest_wool/init.lua | 10 +- mods/PLAYER/pyutest_player/init.lua | 183 ++++------ mods/WORLD/pyutest_mapgen/api.lua | 14 +- mods/WORLD/pyutest_ores/api.lua | 4 +- mods/WORLD/pyutest_ores/init.lua | 3 +- mods/WORLD/pyutest_overworld/biomes.lua | 23 +- textures/pyutest-apple.png | Bin 230 -> 4333 bytes 26 files changed, 533 insertions(+), 412 deletions(-) create mode 100644 mods/CORE/walkin/init.lua diff --git a/CHANGELOG.md b/CHANGELOG.md index 32faef6..bc23a04 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,12 @@ I should just start giving updates a version number to avoid naming updates. - Fixed biomes in seperate worlds not generating - Sky World now has normal looking sky - Added Cacti +- Removed the ability to sprint, it makes survival too easy. +- Increased player speed +- Added Darkstone caves +- Improved death messages more +- Make Apple texture look more like other food textures +- Add a light fog to snowy biomes ## [Oct 20th - Nov 2nd] Update: The Something Update diff --git a/mods/CORE/pyutest/damage.lua b/mods/CORE/pyutest/damage.lua index c626622..1af9d84 100644 --- a/mods/CORE/pyutest/damage.lua +++ b/mods/CORE/pyutest/damage.lua @@ -15,9 +15,50 @@ PyuTest.DAMAGE_TYPES = { range = range } } + end, + burning = function () + return { + type = "set_hp", + _pyutest = { + type = "burning" + } + } end } PyuTest.mt_damage_to_pyutest_damage = function(reason) - + return reason._pyutest or reason end + +minetest.register_on_dieplayer(function(player, reason) + local playername = player:get_player_name() + + local message = string.format("%s died", playername) + if reason.type == "fall" then + message = string.format("%s fell from a high place", playername) + elseif reason.type == "drown" then + message = string.format("%s drowned", playername) + elseif reason.type == "respawn" then + return + elseif reason.type == "punch" then + local entity = reason.object:get_luaentity() + if entity ~= nil then + local name = reason.object:get_properties().nametag or entity.name or "an unnamed monster!" + message = string.format("%s was slain by %s", playername, name) + else + local name = reason.object:get_player_name() + local itemname = reason.object:get_wielded_item():get_short_description() + message = string.format("%s was slain by %s using %s", playername, name, itemname) + end + elseif reason.type == "set_hp" then + local newreason = PyuTest.mt_damage_to_pyutest_damage(reason) + + if newreason.type == "explosion" then + message = string.format("%s blew up", playername) + elseif newreason.type == "burning" then + message = string.format("%s burned to death", playername) + end + end + + minetest.chat_send_all(message) +end) diff --git a/mods/CORE/pyutest/init.lua b/mods/CORE/pyutest/init.lua index f2ea054..8680dbe 100644 --- a/mods/CORE/pyutest/init.lua +++ b/mods/CORE/pyutest/init.lua @@ -10,15 +10,16 @@ PyuTest.BLOCK_SLOW = 1 PyuTest.OVERWORLD_SURFACE_BOTTOM = 1 PyuTest.OVERWORLD_TOP = 4096 PyuTest.OVERWORLD_BOTTOM = -200 - -PyuTest.WORLD_TOP = 31000 -PyuTest.WORLD_BOTTOM = -31000 - -- these values are yoinked from VoxeLibre -- (https://git.minetest.land/VoxeLibre/VoxeLibre/src/branch/master/mods/MAPGEN/mcl_biomes/init.lua) PyuTest.OVERWORLD_OCEAN_MIN = -15 PyuTest.OVERWORLD_DEEP_OCEAN_MAX = PyuTest.OVERWORLD_OCEAN_MIN - 1 PyuTest.OVERWORLD_DEEP_OCEAN_MIN = -31 +PyuTest.CAVE_TOP = PyuTest.OVERWORLD_DEEP_OCEAN_MIN - 1 +PyuTest.CAVE_BOTTOM = -50 + +PyuTest.WORLD_TOP = 31000 +PyuTest.WORLD_BOTTOM = -31000 PyuTest.NODEBOX_DEFAULT = { type = "fixed", diff --git a/mods/CORE/pyutest/util.lua b/mods/CORE/pyutest/util.lua index f0620ac..8a9957a 100644 --- a/mods/CORE/pyutest/util.lua +++ b/mods/CORE/pyutest/util.lua @@ -92,28 +92,37 @@ PyuTest.node_beside_group = function(pos, group) return false end -PyuTest.create_explosion = function(pos, range, rm_pos, dmg, damage_whitelist) +PyuTest.create_explosion = function(pos, range, rm_pos, dmg, damage_whitelist, max_blast_resistance) + local max_resist = max_blast_resistance or 3 + if rm_pos then minetest.remove_node(pos) end PyuTest.dorange(pos, range, function(p) - if minetest.get_node(p).name == "pyutest_blocks:tnt" then - minetest.after(0.8, function() - minetest.remove_node(p) - PyuTest.create_explosion(p, range, rm_pos, dmg) - end) - else - minetest.dig_node(p) - end + local node = minetest.get_node(p) + local def = minetest.registered_nodes[node.name] + local resist = def._pyutest_blast_resistance or 1 + + if resist > max_resist then + return + end + + if minetest.get_node(p).name == "pyutest_blocks:tnt" then + minetest.after(0.8, function() + minetest.remove_node(p) + PyuTest.create_explosion(p, range, rm_pos, dmg, damage_whitelist, max_blast_resistance) + end) + else + minetest.dig_node(p) + end end) for _, v in pairs(minetest.get_objects_inside_radius(pos, range)) do local function damage() - v:punch(v, nil, { - damage_groups = { fleshy = dmg } - }, nil) - PyuTest.deal_damage(v, dmg, PyuTest.DAMAGE_TYPES.explosion(range)) + if v:is_valid() then + PyuTest.deal_damage(v, dmg, PyuTest.DAMAGE_TYPES.explosion(range)) + end end if damage_whitelist ~= nil then diff --git a/mods/CORE/walkin/init.lua b/mods/CORE/walkin/init.lua new file mode 100644 index 0000000..ef7da0d --- /dev/null +++ b/mods/CORE/walkin/init.lua @@ -0,0 +1 @@ +local get_connected_players = minetest.get_connected_players() diff --git a/mods/ENTITIES/pyutest_fireworks/init.lua b/mods/ENTITIES/pyutest_fireworks/init.lua index 8c57dd8..1a7bdba 100644 --- a/mods/ENTITIES/pyutest_fireworks/init.lua +++ b/mods/ENTITIES/pyutest_fireworks/init.lua @@ -85,10 +85,10 @@ minetest.register_entity("pyutest_fireworks:firework", { minetest.sound_play({ name = "pyutest-firework", - gain = 3, - }, { - pos = pos - }) + gain = 1.2, + pos = pos, + max_hear_distance = 30 + }, true) end }) diff --git a/mods/ENTITIES/pyutest_mobs/init.lua b/mods/ENTITIES/pyutest_mobs/init.lua index 341dff4..57f5da3 100644 --- a/mods/ENTITIES/pyutest_mobs/init.lua +++ b/mods/ENTITIES/pyutest_mobs/init.lua @@ -27,12 +27,12 @@ if not PyuTest.is_flat() then name = "pyutest_mobs:monster", nodes = { "group:ground" }, interval = 2, - chance = 2, + chance = 1, active_object_count = 7, min_light = 0, max_light = minetest.LIGHT_MAX, - min_height = PyuTest.OVERWORLD_SURFACE_BOTTOM - 1, - max_height = PyuTest.OVERWORLD_BOTTOM + max_height = PyuTest.OVERWORLD_SURFACE_BOTTOM - 1, + min_height = PyuTest.OVERWORLD_BOTTOM }) mobs:spawn({ @@ -66,7 +66,7 @@ if not PyuTest.is_flat() then active_object_count = 4, min_light = 0, max_light = 9, - day_toggle = false, + day_toggle = nil, min_height = PyuTest.OVERWORLD_SURFACE_BOTTOM }) end diff --git a/mods/ITEMS/pyutest_blocks/api.lua b/mods/ITEMS/pyutest_blocks/api.lua index 3094908..8af8d5c 100644 --- a/mods/ITEMS/pyutest_blocks/api.lua +++ b/mods/ITEMS/pyutest_blocks/api.lua @@ -229,7 +229,8 @@ PyuTest.make_liquid = function(name, desc, groups, texture, speed, extra_conf) name = texture, backface_culling = true } - } or nil + } or nil, + _pyutest_blast_resistance = 1000 }, PyuTest.util.tableconcat(extra_conf or {}, extra_conf2 or {})) return t end diff --git a/mods/ITEMS/pyutest_blocks/basic.lua b/mods/ITEMS/pyutest_blocks/basic.lua index 0038fde..fcbc71e 100644 --- a/mods/ITEMS/pyutest_blocks/basic.lua +++ b/mods/ITEMS/pyutest_blocks/basic.lua @@ -2,14 +2,14 @@ PyuTest.make_building_blocks("pyutest_blocks:dirt", "Dirt", { "pyutest-dirt.png" ground = 1, dirt = 1, acid_vulnerable = 1, - crumbly = PyuTest.BLOCK_FAST + crumbly = PyuTest.BLOCK_FAST, }) PyuTest.make_building_blocks("pyutest_blocks:podzol", "Podzol", { "pyutest-dirt.png" }, nil, { ground = 1, dirt = 1, acid_vulnerable = 1, - crumbly = PyuTest.BLOCK_FAST + crumbly = PyuTest.BLOCK_FAST, }, { overlay_tiles = { { name = "pyutest-ore-overlay.png", color = "#54623c" } } }) @@ -17,7 +17,7 @@ PyuTest.make_building_blocks("pyutest_blocks:podzol", "Podzol", { "pyutest-dirt. PyuTest.make_building_blocks("pyutest_blocks:snow", "Snow", { "pyutest-snow.png" }, nil, { ground = 1, acid_vulnerable = 1, - crumbly = PyuTest.BLOCK_FAST + crumbly = PyuTest.BLOCK_FAST, }) PyuTest.make_building_blocks("pyutest_blocks:sand", "Sand", { "pyutest-sand.png" }, nil, { @@ -26,7 +26,7 @@ PyuTest.make_building_blocks("pyutest_blocks:sand", "Sand", { "pyutest-sand.png" falling_node = 1, sugarcane_spawn_on = 1, sand = 1, - crumbly = PyuTest.BLOCK_FAST + crumbly = PyuTest.BLOCK_FAST, }) PyuTest.make_building_blocks("pyutest_blocks:mycelium", "Mycelium", { @@ -41,13 +41,13 @@ PyuTest.make_building_blocks("pyutest_blocks:mycelium", "Mycelium", { PyuTest.make_building_blocks("pyutest_blocks:clay", "Clay", { "pyutest-clay-block.png" }, nil, { acid_vulnerable = 1, - crumbly = PyuTest.BLOCK_FAST + crumbly = PyuTest.BLOCK_FAST, }) PyuTest.make_building_blocks("pyutest_blocks:gravel", "Gravel", { "pyutest-gravel.png" }, nil, { falling_node = 1, acid_vulnerable = 1, - crumbly = PyuTest.BLOCK_FAST + crumbly = PyuTest.BLOCK_FAST, }) -- Cracky @@ -55,42 +55,58 @@ PyuTest.make_building_blocks("pyutest_blocks:stone", "Stone", { "pyutest-stone.p ground = 1, stone = 1, cracky = PyuTest.BLOCK_NORMAL, -}, { is_ground_content = true }) +}, { + is_ground_content = true, + _pyutest_blast_resistance = 3 +}) PyuTest.make_building_blocks("pyutest_blocks:darkstone", "Darkstone", { "pyutest-darkstone.png" }, nil, { - ground = 1, - stone = 1, - cracky = PyuTest.BLOCK_NORMAL, -}, { is_ground_content = true }) + ground = 1, + stone = 1, + cracky = PyuTest.BLOCK_NORMAL, +}, { + is_ground_content = true, + _pyutest_blast_resistance = 3 +}) PyuTest.make_building_blocks("pyutest_blocks:granite", "Granite", { "pyutest-granite.png" }, nil, { - ground = 1, - stone = 1, - cracky = PyuTest.BLOCK_NORMAL, + ground = 1, + stone = 1, + cracky = PyuTest.BLOCK_NORMAL, +}, { + _pyutest_blast_resistance = 3 }) PyuTest.make_building_blocks("pyutest_blocks:andesite", "Andesite", { "pyutest-andesite.png" }, nil, { ground = 1, stone = 1, cracky = PyuTest.BLOCK_NORMAL, +}, { + _pyutest_blast_resistance = 3 }) PyuTest.make_building_blocks("pyutest_blocks:diorite", "Diorite", { "pyutest-diorite.png" }, nil, { ground = 1, stone = 1, cracky = PyuTest.BLOCK_NORMAL, +}, { + _pyutest_blast_resistance = 3 }) PyuTest.make_building_blocks("pyutest_blocks:tuff", "Tuff", { "pyutest-tuff.png" }, nil, { ground = 1, stone = 1, cracky = PyuTest.BLOCK_NORMAL, +}, { + _pyutest_blast_resistance = 3 }) PyuTest.make_building_blocks("pyutest_blocks:calcite", "Calcite", { "pyutest-calcite.png" }, nil, { ground = 1, stone = 1, cracky = PyuTest.BLOCK_NORMAL, +}, { + _pyutest_blast_resistance = 3 }) PyuTest.make_building_blocks("pyutest_blocks:stone_bricks", "Stone Bricks", { @@ -99,7 +115,8 @@ PyuTest.make_building_blocks("pyutest_blocks:stone_bricks", "Stone Bricks", { bricks = 1, cracky = PyuTest.BLOCK_NORMAL, }, { - is_ground_content = false + is_ground_content = false, + _pyutest_blast_resistance = 3 }) PyuTest.make_building_blocks("pyutest_blocks:darkstone_bricks", "Darkstone Bricks", { @@ -108,7 +125,8 @@ PyuTest.make_building_blocks("pyutest_blocks:darkstone_bricks", "Darkstone Brick bricks = 1, cracky = PyuTest.BLOCK_NORMAL, }, { - is_ground_content = false + is_ground_content = false, + _pyutest_blast_resistance = 3 }) PyuTest.make_building_blocks("pyutest_blocks:granite_bricks", "Granite Bricks", { @@ -117,7 +135,8 @@ PyuTest.make_building_blocks("pyutest_blocks:granite_bricks", "Granite Bricks", bricks = 1, cracky = PyuTest.BLOCK_NORMAL, }, { - is_ground_content = false + is_ground_content = false, + _pyutest_blast_resistance = 3 }) PyuTest.make_building_blocks("pyutest_blocks:andesite_bricks", "Andesite Bricks", { @@ -126,7 +145,8 @@ PyuTest.make_building_blocks("pyutest_blocks:andesite_bricks", "Andesite Bricks" bricks = 1, cracky = PyuTest.BLOCK_NORMAL, }, { - is_ground_content = false + is_ground_content = false, + _pyutest_blast_resistance = 3 }) PyuTest.make_building_blocks("pyutest_blocks:diorite_bricks", "Diorite Bricks", { @@ -136,6 +156,7 @@ PyuTest.make_building_blocks("pyutest_blocks:diorite_bricks", "Diorite Bricks", cracky = PyuTest.BLOCK_NORMAL, }, { is_ground_content = false, + _pyutest_blast_resistance = 3 }) PyuTest.make_building_blocks("pyutest_blocks:tuff_bricks", "Tuff Bricks", { @@ -145,13 +166,17 @@ PyuTest.make_building_blocks("pyutest_blocks:tuff_bricks", "Tuff Bricks", { cracky = PyuTest.BLOCK_NORMAL, }, { is_ground_content = false, + _pyutest_blast_resistance = 3 }) PyuTest.make_building_blocks("pyutest_blocks:sandstone", "Sandstone", { "pyutest-sandstone.png" }, nil, { ground = 1, acid_vulnerable = 1, cracky = PyuTest.BLOCK_FAST, -}, { is_ground_content = false }) +}, { + is_ground_content = false, + _pyutest_blast_resistance = 2 +}) PyuTest.make_building_blocks("pyutest_blocks:ice", "Ice", { "pyutest-ice.png" }, nil, { ground = 1, @@ -165,20 +190,29 @@ PyuTest.make_building_blocks("pyutest_blocks:molten_rock", "Molten Rock", { "pyu ground = 1, cracky = PyuTest.BLOCK_FAST, fire_persist = 1, -}, { is_ground_content = false }) +}, { + is_ground_content = false, + _pyutest_blast_resistance = 2 +}) PyuTest.make_building_blocks("pyutest_blocks:basalt", "Basalt", { "pyutest-basalt.png" }, nil, { ground = 1, cracky = PyuTest.BLOCK_FAST, -}, { is_ground_content = false }) +}, { + is_ground_content = false, + _pyutest_blast_resistance = 3 +}) PyuTest.make_building_blocks("pyutest_blocks:obsidian", "Obsidian", { "pyutest-obsidian.png" }, nil, { cracky = PyuTest.BLOCK_NORMAL, -}, { is_ground_content = false }) +}, { + is_ground_content = false, + _pyutest_blast_resistance = 3 +}) PyuTest.make_building_blocks("pyutest_blocks:crystal_lantern", "Crystal Lantern", { "pyutest-crystal-lantern.png" }, nil, { - cracky = PyuTest.BLOCK_FAST + cracky = PyuTest.BLOCK_FAST, }, { light_source = minetest.LIGHT_MAX, paramtype = "light" @@ -189,31 +223,32 @@ PyuTest.make_building_blocks("pyutest_blocks:bone", "Bone", { "pyutest-bone-block-top-bottom.png", "pyutest-bone-block.png" }, nil, { - cracky = PyuTest.BLOCK_FAST + cracky = PyuTest.BLOCK_FAST, }) PyuTest.make_building_blocks("pyutest_blocks:brick", "Bricks", { "pyutest-bricks.png" }, nil, { - cracky = PyuTest.BLOCK_NORMAL + cracky = PyuTest.BLOCK_NORMAL, }, { - is_ground_content = false + is_ground_content = false, + _pyutest_blast_resistance = 3 }) -- Choppy PyuTest.make_building_blocks("pyutest_blocks:mushroom", "Mushroom", { "pyutest-mushroom.png" }, nil, { flammable = 1, - choppy = PyuTest.BLOCK_FAST + choppy = PyuTest.BLOCK_FAST, }, { is_ground_content = false }) PyuTest.make_building_blocks("pyutest_blocks:mushroom_stem", "Mushroom Stem", { "pyutest-mushroom-stem.png" }, nil, { flammable = 1, - choppy = PyuTest.BLOCK_FAST + choppy = PyuTest.BLOCK_FAST, }, { is_ground_content = false }) PyuTest.make_building_blocks("pyutest_blocks:glowshroom", "Glowshroom", { "pyutest-glowshroom.png" }, nil, { flammable = 1, - choppy = PyuTest.BLOCK_FAST + choppy = PyuTest.BLOCK_FAST, }, { is_ground_content = false, paramtype = "light", diff --git a/mods/ITEMS/pyutest_blocks/crate.lua b/mods/ITEMS/pyutest_blocks/crate.lua index 099d4a6..f9da28e 100644 --- a/mods/ITEMS/pyutest_blocks/crate.lua +++ b/mods/ITEMS/pyutest_blocks/crate.lua @@ -27,5 +27,6 @@ PyuTest.make_node("pyutest_blocks:crate", "Crate", { minetest.show_formspec(clicker:get_player_name(), string.format("pyutest_blocks:crate_%d_%d_%d", pos.x, pos.y, pos.z), formspec) minetest.sound_play({ name = "crate_open", gain = 1 }, { pos = pos }) - end + end, + _pyutest_blast_resistance = 2 }) diff --git a/mods/ITEMS/pyutest_blocks/fire.lua b/mods/ITEMS/pyutest_blocks/fire.lua index c5a991c..c2e2d00 100644 --- a/mods/ITEMS/pyutest_blocks/fire.lua +++ b/mods/ITEMS/pyutest_blocks/fire.lua @@ -22,7 +22,8 @@ PyuTest.make_node("pyutest_blocks:fire", "Fire", { sunlight_propagates = true, damage_per_second = 2, light_source = 8, - drop = "pyutest_tools:ash 2" + drop = "pyutest_tools:ash 2", + _pyutest_blast_resistance = 0, }) minetest.register_abm({ diff --git a/mods/ITEMS/pyutest_blocks/liquid.lua b/mods/ITEMS/pyutest_blocks/liquid.lua index 64e71f6..e4d3749 100644 --- a/mods/ITEMS/pyutest_blocks/liquid.lua +++ b/mods/ITEMS/pyutest_blocks/liquid.lua @@ -2,7 +2,7 @@ PyuTest.make_liquid("pyutest_blocks:water", "Water", { water = 1, freezable = 1, heatable = 1 -}, "pyutest-water.png", 0, { +}, "pyutest-water.png", 1, { post_effect_color = { a = 60, r = 24.7, g = 46.3, b = 89.4 }, paramtype2 = "color", }) diff --git a/mods/ITEMS/pyutest_blocks/special.lua b/mods/ITEMS/pyutest_blocks/special.lua index fda2540..c6e0ede 100644 --- a/mods/ITEMS/pyutest_blocks/special.lua +++ b/mods/ITEMS/pyutest_blocks/special.lua @@ -1,6 +1,8 @@ PyuTest.make_node("pyutest_blocks:sponge", "Sponge", { oddly_breakable_by_hand = PyuTest.BLOCK_FAST -}, { "pyutest-sponge.png" }) +}, { "pyutest-sponge.png" }, { + _pyutest_blast_resistance = 0 +}) PyuTest.make_node("pyutest_blocks:light", "Light", { light = 1, @@ -14,7 +16,8 @@ PyuTest.make_node("pyutest_blocks:light", "Light", { paramtype = "light", sunlight_propagates = true, light_source = minetest.LIGHT_MAX, - floodable = true + floodable = true, + _pyutest_blast_resistance = 0 }) PyuTest.make_node("pyutest_blocks:torch", "Torch", { @@ -34,7 +37,8 @@ PyuTest.make_node("pyutest_blocks:torch", "Torch", { paramtype = "light", inventory_image = "pyutest-torch.png", paramtype2 = "wallmounted", - floodable = true + floodable = true, + _pyutest_blast_resistance = 0 }) PyuTest.make_node("pyutest_blocks:glass", "Glass", { @@ -42,7 +46,7 @@ PyuTest.make_node("pyutest_blocks:glass", "Glass", { }, { "pyutest-glass.png", "pyutest-glass-overlay.png" }, { drawtype = "glasslike_framed", paramtype = "light", - sunlight_propagates = true + sunlight_propagates = true, }) -- FIXME: This has been in the game for months, implement it already! @@ -56,13 +60,16 @@ PyuTest.make_node("pyutest_blocks:trapdoor", "Trapdoor", { node_box = { type = "fixed", fixed = { -0.5, -0.5, -0.5, 0.5, -0.15, 0.5 } - } + }, + _pyutest_blast_resistance = 2 }) PyuTest.make_node("pyutest_blocks:contagious_acid", "Contagious Acid", { crumbly = PyuTest.BLOCK_NORMAL, solid_node = 1 -}, { "pyutest-acid.png" }, {}) +}, { "pyutest-acid.png" }, { + _pyutest_blast_resistance = 0 +}) PyuTest.make_node("pyutest_blocks:tnt", "TNT", { dig_immediate = 1, @@ -89,6 +96,7 @@ PyuTest.make_node("pyutest_blocks:tnt", "TNT", { PyuTest.create_explosion(pos, 3, true, 12) end) end, + _pyutest_blast_resistance = 0 }) PyuTest.make_node("pyutest_blocks:workbench", "Workbench", { @@ -105,7 +113,8 @@ PyuTest.make_node("pyutest_blocks:workbench", "Workbench", { "list[current_player;craftpreview;6.5,1;1,1;]", "list[current_player;main;0,3.5;8,4;]" })) - end + end, + _pyutest_blast_resistance = 2 }) PyuTest.make_node("pyutest_blocks:ladder", "Ladder", { @@ -125,7 +134,8 @@ PyuTest.make_node("pyutest_blocks:ladder", "Ladder", { collision_box = { type = "wallmounted" }, - inventory_image = "pyutest-ladder.png" + inventory_image = "pyutest-ladder.png", + _pyutest_blast_resistance = 0 }) PyuTest.make_node("pyutest_blocks:magma", "Magma", { @@ -139,9 +149,10 @@ PyuTest.make_node("pyutest_blocks:magma", "Magma", { }, on_walk_over = function(pos, node, player) if player then - PyuTest.deal_damage(player, 3) + PyuTest.deal_damage(player, 3, PyuTest.DAMAGE_TYPES.burning()) end - end + end, + _pyutest_blast_resistance = 2 }) PyuTest.make_node("pyutest_blocks:basalt_magma", "Basalt Magma", { @@ -155,16 +166,18 @@ PyuTest.make_node("pyutest_blocks:basalt_magma", "Basalt Magma", { }, on_walk_over = function(pos, node, player) if player then - PyuTest.deal_damage(player, 3) + PyuTest.deal_damage(player, 3, PyuTest.DAMAGE_TYPES.burning()) end - end + end, + _pyutest_blast_resistance = 3 }) PyuTest.make_node("pyutest_blocks:bedrock", "Bedrock", { }, { "pyutest-bedrock.png" }, { diggable = false, pointable = "blocking", - is_ground_content = false + is_ground_content = false, + _pyutest_blast_resistance = 1000 }) PyuTest.make_node("pyutest_blocks:weak_ice", "Weak Ice", { @@ -172,7 +185,7 @@ PyuTest.make_node("pyutest_blocks:weak_ice", "Weak Ice", { }, { "pyutest-ice.png" }, { on_walk_over = function(pos) minetest.set_node(pos, { name = "pyutest_blocks:water_source" }) - end + end, }) minetest.register_abm({ diff --git a/mods/ITEMS/pyutest_crafts/init.lua b/mods/ITEMS/pyutest_crafts/init.lua index 07fdbda..b3de500 100644 --- a/mods/ITEMS/pyutest_crafts/init.lua +++ b/mods/ITEMS/pyutest_crafts/init.lua @@ -1,321 +1,343 @@ minetest.register_craft({ - output = "pyutest_tools:wooden_pickaxe 1", - recipe = { - { "group:wooden_planks", "group:wooden_planks", "group:wooden_planks" }, - { "", "pyutest_tools:stick", "" }, - { "", "pyutest_tools:stick", "" } - } + output = "pyutest_tools:wooden_pickaxe 1", + recipe = { + { "group:wooden_planks", "group:wooden_planks", "group:wooden_planks" }, + { "", "pyutest_tools:stick", "" }, + { "", "pyutest_tools:stick", "" } + } }) minetest.register_craft({ - output = "pyutest_tools:wooden_axe 1", - recipe = { - { "group:wooden_planks", "group:wooden_planks", "" }, - { "group:wooden_planks", "pyutest_tools:stick", "" }, - { "", "pyutest_tools:stick", "" } - } + output = "pyutest_tools:wooden_axe 1", + recipe = { + { "group:wooden_planks", "group:wooden_planks", "" }, + { "group:wooden_planks", "pyutest_tools:stick", "" }, + { "", "pyutest_tools:stick", "" } + } }) minetest.register_craft({ - output = "pyutest_tools:wooden_sword 1", - recipe = { - { "", "group:wooden_planks", "" }, - { "", "group:wooden_planks", "" }, - { "", "pyutest_tools:stick", "" } - } + output = "pyutest_tools:wooden_sword 1", + recipe = { + { "", "group:wooden_planks", "" }, + { "", "group:wooden_planks", "" }, + { "", "pyutest_tools:stick", "" } + } }) minetest.register_craft({ - output = "pyutest_tools:stone_pickaxe", - recipe = { - { "group:stone", "group:stone", "group:stone" }, - { "", "pyutest_tools:stick", "" }, - { "", "pyutest_tools:stick", "" } - } + output = "pyutest_tools:stone_pickaxe", + recipe = { + { "group:stone", "group:stone", "group:stone" }, + { "", "pyutest_tools:stick", "" }, + { "", "pyutest_tools:stick", "" } + } }) minetest.register_craft({ - output = "pyutest_tools:stone_axe", - recipe = { - { "group:stone", "group:stone", "" }, - { "group:stone", "pyutest_tools:stick", "" }, - { "", "pyutest_tools:stick", "" } - } + output = "pyutest_tools:stone_axe", + recipe = { + { "group:stone", "group:stone", "" }, + { "group:stone", "pyutest_tools:stick", "" }, + { "", "pyutest_tools:stick", "" } + } }) minetest.register_craft({ - output = "pyutest_tools:stone_sword", - recipe = { - { "", "group:stone", "" }, - { "", "group:stone", "" }, - { "", "pyutest_tools:stick", "" } - } + output = "pyutest_tools:stone_sword", + recipe = { + { "", "group:stone", "" }, + { "", "group:stone", "" }, + { "", "pyutest_tools:stick", "" } + } }) minetest.register_craft({ - output = "pyutest_tools:iron_pickaxe", - recipe = { - { "pyutest_ores:iron_ingot", "pyutest_ores:iron_ingot", "pyutest_ores:iron_ingot" }, - { "", "pyutest_tools:stick", "" }, - { "", "pyutest_tools:stick", "" } - } + output = "pyutest_tools:iron_pickaxe", + recipe = { + { "pyutest_ores:iron_ingot", "pyutest_ores:iron_ingot", "pyutest_ores:iron_ingot" }, + { "", "pyutest_tools:stick", "" }, + { "", "pyutest_tools:stick", "" } + } }) minetest.register_craft({ - output = "pyutest_tools:iron_axe", - recipe = { - { "pyutest_ores:iron_ingot", "pyutest_ores:iron_ingot", "" }, - { "pyutest_ores:iron_ingot", "pyutest_tools:stick", "" }, - { "", "pyutest_tools:stick", "" } - } + output = "pyutest_tools:iron_axe", + recipe = { + { "pyutest_ores:iron_ingot", "pyutest_ores:iron_ingot", "" }, + { "pyutest_ores:iron_ingot", "pyutest_tools:stick", "" }, + { "", "pyutest_tools:stick", "" } + } }) minetest.register_craft({ - output = "pyutest_tools:iron_sword", - recipe = { - { "pyutest_ores:iron_ingot" }, - { "pyutest_ores:iron_ingot" }, - { "pyutest_tools:stick" } - } + output = "pyutest_tools:iron_sword", + recipe = { + { "pyutest_ores:iron_ingot" }, + { "pyutest_ores:iron_ingot" }, + { "pyutest_tools:stick" } + } }) minetest.register_craft({ - output = "pyutest_farming:hoe", - recipe = { - { "pyutest_ores:iron_ingot", "pyutest_ores:iron_ingot", "" }, - { "", "pyutest_tools:stick", "" }, - { "", "pyutest_tools:stick", "" } - } + output = "pyutest_farming:hoe", + recipe = { + { "pyutest_ores:iron_ingot", "pyutest_ores:iron_ingot", "" }, + { "", "pyutest_tools:stick", "" }, + { "", "pyutest_tools:stick", "" } + } }) minetest.register_craft({ - output = "pyutest_tools:shears", - recipe = { - "pyutest_ores:iron_ingot", - "pyutest_ores:iron_ingot" - }, - type = "shapeless" + output = "pyutest_tools:shears", + recipe = { + "pyutest_ores:iron_ingot", + "pyutest_ores:iron_ingot" + }, + type = "shapeless" }) minetest.register_craft({ - output = "pyutest_tools:diamond_pickaxe", - recipe = { - { "pyutest_ores:diamond_shard", "pyutest_ores:diamond_shard", "pyutest_ores:diamond_shard" }, - { "", "pyutest_tools:stick", "" }, - { "", "pyutest_tools:stick", "" } - } + output = "pyutest_tools:diamond_pickaxe", + recipe = { + { "pyutest_ores:diamond_shard", "pyutest_ores:diamond_shard", "pyutest_ores:diamond_shard" }, + { "", "pyutest_tools:stick", "" }, + { "", "pyutest_tools:stick", "" } + } }) minetest.register_craft({ - output = "pyutest_tools:diamond_axe", - recipe = { - { "pyutest_ores:diamond_shard", "pyutest_ores:diamond_shard", "" }, - { "pyutest_ores:diamond_shard", "pyutest_tools:stick", "" }, - { "", "pyutest_tools:stick", "" } - } + output = "pyutest_tools:diamond_axe", + recipe = { + { "pyutest_ores:diamond_shard", "pyutest_ores:diamond_shard", "" }, + { "pyutest_ores:diamond_shard", "pyutest_tools:stick", "" }, + { "", "pyutest_tools:stick", "" } + } }) minetest.register_craft({ - output = "pyutest_tools:diamond_sword", - recipe = { - { "pyutest_ores:diamond_shard" }, - { "pyutest_ores:diamond_shard" }, - { "pyutest_tools:stick" } - } + output = "pyutest_tools:diamond_sword", + recipe = { + { "pyutest_ores:diamond_shard" }, + { "pyutest_ores:diamond_shard" }, + { "pyutest_tools:stick" } + } }) minetest.register_craft({ - output = "pyutest_tools:flint_and_steel", - recipe = { - "pyutest_tools:flint", "pyutest_ores:iron_ingot" - }, - type = "shapeless" + output = "pyutest_tools:flint_and_steel", + recipe = { + "pyutest_tools:flint", "pyutest_ores:iron_ingot" + }, + type = "shapeless" }) -- not tools minetest.register_craft({ - output = "pyutest_blocks:crate", - recipe = { - { "group:wooden_planks", "group:wooden_planks", "group:wooden_planks" }, - { "group:wooden_planks", "", "group:wooden_planks" }, - { "group:wooden_planks", "group:wooden_planks", "group:wooden_planks" } - } + output = "pyutest_blocks:crate", + recipe = { + { "group:wooden_planks", "group:wooden_planks", "group:wooden_planks" }, + { "group:wooden_planks", "", "group:wooden_planks" }, + { "group:wooden_planks", "group:wooden_planks", "group:wooden_planks" } + } }) minetest.register_craft({ - output = "pyutest_blocks:brick_block 4", - recipe = { - { "pyutest_tools:brick", "pyutest_tools:brick" }, - { "pyutest_tools:brick", "pyutest_tools:brick" } - } + output = "pyutest_blocks:brick_block 4", + recipe = { + { "pyutest_tools:brick", "pyutest_tools:brick" }, + { "pyutest_tools:brick", "pyutest_tools:brick" } + } }) minetest.register_craft({ - output = "pyutest_furnace:furnace", - recipe = { - { "group:stone", "group:stone", "group:stone" }, - { "group:stone", "", "group:stone" }, - { "group:stone", "group:stone", "group:stone" } - } + output = "pyutest_furnace:furnace", + recipe = { + { "group:stone", "group:stone", "group:stone" }, + { "group:stone", "", "group:stone" }, + { "group:stone", "group:stone", "group:stone" } + } }) minetest.register_craft({ - output = "pyutest_blocks:workbench", - recipe = { - { "group:wooden_planks", "group:wooden_planks" }, - { "group:wooden_planks", "group:wooden_planks" }, - } + output = "pyutest_blocks:workbench", + recipe = { + { "group:wooden_planks", "group:wooden_planks" }, + { "group:wooden_planks", "group:wooden_planks" }, + } }) minetest.register_craft({ - output = "pyutest_blocks:slime_block", - type = "shapeless", - recipe = { - "pyutest_blocks:clay_block", - "pyutest_blocks:swampy_grass_block" - } + output = "pyutest_blocks:slime_block", + type = "shapeless", + recipe = { + "pyutest_blocks:clay_block", + "pyutest_blocks:swampy_grass_block" + } }) minetest.register_craft({ - output = "pyutest_tools:sugar 3", - type = "shapeless", - recipe = { - "pyutest_flowers:sugarcane" - } + output = "pyutest_tools:sugar 3", + type = "shapeless", + recipe = { + "pyutest_flowers:sugarcane" + } }) minetest.register_craft({ - output = "pyutest_blocks:clay_block 4", - recipe = { - { "pyutest_tools:clay", "pyutest_tools:clay" }, - { "pyutest_tools:clay", "pyutest_tools:clay" } - } + output = "pyutest_blocks:clay_block 4", + recipe = { + { "pyutest_tools:clay", "pyutest_tools:clay" }, + { "pyutest_tools:clay", "pyutest_tools:clay" } + } }) minetest.register_craft({ - output = "pyutest_blocks:bone_block 4", - recipe = { - { "pyutest_tools:bone", "pyutest_tools:bone" }, - { "pyutest_tools:bone", "pyutest_tools:bone" } - } + output = "pyutest_blocks:bone_block 4", + recipe = { + { "pyutest_tools:bone", "pyutest_tools:bone" }, + { "pyutest_tools:bone", "pyutest_tools:bone" } + } }) minetest.register_craft({ - output = "pyutest_tools:stick 4", - recipe = { - { "group:wooden_planks" }, - { "group:wooden_planks" } - } + output = "pyutest_tools:stick 4", + recipe = { + { "group:wooden_planks" }, + { "group:wooden_planks" } + } }) minetest.register_craft({ - output = "pyutest_tools:coin", - recipe = { - { "pyutest_ores:gold_ingot", "pyutest_ores:gold_ingot", "pyutest_ores:gold_ingot" }, - { "pyutest_ores:gold_ingot", "pyutest_ores:gold_ingot", "pyutest_ores:gold_ingot" }, - { "pyutest_ores:gold_ingot", "pyutest_ores:gold_ingot", "pyutest_ores:gold_ingot" } - } + output = "pyutest_tools:coin", + recipe = { + { "pyutest_ores:gold_ingot", "pyutest_ores:gold_ingot", "pyutest_ores:gold_ingot" }, + { "pyutest_ores:gold_ingot", "pyutest_ores:gold_ingot", "pyutest_ores:gold_ingot" }, + { "pyutest_ores:gold_ingot", "pyutest_ores:gold_ingot", "pyutest_ores:gold_ingot" } + } }) minetest.register_craft({ - output = "pyutest_ores:gold_ingot 9", - recipe = { - { "pyutest_tools:coin" } - } + output = "pyutest_ores:gold_ingot 9", + recipe = { + { "pyutest_tools:coin" } + } }) -- this recipe makes no sense, but who cares? minetest.register_craft({ - output = "pyutest_blocks:contagious_acid 3", - recipe = { - "pyutest_blocks:mushroom_block", - "pyutest_blocks:mushroom_stem_block", - "pyutest_blocks:dirt_block", - "pyutest_blocks:swampy_grass_block" - }, - type = "shapeless" + output = "pyutest_blocks:contagious_acid 3", + recipe = { + "pyutest_blocks:mushroom_block", + "pyutest_blocks:mushroom_stem_block", + "pyutest_blocks:dirt_block", + "pyutest_blocks:swampy_grass_block" + }, + type = "shapeless" }) minetest.register_craft({ - output = "pyutest_blocks:light 4", - recipe = { - { "pyutest_blocks:torch", "pyutest_blocks:torch" }, - { "pyutest_blocks:torch", "pyutest_blocks:torch" } - } + output = "pyutest_blocks:light 4", + recipe = { + { "pyutest_blocks:torch", "pyutest_blocks:torch" }, + { "pyutest_blocks:torch", "pyutest_blocks:torch" } + } }) minetest.register_craft({ - output = "pyutest_blocks:tnt 4", - recipe = { - { "pyutest_blocks:sand_block", "pyutest_tools:gunpowder" }, - { "pyutest_tools:gunpowder", "pyutest_blocks:sand_block" } - } + output = "pyutest_blocks:tnt 4", + recipe = { + { "pyutest_blocks:sand_block", "pyutest_tools:gunpowder" }, + { "pyutest_tools:gunpowder", "pyutest_blocks:sand_block" } + } }) minetest.register_craft({ - output = "pyutest_blocks:tnt 4", - recipe = { - { "pyutest_tools:gunpowder", "pyutest_blocks:sand_block" }, - { "pyutest_blocks:sand_block", "pyutest_tools:gunpowder" } - } + output = "pyutest_blocks:tnt 4", + recipe = { + { "pyutest_tools:gunpowder", "pyutest_blocks:sand_block" }, + { "pyutest_blocks:sand_block", "pyutest_tools:gunpowder" } + } }) minetest.register_craft({ - output = "pyutest_blocks:torch 4", - recipe = { - { "pyutest_ores:coal_lump" }, - { "pyutest_tools:stick" } - } + output = "pyutest_blocks:torch 4", + recipe = { + { "pyutest_ores:coal_lump" }, + { "pyutest_tools:stick" } + } }) 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" } - } + 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 = { - "pyutest_blocks:haybale_block" - }, - type = "shapeless" + output = "pyutest_tools:wheat 4", + recipe = { + "pyutest_blocks:haybale_block" + }, + type = "shapeless" }) minetest.register_craft({ - output = "pyutest_blocks:haybale_block", - recipe = { - { "pyutest_tools:wheat", "pyutest_tools:wheat" }, - { "pyutest_tools:wheat", "pyutest_tools:wheat" } - } + output = "pyutest_blocks:haybale_block", + recipe = { + { "pyutest_tools:wheat", "pyutest_tools:wheat" }, + { "pyutest_tools:wheat", "pyutest_tools:wheat" } + } }) minetest.register_craft({ - output = "pyutest_tools:bread 3", - recipe = { - { "pyutest_tools:wheat", "pyutest_tools:wheat", "pyutest_tools:wheat" } - } + output = "pyutest_tools:bread 3", + recipe = { + "pyutest_tools:wheat", + "pyutest_tools:wheat", + "pyutest_tools:wheat" + }, + type = "shapeless" }) minetest.register_craft({ - output = "pyutest_tools:sliced_potato 2", - recipe = { - "pyutest_tools:potato" - }, - type = "shapeless" + output = "pyutest_tools:paper 3", + recipe = { + "pyutest_flowers:sugarcane", + "pyutest_flowers:sugarcane", + "pyutest_flowers:sugarcane", + }, + type = "shapeless", }) minetest.register_craft({ - type = "cooking", - output = "pyutest_blocks:glass", - recipe = "pyutest_blocks:sand_block" + output = "pyutest_fireworks:firework 3", + recipe = { + "pyutest_tools:gunpowder", + "pyutest_tools:paper", + }, + type = "shapeless" }) minetest.register_craft({ - type = "cooking", - output = "pyutest_blocks:brick", - recipe = "pyutest_tools:clay", + output = "pyutest_tools:sliced_potato 2", + recipe = { + "pyutest_tools:potato" + }, + type = "shapeless" +}) + +minetest.register_craft({ + type = "cooking", + output = "pyutest_blocks:glass", + recipe = "pyutest_blocks:sand_block" +}) + +minetest.register_craft({ + type = "cooking", + output = "pyutest_blocks:brick", + recipe = "pyutest_tools:clay", }) diff --git a/mods/ITEMS/pyutest_farming/api.lua b/mods/ITEMS/pyutest_farming/api.lua index 1efd9af..d8af670 100644 --- a/mods/ITEMS/pyutest_farming/api.lua +++ b/mods/ITEMS/pyutest_farming/api.lua @@ -53,7 +53,8 @@ PyuTest.make_crop = function(name, desc, output, growtime, water_multiplier, tex end, on_timer = function(pos) minetest.set_node(pos, { name = grow_into or name .. "_grown" }) - end + end, + _pyutest_blast_resistance = 0 }) if not grow_into then @@ -78,6 +79,7 @@ PyuTest.make_crop = function(name, desc, output, growtime, water_multiplier, tex } } }, + _pyutest_blast_resistance = 0 }) end diff --git a/mods/ITEMS/pyutest_flowers/init.lua b/mods/ITEMS/pyutest_flowers/init.lua index 3fecdc1..a7e2905 100644 --- a/mods/ITEMS/pyutest_flowers/init.lua +++ b/mods/ITEMS/pyutest_flowers/init.lua @@ -15,7 +15,8 @@ PyuTest.make_flower = function(name, desc, texture, dye, add_to_registry, drawty paramtype = "light", sunlight_propagates = true, inventory_image = texture, - floodable = true + floodable = true, + _pyutest_blast_resistance = 0 }, econf or {})) if dye ~= nil then @@ -59,7 +60,8 @@ PyuTest.make_node("pyutest_flowers:vines", "Vines", { selection_box = { type = "wallmounted" }, - inventory_image = "pyutest-vines.png" + inventory_image = "pyutest-vines.png", + _pyutest_blast_resistance = 0 }) @@ -81,10 +83,9 @@ PyuTest.make_node("pyutest_flowers:lilypad", "Lily Pad", { fixed = { -0.5, -31 / 64, -0.5, 0.5, -15 / 32, 0.5 } }, floodable = true, + _pyutest_blast_resistance = 0 }) -PyuTest.make_flower("pyutest_flowers:sugarcane", "Sugarcane", "pyutest-sugarcane.png", "pyutest_flowers:green_dye", false, - nil) PyuTest.make_node("pyutest_flowers:sugarcane", "Sugarcane", { oddly_breakable_by_hand = PyuTest.BLOCK_FAST, dig_immediate = 1, @@ -138,4 +139,6 @@ PyuTest.make_node("pyutest_flowers:cactus", "Cactus", { "pyutest-cactus-top-bottom.png", "pyutest-cactus-top-bottom.png", "pyutest-cactus-sides.png", +}, { + _pyutest_blast_resistance = 0 }) diff --git a/mods/ITEMS/pyutest_furnace/init.lua b/mods/ITEMS/pyutest_furnace/init.lua index 3e5d0ba..361e74c 100644 --- a/mods/ITEMS/pyutest_furnace/init.lua +++ b/mods/ITEMS/pyutest_furnace/init.lua @@ -92,4 +92,5 @@ PyuTest.make_node("pyutest_furnace:furnace", "Furnace", { end end end, + _pyutest_blast_resistance = 3 }) diff --git a/mods/ITEMS/pyutest_leaves/init.lua b/mods/ITEMS/pyutest_leaves/init.lua index 23d8718..3982661 100644 --- a/mods/ITEMS/pyutest_leaves/init.lua +++ b/mods/ITEMS/pyutest_leaves/init.lua @@ -11,6 +11,7 @@ PyuTest.make_leaves = function(id, desc, color, overlay, special_drops, drops) sunlight_propagates = true, is_ground_content = false, overlay_tiles = { overlay }, + _pyutest_blast_resistance = 0 }) if special_drops == nil or special_drops == true then minetest.override_item(leaves_id, { diff --git a/mods/ITEMS/pyutest_wood/init.lua b/mods/ITEMS/pyutest_wood/init.lua index 2bea1ed..062f0cb 100644 --- a/mods/ITEMS/pyutest_wood/init.lua +++ b/mods/ITEMS/pyutest_wood/init.lua @@ -4,6 +4,7 @@ PyuTest.make_wood = function(id, desc, ltiles, btiles) choppy = PyuTest.BLOCK_NORMAL, acid_vulnerable = 1, flammable = 1, + _pyutest_blast_resistance = 2 }, { is_ground_content = false }) @@ -12,6 +13,7 @@ PyuTest.make_wood = function(id, desc, ltiles, btiles) choppy = PyuTest.BLOCK_NORMAL, acid_vulnerable = 1, flammable = 1, + _pyutest_blast_resistance = 2 }, { is_ground_content = false }) diff --git a/mods/ITEMS/pyutest_wool/init.lua b/mods/ITEMS/pyutest_wool/init.lua index adfdaa3..101d0ba 100644 --- a/mods/ITEMS/pyutest_wool/init.lua +++ b/mods/ITEMS/pyutest_wool/init.lua @@ -4,21 +4,25 @@ PyuTest.make_colored_blocks = function(name, desc, color) "pyutest-wool.png" }, color, { wooly = PyuTest.BLOCK_NORMAL, - colored = 1 + colored = 1, }) PyuTest.make_building_blocks(name .. "_terracotta", desc .. " Terracotta", { "pyutest-terracotta.png" }, color, { cracky = PyuTest.BLOCK_NORMAL, - colored = 1 + colored = 1, + }, { + _pyutest_blast_resistance = 3 }) PyuTest.make_building_blocks(name .. "_concrete", desc .. " Concrete", { "pyutest-concrete.png" }, color, { cracky = PyuTest.BLOCK_NORMAL, - colored = 1 + colored = 1, + }, { + _pyutest_blast_resistance = 2 }) PyuTest.make_item(name .. "_dye", desc .. " Dye", { diff --git a/mods/PLAYER/pyutest_player/init.lua b/mods/PLAYER/pyutest_player/init.lua index 80742a6..7a3a3ad 100644 --- a/mods/PLAYER/pyutest_player/init.lua +++ b/mods/PLAYER/pyutest_player/init.lua @@ -33,25 +33,6 @@ minetest.register_on_joinplayer(function(player) end end) --- player physics -local function set_player_speed(player, speed) - player:set_physics_override({ - speed = speed, - }) -end - -minetest.register_globalstep(function(dtime) - local players = minetest.get_connected_players() - for p = 1, #players do - local ctrl = players[p]:get_player_control() - if ctrl.aux1 then - set_player_speed(players[p], 1.60) - else - set_player_speed(players[p], 1) - end - end -end) - -- player hand minetest.register_item(":", { type = "none", @@ -62,114 +43,92 @@ minetest.register_item(":", { } }) +-- player effects +minetest.register_globalstep(function () + +end) + if minetest.is_creative_enabled("") then minetest.override_item("", { - range = 9, - tool_capabilities = PyuTest.tool_caps({ - uses = 0, - time = 0.25, + range = 9, + tool_capabilities = PyuTest.tool_caps({ + uses = 0, + time = 0.25, - groupcaps = { - crumbly = {}, - choppy = {}, - cracky = {}, - snappy = {}, - wooly = {}, - oddly_breakable_by_hand = {} - }, + groupcaps = { + crumbly = {}, + choppy = {}, + cracky = {}, + snappy = {}, + wooly = {}, + oddly_breakable_by_hand = {} + }, - attack_uses = 0, - damage_groups = { fleshy = 10000 } - }) + attack_uses = 0, + damage_groups = { fleshy = 10000 } + }) }) else minetest.override_item("", { - range = 5, - tool_capabilities = PyuTest.tool_caps({ - uses = 0, - attck_uses = 0, - damage_groups = { fleshy = 2 }, + range = 5, + tool_capabilities = PyuTest.tool_caps({ + uses = 0, + attck_uses = 0, + damage_groups = { fleshy = 2 }, - groupcaps = { - oddly_breakable_by_hand = { - times = { - [PyuTest.BLOCK_FAST] = 0.35, - [PyuTest.BLOCK_NORMAL] = 0.50, - [PyuTest.BLOCK_SLOW] = 0.65, + groupcaps = { + oddly_breakable_by_hand = { + times = { + [PyuTest.BLOCK_FAST] = 0.35, + [PyuTest.BLOCK_NORMAL] = 0.50, + [PyuTest.BLOCK_SLOW] = 0.65, + } + }, + snappy = { + times = { + [PyuTest.BLOCK_FAST] = 0.55, + [PyuTest.BLOCK_NORMAL] = 0.70, + [PyuTest.BLOCK_SLOW] = 0.70 + } + }, + crumbly = { + times = { + [PyuTest.BLOCK_FAST] = 0.75, + [PyuTest.BLOCK_NORMAL] = 0.80, + [PyuTest.BLOCK_SLOW] = 0.90 + } + }, + choppy = { + times = { + [PyuTest.BLOCK_FAST] = 1.2, + [PyuTest.BLOCK_NORMAL] = 2.3, + [PyuTest.BLOCK_SLOW] = 2.9, + } + }, + cracky = { + times = { + [PyuTest.BLOCK_FAST] = 6, + [PyuTest.BLOCK_NORMAL] = 10, + [PyuTest.BLOCK_SLOW] = 45, + } + }, + wooly = { + times = { + [PyuTest.BLOCK_FAST] = 0.55, + [PyuTest.BLOCK_NORMAL] = 0.70, + [PyuTest.BLOCK_SLOW] = 0.70 + } + }, } - }, - snappy = { - times = { - [PyuTest.BLOCK_FAST] = 0.55, - [PyuTest.BLOCK_NORMAL] = 0.70, - [PyuTest.BLOCK_SLOW] = 0.70 - } - }, - crumbly = { - times = { - [PyuTest.BLOCK_FAST] = 0.75, - [PyuTest.BLOCK_NORMAL] = 0.80, - [PyuTest.BLOCK_SLOW] = 0.90 - } - }, - choppy = { - times = { - [PyuTest.BLOCK_FAST] = 1.2, - [PyuTest.BLOCK_NORMAL] = 2.3, - [PyuTest.BLOCK_SLOW] = 2.9, - } - }, - cracky = { - times = { - [PyuTest.BLOCK_FAST] = 6, - [PyuTest.BLOCK_NORMAL] = 10, - [PyuTest.BLOCK_SLOW] = 45, - } - }, - wooly = { - times = { - [PyuTest.BLOCK_FAST] = 0.55, - [PyuTest.BLOCK_NORMAL] = 0.70, - [PyuTest.BLOCK_SLOW] = 0.70 - } - }, - } - }) + }) }) end -- unlimited blocks in creative mode minetest.register_on_placenode(function(_, _, placer) - if placer and placer:is_player() then - return minetest.is_creative_enabled(placer:get_player_name()) - end -end) - --- player death message -minetest.register_on_dieplayer(function(player, reason) - local playername = player:get_player_name() - - local message = string.format("%s died", playername) - if reason.type == "fall" then - message = string.format("%s fell from a high place", playername) - elseif reason.type == "drown" then - message = string.format("%s drowned", playername) - elseif reason.type == "respawn" then - return - elseif reason.type == "punch" then - local entity = reason.object:get_luaentity() - - if entity ~= nil then - local name = reason.object:get_properties().nametag or entity.name or "an unnamed monster!" - message = string.format("%s was slain by %s", playername, name) - else - local name = reason.object:get_player_name() - local itemname = reason.object:get_wielded_item():get_short_description() - message = string.format("%s was slain by %s using %s", playername, name, itemname) + if placer and placer:is_player() then + return minetest.is_creative_enabled(placer:get_player_name()) end - end - - minetest.chat_send_all(message) end) -- player lighting, and sky effects for different biomes diff --git a/mods/WORLD/pyutest_mapgen/api.lua b/mods/WORLD/pyutest_mapgen/api.lua index 03355c8..f6f6b47 100644 --- a/mods/WORLD/pyutest_mapgen/api.lua +++ b/mods/WORLD/pyutest_mapgen/api.lua @@ -238,8 +238,20 @@ PyuTest.register_overworld_biome = function(name, type, opts, only_base) name = name .. "_cave", heat_point = nopts["heat_point"], humidity_point = nopts["humidity_point"], - y_max = PyuTest.OVERWORLD_DEEP_OCEAN_MIN - 1, + y_max = PyuTest.CAVE_TOP, + y_min = PyuTest.CAVE_BOTTOM, + }, { + _pyutest_biome_type = PyuTest.BIOME_TYPES.CAVE, + _pyutest_cave_type = type + })) + + minetest.register_biome(PyuTest.util.tableconcat({ + name = name .. "_deep_cave", + heat_point = nopts["heat_point"], + humidity_point = nopts["humidity_point"], + y_max = PyuTest.CAVE_BOTTOM, y_min = PyuTest.OVERWORLD_BOTTOM, + node_stone = "pyutest_blocks:darkstone_block" }, { _pyutest_biome_type = PyuTest.BIOME_TYPES.CAVE, _pyutest_cave_type = type diff --git a/mods/WORLD/pyutest_ores/api.lua b/mods/WORLD/pyutest_ores/api.lua index 0ec13b9..36640b2 100644 --- a/mods/WORLD/pyutest_ores/api.lua +++ b/mods/WORLD/pyutest_ores/api.lua @@ -13,6 +13,7 @@ PyuTest.make_ore = function(id, desc, options) ore_sounds = nil, ore_stone = { "pyutest-stone.png" }, ore_color = nil, + ore_blast_resistance = 3 } local conf = {} @@ -36,7 +37,8 @@ PyuTest.make_ore = function(id, desc, options) drop = conf.ore_drop .. " " .. tostring(conf.ore_drop_count or 1), sounds = PyuTest.make_node_sounds(conf.ore_sounds), tiles = conf.ore_stone, - overlay_tiles = { { name = "pyutest-ore-overlay.png", color = conf.ore_color } } + overlay_tiles = { { name = "pyutest-ore-overlay.png", color = conf.ore_color } }, + _pyutest_blast_resistance = conf.ore_blast_resistance }, conf.ore_conf)) minetest.register_ore({ diff --git a/mods/WORLD/pyutest_ores/init.lua b/mods/WORLD/pyutest_ores/init.lua index 2818bed..41d3ac1 100644 --- a/mods/WORLD/pyutest_ores/init.lua +++ b/mods/WORLD/pyutest_ores/init.lua @@ -67,7 +67,8 @@ PyuTest.ORE_STONES = { "pyutest_blocks:andesite_block", "pyutest_blocks:diorite_block", "pyutest_blocks:tuff_block", - "pyutest_blocks:calcite_block" + "pyutest_blocks:calcite_block", + "pyutest_blocks:darkstone_block" } minetest.register_ore({ diff --git a/mods/WORLD/pyutest_overworld/biomes.lua b/mods/WORLD/pyutest_overworld/biomes.lua index 4b657f9..5790f45 100644 --- a/mods/WORLD/pyutest_overworld/biomes.lua +++ b/mods/WORLD/pyutest_overworld/biomes.lua @@ -53,7 +53,8 @@ PyuTest.register_overworld_biome("FrozenPlains", PyuTest.BIOME_TYPES.COLD, { depth_water_top = 1, heat_point = 5, - humidity_point = 60 + humidity_point = 60, + _pyutest_fog_distance = 80, }) PyuTest.register_overworld_biome("Savanna", PyuTest.BIOME_TYPES.WARM, { @@ -88,7 +89,7 @@ PyuTest.register_overworld_biome("MushroomFields", PyuTest.BIOME_TYPES.NORMAL, { y_max = PyuTest.BIOME_TOPS.normal, y_min = PyuTest.OVERWORLD_SURFACE_BOTTOM, - heat_point = 50, + heat_point = 30, humidity_point = 90, enable_beaches = false, @@ -102,7 +103,7 @@ PyuTest.register_overworld_biome("LargeMushroomForest", PyuTest.BIOME_TYPES.NORM y_max = PyuTest.BIOME_TOPS.normal, y_min = PyuTest.OVERWORLD_SURFACE_BOTTOM, - heat_point = 50, + heat_point = 30, humidity_point = 90, enable_beaches = false, @@ -121,7 +122,8 @@ PyuTest.register_overworld_biome("SnowyForest", PyuTest.BIOME_TYPES.COLD, { depth_water_top = 5, heat_point = 5, - humidity_point = 60 + humidity_point = 60, + _pyutest_fog_distance = 80, }) PyuTest.register_overworld_biome("Taiga", PyuTest.BIOME_TYPES.CHILLY, { @@ -131,7 +133,7 @@ PyuTest.register_overworld_biome("Taiga", PyuTest.BIOME_TYPES.CHILLY, { y_max = PyuTest.BIOME_TOPS.normal, y_min = PyuTest.OVERWORLD_SURFACE_BOTTOM, - heat_point = 15, + heat_point = 20, humidity_point = 60, _pyutest_biome_flowering = true @@ -186,7 +188,7 @@ PyuTest.register_overworld_biome("AspenForest", PyuTest.BIOME_TYPES.CHILLY, { y_max = PyuTest.BIOME_TOPS.normal, y_min = PyuTest.OVERWORLD_SURFACE_BOTTOM, - heat_point = 30, + heat_point = 20, humidity_point = 50, _pyutest_biome_flowering = true, @@ -195,12 +197,12 @@ PyuTest.register_overworld_biome("AspenForest", 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", + node_filler = "pyutest_blocks:dirt_block", y_max = PyuTest.BIOME_TOPS.normal, y_min = PyuTest.OVERWORLD_SURFACE_BOTTOM, - heat_point = 30, + heat_point = 20, humidity_point = 50, _pyutest_biome_flowering = true, @@ -215,7 +217,7 @@ PyuTest.register_overworld_biome("Swamp", PyuTest.BIOME_TYPES.WETLAND, { y_max = PyuTest.BIOME_TOPS.lowland, y_min = PyuTest.OVERWORLD_SURFACE_BOTTOM, - heat_point = 50, + heat_point = 30, humidity_point = 80, enable_beaches = false, @@ -244,7 +246,8 @@ PyuTest.register_overworld_biome("SnowyMountains", PyuTest.BIOME_TYPES.COLD, { y_min = PyuTest.BIOME_TOPS.normal, heat_point = 5, - humidity_point = 60 + humidity_point = 60, + _pyutest_fog_distance = 80, }, true) PyuTest.register_overworld_biome("IceSpikes", PyuTest.BIOME_TYPES.COLD, { diff --git a/textures/pyutest-apple.png b/textures/pyutest-apple.png index e28966d77bf2ee2401c0e528e9160fb4c625a8c6..807dc9886c796c4c6f076c87d221a0763c54a8c9 100644 GIT binary patch literal 4333 zcmeHKeQ?xd8qXG_SV{qf;{>Idt&Rv}v&kmeY}zd?-Ihk(Qrn6}ojbD0n{BSm?vl;Y zZT)~EN)ZOn!}GjQ?{uSD_;ySA61Krcsy6LH}yFUH?;Xkc+Y?hX&k5e~_Vt@CZ zdnWcb%|5l_@|nwb-}jf^P*KtKTd0GtZuGW>IsJjNg{z*Nh1&YtlmCA{V`J|A?&QTo z`}_XU<2k4b?6PrXAH|M*CL_NjAisQZI? zWf_}l*G-&})iu8}d+u#QqH59erwhM1nQL6SYX3~5t>^IGwOP#J?%a#h?*H${?<@;8 zi=F(jA5QSOc}1VNj=kXPJ-_!PQ?a(s6Wh7(Vw>Q;AU40evvkYa%X;65H+J51PtU0w zcfWFY*Vi`}|8Gg*v;)t+??o*wcXfo{+kV&CdAp|-ZByG0IC64Y-p@dLE}T1lyl~%| z&zUdJPw175qmOp~y%~})snyh)wZU5jIjXxPB^pAmq#m<&3@ccij7f4mGVu@!YZ1Tm z%$sjJaZT|%?_h)OV5|hyY30oZs&1~Rk(=vfpW<9xm{pJzfIvs4geUceNL)zzoi?uk zwlz#TaT{XR`<=CrNF`AN;f#xMxrx%GwwiVpX5j^fq6$@kvNQ$U`JHv9852mdv9ZzB z=y64jFiH7*KGIE-G)(}4h&M${DM>`)c@{;ABY@(vp~Xxs8o@12DHKhZey0=W@j?Ie zSTHz5ABm?`06oa06eB5@o78o3m>|H)=6O9>T>EMuUw}WD+$X9Z2KgA2kYZYU;39qkOYw>~Kap0?Q5Y zk3tW|Zi4|83<`m$oUj%Z1AeFFub@O_O%ZI9p}nk(=n%p49xuTl77;w>^AI%4@f5=| zZkqLspb{f-Q;NvQq5^W420ScF%QVkRL`V)P1Ve==!pGA*p|Y&k7h+T{i{Z88D9v-P| zkW4jd=ziy|S|pJio~Y4uRBcL@Xq4AOyEzZTaBhlXIqxuNIWppqa2BUsBkdVQ7RrE8 zg2d5uDU8TiBy3Mu+af?PAgpBNDKOjP5Q|V^AjymxHPL8;-#Juvho*yYoD|8F0+NYf zwV^^>GgycTHz&ALaanZ1sG_M&zlOFB4_*Lx*z$5M4(m7BL#Y#0jaH@ZQnwA7eUxzA zJ`{o^r$UHJtC3>+30$cuxlW3N5mb+Kx(<$OzmN(H%c~OO^AQs7l^_))M1&NcB|Hqz zA(mBD$}5d#k4IIrQ8G|*7<2@!AU*A$D15%XgEx&vH`XC*dq6OPq6o@2C>WO(j7$ei zS~X)Z;sWw#niSZ85k&@`ON~MCf?7xp6~nYr9ajMA@kPd@@3>s!a*auW zF@eXkYh11|DKIARcy|3}a%By_PN4|=3u=Uyr7pJAdh4DPx@Bnq8?dg9f9~E2BUi@C zSHv-F%GFkLVB6aN2!olX7%a^^J!K}gXi|lcZN0y56a&RI{84#j$ER4f>KC7xvHcKRR#uzX(4N1c^N}l`_@eKXFqK_I z_b=uqR5E*5?$B3R<|kC=!k*pN%w1VLyJzU tRbJS+{@j|qTXL5F=k#mUH{4K_jotnncf4!L)3<d?v=&oZzSAb75Ho$@|fKT(IZ`=_2_cz=I z;M0f=V8jBtAJH{G`u&Yz!rilQeK=i!&sLl+fVtxLCwAb%707*qoM6N<$g6h~!9RL6T