Change Update Topic, More Changes

This commit is contained in:
IamPyu 2024-07-22 17:27:57 -06:00
parent d261ebdfc2
commit 2b632629d2
171 changed files with 454 additions and 311 deletions

View File

@ -1,17 +1,14 @@
# Changelog
## [Jul 18th - **STILL UNDERDEVELOPMENT** 2024] Update: Aquatic Caves
## [Jul 18th - **STILL UNDERDEVELOPMENT** 2024] Major Update: The Unnamed Update
This update contains breaking changes!
The main theme of this update was to revamp oceans and caves, but this update adds a bit of everything!
- Revamped caves *again*
- Revamped oceans
- Revamped wood
- Removed huts
- Added crystal lanterns
- New monster and player/human textures
- Added a lot of biomes inspired by the Minecraft mod [Biomes O' Plenty](https://www.curseforge.com/minecraft/mc-mods/biomes-o-plenty)
- Added some biomes inspired by the Minecraft mod [Biomes O' Plenty](https://www.curseforge.com/minecraft/mc-mods/biomes-o-plenty)
- Added Aspen Forest
- Added Redwood Forests
- Added stone and wooden swords
@ -20,6 +17,11 @@ The main theme of this update was to revamp oceans and caves, but this update ad
- New snow texture
- Add snowman boss battle :0
- Make magic shards more common
- Change humidity and heat of each biome
- Removed wastelands
- Added wind warrior boss battle
- Added windballs
- Added ocean ruins
## [Jul 17th 2024] Unnamed Minor Update

View File

@ -209,6 +209,12 @@ PyuTestCore.make_building_blocks("pyutest_core:aspen_grass", "Aspen Grass", {"as
grass = 1
})
PyuTestCore.make_building_blocks("pyutest_core:jungle_grass", "Jungle Grass", {"jungle-grass.png"}, nil, {
ground = 1,
acid_vulnerable = 1,
grass = 1
})
PyuTestCore.make_building_blocks("pyutest_core:dirt", "Dirt", {"dirt.png"}, nil, {
ground = 1,
acid_vulnerable = 1

View File

@ -78,3 +78,20 @@ PyuTestCore.make_node("pyutest_core:vines", "Vines", {
},
inventory_image = "vines.png"
})
PyuTestCore.make_flower("pyutest_core:kelp", "Kelp", "kelp.png", "pyutest_core:green_dye", true, "plantlike_rooted", {
paramtype2 = "leveled",
place_param2 = 128,
wield_image = "kelp.png",
special_tiles = {
{
image = "kelp.png",
tileable_vertical = true
},
},
tiles = {
"gravel.png"
},
walkable = true
})

View File

@ -39,7 +39,6 @@ dofile(PyuTestCore_Path.."/player.lua")
dofile(PyuTestCore_Path.."/lootboxes.lua")
dofile(PyuTestCore_Path.."/ores.lua")
dofile(PyuTestCore_Path.."/abms.lua")
dofile(PyuTestCore_Path.."/mobs.lua")
dofile(PyuTestCore_Path.."/combat.lua")
dofile(PyuTestCore_Path.."/magic.lua")
dofile(PyuTestCore_Path.."/crafts.lua")

View File

@ -20,7 +20,7 @@ PyuTestCore.make_leaves = function (id, desc, tiles)
},
{
items = {"pyutest_core:leaves_block"}
items = {leaves_id}
}
}
}

View File

@ -1,245 +0,0 @@
PyuTestCore.ENTITY_BLOOD_AMOUNT = 6
PyuTestCore.HUMAN_LIKE_CBOX = {-0.25, -1, -0.25, 0.25, 1, 0.25}
mobs.fallback_node = "pyutest_core:dirt_block"
local snowball_hit_player = function (self, player)
player:punch(self.object, nil, {
damage_groups = {fleshy = 9}
}, nil)
end
mobs:register_arrow("pyutest_core:arrow_snowball", {
visual = "sprite",
visual_size = {x = 1, y = 1},
textures = {"snowball.png"},
hit_node = function (self, pos)
PyuTestCore.create_explosion(pos, 1, false, 9, self.object, false)
end,
hit_player = snowball_hit_player,
hit_mob = snowball_hit_player,
velocity = 9,
collisionbox = {
-1.5, -1.5, -1.5, 1.5, 1.5, 1.5
}
})
mobs:register_mob("pyutest_core:monster", {
type = "monster",
hp_max = 20,
hp_min = 20,
walk_velocity = 1,
run_velocity = 3,
armor = 100,
passive = false,
walk_chance = 0,
stand_chance = 25,
damage = 2.7,
attack_chance = 1,
attack_type = "dogfight",
pathfinding = 1,
visual = "upright_sprite",
visual_size = {x = 1, y = 2},
collisionbox = PyuTestCore.HUMAN_LIKE_CBOX,
physical = true,
blood_amount = PyuTestCore.ENTITY_BLOOD_AMOUNT,
view_range = 30,
reach = 2,
jump = 1,
group_attack = true,
makes_footstep_sound = true,
textures = {
"monster.png", "monster_back.png"
}
})
mobs:register_egg("pyutest_core:monster", "Monster Spawn Egg", "egg.png^[multiply:darkgreen", 0)
mobs:register_mob("pyutest_core:human", {
type = "npc",
hp_max = 20,
hp_min = 20,
walk_velocity = 1,
run_velocity = 6,
armor = 100,
passive = true,
walk_chance = 50,
stand_chance = 50,
damage = 3,
attack_type = "dogfight",
pathfinding = 1,
visual = "upright_sprite",
visual_size = {x = 1, y = 2},
collisionbox = PyuTestCore.HUMAN_LIKE_CBOX,
textures = {"player.png", "player_back.png"},
follow = {"pyutest_core:coin"},
runaway = true,
view_range = 15,
reach = 2,
fear_height = 7,
blood_amount = PyuTestCore.ENTITY_BLOOD_AMOUNT,
makes_footstep_sound = true,
})
mobs:register_egg("pyutest_core:human", "Human Spawn Egg", "egg.png^[multiply:peachpuff", 0)
mobs:register_mob("pyutest_core:mimic", {
type = "monster",
hp_max = 15,
hp_min = 15,
walk_velocity = 1,
run_velocity = 3,
armor = 100,
passive = false,
stand_chance = 1,
walk_chance = 0,
damage = 4,
attack_type = "dogfight",
pathfinding = 1,
visual = "cube",
visual_size = {x = 1, y = 1, z = 1},
collisionbox = {
-0.25, -0.5, -0.25, 0.25, 0.5, 0.25
},
textures = {"crate.png", "crate.png", "crate.png", "crate.png", "crate.png", "crate.png"},
view_range = 12,
blood_amount = PyuTestCore.ENTITY_BLOOD_AMOUNT,
reach = 2
})
mobs:register_egg("pyutest_core:mimic", "Mimic Spawn Egg", "egg.png^[multiply:brown", 0)
mobs:register_mob("pyutest_core:firefly", {
type = "animal",
hp_max = 3,
hp_min = 3,
walk_velocity = 1,
run_velocity = 3,
armor = 100,
passive = true,
stand_chance = 0,
walk_chance = 100,
fly = true,
keep_flying = true,
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)
mobs:register_mob("pyutest_core:snowman", {
type = "monster",
hp_max = 450,
hp_min = 450,
walk_velocity = 1,
run_velocity = 4,
armor = 100,
passive = false,
walk_chance = 1,
stand_chance = 2,
damage = 9,
attack_chance = 1,
attack_type = "dogshoot",
arrow = "pyutest_core:arrow_snowball",
shoot_interval = 1.2,
shoot_offset = 2,
pathfinding = 1,
visual = "upright_sprite",
visual_size = {x = 1, y = 2},
collisionbox = PyuTestCore.HUMAN_LIKE_CBOX,
physical = true,
blood_amount = PyuTestCore.ENTITY_BLOOD_AMOUNT,
view_range = 35,
reach = 2,
jump = 1,
group_attack = false,
makes_footstep_sound = true,
dogshoot_switch = 2,
dogshoot_count_max = 3,
dogshoot_count2_max = 6,
textures = {
"snowman.png", "snowman_back.png"
},
drops = {
{
name = "pyutest_core:magic_shards",
min = 2,
max = 5,
chance = 1
},
{
name = "pyutest_core:snowball",
min = 4,
max = 9,
chance = 1
}
}
})
mobs:register_egg("pyutest_core:snowman", "Snowman Spawn Egg", "egg.png^[multiply:skyblue", 0)
local mapgen = minetest.get_mapgen_params().mgname or "???"
if mapgen ~= "flat" and mapgen ~= "singlenode" then
mobs:spawn({
name = "pyutest_core:monster",
nodes = {"group:ground"},
interval = 6,
chance = 4,
active_object_count = 3,
min_light = 0,
max_light = 8,
y_max = PyuTestCore_WorldTop,
y_min = PyuTestCore_SurfaceBottom
})
mobs:spawn({
name = "pyutest_core:monster",
nodes = {"group:ground"},
interval = 2,
chance = 2,
active_object_count = 6,
min_light = 0,
max_light = 8,
y_max = PyuTestCore_DeepOceanMin - 1,
y_min = PyuTestCore_WorldBottom
})
mobs:spawn({
name = "pyutest_core:human",
nodes = {"group:ground"},
interval = 3,
chance = 4,
active_object_count = 3,
min_light = 9,
max_light = 15,
min_height = PyuTestCore_SurfaceBottom,
day_toggle = true,
})
mobs:spawn({
name = "pyutest_core:mimic",
nodes = {"group:ground"},
interval = 3,
chance = 18,
active_object_count = 2,
min_light = 0,
max_light = 15,
day_toggle = true,
})
mobs:spawn({
name = "pyutest_core:firefly",
nodes = {"group:ground"},
interval = 3,
chance = 3,
active_object_count = 4,
min_light = 0,
max_light = 9,
day_toggle = false,
})
end

View File

@ -1,2 +1 @@
name = pyutest_core
depends = mobs

View File

@ -37,7 +37,7 @@ minetest.register_globalstep(function(dtime)
for p=1, #players do
local ctrl = players[p]:get_player_control()
if ctrl.aux1 then
set_player_speed(players[p], 1.70)
set_player_speed(players[p], 1.55)
else
set_player_speed(players[p], 1)
end

Binary file not shown.

Before

Width:  |  Height:  |  Size: 179 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 254 B

View File

@ -63,8 +63,6 @@ PyuTestCore.make_wood("pyutest_core:birch", "Birch", {
"birch-wood.png"
})
PyuTestCore.make_wood("pyutest_core:cherry", "Cherry", {
"cherry-log-top-bottom.png",
"cherry-log-top-bottom.png",
@ -80,3 +78,11 @@ PyuTestCore.make_wood("pyutest_core:redwood", "Redwood", {
}, {
"redwood.png"
})
PyuTestCore.make_wood("pyutest_core:jungle", "Jungle", {
"jungle-log-top-bottom.png",
"jungle-log-top-bottom.png",
"jungle-log.png"
}, {
"jungle-wood.png"
})

View File

@ -17,21 +17,21 @@ unified_inventory.register_category("pyutest_inventory:blocks", {
symbol = "pyutest_core:stone_block",
label = "Blocks",
index = 3,
items = get_items_from_group("block")
items = get_items_from_group("block")
})
unified_inventory.register_category("pyutest_inventory:tools", {
symbol = "pyutest_core:iron_pickaxe",
label = "Tools",
index = 4,
items = get_items_from_group("tool")
items = get_items_from_group("tool")
})
unified_inventory.register_category("pyutest_inventory:furniture", {
symbol = "pyutest_core:wooden_chair",
symbol = "pyutest_core:wooden_wood_chair",
label = "Furniture",
index = 5,
items = get_items_from_group("furniture")
items = get_items_from_group("furniture")
})
unified_inventory.register_category("pyutest_inventory:minerals", {

View File

@ -0,0 +1,3 @@
# pyutest_mapgen
Map generation

View File

@ -164,7 +164,7 @@ PyuTestCore.register_biome("grassland", PyuTestCore.BIOME_TYPES.NORMAL, {
y_min = PyuTestCore_SurfaceBottom,
heat_point = 53,
humidity_point = 46,
humidity_point = 78,
_pyutest_biome_flowering = true
})
@ -177,7 +177,7 @@ PyuTestCore.register_biome("forest", PyuTestCore.BIOME_TYPES.NORMAL, {
y_min = PyuTestCore_SurfaceBottom,
heat_point = 50,
humidity_point = 63,
humidity_point = 86,
_pyutest_biome_flowering = true
})
@ -200,7 +200,7 @@ PyuTestCore.register_biome("desert", PyuTestCore.BIOME_TYPES.DESERT, {
y_max = PyuTestCore_BiomeTops.desert,
y_min = PyuTestCore_SurfaceBottom,
heat_point = 78,
heat_point = 84,
humidity_point = 4
})
@ -211,8 +211,8 @@ PyuTestCore.register_biome("desert_mountains", PyuTestCore.BIOME_TYPES.DESERT, {
y_max = PyuTestCore_BiomeTops.mountains,
y_min = PyuTestCore_BiomeTops.desert,
heat_point = 65,
humidity_point = 8
heat_point = 83,
humidity_point = 6
})
PyuTestCore.register_biome("snowy_mountains", PyuTestCore.BIOME_TYPES.COLD, {
@ -223,7 +223,7 @@ PyuTestCore.register_biome("snowy_mountains", PyuTestCore.BIOME_TYPES.COLD, {
y_min = PyuTestCore_BiomeTops.frozen_plains,
heat_point = 6,
humidity_point = 23
humidity_point = 56
})
PyuTestCore.register_biome("frozen_plains", PyuTestCore.BIOME_TYPES.COLD, {
@ -239,17 +239,7 @@ PyuTestCore.register_biome("frozen_plains", PyuTestCore.BIOME_TYPES.COLD, {
depth_water_top = 5,
heat_point = 9,
humidity_point = 32
})
PyuTestCore.register_biome("wasteland", PyuTestCore.BIOME_TYPES.WASTELAND, {
node_top = "pyutest_core:dirt_block",
node_filler = "pyutest_core:dirt_block",
y_max = PyuTestCore_BiomeTops.frozen_plains,
y_min = PyuTestCore_SurfaceBottom,
heat_point = 9,
humidity_point = 9
humidity_point = 53
})
PyuTestCore.register_biome("mushroom_fields", PyuTestCore.BIOME_TYPES.CHILLY, {
@ -260,7 +250,7 @@ PyuTestCore.register_biome("mushroom_fields", PyuTestCore.BIOME_TYPES.CHILLY, {
y_min = PyuTestCore_SurfaceBottom,
heat_point = 34,
humidity_point = 76
humidity_point = 96
})
PyuTestCore.register_biome("ice_spikes", PyuTestCore.BIOME_TYPES.COLD, {
@ -274,7 +264,7 @@ PyuTestCore.register_biome("ice_spikes", PyuTestCore.BIOME_TYPES.COLD, {
depth_water_top = 5,
heat_point = 9,
humidity_point = 34
humidity_point = 57
})
PyuTestCore.register_biome("meadow", PyuTestCore.BIOME_TYPES.NORMAL, {
@ -285,8 +275,8 @@ PyuTestCore.register_biome("meadow", PyuTestCore.BIOME_TYPES.NORMAL, {
y_max = PyuTestCore_BiomeTops.mountains,
y_min = PyuTestCore_SurfaceBottom,
heat_point = 32,
humidity_point = 69,
heat_point = 41,
humidity_point = 83,
_pyutest_biome_flowering = true,
_pyutest_biome_flowering_extra = true
@ -299,8 +289,8 @@ PyuTestCore.register_biome("old_growth_forest", PyuTestCore.BIOME_TYPES.NORMAL,
y_max = PyuTestCore_BiomeTops.forest,
y_min = PyuTestCore_SurfaceBottom,
heat_point = 38,
humidity_point = 66,
heat_point = 45,
humidity_point = 92,
_pyutest_biome_flowering = true
})
@ -316,7 +306,7 @@ PyuTestCore.register_biome("snowy_forest", PyuTestCore.BIOME_TYPES.COLD, {
depth_water_top = 5,
heat_point = 8,
humidity_point = 28
humidity_point = 49
})
PyuTestCore.register_biome("savanna", PyuTestCore.BIOME_TYPES.WARM, {
@ -326,7 +316,7 @@ PyuTestCore.register_biome("savanna", PyuTestCore.BIOME_TYPES.WARM, {
y_max = PyuTestCore_BiomeTops.grassland,
y_min = PyuTestCore_SurfaceBottom,
heat_point = 58,
heat_point = 72,
humidity_point = 19
})
@ -350,8 +340,8 @@ PyuTestCore.register_biome("birch_forest", PyuTestCore.BIOME_TYPES.NORMAL, {
y_max = PyuTestCore_BiomeTops.forest,
y_min = PyuTestCore_SurfaceBottom,
heat_point = 40,
humidity_point = 70,
heat_point = 48,
humidity_point = 85,
_pyutest_biome_flowering = true
})
@ -363,8 +353,8 @@ PyuTestCore.register_biome("cherry_grove", PyuTestCore.BIOME_TYPES.NORMAL, {
y_max = PyuTestCore_BiomeTops.forest,
y_min = PyuTestCore_SurfaceBottom,
heat_point = 36,
humidity_point = 64,
heat_point = 46,
humidity_point = 92,
_pyutest_biome_flowering = true,
_pyutest_biome_flowering_extra = true
@ -378,7 +368,7 @@ PyuTestCore.register_biome("swamp", PyuTestCore.BIOME_TYPES.WETLAND, {
y_min = PyuTestCore_SurfaceBottom,
heat_point = 30,
humidity_point = 81,
humidity_point = 88,
})
PyuTestCore.register_biome("old_growth_birch_forest", PyuTestCore.BIOME_TYPES.NORMAL, {
@ -388,8 +378,8 @@ PyuTestCore.register_biome("old_growth_birch_forest", PyuTestCore.BIOME_TYPES.NO
y_max = PyuTestCore_BiomeTops.forest,
y_min = PyuTestCore_SurfaceBottom,
heat_point = 38,
humidity_point = 74,
heat_point = 47,
humidity_point = 80,
_pyutest_biome_flowering = true,
_pyutest_biome_flowering_extra = true
@ -403,7 +393,7 @@ PyuTestCore.register_biome("aspen_forest", PyuTestCore.BIOME_TYPES.CHILLY, {
y_min = PyuTestCore_SurfaceBottom,
heat_point = 34,
humidity_point = 62,
humidity_point = 52,
_pyutest_biome_flowering = true
})
@ -416,7 +406,21 @@ PyuTestCore.register_biome("redwood_forest", PyuTestCore.BIOME_TYPES.CHILLY, {
y_min = PyuTestCore_SurfaceBottom,
heat_point = 28,
humidity_point = 48,
humidity_point = 54,
_pyutest_biome_flowering = true
})
PyuTestCore.register_biome("jungle", PyuTestCore.BIOME_TYPES.WARM, {
node_top = "pyutest_core:jungle_grass_block",
node_filler = "pyutest_core:dirt_block",
y_max = PyuTestCore_BiomeTops.forest,
y_min = PyuTestCore_SurfaceBottom,
heat_point = 48,
humidity_point = 100,
_pyutest_biome_flowering = true,
_pyutest_biome_flowering_extra = true
})

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -37,17 +37,21 @@ minetest.register_decoration({
})
PyuTestMapgen.register_structure("ice_spike", "icespike", {
fill_ratio = 0.0004,
fill_ratio = 0.0008,
place_on = {
"pyutest_core:ice_block",
"pyutest_core:stone_block"
},
biomes = {
"ice_spikes",
"ice_spikes_ocean",
"ice_spikes_cave"
},
y_max = PyuTestCore_BiomeTops.ice_spikes,
y_min = PyuTestCore_WorldBottom,
-- place_offset_y = -1,
spawn_by = {"air"},
num_spawn_by = 2
})
PyuTestMapgen.register_structure("obsidian_mound", "obsidian-mound", {
@ -58,7 +62,6 @@ PyuTestMapgen.register_structure("obsidian_mound", "obsidian-mound", {
},
y_max = PyuTestCore_BiomeTops.mushroom_fields,
y_min = PyuTestCore_SurfaceBottom,
place_offset_y = 1
})
PyuTestMapgen.register_structure("ocean_ruins", "ocean_ruins", {
@ -67,7 +70,6 @@ PyuTestMapgen.register_structure("ocean_ruins", "ocean_ruins", {
biomes = PyuTestCore.get_biomes_from_type(PyuTestCore.BIOME_TYPES.OCEAN),
y_max = PyuTestCore_DeepOceanMax + 4,
y_min = PyuTestCore_DeepOceanMin,
place_offset_y = 1,
spawn_by = {"pyutest_core:water_source"},
num_spawn_by = 2
})

View File

@ -103,7 +103,6 @@ minetest.register_decoration({
schematic = PyuTestCore.get_schem_path("tree"),
rotation = "random",
flags = "place_center_x, place_center_z",
place_offset_y = 1
})
minetest.register_decoration({
@ -117,7 +116,6 @@ minetest.register_decoration({
schematic = PyuTestCore.get_schem_path("tree2"),
rotation = "random",
flags = "place_center_x, place_center_z",
place_offset_y = 1
})
minetest.register_decoration({
@ -184,7 +182,6 @@ minetest.register_decoration({
schematic = PyuTestCore.get_schem_path("tree3"),
rotation = "random",
flags = "place_center_x, place_center_z",
place_offset_y = 1
})
minetest.register_decoration({
@ -198,7 +195,6 @@ minetest.register_decoration({
schematic = PyuTestCore.get_schem_path("tree5"),
rotation = "random",
flags = "place_center_x, place_center_z",
place_offset_y = 1
})
minetest.register_decoration({
@ -212,7 +208,6 @@ minetest.register_decoration({
schematic = PyuTestCore.get_schem_path("tree6"),
rotation = "random",
flags = "place_center_x, place_center_z",
place_offset_y = 1
})
minetest.register_decoration({
@ -226,7 +221,6 @@ minetest.register_decoration({
schematic = PyuTestCore.get_schem_path("tree7"),
rotation = "random",
flags = "place_center_x, place_center_z",
place_offset_y = 1
})
minetest.register_decoration({
@ -240,7 +234,6 @@ minetest.register_decoration({
schematic = PyuTestCore.get_schem_path("tree8"),
rotation = "random",
flags = "place_center_x, place_center_z",
place_offset_y = 1
})
minetest.register_decoration({
@ -254,7 +247,6 @@ minetest.register_decoration({
schematic = PyuTestCore.get_schem_path("stree"),
rotation = "random",
flags = "place_center_x, place_center_z",
place_offset_y = 1
})
minetest.register_decoration({
@ -268,7 +260,6 @@ minetest.register_decoration({
schematic = PyuTestCore.get_schem_path("stree2"),
rotation = "random",
flags = "place_center_x, place_center_z",
place_offset_y = 1
})
minetest.register_decoration({
@ -282,7 +273,6 @@ minetest.register_decoration({
schematic = PyuTestCore.get_schem_path("tree9"),
rotation = "random",
flags = "place_center_x, place_center_z",
place_offset_y = 1
})
minetest.register_decoration({
@ -296,7 +286,6 @@ minetest.register_decoration({
schematic = PyuTestCore.get_schem_path("tree10"),
rotation = "random",
flags = "place_center_x, place_center_z",
place_offset_y = 1
})
minetest.register_decoration({
@ -310,7 +299,6 @@ minetest.register_decoration({
schematic = PyuTestCore.get_schem_path("tree11"),
rotation = "random",
flags = "place_center_x, place_center_z",
place_offset_y = 1
})
minetest.register_decoration({
@ -324,7 +312,6 @@ minetest.register_decoration({
schematic = PyuTestCore.get_schem_path("tree12"),
rotation = "random",
flags = "place_center_x, place_center_z",
place_offset_y = 1
})
minetest.register_decoration({
@ -338,5 +325,43 @@ minetest.register_decoration({
schematic = PyuTestCore.get_schem_path("tree13"),
rotation = "random",
flags = "place_center_x, place_center_z",
place_offset_y = 1
})
minetest.register_decoration({
deco_type = "schematic",
place_on = {"pyutest_core:jungle_grass_block"},
sidelen = 16,
fill_ratio = 0.010,
biomes = {"jungle"},
y_max = PyuTestCore_WorldTop,
y_min = 1,
schematic = PyuTestCore.get_schem_path("tree14"),
rotation = "random",
flags = "place_center_x, place_center_z",
})
minetest.register_decoration({
deco_type = "schematic",
place_on = {"pyutest_core:jungle_grass_block"},
sidelen = 16,
fill_ratio = 0.008,
biomes = {"jungle"},
y_max = PyuTestCore_WorldTop,
y_min = 1,
schematic = PyuTestCore.get_schem_path("tree15"),
rotation = "random",
flags = "place_center_x, place_center_z",
})
minetest.register_decoration({
deco_type = "schematic",
place_on = {"pyutest_core:jungle_grass_block"},
sidelen = 16,
fill_ratio = 0.008,
biomes = {"jungle"},
y_max = PyuTestCore_WorldTop,
y_min = 1,
schematic = PyuTestCore.get_schem_path("jbush"),
rotation = "random",
flags = "place_center_x, place_center_z",
})

View File

@ -0,0 +1,105 @@
mobs:register_mob("pyutest_mobs:monster", {
type = "monster",
hp_max = 20,
hp_min = 20,
walk_velocity = 1,
run_velocity = 3,
armor = 100,
passive = false,
walk_chance = 0,
stand_chance = 25,
damage = 2.7,
attack_chance = 1,
attack_type = "dogfight",
pathfinding = 1,
visual = "upright_sprite",
visual_size = {x = 1, y = 2},
collisionbox = PyuTestMobs.HUMAN_LIKE_CBOX,
physical = true,
blood_amount = PyuTestMobs.ENTITY_BLOOD_AMOUNT,
view_range = 30,
reach = 2,
jump = 1,
group_attack = true,
makes_footstep_sound = true,
textures = {
"monster.png", "monster_back.png"
}
})
mobs:register_egg("pyutest_mobs:monster", "Monster Spawn Egg", "egg.png^[multiply:darkgreen", 0)
mobs:register_mob("pyutest_mobs:human", {
type = "npc",
hp_max = 20,
hp_min = 20,
walk_velocity = 1,
run_velocity = 6,
armor = 100,
passive = true,
walk_chance = 50,
stand_chance = 50,
damage = 3,
attack_type = "dogfight",
pathfinding = 1,
visual = "upright_sprite",
visual_size = {x = 1, y = 2},
collisionbox = PyuTestMobs.HUMAN_LIKE_CBOX,
textures = {"player.png", "player_back.png"},
follow = {"pyutest_mobs:coin"},
runaway = true,
view_range = 15,
reach = 2,
fear_height = 7,
blood_amount = PyuTestMobs.ENTITY_BLOOD_AMOUNT,
makes_footstep_sound = true,
})
mobs:register_egg("pyutest_mobs:human", "Human Spawn Egg", "egg.png^[multiply:peachpuff", 0)
mobs:register_mob("pyutest_mobs:mimic", {
type = "monster",
hp_max = 15,
hp_min = 15,
walk_velocity = 1,
run_velocity = 3,
armor = 100,
passive = false,
stand_chance = 1,
walk_chance = 0,
damage = 4,
attack_type = "dogfight",
pathfinding = 1,
visual = "cube",
visual_size = {x = 1, y = 1, z = 1},
collisionbox = {
-0.25, -0.5, -0.25, 0.25, 0.5, 0.25
},
textures = {"crate.png", "crate.png", "crate.png", "crate.png", "crate.png", "crate.png"},
view_range = 12,
blood_amount = PyuTestMobs.ENTITY_BLOOD_AMOUNT,
reach = 2
})
mobs:register_egg("pyutest_mobs:mimic", "Mimic Spawn Egg", "egg.png^[multiply:brown", 0)
mobs:register_mob("pyutest_mobs:firefly", {
type = "animal",
hp_max = 3,
hp_min = 3,
walk_velocity = 1,
run_velocity = 3,
armor = 100,
passive = true,
stand_chance = 0,
walk_chance = 100,
fly = true,
keep_flying = true,
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 = PyuTestMobs.ENTITY_BLOOD_AMOUNT,
glow = 7,
})
mobs:register_egg("pyutest_mobs:firefly", "Firefly Spawn Egg", "egg.png^[multiply:yellow", 0)

View File

@ -0,0 +1,72 @@
PyuTestMobs_Path = minetest.get_modpath("pyutest_mobs")
PyuTestMobs = {}
PyuTestMobs.ENTITY_BLOOD_AMOUNT = 6
PyuTestMobs.HUMAN_LIKE_CBOX = {-0.25, -1, -0.25, 0.25, 1, 0.25}
mobs.fallback_node = "pyutest_core:dirt_block"
dofile(PyuTestMobs_Path.."/basic.lua") -- Humans, Monsters, Mimics, Fireflies and future basic mobs
dofile(PyuTestMobs_Path.."/snowman.lua") -- Snowman
dofile(PyuTestMobs_Path.."/wind_warrior.lua") -- Wind Warrior
local mapgen = minetest.get_mapgen_params().mgname or "???"
if mapgen ~= "flat" and mapgen ~= "singlenode" then
mobs:spawn({
name = "pyutest_mobs:monster",
nodes = {"group:ground"},
interval = 6,
chance = 4,
active_object_count = 3,
min_light = 0,
max_light = 8,
y_max = PyuTestCore_WorldTop,
y_min = PyuTestCore_SurfaceBottom
})
mobs:spawn({
name = "pyutest_mobs:monster",
nodes = {"group:ground"},
interval = 2,
chance = 2,
active_object_count = 6,
min_light = 0,
max_light = 8,
y_max = PyuTestCore_DeepOceanMin - 1,
y_min = PyuTestCore_WorldBottom
})
mobs:spawn({
name = "pyutest_mobs:human",
nodes = {"group:ground"},
interval = 3,
chance = 4,
active_object_count = 3,
min_light = 9,
max_light = 15,
min_height = PyuTestCore_SurfaceBottom,
day_toggle = true,
})
mobs:spawn({
name = "pyutest_mobs:mimic",
nodes = {"group:ground"},
interval = 3,
chance = 18,
active_object_count = 2,
min_light = 0,
max_light = 15,
day_toggle = true,
})
mobs:spawn({
name = "pyutest_mobs:firefly",
nodes = {"group:ground", "air"},
interval = 3,
chance = 3,
active_object_count = 4,
min_light = 0,
max_light = 9,
day_toggle = false,
})
end

View File

@ -0,0 +1,2 @@
name = pyutest_mobs
depends = pyutest_core,mobs,pyutest_mapgen

View File

@ -0,0 +1,75 @@
local snowball_hit_player = function (self, player)
player:punch(self.object, nil, {
damage_groups = {fleshy = 9}
}, nil)
end
mobs:register_arrow("pyutest_mobs:arrow_snowball", {
visual = "sprite",
visual_size = {x = 1, y = 1},
textures = {"snowball.png"},
hit_node = function (self, pos)
PyuTestCore.create_explosion(pos, 1, false, 9, self.object, false)
end,
hit_player = snowball_hit_player,
hit_mob = snowball_hit_player,
velocity = 9,
collisionbox = {
-1.5, -1.5, -1.5, 1.5, 1.5, 1.5
}
})
mobs:register_mob("pyutest_mobs:snowman", {
type = "monster",
hp_max = 450,
hp_min = 450,
walk_velocity = 1,
run_velocity = 4,
armor = 100,
passive = false,
walk_chance = 1,
stand_chance = 2,
damage = 9,
attack_chance = 1,
attack_type = "dogshoot",
arrow = "pyutest_mobs:arrow_snowball",
shoot_interval = 0.75,
shoot_offset = 2,
homing = true,
pathfinding = 1,
visual = "upright_sprite",
visual_size = {x = 1, y = 2},
collisionbox = PyuTestMobs.HUMAN_LIKE_CBOX,
physical = true,
blood_amount = PyuTestMobs.ENTITY_BLOOD_AMOUNT,
view_range = 35,
reach = 2,
jump = 1,
group_attack = false,
makes_footstep_sound = true,
dogshoot_switch = 2,
dogshoot_count_max = 3,
dogshoot_count2_max = 6,
textures = {
"snowman.png", "snowman_back.png"
},
drops = {
{
name = "pyutest_core:magic_shards",
min = 2,
max = 5,
chance = 1
},
{
name = "pyutest_core:snowball",
min = 4,
max = 9,
chance = 1
}
}
})
mobs:register_egg("pyutest_mobs:snowman", "Snowman Spawn Egg", "egg.png^[multiply:skyblue", 0)

View File

@ -0,0 +1,71 @@
local windball_hit_player = function (self, player)
player:punch(self.object, nil, {
damage_groups = {fleshy = 3}
}, nil)
math.randomseed(os.time())
player:add_velocity({
x = 0,
z = 0,
y = math.random(18, 25)
})
end
mobs:register_arrow("pyutest_mobs:arrow_windball", {
visual = "sprite",
visual_size = {x = 1, y = 1},
textures = {"windball.png"},
hit_player = windball_hit_player,
hit_mob = windball_hit_player,
velocity = 9,
collisionbox = {
-1.5, -1.5, -1.5, 1.5, 1.5, 1.5
}
})
mobs:register_mob("pyutest_mobs:wind_warrior", {
type = "monster",
hp_max = 350,
hp_min = 350,
walk_velocity = 1,
run_velocity = 4,
armor = 100,
passive = false,
walk_chance = 1,
stand_chance = 2,
damage = 9,
attack_chance = 1,
attack_type = "dogshoot",
arrow = "pyutest_mobs:arrow_windball",
shoot_interval = 0.75,
shoot_offset = 2,
homing = true,
pathfinding = 1,
visual = "upright_sprite",
visual_size = {x = 1, y = 2},
collisionbox = PyuTestMobs.HUMAN_LIKE_CBOX,
physical = true,
blood_amount = PyuTestMobs.ENTITY_BLOOD_AMOUNT,
view_range = 35,
reach = 2,
jump = 1,
group_attack = false,
makes_footstep_sound = true,
dogshoot_switch = 1,
dogshoot_count_max = 3,
dogshoot_count2_max = 6,
textures = {
"wind-warrior.png", "wind-warrior_back.png"
},
drops = {
{
name = "pyutest_core:magic_shards",
min = 4,
max = 7,
chance = 1
}
}
})
mobs:register_egg("pyutest_mobs:wind_warrior", "Wind Warrior Spawn Egg", "egg.png^[multiply:navy", 0)

View File

Before

Width:  |  Height:  |  Size: 258 B

After

Width:  |  Height:  |  Size: 258 B

View File

Before

Width:  |  Height:  |  Size: 280 B

After

Width:  |  Height:  |  Size: 280 B

View File

Before

Width:  |  Height:  |  Size: 230 B

After

Width:  |  Height:  |  Size: 230 B

View File

Before

Width:  |  Height:  |  Size: 259 B

After

Width:  |  Height:  |  Size: 259 B

View File

Before

Width:  |  Height:  |  Size: 287 B

After

Width:  |  Height:  |  Size: 287 B

View File

Before

Width:  |  Height:  |  Size: 187 B

After

Width:  |  Height:  |  Size: 187 B

View File

Before

Width:  |  Height:  |  Size: 246 B

After

Width:  |  Height:  |  Size: 246 B

View File

Before

Width:  |  Height:  |  Size: 185 B

After

Width:  |  Height:  |  Size: 185 B

View File

Before

Width:  |  Height:  |  Size: 187 B

After

Width:  |  Height:  |  Size: 187 B

View File

Before

Width:  |  Height:  |  Size: 146 B

After

Width:  |  Height:  |  Size: 146 B

View File

Before

Width:  |  Height:  |  Size: 205 B

After

Width:  |  Height:  |  Size: 205 B

View File

Before

Width:  |  Height:  |  Size: 193 B

After

Width:  |  Height:  |  Size: 193 B

View File

Before

Width:  |  Height:  |  Size: 168 B

After

Width:  |  Height:  |  Size: 168 B

View File

Before

Width:  |  Height:  |  Size: 211 B

After

Width:  |  Height:  |  Size: 211 B

View File

Before

Width:  |  Height:  |  Size: 185 B

After

Width:  |  Height:  |  Size: 185 B

View File

Before

Width:  |  Height:  |  Size: 357 B

After

Width:  |  Height:  |  Size: 357 B

View File

Before

Width:  |  Height:  |  Size: 340 B

After

Width:  |  Height:  |  Size: 340 B

View File

Before

Width:  |  Height:  |  Size: 179 B

After

Width:  |  Height:  |  Size: 179 B

View File

Before

Width:  |  Height:  |  Size: 235 B

After

Width:  |  Height:  |  Size: 235 B

View File

Before

Width:  |  Height:  |  Size: 147 B

After

Width:  |  Height:  |  Size: 147 B

View File

Before

Width:  |  Height:  |  Size: 269 B

After

Width:  |  Height:  |  Size: 269 B

View File

Before

Width:  |  Height:  |  Size: 209 B

After

Width:  |  Height:  |  Size: 209 B

View File

Before

Width:  |  Height:  |  Size: 175 B

After

Width:  |  Height:  |  Size: 175 B

View File

Before

Width:  |  Height:  |  Size: 220 B

After

Width:  |  Height:  |  Size: 220 B

View File

Before

Width:  |  Height:  |  Size: 206 B

After

Width:  |  Height:  |  Size: 206 B

View File

Before

Width:  |  Height:  |  Size: 258 B

After

Width:  |  Height:  |  Size: 258 B

View File

Before

Width:  |  Height:  |  Size: 276 B

After

Width:  |  Height:  |  Size: 276 B

View File

Before

Width:  |  Height:  |  Size: 182 B

After

Width:  |  Height:  |  Size: 182 B

View File

Before

Width:  |  Height:  |  Size: 172 B

After

Width:  |  Height:  |  Size: 172 B

View File

Before

Width:  |  Height:  |  Size: 277 B

After

Width:  |  Height:  |  Size: 277 B

View File

Before

Width:  |  Height:  |  Size: 239 B

After

Width:  |  Height:  |  Size: 239 B

View File

Before

Width:  |  Height:  |  Size: 381 B

After

Width:  |  Height:  |  Size: 381 B

View File

Before

Width:  |  Height:  |  Size: 152 B

After

Width:  |  Height:  |  Size: 152 B

View File

Before

Width:  |  Height:  |  Size: 212 B

After

Width:  |  Height:  |  Size: 212 B

View File

Before

Width:  |  Height:  |  Size: 339 B

After

Width:  |  Height:  |  Size: 339 B

View File

Before

Width:  |  Height:  |  Size: 303 B

After

Width:  |  Height:  |  Size: 303 B

View File

Before

Width:  |  Height:  |  Size: 245 B

After

Width:  |  Height:  |  Size: 245 B

View File

Before

Width:  |  Height:  |  Size: 191 B

After

Width:  |  Height:  |  Size: 191 B

View File

Before

Width:  |  Height:  |  Size: 74 B

After

Width:  |  Height:  |  Size: 74 B

View File

Before

Width:  |  Height:  |  Size: 197 B

After

Width:  |  Height:  |  Size: 197 B

View File

Before

Width:  |  Height:  |  Size: 161 B

After

Width:  |  Height:  |  Size: 161 B

View File

Before

Width:  |  Height:  |  Size: 144 B

After

Width:  |  Height:  |  Size: 144 B

View File

Before

Width:  |  Height:  |  Size: 160 B

After

Width:  |  Height:  |  Size: 160 B

View File

Before

Width:  |  Height:  |  Size: 230 B

After

Width:  |  Height:  |  Size: 230 B

View File

Before

Width:  |  Height:  |  Size: 134 B

After

Width:  |  Height:  |  Size: 134 B

View File

Before

Width:  |  Height:  |  Size: 110 B

After

Width:  |  Height:  |  Size: 110 B

View File

Before

Width:  |  Height:  |  Size: 170 B

After

Width:  |  Height:  |  Size: 170 B

View File

Before

Width:  |  Height:  |  Size: 156 B

After

Width:  |  Height:  |  Size: 156 B

View File

Before

Width:  |  Height:  |  Size: 305 B

After

Width:  |  Height:  |  Size: 305 B

View File

Before

Width:  |  Height:  |  Size: 253 B

After

Width:  |  Height:  |  Size: 253 B

View File

Before

Width:  |  Height:  |  Size: 304 B

After

Width:  |  Height:  |  Size: 304 B

View File

Before

Width:  |  Height:  |  Size: 237 B

After

Width:  |  Height:  |  Size: 237 B

View File

Before

Width:  |  Height:  |  Size: 153 B

After

Width:  |  Height:  |  Size: 153 B

View File

Before

Width:  |  Height:  |  Size: 217 B

After

Width:  |  Height:  |  Size: 217 B

View File

Before

Width:  |  Height:  |  Size: 216 B

After

Width:  |  Height:  |  Size: 216 B

View File

Before

Width:  |  Height:  |  Size: 258 B

After

Width:  |  Height:  |  Size: 258 B

View File

Before

Width:  |  Height:  |  Size: 180 B

After

Width:  |  Height:  |  Size: 180 B

View File

Before

Width:  |  Height:  |  Size: 279 B

After

Width:  |  Height:  |  Size: 279 B

View File

Before

Width:  |  Height:  |  Size: 235 B

After

Width:  |  Height:  |  Size: 235 B

BIN
textures/jungle-grass.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 260 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 179 B

BIN
textures/jungle-log.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 B

BIN
textures/jungle-wood.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 B

BIN
textures/kelp.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 208 B

View File

Before

Width:  |  Height:  |  Size: 173 B

After

Width:  |  Height:  |  Size: 173 B

View File

Before

Width:  |  Height:  |  Size: 313 B

After

Width:  |  Height:  |  Size: 313 B

View File

Before

Width:  |  Height:  |  Size: 285 B

After

Width:  |  Height:  |  Size: 285 B

View File

Before

Width:  |  Height:  |  Size: 251 B

After

Width:  |  Height:  |  Size: 251 B

View File

Before

Width:  |  Height:  |  Size: 203 B

After

Width:  |  Height:  |  Size: 203 B

BIN
textures/log-top-bottom.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 179 B

View File

Before

Width:  |  Height:  |  Size: 234 B

After

Width:  |  Height:  |  Size: 234 B

View File

Before

Width:  |  Height:  |  Size: 175 B

After

Width:  |  Height:  |  Size: 175 B

View File

Before

Width:  |  Height:  |  Size: 274 B

After

Width:  |  Height:  |  Size: 274 B

View File

Before

Width:  |  Height:  |  Size: 230 B

After

Width:  |  Height:  |  Size: 230 B

View File

Before

Width:  |  Height:  |  Size: 218 B

After

Width:  |  Height:  |  Size: 218 B

View File

Before

Width:  |  Height:  |  Size: 204 B

After

Width:  |  Height:  |  Size: 204 B

Some files were not shown because too many files have changed in this diff Show More