Major Update: New Biomes, Trees, Mushrooms, New Blocks, and more!
BIN
menu/background.1.png
Normal file
After Width: | Height: | Size: 404 KiB |
BIN
menu/background.2.png
Normal file
After Width: | Height: | Size: 437 KiB |
BIN
menu/background.3.png
Normal file
After Width: | Height: | Size: 554 KiB |
BIN
menu/background.4.png
Normal file
After Width: | Height: | Size: 455 KiB |
BIN
menu/icon.png
Before Width: | Height: | Size: 436 B After Width: | Height: | Size: 448 B |
3
mods/pyutest_cmds/README.md
Normal file
@ -0,0 +1,3 @@
|
||||
# pyutest_cmds
|
||||
|
||||
Chat Commands for PyuTest
|
0
mods/pyutest_cmds/init.lua
Normal file
1
mods/pyutest_cmds/mod.conf
Normal file
@ -0,0 +1 @@
|
||||
name = pyutest_cmds
|
3
mods/pyutest_core/README.md
Normal file
@ -0,0 +1,3 @@
|
||||
# pyutest_core
|
||||
|
||||
Core gameplay, blocks, tools, events, textures, etc.
|
@ -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
|
||||
})
|
||||
|
@ -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"})
|
||||
|
@ -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")
|
||||
|
||||
|
||||
|
@ -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")
|
||||
|
@ -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
|
||||
|
BIN
mods/pyutest_core/schematics/mushroom.mts
Normal file
BIN
mods/pyutest_core/schematics/tree.mts
Normal file
BIN
mods/pyutest_core/schematics/tree2.mts
Normal file
51
mods/pyutest_core/structures.lua
Normal 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"
|
||||
})
|
BIN
mods/pyutest_core/textures/acid.png
Normal file
After Width: | Height: | Size: 258 B |
BIN
mods/pyutest_core/textures/basalt.png
Normal file
After Width: | Height: | Size: 256 B |
BIN
mods/pyutest_core/textures/flower3.png
Normal file
After Width: | Height: | Size: 144 B |
Before Width: | Height: | Size: 107 B After Width: | Height: | Size: 153 B |
BIN
mods/pyutest_core/textures/hellstone.png
Normal file
After Width: | Height: | Size: 216 B |
BIN
mods/pyutest_core/textures/lava.png
Normal file
After Width: | Height: | Size: 311 B |
BIN
mods/pyutest_core/textures/leaves.png
Normal file
After Width: | Height: | Size: 281 B |
BIN
mods/pyutest_core/textures/mushroom-stem.png
Normal file
After Width: | Height: | Size: 222 B |
BIN
mods/pyutest_core/textures/mushroom.png
Normal file
After Width: | Height: | Size: 277 B |
BIN
mods/pyutest_core/textures/mycelium.png
Normal file
After Width: | Height: | Size: 326 B |
BIN
mods/pyutest_core/textures/obsidian.png
Normal file
After Width: | Height: | Size: 226 B |
Before Width: | Height: | Size: 196 B After Width: | Height: | Size: 288 B |
Before Width: | Height: | Size: 211 B After Width: | Height: | Size: 266 B |
Before Width: | Height: | Size: 145 B After Width: | Height: | Size: 146 B |
38
mods/pyutest_core/trees.lua
Normal 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"
|
||||
})
|
BIN
screenshot.png
Before Width: | Height: | Size: 455 KiB After Width: | Height: | Size: 404 KiB |
BIN
screenshots/alpha.png
Normal file
After Width: | Height: | Size: 455 KiB |
BIN
screenshots/flowerbed.png
Normal file
After Width: | Height: | Size: 554 KiB |
BIN
screenshots/hut.png
Normal file
After Width: | Height: | Size: 437 KiB |