under development update

This commit is contained in:
IamPyu 2024-07-07 21:20:22 -06:00
parent 7c862c49b5
commit 35c6a40afa
21 changed files with 199 additions and 118 deletions

View File

@ -1,5 +1,27 @@
# Changelog
## [Jul 7th - **STILL UNDER DEVELOPMENT** 2024] Major Update: World and Building Update
This update aims to update the world generation and add new building blocks!
- Added new grass variants
- Added dark grass
- Added swampy grass
- Forests now use dark grass instead of normal grass
- Updated various other biomes
- Added logs
- Updated leaves texture
- Added snowy leaves
- Revamped trees
- Removed snowy camp structure
- Added new tree types
- Added giant tree
- Added snowy tree
- Added various biomes
- Grassy Hills
- Old Growth Forest
- Snowy Forest
## [Jun 26th - Jul 6th 2024] Major Update: Adventure and Magic Update
**This update contains breaking changes!!**

View File

@ -81,7 +81,9 @@ PyuTestCore.make_building_blocks = function (name, desc, tex, colortint, cgroups
minetest.register_node(id_carpet, PyuTestCore.util.tableconcat({
description = Translate(desc .. " Carpet"),
tiles = tex,
groups = groups,
groups = PyuTestCore.util.tableconcat(PyuTestCore.util.tablecopy(groups), {
attached_node = 3
}),
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
@ -95,7 +97,6 @@ PyuTestCore.make_building_blocks = function (name, desc, tex, colortint, cgroups
groups = groups,
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
node_box = PyuTestCore.node_boxes.SLAB,
sounds = PyuTestCore.make_node_sounds(),
}, econf))
@ -106,7 +107,6 @@ PyuTestCore.make_building_blocks = function (name, desc, tex, colortint, cgroups
groups = groups,
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
node_box = PyuTestCore.node_boxes.PILLAR,
sounds = PyuTestCore.make_node_sounds(),
}, econf))
@ -159,6 +159,17 @@ PyuTestCore.make_building_blocks("pyutest_core:grass", "Grass", {"grass.png"}, n
ground = 1,
acid_vulnerable = 1
})
PyuTestCore.make_building_blocks("pyutest_core:dark_grass", "Dark Grass", {"dark-grass.png"}, nil, {
ground = 1,
acid_vulnerable = 1
})
PyuTestCore.make_building_blocks("pyutest_core:swampy_grass", "Swampy Grass", {"swampy-grass.png"}, nil, {
ground = 1,
acid_vulnerable = 1
})
PyuTestCore.make_building_blocks("pyutest_core:dirt", "Dirt", {"dirt.png"}, nil, {
ground = 1,
acid_vulnerable = 1
@ -169,6 +180,18 @@ PyuTestCore.make_building_blocks("pyutest_core:stone", "Stone", {"stone.png"}, n
block = PyuTestCore.BLOCK_BREAKABLE_MIDDLE,
}, {is_ground_content = false})
PyuTestCore.make_building_blocks("pyutest_core:wooden_log", "Wooden Log", {
"log-top-bottom.png",
"log-top-bottom.png",
"log.png"
}, nil, {
block = PyuTestCore.BLOCK_BREAKABLE_CHOPPY,
acid_vulnerable = 1
}, {
is_ground_content = false,
})
PyuTestCore.make_building_blocks("pyutest_core:wooden", "Wooden", {"wood.png"}, nil, {
block = PyuTestCore.BLOCK_BREAKABLE_CHOPPY,
acid_vulnerable = 1
@ -201,6 +224,11 @@ PyuTestCore.make_building_blocks("pyutest_core:leaves", "Leaves", {"leaves.png"}
acid_vulnerable = 1
})
PyuTestCore.make_building_blocks("pyutest_core:snowy_leaves", "Snowy Leaves", {"snowy-leaves.png"}, nil, {}, {
is_ground_content = false,
acid_vulnerable = 1
})
PyuTestCore.make_building_blocks("pyutest_core:mushroom", "Mushroom", {"mushroom.png"}, nil, {}, {is_ground_content = false})
PyuTestCore.make_building_blocks("pyutest_core:mushroom_stem", "Mushroom Stem", {"mushroom-stem.png"}, nil, {}, {is_ground_content = false})
PyuTestCore.make_building_blocks("pyutest_core:mycelium", "Mycelium", {"mycelium.png"}, nil, {ground = 1})
@ -517,6 +545,20 @@ PyuTestCore.make_node("pyutest_core:ladder", "Ladder", {
}
})
PyuTestCore.make_node("pyutest_core:lilypad", "Lily Pad", {
block = PyuTestCore.BLOCK_BREAKABLE_INSTANT
}, {"lilypad.png"}, {
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
buildable_to = true,
sunlight_propagates = true,
node_box = {
type = "fixed",
fixed = {-0.5, -31/64, -0.5, 0.5, -15/32, 0.5}
},
})
PyuTestCore.make_liquid = function (name, desc, groups, texture, speed, extra_conf)
local function make_liquid_flags(liquidtype)
local drawtype = ""

View File

@ -174,3 +174,11 @@ minetest.register_craft({
},
type = "shapeless"
})
minetest.register_craft({
output = "pyutest_core:wooden_block 4",
recipe = {
"pyutest_core:wooden_log_block"
},
type = "shapeless"
})

View File

@ -9,6 +9,7 @@ minetest.register_alias("mapgen_singlenode", "air")
PyuTestCore_WorldBottom = -31000
PyuTestCore_BiomeTops = {
grassland = 40,
forest = 45,
desert = 70,
frozen_plains = 50,
mountains = 300,
@ -18,14 +19,25 @@ PyuTestCore_BiomeTops = {
ice_spikes = 250
}
minetest.register_biome({
-- wrapper around minetest.register_biome but with defaults.
PyuTestCore.register_biome = function(opts)
local nopts = PyuTestCore.util.tablecopy(opts) or {}
nopts["depth_top"] = nopts["depth_top"] or 1
nopts["depth_filler"] = nopts["depth_filler"] or 3
nopts["depth_riverbed"] = nopts["depth_riverbed"] or 2
nopts["depth_water_top"] = nopts["depth_water_top"] or nil -- cant think of a sane default..
nopts["node_river_water"] = nopts["node_river_water"] or "pyutest_core:water_source"
nopts["node_riverbed"] = nopts["node_riverbed"] or "pyutest_core:gravel_block"
minetest.register_biome(nopts)
end
PyuTestCore.register_biome({
name = "grassland",
node_top = "pyutest_core:grass_block",
depth_top = 1,
node_filler = "pyutest_core:dirt_block",
depth_filler = 3,
y_max = PyuTestCore_BiomeTops.grassland,
y_min = PyuTestCore_WorldBottom,
@ -34,30 +46,24 @@ minetest.register_biome({
humidity_point = 50,
})
minetest.register_biome({
PyuTestCore.register_biome({
name = "forest",
node_top = "pyutest_core:grass_block",
depth_top = 1,
node_top = "pyutest_core:dark_grass_block",
node_filler = "pyutest_core:dirt_block",
depth_filler = 3,
y_max = PyuTestCore_BiomeTops.grassland,
y_max = PyuTestCore_BiomeTops.forest,
y_min = PyuTestCore_WorldBottom,
heat_point = 50,
humidity_point = 63
})
minetest.register_biome({
PyuTestCore.register_biome({
name = "stony_mountains",
node_top = "pyutest_core:stone_block",
depth_top = 1,
node_filler = "pyutest_core:stone_block",
depth_filler = 3,
y_max = PyuTestCore_BiomeTops.mountains,
y_min = PyuTestCore_BiomeTops.grassland,
@ -66,14 +72,11 @@ minetest.register_biome({
humidity_point = 34
})
minetest.register_biome({
PyuTestCore.register_biome({
name = "desert",
node_top = "pyutest_core:sand_block",
depth_top = 1,
node_filler = "pyutest_core:sandstone_block",
depth_filler = 3,
y_max = PyuTestCore_BiomeTops.desert,
y_min = PyuTestCore_WorldBottom,
@ -82,14 +85,11 @@ minetest.register_biome({
humidity_point = 4
})
minetest.register_biome({
PyuTestCore.register_biome({
name = "desert_mountains",
node_top = "pyutest_core:sand_block",
depth_top = 1,
node_filler = "pyutest_core:sandstone_block",
depth_filler = 3,
y_max = PyuTestCore_BiomeTops.mountains,
y_min = PyuTestCore_BiomeTops.desert,
@ -98,14 +98,11 @@ minetest.register_biome({
humidity_point = 8
})
minetest.register_biome({
PyuTestCore.register_biome({
name = "snowy_mountains",
node_top = "pyutest_core:snow_block",
depth_top = 1,
node_filler = "pyutest_core:snow_block",
depth_filler = 3,
y_max = PyuTestCore_BiomeTops.mountains,
y_min = PyuTestCore_BiomeTops.frozen_plains,
@ -114,15 +111,13 @@ minetest.register_biome({
humidity_point = 23
})
minetest.register_biome({
PyuTestCore.register_biome({
name = "frozen_plains",
node_top = "pyutest_core:snow_block",
depth_top = 1,
node_dust = "pyutest_core:snow_carpet",
node_top = "pyutest_core:snow_block",
node_filler = "pyutest_core:snow_block",
depth_filler = 3,
node_water_top = "pyutest_core:ice_block",
depth_water_top = 10,
@ -134,14 +129,11 @@ minetest.register_biome({
humidity_point = 32
})
minetest.register_biome({
PyuTestCore.register_biome({
name = "wasteland",
node_top = "pyutest_core:dirt_block",
depth_top = 1,
node_filler = "pyutest_core:dirt_block",
depth_filler = 3,
node_water_top = "pyutest_core:ice_block",
depth_water_top = 10,
@ -152,13 +144,10 @@ minetest.register_biome({
humidity_point = 9
})
minetest.register_biome({
PyuTestCore.register_biome({
name = "mushroom_fields",
node_top = "pyutest_core:mycelium_block",
depth_top = 1,
node_filler = "pyutest_core:dirt_block",
depth_filler = 3,
y_max = PyuTestCore_BiomeTops.mushroom_fields,
y_min = PyuTestCore_WorldBottom,
@ -167,21 +156,16 @@ minetest.register_biome({
humidity_point = 76
})
minetest.register_biome({
PyuTestCore.register_biome({
name = "volcano",
node_top = "pyutest_core:molten_rock_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_BiomeTops.volcano,
y_min = PyuTestCore_WorldBottom,
@ -189,21 +173,15 @@ minetest.register_biome({
humidity_point = 3
})
minetest.register_biome({
PyuTestCore.register_biome({
name = "oillands",
node_top = "pyutest_core:basalt_block",
depth_top = 1,
node_filler = "pyutest_core:basalt_block",
depth_filler = 3,
node_water = "pyutest_core:oil_source",
node_river_water = "pyutest_core:oil_source",
node_riverbed = "pyutest_core:oil_source",
depth_riverbed = 2,
y_max = PyuTestCore_BiomeTops.oillands,
y_min = PyuTestCore_WorldBottom,
@ -211,14 +189,11 @@ minetest.register_biome({
humidity_point = 18
})
minetest.register_biome({
PyuTestCore.register_biome({
name = "ice_spikes",
node_top = "pyutest_core:ice_block",
depth_top = 1,
node_filler = "pyutest_core:ice_block",
depth_filler = 3,
node_water_top = "pyutest_core:ice_block",
depth_water_top = 10,
@ -229,6 +204,45 @@ minetest.register_biome({
humidity_point = 28
})
PyuTestCore.register_biome({
name = "grassy_hills",
node_top = "pyutest_core:dark_grass_block",
node_filler = "pyutest_core:dirt_block",
depth_filler = 4,
y_max = PyuTestCore_BiomeTops.mountains,
y_min = PyuTestCore_BiomeTops.grassland,
heat_point = 36,
humidity_point = 54
})
PyuTestCore.register_biome({
name = "old_growth_forest",
node_top = "pyutest_core:dark_grass_block",
node_filler = "pyutest_core:dirt_block",
y_max = PyuTestCore_BiomeTops.forest,
y_min = PyuTestCore_WorldBottom,
heat_point = 38,
humidity_point = 66
})
PyuTestCore.register_biome({
name = "snowy_forest",
node_top = "pyutest_core:snow_block",
node_filler = "pyutest_core:dirt_block",
y_max = PyuTestCore_BiomeTops.forest,
y_min = PyuTestCore_WorldBottom,
heat_point = 18,
humidity_point = 28
})
PyuTestCore.BIOMES = {}
for k, _ in pairs(minetest.registered_biomes) do
table.insert(PyuTestCore.BIOMES, k)

View File

@ -13,7 +13,7 @@ mobs:register_mob("pyutest_core:monster", {
passive = false,
walk_chance = 0,
stand_chance = 25,
damage = 5.5,
damage = 2.7,
attack_chance = 1,
attack_type = "dogfight",
pathfinding = 1,
@ -98,13 +98,14 @@ mobs:register_mob("pyutest_core:firefly", {
walk_chance = 100,
fly = true,
keep_flying = true,
visual = "upright_sprite",
visual = "sprite",
visual_size = {x = 0.05, y = 0.05},
collisionbox = {
-0.0, -0.0, -0.0, 0.0, 0.0, 0.0
},
textures = {"firefly.png"},
blood_amount = PyuTestCore.ENTITY_BLOOD_AMOUNT,
glow = 7,
})
mobs:register_egg("pyutest_core:firefly", "Firefly Spawn Egg", "egg.png^[multiply:yellow", 0)
@ -115,7 +116,7 @@ if mapgen ~= "flat" and mapgen ~= "singlenode" then
nodes = {"group:ground"},
interval = 2,
chance = 2,
active_object_count = 8,
active_object_count = 6,
min_light = 0,
max_light = 9,
})
@ -147,9 +148,9 @@ if mapgen ~= "flat" and mapgen ~= "singlenode" then
nodes = {"group:ground"},
interval = 3,
chance = 3,
active_object_count = 2,
min_light = 9,
max_light = 15,
day_toggle = true,
active_object_count = 4,
min_light = 0,
max_light = 9,
day_toggle = false,
})
end

View File

@ -3,8 +3,8 @@ minetest.override_item("pyutest_core:leaves_block", {
max_items = 1,
items = {
{
rarity = 5,
items = {"pyutest_core:apple 2"}
rarity = 3.5,
items = {"pyutest_core:apple 1"}
},
{

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -8,7 +8,8 @@ minetest.register_decoration({
y_min = 1,
schematic = PyuTestCore.get_schem_path("hut"),
rotation = "random",
flags = "place_center_x, place_center_z"
flags = "place_center_x, place_center_z",
place_offset_y = 1
})
minetest.register_decoration({
@ -21,20 +22,8 @@ minetest.register_decoration({
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_BiomeTops.frozen_plains,
y_min = 1,
schematic = PyuTestCore.get_schem_path("snowycamp"),
rotation = "random",
flags = "place_center_x, place_center_z"
flags = "place_center_x, place_center_z",
place_offset_y = 1
})
minetest.register_decoration({
@ -101,7 +90,7 @@ minetest.register_decoration({
},
y_max = PyuTestCore_BiomeTops.mushroom_fields,
y_min = PyuTestCore_WorldBottom,
flags = "",
flags = "place_center_x, place_center_z",
place_offset_y = 1
})

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 281 B

After

Width:  |  Height:  |  Size: 285 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 179 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 234 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 281 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 B

View File

@ -1,9 +1,9 @@
minetest.register_decoration({
deco_type = "simple",
place_on = {"pyutest_core:grass_block"},
place_on = {"pyutest_core:grass_block", "pyutest_core:dark_grass_block"},
sidelen = 16,
fill_ratio = 0.009,
biomes = {"forest", "grassland"},
biomes = {"forest", "grassland", "old_growth_forest"},
y_max = PyuTestCore_BiomeTops.grassland,
y_min = 1,
decoration = {"pyutest_core:flower", "pyutest_core:flower2", "pyutest_core:flower3", "pyutest_core:flower4"}
@ -44,54 +44,59 @@ minetest.register_decoration({
minetest.register_decoration({
deco_type = "schematic",
place_on = {"pyutest_core:grass_block"},
place_on = {"pyutest_core:dark_grass_block"},
sidelen = 16,
fill_ratio = 0.004,
biomes = {"forest"},
y_max = PyuTestCore_BiomeTops.grassland,
biomes = {"forest", "old_growth_forest"},
y_max = PyuTestCore_BiomeTops.forest,
y_min = 1,
schematic = PyuTestCore.get_schem_path("tree"),
rotation = "random",
flags = "place_center_x, place_center_z"
flags = "place_center_x, place_center_z",
place_offset_y = 1
})
minetest.register_decoration({
deco_type = "schematic",
place_on = {"pyutest_core:grass_block"},
place_on = {"pyutest_core:dark_grass_block"},
sidelen = 16,
fill_ratio = 0.004,
biomes = {"forest"},
y_max = PyuTestCore_BiomeTops.grassland,
biomes = {"forest", "old_growth_forest"},
y_max = PyuTestCore_BiomeTops.forest,
y_min = 1,
schematic = PyuTestCore.get_schem_path("tree2"),
rotation = "random",
flags = "place_center_x, place_center_z"
flags = "place_center_x, place_center_z",
place_offset_y = 1
})
-- turns out lsystems are not in minetest yet, maybe they will in 5.9.0?
-- minetest.register_decoration({
-- deco_type = "lsystem",
-- place_on = {"pyutest_core:grass_block"},
-- sidelen = 16,
-- fill_ratio = 0.004,
-- biomes = {"forest"},
-- y_max = PyuTestCore_BiomeTops.grassland,
-- y_min = 1,
-- treedef = {
-- axiom="FFFFFAFFBF",
-- rules_a="[&&&FFFFF&&FFFF][&&&++++FFFFF&&FFFF][&&&----FFFFF&&FFFF]",
-- rules_b="[&&&++FFFFF&&FFFF][&&&--FFFFF&&FFFF][&&&------FFFFF&&FFFF]",
-- trunk="pyutest_core:wooden_block",
-- leaves="pyutest_core:leaves_block",
-- angle=30,
-- iterations=2,
-- random_level=0,
-- trunk_type="single",
-- thin_branches=true,
-- fruit = "pyutest_core:leaves_block",
-- fruit_chance = 10
-- }
-- })
minetest.register_decoration({
deco_type = "schematic",
place_on = {"pyutest_core:dark_grass_block"},
sidelen = 16,
fill_ratio = 0.002,
biomes = {"old_growth_forest"},
y_max = PyuTestCore_BiomeTops.forest,
y_min = 1,
schematic = PyuTestCore.get_schem_path("tree3"),
rotation = "random",
flags = "place_center_x, place_center_z",
place_offset_y = 1
})
minetest.register_decoration({
deco_type = "schematic",
place_on = {"pyutest_core:snow_block"},
sidelen = 16,
fill_ratio = 0.004,
biomes = {"snowy_forest"},
y_max = PyuTestCore_BiomeTops.forest,
y_min = 1,
schematic = PyuTestCore.get_schem_path("stree"),
rotation = "random",
flags = "place_center_x, place_center_z",
place_offset_y = 1
})
minetest.register_decoration({
deco_type = "schematic",