Major Update: New Biomes, Trees, Mushrooms, New Blocks, and more!

This commit is contained in:
IamPyu 2024-06-10 18:38:56 -06:00
parent 828b5eb4a4
commit 71fbfeb393
37 changed files with 219 additions and 83 deletions

BIN
menu/background.1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 404 KiB

BIN
menu/background.2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 437 KiB

BIN
menu/background.3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 554 KiB

BIN
menu/background.4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 455 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 436 B

After

Width:  |  Height:  |  Size: 448 B

View File

@ -0,0 +1,3 @@
# pyutest_cmds
Chat Commands for PyuTest

View File

View File

@ -0,0 +1 @@
name = pyutest_cmds

View File

@ -0,0 +1,3 @@
# pyutest_core
Core gameplay, blocks, tools, events, textures, etc.

View File

@ -8,3 +8,14 @@ minetest.register_abm({
minetest.remove_node(pos)
end
})
minetest.register_abm({
label = "Contagious Acid Spread",
nodenames = PyuTestCore.building_blocks,
neighbors = {"pyutest_core:contagious_acid"},
interval = 1.2,
chance = 4.5,
action = function (pos)
minetest.set_node(pos, {name = "pyutest_core:contagious_acid"})
end
})

View File

@ -38,19 +38,25 @@ PyuTestCore.node_boxes = {
fixed = {-0.15, -0.5, -0.15, 0.15, 0.5, 0.15}
}
}
PyuTestCore.building_blocks = {}
PyuTestCore.make_colored_blocks = function (color, dcolor, tex, colorspec, cgroups)
PyuTestCore.make_colored_blocks = function (color, dcolor, tex, colorspec, cgroups, bdrawtype, light)
local groups = cgroups or {
block = PyuTestCore.BLOCK_BREAKABLE_NORMAL
}
minetest.register_node("pyutest_core:"..color.."_block", {
description = Translate(dcolor.." Block"),
drawtype = bdrawtype,
tiles = {tex},
color = colorspec,
groups = groups,
sounds = PyuTestCore.make_node_sounds()
sounds = PyuTestCore.make_node_sounds(),
paramtype = light and "light" or nil,
sunlight_propagates = light and true or nil
})
table.insert(PyuTestCore.building_blocks, "pyutest_core:"..color.."_block")
minetest.register_node("pyutest_core:"..color.."_carpet", {
description = Translate(dcolor .. " Carpet"),
@ -61,8 +67,10 @@ PyuTestCore.make_colored_blocks = function (color, dcolor, tex, colorspec, cgrou
paramtype = "light",
paramtyp2 = "facedir",
node_box = PyuTestCore.node_boxes.CARPET,
sounds = PyuTestCore.make_node_sounds()
sounds = PyuTestCore.make_node_sounds(),
sunlight_propagates = light and true or nil
})
table.insert(PyuTestCore.building_blocks, "pyutest_core:"..color.."_carpet")
minetest.register_node("pyutest_core:"..color.."_slab", {
description = Translate(dcolor.." Slab"),
@ -73,8 +81,10 @@ PyuTestCore.make_colored_blocks = function (color, dcolor, tex, colorspec, cgrou
paramtype = "light",
paramtyp2 = "facedir",
node_box = PyuTestCore.node_boxes.SLAB,
sounds = PyuTestCore.make_node_sounds()
sounds = PyuTestCore.make_node_sounds(),
sunlight_propagates = light and true or nil
})
table.insert(PyuTestCore.building_blocks, "pyutest_core:"..color.."_slab")
minetest.register_node("pyutest_core:"..color.."_pillar", {
description = Translate(dcolor.." Pillar"),
@ -85,8 +95,10 @@ PyuTestCore.make_colored_blocks = function (color, dcolor, tex, colorspec, cgrou
paramtype = "light",
paramtyp2 = "facedir",
node_box = PyuTestCore.node_boxes.PILLAR,
sounds = PyuTestCore.make_node_sounds()
})
sounds = PyuTestCore.make_node_sounds(),
sunlight_propagates = light and true or nil
})
table.insert(PyuTestCore.building_blocks, "pyutest_core:"..color.."_pillar")
end
PyuTestCore.make_liquid = function (nsname, sname, desc, groups, tiles)
@ -129,6 +141,13 @@ PyuTestCore.make_colored_blocks("snow", "Snow", "snow.png", nil)
PyuTestCore.make_colored_blocks("sand", "Sand", "sand.png", nil)
PyuTestCore.make_colored_blocks("sandstone", "Sandstone", "sandstone.png", nil)
PyuTestCore.make_colored_blocks("ice", "Ice", "ice.png", nil)
PyuTestCore.make_colored_blocks("leaves", "Leaves", "leaves.png", nil)
PyuTestCore.make_colored_blocks("mushroom", "Mushroom", "mushroom.png", nil)
PyuTestCore.make_colored_blocks("mushroom_stem", "Mushroom Stem", "mushroom-stem.png", nil)
PyuTestCore.make_colored_blocks("mycelium", "Mycelium", "mycelium.png", nil)
PyuTestCore.make_colored_blocks("hellstone", "Hellstone", "hellstone.png", nil)
PyuTestCore.make_colored_blocks("basalt", "Basalt", "basalt.png", nil)
PyuTestCore.make_colored_blocks("obsidian", "Obsidian", "obsidian.png", nil)
PyuTestCore.make_colored_blocks("white", "White", "wool.png", "white")
PyuTestCore.make_colored_blocks("red", "Red", "wool.png", "red")
@ -203,6 +222,19 @@ PyuTestCore.make_node("pyutest_core:flower2", "dandelion", "Dandelion", {
inventory_image = "flower2.png"
})
PyuTestCore.make_node("pyutest_core:flower3", "blue_daisy", "Blue Daisy", {
snappy = 1,
block = PyuTestCore.BLOCK_BREAKABLE_INSTANT,
}, {"flower3.png"}, {
drawtype = "plantlike",
walkable = false,
waving = 1,
buildable_to = true,
paramtype = "light",
sunlight_propagates = true,
inventory_image = "flower3.png"
})
PyuTestCore.make_node("pyutest_core:trapdoor", "trapdoor", "Trapdoor", {
choppy = 1,
block = PyuTestCore.BLOCK_BREAKABLE_NORMAL
@ -216,5 +248,10 @@ PyuTestCore.make_node("pyutest_core:trapdoor", "trapdoor", "Trapdoor", {
}
})
PyuTestCore.make_liquid("pyutest_core:water", "water", "Water", {}, {"water.png"})
PyuTestCore.make_node("pyutest_core:contagious_acid", "acid", "Contagious Acid", {
fleshy = 1,
block = PyuTestCore.BLOCK_BREAKABLE_LONG,
}, {"acid.png"}, {})
PyuTestCore.make_liquid("pyutest_core:water", "water", "Water", {}, {"water.png"})
PyuTestCore.make_liquid("pyutest_core:lava", "Lava", "Lava", {}, {"lava.png"})

View File

@ -12,11 +12,11 @@ PyuTestCore = {
}
}
local path = minetest.get_modpath("pyutest_core")
dofile(path.."/blocks.lua")
dofile(path.."/mapgen.lua")
dofile(path.."/abms.lua")
dofile(path.."/tools.lua")
dofile(path.."/player.lua")
PyuTestCore_Path = minetest.get_modpath("pyutest_core")
dofile(PyuTestCore_Path.."/blocks.lua")
dofile(PyuTestCore_Path.."/mapgen.lua")
dofile(PyuTestCore_Path.."/abms.lua")
dofile(PyuTestCore_Path.."/tools.lua")
dofile(PyuTestCore_Path.."/player.lua")

View File

@ -5,12 +5,13 @@ minetest.register_alias("mapgen_lava_source", "pyutest_core:water_source")
-- Biomes
local biome_ends = {
PyuTestCore_BiomeEndings = {
grassland = 40,
desert = 70,
frozen_plains = 50,
mountains = 300,
flooded = 30
mushroom_fields = 40,
hellbounds = 70
}
minetest.register_biome({
@ -22,13 +23,29 @@ minetest.register_biome({
node_filler = "pyutest_core:dirt_block",
depth_filler = 3,
y_max = biome_ends.grassland,
y_max = PyuTestCore_BiomeEndings.grassland,
y_min = -3,
heat_point = 50,
humidity_point = 50,
})
minetest.register_biome({
name = "forest",
node_top = "pyutest_core:grass_block",
depth_top = 1,
node_filler = "pyutest_core:dirt_block",
depth_filler = 3,
y_max = PyuTestCore_BiomeEndings.grassland,
y_min = -3,
heat_point = 50,
humidity_point = 63
})
minetest.register_biome({
name = "stony_mountains",
@ -38,8 +55,8 @@ minetest.register_biome({
node_filler = "pyutest_core:stone_block",
depth_filler = 3,
y_max = biome_ends.mountains,
y_min = biome_ends.grassland,
y_max = PyuTestCore_BiomeEndings.mountains,
y_min = PyuTestCore_BiomeEndings.grassland,
heat_point = 45,
humidity_point = 34
@ -54,7 +71,7 @@ minetest.register_biome({
node_filler = "pyutest_core:sandstone_block",
depth_filler = 3,
y_max = biome_ends.desert,
y_max = PyuTestCore_BiomeEndings.desert,
y_min = -3,
heat_point = 78,
@ -70,8 +87,8 @@ minetest.register_biome({
node_filler = "pyutest_core:sandstone_block",
depth_filler = 3,
y_max = biome_ends.mountains,
y_min = biome_ends.desert,
y_max = PyuTestCore_BiomeEndings.mountains,
y_min = PyuTestCore_BiomeEndings.desert,
heat_point = 65,
humidity_point = 8
@ -86,8 +103,8 @@ minetest.register_biome({
node_filler = "pyutest_core:snow_block",
depth_filler = 3,
y_max = biome_ends.mountains,
y_min = biome_ends.frozen_plains,
y_max = PyuTestCore_BiomeEndings.mountains,
y_min = PyuTestCore_BiomeEndings.frozen_plains,
heat_point = 16,
humidity_point = 23
@ -106,7 +123,7 @@ minetest.register_biome({
node_water_top = "pyutest_core:ice_block",
depth_water_top = 10,
y_max = biome_ends.frozen_plains,
y_max = PyuTestCore_BiomeEndings.frozen_plains,
y_min = -3,
heat_point = 19,
@ -125,79 +142,54 @@ minetest.register_biome({
node_water_top = "pyutest_core:ice_block",
depth_water_top = 10,
y_max = biome_ends.frozen_plains,
y_max = PyuTestCore_BiomeEndings.frozen_plains,
y_min = -3,
heat_point = 21,
humidity_point = 9
})
minetest.register_biome({
name = "flooded",
node_top = "pyutest_core:water_source",
name = "mushroom_fields",
node_top = "pyutest_core:mycelium_block",
depth_top = 1,
node_filler = "pyutest_core:dirt_block",
depth_filler = 3,
y_max = biome_ends.flooded,
y_max = PyuTestCore_BiomeEndings.frozen_plains,
y_min = -3,
heat_point = 56,
humidity_point = 43
heat_point = 34,
humidity_point = 76
})
-- Schematics and Decorations
minetest.register_biome({
name = "hellbounds",
node_top = "pyutest_core:hellstone_block",
depth_top = 1,
node_filler = "pyutest_core:basalt_block",
depth_filler = 9,
node_water = "pyutest_core:lava_source",
node_river_water = "pyutest_core:lava_source",
node_riverbed = "pyutest_core:lava_source",
depth_riverbed = 2,
y_max = PyuTestCore_BiomeEndings.hellbounds,
y_min = -1,
heat_point = 98,
humidity_point = 3
})
PyuTestCore.get_schem_path = function (name)
return minetest.get_modpath("pyutest_core") .. "/schematics/"..name..".mts"
end
minetest.register_decoration({
deco_type = "schematic",
place_on = {"pyutest_core:grass_block"},
sidelen = 16,
fill_ratio = 0.00004,
biomes = {"grassland"},
y_max = biome_ends.grassland,
y_min = 1,
schematic = PyuTestCore.get_schem_path("hut"),
rotation = "random",
flags = "place_center_x, place_center_z"
})
minetest.register_decoration({
deco_type = "schematic",
place_on = {"pyutest_core:snow_block"},
sidelen = 16,
fill_ratio = 0.00004,
biomes = {"frozen_plains"},
y_max = biome_ends.frozen_plains,
y_min = 1,
schematic = PyuTestCore.get_schem_path("igloo"),
rotation = "random",
flags = "place_center_x, place_center_z"
})
minetest.register_decoration({
deco_type = "schematic",
place_on = {"pyutest_core:snow_block"},
sidelen = 16,
fill_ratio = 0.00007,
biomes = {"frozen_plains"},
y_max = biome_ends.frozen_plains,
y_min = 1,
schematic = PyuTestCore.get_schem_path("snowycamp"),
rotation = "random",
flags = "place_center_x, place_center_z"
})
minetest.register_decoration({
deco_type = "schematic",
place_on = {"pyutest_core:sand_block"},
sidelen = 16,
fill_ratio = 0.00006,
biomes = {"desert"},
y_max = biome_ends.desert,
y_min = 1,
schematic = PyuTestCore.get_schem_path("desertwell"),
rotation = "random",
flags = "place_center_x, place_center_z"
})
-- Structures
dofile(PyuTestCore_Path.."/structures.lua")
-- Trees, Plants and More
dofile(PyuTestCore_Path.."/trees.lua")

View File

@ -30,7 +30,7 @@ minetest.override_item("", {
[PyuTestCore.BLOCK_BREAKABLE_LONG] = 4,
[PyuTestCore.BLOCK_BREAKABLE_FOREVER] = 12
},
uses = 0,
uses = 0
}
},
punch_attack_uses = 0

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,51 @@
minetest.register_decoration({
deco_type = "schematic",
place_on = {"pyutest_core:grass_block"},
sidelen = 16,
fill_ratio = 0.00004,
biomes = {"grassland"},
y_max = PyuTestCore_BiomeEndings.grassland,
y_min = 1,
schematic = PyuTestCore.get_schem_path("hut"),
rotation = "random",
flags = "place_center_x, place_center_z"
})
minetest.register_decoration({
deco_type = "schematic",
place_on = {"pyutest_core:snow_block"},
sidelen = 16,
fill_ratio = 0.00004,
biomes = {"frozen_plains"},
y_max = PyuTestCore_BiomeEndings.frozen_plains,
y_min = 1,
schematic = PyuTestCore.get_schem_path("igloo"),
rotation = "random",
flags = "place_center_x, place_center_z"
})
minetest.register_decoration({
deco_type = "schematic",
place_on = {"pyutest_core:snow_block"},
sidelen = 16,
fill_ratio = 0.00007,
biomes = {"frozen_plains"},
y_max = PyuTestCore_BiomeEndings.frozen_plains,
y_min = 1,
schematic = PyuTestCore.get_schem_path("snowycamp"),
rotation = "random",
flags = "place_center_x, place_center_z"
})
minetest.register_decoration({
deco_type = "schematic",
place_on = {"pyutest_core:sand_block"},
sidelen = 16,
fill_ratio = 0.00006,
biomes = {"desert"},
y_max = PyuTestCore_BiomeEndings.desert,
y_min = 1,
schematic = PyuTestCore.get_schem_path("desertwell"),
rotation = "random",
flags = "place_center_x, place_center_z"
})

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 B

After

Width:  |  Height:  |  Size: 153 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 311 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 281 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 277 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 196 B

After

Width:  |  Height:  |  Size: 288 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 211 B

After

Width:  |  Height:  |  Size: 266 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 B

After

Width:  |  Height:  |  Size: 146 B

View File

@ -0,0 +1,38 @@
minetest.register_decoration({
deco_type = "schematic",
place_on = {"pyutest_core:grass_block"},
sidelen = 16,
fill_ratio = 0.004,
biomes = {"forest"},
y_max = PyuTestCore_BiomeEndings.grassland,
y_min = 1,
schematic = PyuTestCore.get_schem_path("tree"),
rotation = "random",
flags = "place_center_x, place_center_z"
})
minetest.register_decoration({
deco_type = "schematic",
place_on = {"pyutest_core:grass_block"},
sidelen = 16,
fill_ratio = 0.004,
biomes = {"forest"},
y_max = PyuTestCore_BiomeEndings.grassland,
y_min = 1,
schematic = PyuTestCore.get_schem_path("tree2"),
rotation = "random",
flags = "place_center_x, place_center_z"
})
minetest.register_decoration({
deco_type = "schematic",
place_on = {"pyutest_core:mycelium_block"},
sidelen = 16,
fill_ratio = 0.003,
biomes = {"mushroom_fields"},
y_max = PyuTestCore_BiomeEndings.mushroom_fields,
y_min = 1,
schematic = PyuTestCore.get_schem_path("mushroom"),
rotation = "random",
flags = "place_center_x, place_center_z"
})

Binary file not shown.

Before

Width:  |  Height:  |  Size: 455 KiB

After

Width:  |  Height:  |  Size: 404 KiB

BIN
screenshots/alpha.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 455 KiB

BIN
screenshots/flowerbed.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 554 KiB

BIN
screenshots/hut.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 437 KiB