From 2f92e28e7adcd2a2a9706192abebe21938279b1f Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Fri, 22 Mar 2013 22:46:11 +0200 Subject: [PATCH] Initial commit --- .gitignore | 9 + README.txt | 8 + game.conf | 2 + minetest.conf | 2 + mods/animal_dm/License.txt | 19 + mods/animal_dm/depends.txt | 3 + mods/animal_dm/init.lua | 160 ++ mods/animal_dm/models/DM.blend | Bin 0 -> 894232 bytes mods/animal_dm/models/animal_dm.b3d | Bin 0 -> 33782 bytes mods/animal_dm/models/animal_dm.blend | Bin 0 -> 549612 bytes mods/animal_dm/sounds/animal_dm_die.ogg | Bin 0 -> 11971 bytes mods/animal_dm/sounds/animal_dm_fireball.ogg | Bin 0 -> 18517 bytes mods/animal_dm/sounds/animal_dm_hit.ogg | Bin 0 -> 8043 bytes mods/animal_dm/sounds/animal_dm_random_1.ogg | Bin 0 -> 19776 bytes mods/animal_dm/sounds/soundlist.txt | 16 + mods/animal_dm/textures/animal_dm_dm.png | Bin 0 -> 14978 bytes mods/animal_dm/textures/animal_dm_dm_item.png | Bin 0 -> 384 bytes mods/animal_dm/textures/animal_dm_mesh.png | Bin 0 -> 331 bytes mods/animal_dm/textures/animal_dm_mesh2.jpg | Bin 0 -> 9825 bytes mods/animal_dm/vault.lua | 529 +++++ mods/animal_rat/depends.txt | 3 + mods/animal_rat/init.lua | 104 + mods/animal_rat/models/animal_rat.b3d | Bin 0 -> 61645 bytes mods/animal_rat/models/rat.blend | Bin 0 -> 492792 bytes mods/animal_rat/models/rat.xcf | Bin 0 -> 2913081 bytes mods/animal_rat/textures/animal_rat_mesh.png | Bin 0 -> 119479 bytes mods/animal_rat/textures/animal_rat_rat.png | Bin 0 -> 1138 bytes .../textures/animal_rat_rat_item.png | Bin 0 -> 918 bytes mods/animal_vombie/License.txt | 8 + mods/animal_vombie/depends.txt | 2 + mods/animal_vombie/flame.lua | 67 + mods/animal_vombie/init.lua | 184 ++ .../models/animal_vombie_vombie.b3d | Bin 0 -> 99875 bytes .../models/animal_vombie_vombie.xcf | Bin 0 -> 736945 bytes mods/animal_vombie/models/vombie.blend | Bin 0 -> 589620 bytes .../sounds/animal_vombie_random_1.ogg | Bin 0 -> 13119 bytes .../sounds/animal_vombie_sun_damage.ogg | Bin 0 -> 9125 bytes mods/animal_vombie/sounds/soundlist.txt | 16 + .../textures/animal_vombie_flames.png | Bin 0 -> 1286 bytes .../textures/animal_vombie_vombie.png | Bin 0 -> 27826 bytes .../textures/animal_vombie_vombie_item.png | Bin 0 -> 402 bytes .../textures/animal_vombie_vombie_mesh.png | Bin 0 -> 48579 bytes mods/animalmaterials/depends.txt | 1 + mods/animalmaterials/init.lua | 299 +++ .../models/animalmaterials_egg_ent.b3d | Bin 0 -> 75242 bytes .../models/animalmaterials_egg_ent.xcf | Bin 0 -> 31134 bytes mods/animalmaterials/models/egg.blend | Bin 0 -> 508604 bytes .../textures/animalmaterials_bone.png | Bin 0 -> 912 bytes .../textures/animalmaterials_egg.png | Bin 0 -> 672 bytes .../textures/animalmaterials_egg_big.png | Bin 0 -> 660 bytes .../textures/animalmaterials_egg_ent_mesh.png | Bin 0 -> 8129 bytes .../textures/animalmaterials_feather.png | Bin 0 -> 447 bytes .../textures/animalmaterials_fur.png | Bin 0 -> 1053 bytes .../textures/animalmaterials_glass.png | Bin 0 -> 564 bytes .../textures/animalmaterials_lasso.png | Bin 0 -> 458 bytes .../textures/animalmaterials_meat_raw.png | Bin 0 -> 426 bytes .../textures/animalmaterials_milk.png | Bin 0 -> 559 bytes .../textures/animalmaterials_net.png | Bin 0 -> 432 bytes .../textures/animalmaterials_saddle.png | Bin 0 -> 329 bytes .../textures/animalmaterials_scale_blue.png | Bin 0 -> 668 bytes .../textures/animalmaterials_scale_golden.png | Bin 0 -> 701 bytes .../textures/animalmaterials_scale_grey.png | Bin 0 -> 557 bytes .../textures/animalmaterials_scale_white.png | Bin 0 -> 634 bytes .../textures/animalmaterials_scissors.png | Bin 0 -> 1047 bytes mods/dungeon/depends.txt | 1 + mods/dungeon/init.lua | 560 ++++++ mods/mobf/README | 632 ++++++ mods/mobf/api.lua | 188 ++ mods/mobf/compatibility.lua | 71 + mods/mobf/debug.lua | 264 +++ mods/mobf/debug_trace.lua | 96 + mods/mobf/depends.txt | 2 + mods/mobf/doc/Doxyfile | 1774 +++++++++++++++++ mods/mobf/doc/Testcases.txt | 28 + mods/mobf/doc/mainpage_description.lua | 46 + mods/mobf/doc/mob_template.lua | 361 ++++ mods/mobf/environment.lua | 604 ++++++ mods/mobf/environments/flight_1.lua | 33 + mods/mobf/environments/general_env_sets.lua | 37 + mods/mobf/environments/meadow.lua | 48 + mods/mobf/environments/on_ground_1.lua | 38 + mods/mobf/environments/on_ground_2.lua | 54 + mods/mobf/environments/open_waters.lua | 33 + mods/mobf/environments/shallow_waters.lua | 33 + mods/mobf/environments/simple_air.lua | 39 + mods/mobf/fighting.lua | 878 ++++++++ mods/mobf/generic_functions.lua | 908 +++++++++ mods/mobf/graphics.lua | 232 +++ mods/mobf/harvesting.lua | 219 ++ mods/mobf/init.lua | 350 ++++ mods/mobf/inventory.lua | 534 +++++ mods/mobf/mgen_follow/main_follow.lua | 406 ++++ .../mgen_jordan4ibanez/mgen_jordan4ibanez.lua | 139 ++ .../path_based_movement_gen.lua | 204 ++ mods/mobf/mgen_probab/direction_control.lua | 359 ++++ .../mobf/mgen_probab/height_level_control.lua | 291 +++ mods/mobf/mgen_probab/main_probab.lua | 572 ++++++ .../movement_patterns/dont_move.lua | 39 + .../movement_patterns/flight_pattern1.lua | 39 + .../movement_patterns/run_and_jump_low.lua | 41 + .../movement_patterns/stop_and_go.lua | 39 + .../movement_patterns/swim_pattern1.lua | 39 + .../movement_patterns/swim_pattern2.lua | 39 + .../movement_patterns/template.lua | 37 + mods/mobf/mgen_rasterized/mgen_raster.lua | 196 ++ mods/mobf/mob_state.lua | 534 +++++ mods/mobf/mobf.lua | 681 +++++++ mods/mobf/mov_gen_none.lua | 78 + mods/mobf/movement_gen_registry.lua | 74 + mods/mobf/movement_generic.lua | 133 ++ mods/mobf/permanent_data.lua | 195 ++ mods/mobf/random_drop.lua | 190 ++ mods/mobf/removesvnfolders.sh | 2 + mods/mobf/ride.lua | 297 +++ mods/mobf/sound.lua | 103 + mods/mobf/spawn_algorithms/at_night.lua | 227 +++ mods/mobf/spawn_algorithms/big_willow.lua | 155 ++ .../spawn_algorithms/deep_large_caves.lua | 196 ++ mods/mobf/spawn_algorithms/forrest.lua | 135 ++ mods/mobf/spawn_algorithms/in_air1.lua | 177 ++ .../spawn_algorithms/in_shallow_water.lua | 203 ++ mods/mobf/spawn_algorithms/none.lua | 34 + mods/mobf/spawn_algorithms/shadows.lua | 207 ++ mods/mobf/spawn_algorithms/willow.lua | 126 ++ mods/mobf/spawning.lua | 648 ++++++ mods/mobf/textures/animals_egg.png | Bin 0 -> 660 bytes mods/mobf/textures/animals_fireball.png | Bin 0 -> 846 bytes mods/mobf/textures/animals_plasmaball.png | Bin 0 -> 975 bytes mods/mobf/textures/animals_spawn_marker.png | Bin 0 -> 305 bytes mods/mobf/textures/invisible.png | Bin 0 -> 180 bytes .../old/templates/animals_template_128_4.png | Bin 0 -> 812 bytes .../animals_template_128_4_2levels.png | Bin 0 -> 1429 bytes .../old/templates/animals_template_128_6.png | Bin 0 -> 814 bytes .../old/templates/animals_template_32.png | Bin 0 -> 232 bytes mods/mobf/weapons.lua | 327 +++ mods/walking_light/init.lua | 144 ++ mods/walking_light/textures/walking_light.png | Bin 0 -> 246 bytes .../textures/walking_light_debug.png | Bin 0 -> 219 bytes .../textures/walking_light_mesepick.png | Bin 0 -> 402 bytes 139 files changed, 16801 insertions(+) create mode 100644 .gitignore create mode 100644 README.txt create mode 100644 game.conf create mode 100644 minetest.conf create mode 100644 mods/animal_dm/License.txt create mode 100644 mods/animal_dm/depends.txt create mode 100644 mods/animal_dm/init.lua create mode 100644 mods/animal_dm/models/DM.blend create mode 100644 mods/animal_dm/models/animal_dm.b3d create mode 100644 mods/animal_dm/models/animal_dm.blend create mode 100644 mods/animal_dm/sounds/animal_dm_die.ogg create mode 100644 mods/animal_dm/sounds/animal_dm_fireball.ogg create mode 100644 mods/animal_dm/sounds/animal_dm_hit.ogg create mode 100644 mods/animal_dm/sounds/animal_dm_random_1.ogg create mode 100644 mods/animal_dm/sounds/soundlist.txt create mode 100644 mods/animal_dm/textures/animal_dm_dm.png create mode 100644 mods/animal_dm/textures/animal_dm_dm_item.png create mode 100644 mods/animal_dm/textures/animal_dm_mesh.png create mode 100644 mods/animal_dm/textures/animal_dm_mesh2.jpg create mode 100644 mods/animal_dm/vault.lua create mode 100644 mods/animal_rat/depends.txt create mode 100644 mods/animal_rat/init.lua create mode 100644 mods/animal_rat/models/animal_rat.b3d create mode 100644 mods/animal_rat/models/rat.blend create mode 100644 mods/animal_rat/models/rat.xcf create mode 100644 mods/animal_rat/textures/animal_rat_mesh.png create mode 100644 mods/animal_rat/textures/animal_rat_rat.png create mode 100644 mods/animal_rat/textures/animal_rat_rat_item.png create mode 100644 mods/animal_vombie/License.txt create mode 100644 mods/animal_vombie/depends.txt create mode 100644 mods/animal_vombie/flame.lua create mode 100644 mods/animal_vombie/init.lua create mode 100644 mods/animal_vombie/models/animal_vombie_vombie.b3d create mode 100644 mods/animal_vombie/models/animal_vombie_vombie.xcf create mode 100644 mods/animal_vombie/models/vombie.blend create mode 100644 mods/animal_vombie/sounds/animal_vombie_random_1.ogg create mode 100644 mods/animal_vombie/sounds/animal_vombie_sun_damage.ogg create mode 100644 mods/animal_vombie/sounds/soundlist.txt create mode 100644 mods/animal_vombie/textures/animal_vombie_flames.png create mode 100644 mods/animal_vombie/textures/animal_vombie_vombie.png create mode 100644 mods/animal_vombie/textures/animal_vombie_vombie_item.png create mode 100644 mods/animal_vombie/textures/animal_vombie_vombie_mesh.png create mode 100644 mods/animalmaterials/depends.txt create mode 100644 mods/animalmaterials/init.lua create mode 100644 mods/animalmaterials/models/animalmaterials_egg_ent.b3d create mode 100644 mods/animalmaterials/models/animalmaterials_egg_ent.xcf create mode 100644 mods/animalmaterials/models/egg.blend create mode 100644 mods/animalmaterials/textures/animalmaterials_bone.png create mode 100644 mods/animalmaterials/textures/animalmaterials_egg.png create mode 100644 mods/animalmaterials/textures/animalmaterials_egg_big.png create mode 100644 mods/animalmaterials/textures/animalmaterials_egg_ent_mesh.png create mode 100644 mods/animalmaterials/textures/animalmaterials_feather.png create mode 100644 mods/animalmaterials/textures/animalmaterials_fur.png create mode 100644 mods/animalmaterials/textures/animalmaterials_glass.png create mode 100644 mods/animalmaterials/textures/animalmaterials_lasso.png create mode 100644 mods/animalmaterials/textures/animalmaterials_meat_raw.png create mode 100644 mods/animalmaterials/textures/animalmaterials_milk.png create mode 100644 mods/animalmaterials/textures/animalmaterials_net.png create mode 100644 mods/animalmaterials/textures/animalmaterials_saddle.png create mode 100644 mods/animalmaterials/textures/animalmaterials_scale_blue.png create mode 100644 mods/animalmaterials/textures/animalmaterials_scale_golden.png create mode 100644 mods/animalmaterials/textures/animalmaterials_scale_grey.png create mode 100644 mods/animalmaterials/textures/animalmaterials_scale_white.png create mode 100644 mods/animalmaterials/textures/animalmaterials_scissors.png create mode 100644 mods/dungeon/depends.txt create mode 100644 mods/dungeon/init.lua create mode 100644 mods/mobf/README create mode 100644 mods/mobf/api.lua create mode 100644 mods/mobf/compatibility.lua create mode 100644 mods/mobf/debug.lua create mode 100644 mods/mobf/debug_trace.lua create mode 100644 mods/mobf/depends.txt create mode 100644 mods/mobf/doc/Doxyfile create mode 100644 mods/mobf/doc/Testcases.txt create mode 100644 mods/mobf/doc/mainpage_description.lua create mode 100644 mods/mobf/doc/mob_template.lua create mode 100644 mods/mobf/environment.lua create mode 100644 mods/mobf/environments/flight_1.lua create mode 100644 mods/mobf/environments/general_env_sets.lua create mode 100644 mods/mobf/environments/meadow.lua create mode 100644 mods/mobf/environments/on_ground_1.lua create mode 100644 mods/mobf/environments/on_ground_2.lua create mode 100644 mods/mobf/environments/open_waters.lua create mode 100644 mods/mobf/environments/shallow_waters.lua create mode 100644 mods/mobf/environments/simple_air.lua create mode 100644 mods/mobf/fighting.lua create mode 100644 mods/mobf/generic_functions.lua create mode 100644 mods/mobf/graphics.lua create mode 100644 mods/mobf/harvesting.lua create mode 100644 mods/mobf/init.lua create mode 100644 mods/mobf/inventory.lua create mode 100644 mods/mobf/mgen_follow/main_follow.lua create mode 100644 mods/mobf/mgen_jordan4ibanez/mgen_jordan4ibanez.lua create mode 100644 mods/mobf/mgen_pathbased/path_based_movement_gen.lua create mode 100644 mods/mobf/mgen_probab/direction_control.lua create mode 100644 mods/mobf/mgen_probab/height_level_control.lua create mode 100644 mods/mobf/mgen_probab/main_probab.lua create mode 100644 mods/mobf/mgen_probab/movement_patterns/dont_move.lua create mode 100644 mods/mobf/mgen_probab/movement_patterns/flight_pattern1.lua create mode 100644 mods/mobf/mgen_probab/movement_patterns/run_and_jump_low.lua create mode 100644 mods/mobf/mgen_probab/movement_patterns/stop_and_go.lua create mode 100644 mods/mobf/mgen_probab/movement_patterns/swim_pattern1.lua create mode 100644 mods/mobf/mgen_probab/movement_patterns/swim_pattern2.lua create mode 100644 mods/mobf/mgen_probab/movement_patterns/template.lua create mode 100644 mods/mobf/mgen_rasterized/mgen_raster.lua create mode 100644 mods/mobf/mob_state.lua create mode 100644 mods/mobf/mobf.lua create mode 100644 mods/mobf/mov_gen_none.lua create mode 100644 mods/mobf/movement_gen_registry.lua create mode 100644 mods/mobf/movement_generic.lua create mode 100644 mods/mobf/permanent_data.lua create mode 100644 mods/mobf/random_drop.lua create mode 100755 mods/mobf/removesvnfolders.sh create mode 100644 mods/mobf/ride.lua create mode 100644 mods/mobf/sound.lua create mode 100644 mods/mobf/spawn_algorithms/at_night.lua create mode 100644 mods/mobf/spawn_algorithms/big_willow.lua create mode 100644 mods/mobf/spawn_algorithms/deep_large_caves.lua create mode 100644 mods/mobf/spawn_algorithms/forrest.lua create mode 100644 mods/mobf/spawn_algorithms/in_air1.lua create mode 100644 mods/mobf/spawn_algorithms/in_shallow_water.lua create mode 100644 mods/mobf/spawn_algorithms/none.lua create mode 100644 mods/mobf/spawn_algorithms/shadows.lua create mode 100644 mods/mobf/spawn_algorithms/willow.lua create mode 100644 mods/mobf/spawning.lua create mode 100644 mods/mobf/textures/animals_egg.png create mode 100644 mods/mobf/textures/animals_fireball.png create mode 100644 mods/mobf/textures/animals_plasmaball.png create mode 100644 mods/mobf/textures/animals_spawn_marker.png create mode 100644 mods/mobf/textures/invisible.png create mode 100644 mods/mobf/textures/old/templates/animals_template_128_4.png create mode 100644 mods/mobf/textures/old/templates/animals_template_128_4_2levels.png create mode 100644 mods/mobf/textures/old/templates/animals_template_128_6.png create mode 100644 mods/mobf/textures/old/templates/animals_template_32.png create mode 100644 mods/mobf/weapons.lua create mode 100644 mods/walking_light/init.lua create mode 100644 mods/walking_light/textures/walking_light.png create mode 100644 mods/walking_light/textures/walking_light_debug.png create mode 100644 mods/walking_light/textures/walking_light_mesepick.png diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3928b4b --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +## Generic ignorable patterns and files +*~ +.*.swp +*bak* +tags +*.vim +*.orig +*.rej + diff --git a/README.txt b/README.txt new file mode 100644 index 0000000..678fdb9 --- /dev/null +++ b/README.txt @@ -0,0 +1,8 @@ +Dungeon (Minetest Game) +======================= + +Implements a simple dungeon crawler on the Minetest Engine. + +Stuff inside is licensed under WTFPL, CC0, and CC BY-SA; see mod directories +for more info. + diff --git a/game.conf b/game.conf new file mode 100644 index 0000000..9150e80 --- /dev/null +++ b/game.conf @@ -0,0 +1,2 @@ +name = Dungeon +common_mods = default, fire, bucket diff --git a/minetest.conf b/minetest.conf new file mode 100644 index 0000000..80002fe --- /dev/null +++ b/minetest.conf @@ -0,0 +1,2 @@ +# Default configuration for this game +mg_name = singlenode diff --git a/mods/animal_dm/License.txt b/mods/animal_dm/License.txt new file mode 100644 index 0000000..2a34efe --- /dev/null +++ b/mods/animal_dm/License.txt @@ -0,0 +1,19 @@ +Licenses + +CC0, Author Temperest + models/dm.blend + +CC0 + models/animal_dm.b3d + sounds/animal_dm_fireball.ogg + +Unknown (most likely CC0 but no guarantee) + sounds/animal_dm_die.ogg + sounds/animal_dm_hit.ogg + sounds/animal_dm_random.ogg + +Unknown, Author 4aiman + models/DM.blend + +Everything not mentioned: + CC-BY-SA, Author sapier \ No newline at end of file diff --git a/mods/animal_dm/depends.txt b/mods/animal_dm/depends.txt new file mode 100644 index 0000000..04684db --- /dev/null +++ b/mods/animal_dm/depends.txt @@ -0,0 +1,3 @@ +default +mobf +fire \ No newline at end of file diff --git a/mods/animal_dm/init.lua b/mods/animal_dm/init.lua new file mode 100644 index 0000000..8fd346c --- /dev/null +++ b/mods/animal_dm/init.lua @@ -0,0 +1,160 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file init.lua +--! @brief dungeonmaster implementation +--! @copyright Sapier +--! @author Sapier +--! @date 2013-01-27 +-- +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- +minetest.log("action","MOD: animal_dm loading ...") +local version = "0.0.15" + +local dm_groups = { + not_in_creative_inventory=1 + } + +local selectionbox_dm = {-0.75, -1, -0.75, 0.75, 1, 0.75} + +dm_prototype = { + name="dm", + modname="animal_dm", + + generic = { + description="Dungeonmaster (MOBF)", + base_health=10, + kill_result="", + armor_groups= { + fleshy=1, + deamon=1, + }, + groups = dm_groups, + envid="simple_air" + }, + movement = { + min_accel=0.2, + max_accel=0.4, + max_speed=0.25, + pattern="stop_and_go", + canfly=false, + follow_speedup=5, + }, + combat = { + angryness=0.99, + starts_attack=true, + sun_sensitive=true, + melee = { + maxdamage=3, + range=5, + speed=1, + }, + distance = { + attack="mobf:fireball_entity", + range =15, + speed = 1, + }, + self_destruct = nil, + }, + + spawning = { + rate=0.02, + density=750, + algorithm="shadows_spawner", + height=3, + respawndelay = 60, + }, + sound = { + random = { + name="animal_dm_random_1", + min_delta = 30, + chance = 0.5, + gain = 0.5, + max_hear_distance = 5, + }, + distance = { + name="animal_dm_fireball", + gain = 0.5, + max_hear_distance = 7, + }, + die = { + name="animal_dm_die", + gain = 0.7, + max_hear_distance = 7, + }, + melee = { + name="animal_dm_hit", + gain = 0.7, + max_hear_distance = 5, + }, + }, + animation = { + walk = { + start_frame = 31, + end_frame = 60, + }, + stand = { + start_frame = 1, + end_frame = 30, + }, + combat = { + start_frame = 61, + end_frame = 90, + }, + }, + states = { + { + name = "default", + movgen = "none", + chance = 0, + animation = "stand", + graphics_3d = { + visual = "mesh", + mesh = "animal_dm.b3d", + textures = {"animal_dm_mesh.png"}, + collisionbox = selectionbox_dm, + visual_size= {x=1,y=1,z=1}, + }, + graphics = { + sprite_scale={x=4,y=4}, + sprite_div = {x=6,y=1}, + visible_height = 2, + }, + typical_state_time = 30, + }, + { + name = "walking", + movgen = "probab_mov_gen", + chance = 0.25, + animation = "walk", + typical_state_time = 180, + }, + { + movgen="follow_mov_gen", + name = "combat", + chance = 0, + animation = "combat", + typical_state_time = 0, + }, + }, + } + +dm_debug = function (msg) + --minetest.log("action", "mobs: "..msg) + --minetest.chat_send_all("mobs: "..msg) +end + +local modpath = minetest.get_modpath("animal_dm") +dofile (modpath .. "/vault.lua") + +--register with animals mod +minetest.log("action", "adding mob "..dm_prototype.name) +if mobf_add_mob(dm_prototype) then + dofile (modpath .. "/vault.lua") +end +minetest.log("action","MOD: animal_dm mod version " .. version .. " loaded") \ No newline at end of file diff --git a/mods/animal_dm/models/DM.blend b/mods/animal_dm/models/DM.blend new file mode 100644 index 0000000000000000000000000000000000000000..d7a3e79e9d7651476b85f10a0b6973eb22f7b0cd GIT binary patch literal 894232 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 literal 0 HcmV?d00001 diff --git a/mods/animal_dm/models/animal_dm.b3d b/mods/animal_dm/models/animal_dm.b3d new file mode 100644 index 0000000000000000000000000000000000000000..1f5d665718a584130f36c04e96e72fb4217c4a72 GIT binary patch literal 33782 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Ń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 literal 0 HcmV?d00001 diff --git a/mods/animal_dm/sounds/animal_dm_die.ogg b/mods/animal_dm/sounds/animal_dm_die.ogg new file mode 100644 index 0000000000000000000000000000000000000000..99a8b9a1cb03480fcb5e96f675991e0da3ffb527 GIT binary patch literal 11971 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 Nt3N@UE&v1Z{{d{{XeR&w literal 0 HcmV?d00001 diff --git a/mods/animal_dm/sounds/animal_dm_fireball.ogg b/mods/animal_dm/sounds/animal_dm_fireball.ogg new file mode 100644 index 0000000000000000000000000000000000000000..c5f76d7966d612acac527dd76c404e06c6405a84 GIT binary patch literal 18517 zcmagG1y~%K=VR0Ti+{&j>>1W>#+Q(T9>Ll8r_IXIbEIlpy4NR+>Q zfe&|xzh8|IN^c|o`*<7qMxoP<5JFdf{r??9Q2#Ju0@Jmu96vEDIa!k0TA674Wlt(Y z%FfEh$_6f^w5q0`j9o3v?OiP`&0Xl;7-EAzsty(|?#52$f*<8cRb5=otQ<%`K*0RN zluk@s0|EdKzKTtrw9kJsMjZe^2LOyH=}_Y>WatVLa%nwN5~SZ+eXQXr3E_SCrjcy@ z|5cH4n&AKd&;Wm0gy{S|8S8OgOMIGWryO1@#Sg`#aNkrmc@es=sZH&RYKv^_$LXlx zQM6$IV2z1LlLcb~-zt+ZvJiZ56-wkZNLHNTgh>A*CjgOskTg)9{jeZjk?-(Fel*{2 z+S*AmB&OPFS$VcO4bzG?Sp6@~5;4ic;x7xF1Yz z>n;ZC-v%4why1JD`E1<2mA^|Tg#hGG@Fwlh<&nS3+vd%K3JNKQ1em?4gcKo;oGvb3 zrpUs&!YaM~Q(3*;NHya~HS*s}01)6y-i{orw4(o`SZF7i|G$gKr$Ksv2w0Z`pNR%O zQ%V9U2b>t;{%Uv-0Jf%d|+c_J`+)G5)I-e=uA8TzGNhemJ`v~?kQ2Pmt!Pi+$r@@shX@SRTPp0ktXu<}!!V}VI>YCL4;rB0Clo(`; zckyn4M}#k@+cY8QgIo7z8K+|iZ+-t0J|bYd8871ZX9ke^M8le3lNFK06T5szjn82l zq$?nfivB2D5~vI$peb|-_`7ma03ZncFN*)G`U~ZMP+SoAjeeN6W|Vz|@vSQF8Rt9t z*@G^Q%mzj=BNrIOQFVJ+&K11UHidQbIt+ygKv}xNe>@6oR8q4TQCNb%P7;#hG)z|v z_KN>B+#kvbjQ3OjQ6|obR4}Q)Ws03il|xWnO(6kR�TvxtTB3o9j0CXxIPCVg7NOjRn{L@SHanA?JLZ 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 ZGyb|Yj|ByQo!5tx8n>Zb&kqG~eE>PBquT%g literal 0 HcmV?d00001 diff --git a/mods/animal_dm/sounds/animal_dm_hit.ogg b/mods/animal_dm/sounds/animal_dm_hit.ogg new file mode 100644 index 0000000000000000000000000000000000000000..417b6228725fc4431134b848140bfad617fb0fa3 GIT binary patch literal 8043 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 WIaJz6luUG)AnE-64eF9^BuO{Li`P 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

MBu3QYc23HkqL5XI0q>xBmNZrw{rg7hyc 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 literal 0 HcmV?d00001 diff --git a/mods/animal_dm/sounds/soundlist.txt b/mods/animal_dm/sounds/soundlist.txt new file mode 100644 index 0000000..edf12df --- /dev/null +++ b/mods/animal_dm/sounds/soundlist.txt @@ -0,0 +1,16 @@ +--dm-- +random: + random_1.ogg +hit: + hit.ogg +die: + die.ogg +melee: + hit.ogg +distance: + fireball.ogg + + + + + diff --git a/mods/animal_dm/textures/animal_dm_dm.png b/mods/animal_dm/textures/animal_dm_dm.png new file mode 100644 index 0000000000000000000000000000000000000000..a52d01619ba8228a53c43bb730d6cbebbf26965c GIT binary patch literal 14978 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 X+#7{;`fnerK>;--ZN+MN%eVgr4Q+|< literal 0 HcmV?d00001 diff --git a/mods/animal_dm/textures/animal_dm_dm_item.png b/mods/animal_dm/textures/animal_dm_dm_item.png new file mode 100644 index 0000000000000000000000000000000000000000..14b9aa0778b8bda89be7c779b3dad19fbe49d576 GIT binary patch literal 384 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgfgTe~DWM4fo(GuS literal 0 HcmV?d00001 diff --git a/mods/animal_dm/textures/animal_dm_mesh.png b/mods/animal_dm/textures/animal_dm_mesh.png new file mode 100644 index 0000000000000000000000000000000000000000..386674ca790eaa00bdd358776ef03b9a056d000f GIT binary patch literal 331 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 literal 0 HcmV?d00001 diff --git a/mods/animal_dm/vault.lua b/mods/animal_dm/vault.lua new file mode 100644 index 0000000..09eb0f4 --- /dev/null +++ b/mods/animal_dm/vault.lua @@ -0,0 +1,529 @@ +--(c) Celeron55 + + +local vault = {} + +function vault.cmp(v, w) + return ( + v.x == w.x and + v.y == w.y and + v.z == w.z + ) +end + +function vault.add(v, w) + return { + x = v.x + w.x, + y = v.y + w.y, + z = v.z + w.z, + } +end + +function vault.sub(v, w) + return { + x = v.x - w.x, + y = v.y - w.y, + z = v.z - w.z, + } +end + +vault.make_vault_part = function(p, part, seed) + local ns = nil + local top_y = 2 + local mob = nil + + --choose what to do at position + if part == 'w' then + ns = { + {name='default:cobble'}, + {name='default:cobble'}, + {name='default:cobble'}, + {name='default:cobble'}, + } + elseif part == 'W' then + top_y = 3 + ns = { + {name='default:cobble'}, + {name='default:cobble'}, + {name='default:cobble'}, + {name='default:cobble'}, + {name='default:cobble'}, + {name='default:cobble'}, + } + elseif part == 'c' then + ns = { + {name='default:cobble'}, + {name='air'}, + {name='air'}, + {name='default:cobble'}, + } + elseif part == 'T' then + ns = { + {name='default:cobble'}, + {name='default:torch'}, + {name='air'}, + {name='default:cobble'}, + } + elseif part == 'f' then + ns = { + {name='air'}, + {name='air'}, + {name='air'}, + {name='default:cobble'}, + } + elseif part == 'l' then + top_y = 3 + ns = { + {name='default:cobble'}, + {name='air'}, + {name='air'}, + {name='air'}, + {name='air'}, + {name='default:lava_source'}, + } + elseif part == 'm' then + top_y = 3 + ns = { + {name='default:cobble'}, + {name='air'}, + {name='air'}, + {name='air'}, + {name='default:cobble'}, + } + mob = "animal_dm:dm__default" + elseif part == 'C' then + top_y = 3 + ns = { + {name='default:cobble'}, + {name='air'}, + {name='air'}, + {name='air'}, + {name='default:cobble'}, + } + elseif part == 'S' then + top_y = 3 + ns = { + {name='default:cobble'}, + {name='air'}, + {name='default:bookshelf'}, + {name='default:bookshelf'}, + {name='default:cobble'}, + } + elseif part == 'd' then + ns = { + {name='default:cobble'}, + {name='air'}, + {name='air'}, + {name='default:cobble'}, + } + elseif part == 'a' then + ns = { + nil, + {name='air'}, + {name='air'}, + nil, + } + elseif part == 'A' then + ns = { + nil, + {name='air'}, + {name='air'}, + {name='air'}, + {name='default:cobble'}, + } + elseif part == 't' then + local invcontent = {} + local pr = PseudoRandom(seed) + if pr:next(1,4) == 1 then + table.insert(invcontent, 'default:apple '..tostring(pr:next(1,5))) + end + if pr:next(1,3) == 1 then + table.insert(invcontent, 'bucket:bucket_empty 1') + end + if pr:next(1,4) == 1 then + table.insert(invcontent, 'bucket:bucket_lava 1') + end + if pr:next(1,20) == 1 then + table.insert(invcontent, 'bucket:bucket_water 1') + end + if pr:next(1,34) == 1 then + table.insert(invcontent, 'bucket:nyancat 1') + table.insert(invcontent, 'bucket:nyancat_rainbow '..tostring(pr:next(1,6))) + end + if pr:next(1,2) == 1 then + table.insert(invcontent, 'default:gravel '..tostring(pr:next(1,10))) + end + if pr:next(1,3) == 1 then + table.insert(invcontent, 'default:bookshelf '..tostring(pr:next(1,2))) + end + if pr:next(1,8) == 1 then + table.insert(invcontent, 'default:cactus '..tostring(pr:next(1,2))) + end + if pr:next(1,4) == 1 then + table.insert(invcontent, 'default:rail '..tostring(pr:next(1,10))) + end + if pr:next(1,5) == 1 then + table.insert(invcontent, 'default:ladder '..tostring(pr:next(1,9))) + end + if pr:next(1,3) == 1 then + table.insert(invcontent, 'default:sign_wall 1') + end + if pr:next(1,6) == 1 then + table.insert(invcontent, 'default:steelblock '..tostring(pr:next(1,6))) + end + ns = { + {name='default:cobble'}, + {name='air'}, + {name='default:chest', inv=invcontent}, + {name='default:cobble'}, + } + else + return + end + + --for all nodes in definition + for i=1,#ns do + local dy = top_y + 1 - i + local p2 = {x=p.x,y=p.y+dy,z=p.z} + + --get node at position + local oldn = minetest.env:get_node(p2) + local n = ns[i] + + --don't do anything if no new node is specified or + --old node is air + if n and oldn.name ~= "air" then + --possibly add mossy if it's a cobble node + if n.name == 'default:cobble' then + local perlin = minetest.env:get_perlin(123, 2, 0.8, 2.0) + if perlin:get3d(p2) >= 0.0 then + n.name = 'default:mossycobble' + end + end + + --set node + --dm_debug("pos: " .. minetest.pos_to_string(p2) .. " replacing " .. oldn.name .. " by " .. n.name) + minetest.env:set_node(p2, ns[i]) + + --special handling for chests + if n.inv then + dm_debug("adding chest at " .. minetest.pos_to_string(p2) ) + local meta = minetest.env:get_meta(p2) + local inv = meta:get_inventory() + for _,itemstring in ipairs(n.inv) do + inv:add_item('main', itemstring) + end + end + else + --dm_debug("pos: " .. minetest.pos_to_string(p) .. " not replacing " .. oldn.name) + end + + end + if mob then + --dm_debug("adding dm at " .. minetest.pos_to_string({x=p.x,y=p.y+1,z=p.z}) ) + local newobject = minetest.env:add_entity({x=p.x,y=p.y+1,z=p.z}, mob) + local newentity = mobf_find_entity(newobject) + + if newentity and + newentity.dynamic_data and + newentity.dynamic_data.spawning then + newentity.dynamic_data.spawning.player_spawned = playerspawned + newentity.dynamic_data.spawning.spawner = "vault" + end + end +end + +vault.generate_vault = function(vault_def, p, dir, seed) + local dim_z = #vault_def + assert(dim_z > 0) + local dim_x = #vault_def[1] + + --don't generate vault if entrance dir not z +1 + if not vault.cmp(dir, {x=0,y=0,z=1}) then + --dm_debug("entrance direction wrong: " .. minetest.pos_to_string(p)) + return + else + dm_debug("generating vault at: " .. minetest.pos_to_string(p)) + end + + --print("Making vault at "..minetest.pos_to_string(p)) + if dim_x >= 14 then + --dm_debug("Making large vault at "..minetest.pos_to_string(p)) + else + --dm_debug("Making vault at "..minetest.pos_to_string(p)) + end + + -- Find door in definition + local def_door_p = nil + for dx=1,dim_x do + for dz=1,dim_z do + if vault_def[dim_z+1-dz][dx] == 'd' then + def_door_p = {x=dx,y=0,z=dz} + end + if def_door_p then break end + end + if def_door_p then break end + end + --print("Vault door found at "..minetest.pos_to_string(def_door_p).." in definition") + assert(def_door_p) + local randseed = seed + for dx=1,dim_x do + for dz=1,dim_z do + local p2 = vault.add(vault.sub(p, def_door_p), {x=dx, y=0, z=dz}) + local part = vault_def[dim_z+1-dz][dx] + --dm_debug("Making vault part "..dump(part).." at "..minetest.pos_to_string(p2)) + vault.make_vault_part(p2, part, randseed) + randseed = randseed + 1 + end + end +end + +-- Definition is for Z=up, X=right, dir={x=0,y=0,z=1} +vault.vault_defs = { +---[[ + { + {'w','w','w','w','w','w','w','w','w','w'}, + {'w','c','c','c','c','c','C','C','c','w'}, + {'w','c','C','c','c','c','C','C','m','w'}, + {'w','C','C','C','w','w','C','C','c','w'}, + {'w','C','C','C','w','w','C','C','c','w'}, + {'w','T','C','c','w','w','C','w','w','w'}, + {'w','c','t','c','w','w','C','w','n','n'}, + {'w','w','w','w','w','w','C','w','n','n'}, + {'n','n','n','n','n','w','d','w','n','n'}, + {'n','n','n','n','n','n','A','n','n','n'}, + }, +--]] +---[[ + { + {'w','w','w','w','w','w','w','w'}, + {'w','c','c','c','m','C','c','w'}, + {'w','C','c','c','C','C','c','w'}, + {'w','C','w','w','C','C','c','w'}, + {'w','C','t','w','C','C','c','w'}, + {'w','C','t','w','C','w','d','w'}, + {'w','T','w','w','C','w','A','n'}, + {'w','c','C','C','C','w','n','n'}, + {'n','n','n','w','w','w','n','n'}, + }, +--]] +---[[ + { + {'W','W','W','W','W','W','W','W','W','W','W','W','W','W','W','W'}, + {'W','l','l','l','l','l','l','t','t','l','l','l','l','l','l','W'}, + {'W','l','l','l','l','l','l','f','f','l','l','l','l','l','l','W'}, + {'W','l','l','l','l','l','l','f','f','l','l','l','l','l','l','W'}, + {'W','m','l','l','l','l','l','f','f','l','l','l','l','l','m','W'}, + {'W','c','l','l','l','l','l','f','f','l','l','l','l','l','c','W'}, + {'W','c','l','l','l','l','l','f','f','l','l','l','l','l','c','W'}, + {'W','c','l','l','l','l','l','f','f','l','l','l','l','l','c','W'}, + {'W','m','l','l','l','l','l','f','f','l','l','l','l','l','m','W'}, + {'W','l','l','l','l','l','l','f','f','l','l','l','l','l','l','W'}, + {'W','l','l','l','l','l','l','f','f','l','l','l','l','l','l','W'}, + {'W','l','l','l','l','l','l','f','f','l','l','l','l','l','l','W'}, + {'W','W','W','W','W','W','W','W','d','W','W','W','W','W','W','W'}, + {'n','n','n','n','n','n','n','n','A','n','n','n','n','n','n','n'}, + }, +--]] +---[[ + { + {'W','W','W','W','W','W','W','W','W','W','W','W','W','W','W','W'}, + {'W','f','f','f','f','l','l','t','l','l','l','l','l','l','l','W'}, + {'W','f','l','l','l','l','l','f','l','l','l','l','l','l','l','W'}, + {'W','f','l','l','f','l','l','l','l','l','l','l','l','l','l','W'}, + {'W','f','l','l','l','l','l','l','f','l','f','f','l','l','m','W'}, + {'W','f','l','l','l','l','f','l','l','l','l','l','f','l','c','W'}, + {'W','f','f','l','l','l','l','l','l','l','l','l','f','l','c','W'}, + {'W','c','f','l','l','l','l','l','l','l','l','l','f','l','c','W'}, + {'W','m','f','l','l','l','l','l','l','l','l','l','f','l','m','W'}, + {'W','l','f','l','l','l','l','f','f','l','f','f','f','l','l','W'}, + {'W','l','t','l','l','l','l','f','f','l','l','l','l','l','l','W'}, + {'W','l','l','l','l','l','l','f','f','l','l','l','l','l','l','W'}, + {'W','W','W','W','W','W','W','W','d','W','W','W','W','W','W','W'}, + {'n','n','n','n','n','n','n','n','A','n','n','n','n','n','n','n'}, + }, +--]] +---[[ + { + {'n','n','n','n','n','n','n','n','n','n','n','n','w','w','w','w','n','n','n','n'}, + {'n','n','n','n','n','n','n','n','w','w','w','w','w','c','c','w','w','w','w','n'}, + {'n','n','n','n','n','n','n','w','w','c','c','c','c','c','c','c','c','w','w','n'}, + {'n','n','n','n','n','n','w','w','c','c','c','c','c','c','c','c','c','c','W','W'}, + {'n','n','n','n','n','n','w','t','c','C','C','m','c','c','C','C','m','c','c','W'}, + {'n','n','n','n','n','n','w','t','c','C','C','c','c','c','C','C','c','c','c','W'}, + {'n','n','n','n','n','n','w','w','c','c','c','c','c','c','c','c','c','c','c','W'}, + {'n','n','n','n','n','n','n','w','w','c','c','c','C','C','C','C','C','C','C','W'}, + {'n','n','n','n','n','n','n','n','w','w','c','c','l','l','l','l','l','l','l','W'}, + {'n','n','n','n','n','n','n','n','W','W','l','l','l','l','l','l','l','l','l','W'}, + {'w','w','w','w','W','W','W','W','W','l','l','l','l','l','l','l','l','l','l','W'}, + {'w','w','c','c','C','S','S','C','C','l','l','l','l','l','l','l','l','l','l','W'}, + {'w','c','c','c','C','C','C','C','l','l','l','l','l','l','l','l','l','l','l','W'}, + {'w','c','c','C','C','C','C','C','l','l','l','l','m','C','l','l','l','l','l','W'}, + {'w','c','c','C','C','C','C','C','l','l','l','l','C','t','l','l','l','l','l','W'}, + {'w','c','c','C','C','l','l','l','l','l','l','l','l','l','l','l','l','l','l','W'}, + {'w','c','C','C','l','l','l','l','l','l','l','l','l','l','l','l','l','l','l','W'}, + {'w','W','C','C','l','l','l','l','l','l','l','l','l','l','l','l','l','l','W','W'}, + {'n','W','d','W','W','W','W','W','W','W','W','W','W','W','W','W','W','W','W','n'}, + {'n','n','A','n','n','n','n','n','n','n','n','n','n','n','n','n','n','n','n','n'}, + }, +--]] +} + +function vault.node_is_solid(n) + return (n and n.name and minetest.registered_nodes[n.name] and + minetest.registered_nodes[n.name].walkable) +end + +vault.generate_random_vault = function(p, dir, seed) + + --random select of vault template + local pr = PseudoRandom(seed+9322) + local vault_def = vault.vault_defs[pr:next(1, #vault.vault_defs)] + + --generate vault by template + vault.generate_vault(vault_def, p, dir, seed) +end + +minetest.register_on_generated(function(minp, maxp, seed) + + --abort in case of dm disabled + if minetest.registered_entities["animal_dm:dm"] == nil then + return + end + + --abort in case of above sea level + if maxp.y > -10 then + return + end + + --calculate area of generated chunk + local area = (maxp.x-minp.x+1)*(maxp.z-minp.z+1) + + --initialize dungeon level with 2 + local dungeon_level_y = 2 + + --get random dungeon level within generated chunk + if maxp.y < 2 then + local pr = PseudoRandom(seed+932) + dungeon_level_y = pr:next(minp.y, maxp.y) + end + + + --initialize check values + local is_empty = false + local light = nil + local last_empty = false + local last_light = nil + local possible_entrances = {} + local d = 4 + + + --loop through chunk using d frames in x direction + for x=minp.x/d+1,maxp.x/d-1 do + --set to unknown on start of x-loop (why?) + local last_node_known = false + + --loop through cunk in z direction + for z=minp.z+1,maxp.z-1 do + + --get information of current node to check + local p = {x=x*d, y=dungeon_level_y, z=z} + local n = minetest.env:get_node(p) + + --save values from last loop + last_empty = is_empty + last_light = light + + --get new values + is_empty = not vault.node_is_solid(n) + light = minetest.env:get_node_light(p, 0.5) + + --if last node was known + if last_node_known then + + --initialize values + local useful_light = nil + + --save values + if is_empty then + useful_light = light + else + useful_light = last_light + end + + --if current node isn't solid, + --last was solid and we're not at daylight + if is_empty and not last_empty and useful_light < 15 then + + --calculate ??? positions next to current pos + local p1 = vault.add(p, {x=0, y=0, z=-1}) + local p2 = vault.add(p1, {x=0, y=2, z=-1}) + local p3 = vault.add(p1, {x=0, y=2, z=-8}) + local p4 = vault.add(p1, {x=-3, y=1, z=-2}) + local p5 = vault.add(p1, {x=3, y=1, z=-2}) + + --if all nodes are solid + if vault.node_is_solid(minetest.env:get_node(p2)) and + vault.node_is_solid(minetest.env:get_node(p3)) and + vault.node_is_solid(minetest.env:get_node(p4)) and + vault.node_is_solid(minetest.env:get_node(p5)) + then + local entrance = { + p = p1, + dir = {x=0, y=0, z=-1}, + } + --add to entrance table with direction z = -1 + table.insert(possible_entrances, entrance) + end + end + + --if current node isn't solid, + --last was solid and we're not at daylight + if last_empty and not is_empty and useful_light < 15 then + local p1 = vault.add(p, {x=0, y=0, z=0}) + local p2 = vault.add(p1, {x=0, y=2, z=1}) + local p3 = vault.add(p1, {x=0, y=2, z=8}) + local p4 = vault.add(p1, {x=-3, y=1, z=2}) + local p5 = vault.add(p1, {x=3, y=1, z=2}) + + --if all nodes are solid + if vault.node_is_solid(minetest.env:get_node(p2)) and + vault.node_is_solid(minetest.env:get_node(p3)) and + vault.node_is_solid(minetest.env:get_node(p4)) and + vault.node_is_solid(minetest.env:get_node(p5)) + then + local entrance = { + p = p1, + dir = {x=0, y=0, z=1}, + } + --add to entrance table with direction z = 1 + table.insert(possible_entrances, entrance) + end + end + end + last_node_known = true + end + end + + --for _,entrance in ipairs(possible_entrances) do + -- dm_debug("Possible entrance: "..dump(entrance)) + --end + --calculate number of entrances to generate per area + local num_entrances_to_generate = area/200 + + --check if there are enough possible entrances + if num_entrances_to_generate > #possible_entrances then + num_entrances_to_generate = #possible_entrances + end + + local pr = PseudoRandom(seed+9452) + + --generate vault for max number of entraces to generate at random + --selected possible entrances + for entrances_generate_i=1,num_entrances_to_generate do + local entrance_i = pr:next(1, #possible_entrances) + local entrance = possible_entrances[entrance_i] + --dm_debug("Entrance: "..dump(entrance)) + vault.generate_random_vault(entrance.p, entrance.dir, seed) + end +end) \ No newline at end of file diff --git a/mods/animal_rat/depends.txt b/mods/animal_rat/depends.txt new file mode 100644 index 0000000..8880e7f --- /dev/null +++ b/mods/animal_rat/depends.txt @@ -0,0 +1,3 @@ +default +animalmaterials +mobf \ No newline at end of file diff --git a/mods/animal_rat/init.lua b/mods/animal_rat/init.lua new file mode 100644 index 0000000..37bf312 --- /dev/null +++ b/mods/animal_rat/init.lua @@ -0,0 +1,104 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file init.lua +--! @brief rat implementation +--! @copyright Sapier +--! @author Sapier +--! @date 2013-01-27 +-- +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- +minetest.log("action","MOD: animal_rat loading ...") + +local version = "0.0.8" + +local selectionbox_rat = {-0.2, -0.0625, -0.2, 0.2, 0.125, 0.2} + +local rat_groups = { + not_in_creative_inventory=1 + } + +rat_prototype = { + name="rat", + modname="animal_rat", + + generic = { + description="Rat (Animals)", + base_health=2, + kill_result="", + armor_groups= { + fleshy=3, + }, + groups = rat_groups, + envid="on_ground_1", + }, + movement = { + default_gen="probab_mov_gen", + min_accel=0.4, + max_accel=0.6, + max_speed=2, + pattern="run_and_jump_low", + canfly=false, + }, + catching = { + tool="animalmaterials:net", + consumed=true, + }, + spawning = { + rate=0.02, + density=250, + algorithm="forrest_mapgen", + height=1 + }, + animation = { + walk = { + start_frame = 1, + end_frame = 40, + }, + stand = { + start_frame = 41, + end_frame = 80, + }, + }, + states = { + { + name = "default", + movgen = "none", + chance = 0, + animation = "stand", + graphics_3d = { + visual = "mesh", + mesh = "animal_rat.b3d", + textures = {"animal_rat_mesh.png"}, + collisionbox = selectionbox_rat, + visual_size= {x=1,y=1,z=1}, + }, + graphics = { + sprite_scale={x=1,y=1}, + sprite_div = {x=6,y=1}, + visible_height = 1, + visible_width = 1, + }, + typical_state_time = 10, + }, + { + name = "walking", + movgen = "probab_mov_gen", + chance = 0.75, + animation = "walk", + typical_state_time = 180, + }, + }, + } + + + +--register mod +minetest.log("action","\tadding "..rat_prototype.name) +mobf_add_mob(rat_prototype) +minetest.log("action","MOD: animal_rat mod version " .. version .. " loaded") \ No newline at end of file diff --git a/mods/animal_rat/models/animal_rat.b3d b/mods/animal_rat/models/animal_rat.b3d new file mode 100644 index 0000000000000000000000000000000000000000..887e3185e5be3ea0817b6e4b871aec8db768846a GIT binary patch literal 61645 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 literal 0 HcmV?d00001 diff --git a/mods/animal_rat/models/rat.blend b/mods/animal_rat/models/rat.blend new file mode 100644 index 0000000000000000000000000000000000000000..180506b8173c2f314e9ae5fcc17358435e17df30 GIT binary patch literal 492792 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 z8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@r!<6 zBEOjNiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1 znDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnE ziy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7l zznJlh8NZnEiy6O|@rxP1nDL8#uO`2k@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7l zznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O| z@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh z8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlhe*Y@JnDL7lznJlh z8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1 znDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnE ziy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7l zznJlh8NZnEi+)cpznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7l zznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O| z@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh z8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@r$m{A-|aMiy6O|@rxP1nDL7lznJlh z8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1 znDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnE ziy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL9Q z_ancU@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7l zznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O| z@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh z8NZnEiy6O|@rxP1nDL7lznJlht{*19nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh z8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1 znDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnE ziy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEi>^l~znJlh8NZnE ziy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7l zznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O| z@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh z8NZnEiy6O|@r$l+D!-WViy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh z8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1 znDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnE ziy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL9Qmn^@S@rxP1nDL7lznJlh8NZnE ziy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7l zznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O| z@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh zuD>q7nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh z8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1 znDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnE ziy6O|@rxP1nDL7lznJlh8NZnEi~gR2{9?v0X8dBtFJ}B=#xG|4V#Y6K{9?v0X8dBt zFJ}B=#xG|4V#Y6K{9?v0X8dBtFJ}B=#xG|4V#Y6K{9?v0X8dBtFJ}B=#xG|4V#Y6K z{9?v0X8dBtFJ}B=#xG|4V#Y6K{9?v0X8dBtFJ}B=#xG|4V#Y6K{9?v0X8dBtFJ}B= z#xG|4V#Y6K{9?v0X8dBtFJ}B=#xG|4V#Y6K{9?v0X8dBtFJ}B=#xMH&F!GBTznJlh z8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1 znDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnE ziy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7l zznJlh8NZnEiy6P@?@h@sX8dBtFJ}B=#xG|4V#Y6K{9?v0X8dBtFJ}B=#xG|4V#Y6K z{9?v0X8dBtFJ}B=#xG|4V#Y6K{9?v0X8dBtFJ}B=#xG|4V#Y6K{9?v0X8dBtFJ}B= z#xG|4V#Y6K{9?v0X8dBtFJ}B=#xG|4V#Y6K{9?v0X8dBtFJ}B=#xG|4V#Y6K{9?v0 zX8dBtFJ}B=#xG|4V#Y6K{9?v0X8dBtFJ}B=#xG|4qQ74!znJlh8NZnEiy6O|@rxP1 znDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnE ziy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7l zznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O|@rxP1nDL7lznJlh8NZnEiy6O| z@r(W*ru<^YFJ}B=#xG|4V#Y6K{9?v0X8dBtFJ}B=#xG|4V#Y6K{9?v0X8dBtFJ}B= z#xG|4V#Y6K{9?v0X8dBtFJ}B=#xG|4V#Y6K{9?v0X8dBtFJ}B=#xG|4V#Y6K{9?v0 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 literal 0 HcmV?d00001 diff --git a/mods/animal_rat/models/rat.xcf b/mods/animal_rat/models/rat.xcf new file mode 100644 index 0000000000000000000000000000000000000000..1b4a6ee1c32b195e09c494b2111be578dd3c8825 GIT binary patch literal 2913081 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òtWczuh9Sd}{Pd!VVu>#K-~ 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 DqYVLS literal 0 HcmV?d00001 diff --git a/mods/animal_rat/textures/animal_rat_mesh.png b/mods/animal_rat/textures/animal_rat_mesh.png new file mode 100644 index 0000000000000000000000000000000000000000..9b989c81b292b42882beecbdf68e1732148fbc4b GIT binary patch literal 119479 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 Fe*j~2TFC$a literal 0 HcmV?d00001 diff --git a/mods/animal_rat/textures/animal_rat_rat.png b/mods/animal_rat/textures/animal_rat_rat.png new file mode 100644 index 0000000000000000000000000000000000000000..db49eba8d43d7d589ea35b94593d96519550711d GIT binary patch literal 1138 zcmV-&1daQNP)Px#32;bRa{vGf6951U69E94oEQKA00(qQO+^RX0s#*@2_#hFh&Lgg+ArQ4hsXr zSOX3=wA+Ih#f-U!>_LSw3M+_#H4ocm21*-3lMzN~AR_ZY@AW3R*4(sNn)dg3xw+@& z+}}CB^ZTBEH@STYctJNwfY=xN-Qoy>aEK8B2qFMM5CI5+2tW`-0D>R_5Cjo`Acz12 zK?EQOA^<@U0SE%1Dhi7(7mF?zs-hU_i!K+OnXO9`0SE^!__e%7Wvc=}sZ=t=P}!<5 z|Lxakc@6K)oBLh}uSjzW?F7G$E&?mgesWeu0O4R^4t{`RuN~X*9ANw7Ga>+?_j~^N zp#jTlp~(=DQxQUwApkDC{}BM!zq*ch#LLjq4VeN7JwD~hYs_uejI>gzL}jbO*w`2o znT+xMHAUge?{5*B456JqO?02vPXr*e9QZoXT<+f!Q}EYaYe*LX2t9#5&6zU?`2j`* zAk@*=+aGjf5iA^PL;!*aKoCR#f^Z0Fc@gaV>>S_x^pNaomViIN%)4)sy7P1Wme?L~ z_wG2^)hw6K&r%+|imEE)aybSp9>jP@yhNifXUD?I2jwrWcCGPLRcU%M3sBpxp(qN` zXbxxf92c)#Bj67(J-s3k-+*JP#dmX6AFOb4VS(FsZgc7LOC)dH;>qt%D7iMn#cL-QGU4h0xhrM=yzCVe^z-$Vf_St|7Lq0_@(u) zRv)bJU8Mv-akI$1hre>a-@)_XTlh9M+Ot2kx4{qK=yw=?@f?4hDo2UO<18($;qz^@ zUH^_S)m`&_2^+6QoF5wC^7&aVUb)tEE#MC@z0yVxW0Ie_x5}<&ZQp9{)7q}=|L@2& zKK`HOYJ2-IVL!|K!hr2Ox=-~{bvO3+ltd2+;I~KwkH;v-;##$N`8tm)kGp~27);Yyu%reLoMKye-`))r6V7KktdJyF+d&-pOWxqtlht<4Y&rU?%xn}R$%oJ3Jn%i!-MGl4ga zy1(N(4qzN#Hg0zcMNtV4C!5m4!%2d{G<|C`66HJa7d118n2_a2fB*mh07*qoM6N<$ Eg4g&41poj5 literal 0 HcmV?d00001 diff --git a/mods/animal_rat/textures/animal_rat_rat_item.png b/mods/animal_rat/textures/animal_rat_rat_item.png new file mode 100644 index 0000000000000000000000000000000000000000..472cdd85bfa601bb1b0b6ebf54302ba0113c1691 GIT binary patch literal 918 zcmV;H18Mw;P)Px#32;bRa{vGf6951U69E94oEQKA00(qQO+^RX0UZi03j0&$ApigX8FWQhbVF}# zZDnqB07G(RVRU6=Aa`kWXdp*PO;A^X4i^9b0|QA!K~z}7?UY+cR8bU$|Gm$}<9O*5 z44I0kHFTkihV>Bj+J(}H3W`jHATVVrD~Xb3L1g2iI(wSM+mdjk#*4h|0gJ0w}~b^G;IHe)X&N)Hqs zJxG3?sD6Mz6E1VVgk zO5z$I;=#lgMZysby%@su`)O?1v;`xhBkiVXHY9FYK!rdj0PioC@X+CkN>!pOWkoS{ zT^B~kI0}N0uIu-#sC7z~<$F;pYDOZFN=?&1DNTs7EK5wingsA!QIv|o!NF(Q+1dTN zt}{uN!;G;s2vHzO5)@fsk}UN#H8qv}SgZC}?fK!cVedoV!x$k1gpf=C_vvrnD5WWc z5DlxBPyniJ+qpiU?+t+UGNl_@TUyrm1A!{TFkss@xZoYhnt$D!ivX4ZSn<_z0UVT* zC3l>z&$Sr4{OtYo?M?ala^tSu-JPSuCx<=+dI6xTtLq~G%y!;9IQemA$Aw4zRTg6@ zDZtZY^~%f3Npnl{X8@o7=s#$!JH52|MBU((+T+W`-M-BeZS7Bl5E1}*z23yw##*nQ se|_~@_xEROYHEn{zdJZMIQ$J?026*tun=3U%m4rY07*qoM6N<$g4cSYoB#j- literal 0 HcmV?d00001 diff --git a/mods/animal_vombie/License.txt b/mods/animal_vombie/License.txt new file mode 100644 index 0000000..b1ba1a1 --- /dev/null +++ b/mods/animal_vombie/License.txt @@ -0,0 +1,8 @@ +Licenses + +CCO + sounds/animal_vombie_sun_damage.ogg + sounds/animal_vombie_random_1.ogg + +Everything not mentioned: + CC-BY-SA, Author sapier \ No newline at end of file diff --git a/mods/animal_vombie/depends.txt b/mods/animal_vombie/depends.txt new file mode 100644 index 0000000..3662c78 --- /dev/null +++ b/mods/animal_vombie/depends.txt @@ -0,0 +1,2 @@ +default +mobf \ No newline at end of file diff --git a/mods/animal_vombie/flame.lua b/mods/animal_vombie/flame.lua new file mode 100644 index 0000000..02ceedd --- /dev/null +++ b/mods/animal_vombie/flame.lua @@ -0,0 +1,67 @@ +--! @class vombie_flame +--! @ingroup weapons +--! @brief a plasmaball weapon entity +vombie_flame = { + physical = false, + textures = {"animal_vombie_flames.png"}, + visual = "sprite", + collisionbox = {0,0,0,0,0,0}, + spritediv = {x=1,y=16}, + --vizual_size = {x=0.1,y=0.1}, + + velocity = 1.0, + gravity = -0.1, + + damage = 8, + + leveltime = 2.5, + created = -1, + leveldtime = 0, + level = 0, +} + +------------------------------------------------------------------------------- +-- name: vombie_flame.on_activate = function(self, staticdata) +-- +--! @brief onactivate callback for plasmaball +--! @memberof vombie_flame +--! @private +-- +--! @param self fireball itself +--! @param staticdata +------------------------------------------------------------------------------- +function vombie_flame.on_activate(self,staticdata) + self.created = mobf_get_current_time() + self.object:setsprite({x=0,y=self.level}, 1, 0, true) + self.object:setvelocity({x=0,y=self.velocity,z=0}) +end + +------------------------------------------------------------------------------- +-- name: vombie_flame.on_step = function(self, dtime) +-- +--! @brief onstep callback for vombie flame +--! @memberof vombie_flame +--! @private +-- +--! @param vombie_flame itself +--! @param dtime time since last callback +------------------------------------------------------------------------------- +function vombie_flame.on_step(self, dtime) + local pos = self.object:getpos() + local node = minetest.env:get_node(pos) + + self.leveldtime = self.leveldtime + dtime + + if (self.leveldtime *10) > math.random()*self.leveltime then + self.level = self.level +1 + + if (self.level < 16) then + self.object:setsprite({x=0,y=self.level}, 1, 0, true) + else + self.object:remove() + end + self.leveldtime = 0 + end +end + +minetest.register_entity(":animal_vombie:vombie_flame", vombie_flame) \ No newline at end of file diff --git a/mods/animal_vombie/init.lua b/mods/animal_vombie/init.lua new file mode 100644 index 0000000..2822401 --- /dev/null +++ b/mods/animal_vombie/init.lua @@ -0,0 +1,184 @@ +local version = "0.0.17" + +minetest.log("action","MOD: loading animal_vombie ... ") + +local vombie_groups = { + not_in_creative_inventory=1 + } + +local selectionbox_vombie = {-0.3, -1.2, -0.5, 0.3, 1, 0.5} + +local modpath = minetest.get_modpath("animal_vombie") + +dofile (modpath .. "/flame.lua") + +function vombie_drop() + local result = {} + if math.random() < 0.05 then + table.insert(result,"animalmaterials:bone 2") + else + table.insert(result,"animalmaterials:bone 1") + end + + table.insert(result,"animalmaterials:meat_undead 1") + + return result +end + +function vombie_on_step_handler(entity,now,dtime) + local pos = entity.getbasepos(entity) + local current_light = minetest.env:get_node_light(pos) + + --print("vombie on step: current_light:" .. current_light .. " max light: " .. LIGHT_MAX .. " 3dmode:" .. dump(minetest.setting_getbool("disable_animals_3d_mode"))) + + if current_light ~= nil and + current_light > LIGHT_MAX and + minetest.setting_getbool("mobf_disable_3d_mode") ~= true and + minetest.setting_getbool("vombie_3d_burn_animation_enabled") == true then + + + local xdelta = (math.random()-0.5) + local zdelta = (math.random()-0.5) + --print("receiving sun damage: " .. xdelta .. " " .. zdelta) + local newobject=minetest.env:add_entity( { x=pos.x + xdelta, + y=pos.y, + z=pos.z + zdelta }, + "animal_vombie:vombie_flame") + + --add particles + end +end + +function vombie_on_activate_handler(entity) + + local pos = entity.object:getpos() + + local current_light = minetest.env:get_node_light(pos) + + if current_light == nil then + minetest.log(LOGLEVEL_ERROR,"ANIMALS: Bug!!! didn't get a light value for ".. printpos(pos)) + return + end + --check if animal is in sunlight + if ( current_light > LIGHT_MAX) then + --don't spawn vombie in sunlight + spawning.remove(entity) + end +end + +vombie_prototype = { + name="vombie", + modname="animal_vombie", + + generic = { + description="Vombie", + base_health=8, + kill_result=vombie_drop, + armor_groups= { + fleshy=3, + daemon=1, + }, + groups = vombie_groups, + envid="on_ground_1", + custom_on_step_handler = vombie_on_step_handler, + custom_on_activate_handler = vombie_on_activate_handler, + }, + movement = { + min_accel=0.3, + max_accel=1.5, + max_speed=2, + pattern="stop_and_go", + canfly=false, + follow_speedup=10, + }, + combat = { + angryness=1, + starts_attack=true, + sun_sensitive=true, + melee = { + maxdamage=2, + range=2, + speed=1, + }, + distance = nil, + self_destruct = nil, + }, + + spawning = { + rate=0.05, + density=30, + algorithm="at_night_spawner", + height=2, + respawndelay=60, + }, + sound = { + random = { + name="animal_vombie_random_1", + min_delta = 10, + chance = 0.5, + gain = 0.05, + max_hear_distance = 5, + }, + sun_damage = { + name="animal_vombie_sun_damage", + gain = 0.25, + max_hear_distance = 7, + }, + }, + animation = { + stand = { + start_frame = 0, + end_frame = 80, + }, + walk = { + start_frame = 168, + end_frame = 188, + }, + attack = { + start_frame = 81, + end_frame = 110, + }, + }, + states = { + { + name = "default", + movgen = "none", + typical_state_time = 30, + chance = 0, + animation = "stand", + graphics = { + sprite_scale={x=4,y=4}, + sprite_div = {x=6,y=2}, + visible_height = 2.2, + visible_width = 1, + }, + graphics_3d = { + visual = "mesh", + mesh = "animal_vombie_vombie.b3d", + textures = {"animal_vombie_vombie_mesh.png"}, + collisionbox = selectionbox_vombie, + visual_size= {x=1,y=1,z=1}, + }, + }, + { + name = "walking", + movgen = "probab_mov_gen", + typical_state_time = 120, + chance = 0.5, + animation = "walk", + }, + { + name = "combat", + typical_state_time = 9999, + chance = 0.0, + animation = "attack", + movgen="follow_mov_gen", + }, + } + } + + +--register with animals mod +minetest.log("action","\tadding mob "..vombie_prototype.name) +mobf_add_mob(vombie_prototype) +minetest.log("action","MOD: animal_vombie mod version " .. version .. " loaded") \ No newline at end of file diff --git a/mods/animal_vombie/models/animal_vombie_vombie.b3d b/mods/animal_vombie/models/animal_vombie_vombie.b3d new file mode 100644 index 0000000000000000000000000000000000000000..964c9b1c2858fee4f6462ecc3005ce1be34816bd GIT binary patch literal 99875 zcmeF4cX$)W^Z#Yjd+*JdYN{=pV(X+cy@Tl;Oz*v8j1Dlp7;K8^rrA{6l1#OPOz$O- z1VRWQ2_&=-J|v+e1pj9CW@Viu3;Fr|`_=O-?>pa1bF;I%vwNpQYTi7sWrZbPDle5v z)uUCP?jfKx6_ z-FkE{SY9@ZCr1bW&Cpv_s<3p}46S{mg!PW#cLp_d^F`fX1Jt6IO5(@U;qM|peml0m zu4D*59v%wsXU7|yE6v_Net$n*Zof!Tw$F|;`~3LIY8Q1+J4B*=2#VAB#ZkkHi~g^! z>9X=qh^sAzUE#-_?GGDRTTD4}Pb=GZIxep9D=sz-zMtiB)mNpoJm^I&RkoqrOuZ>9Px+AnXL|Fn31*}hYJtT_jL)>8X`e@@3) zd?qJc)5+aFEWLq6W5Rw%{X-nS@trOm+D|_2bA})1@k{Y}r|SXj568hjc0AC&|2Aw{ zObmklBOhn>*>T?g^6HDR_RnDbUj>{hbZm}B;H%FWQ0vP6?{uZh78G+Z`*>W!COJltF_XO?kFWh{knK3nk8gI*6qhs}#O&j7Zl52IUEN!( zTzOEI_VN9%hpF-XBKc>3esLYVAM20D$v!*I#|QfVb9h%~-<5w$!2kAhx@Kt~^GCs{ zH+0}PJ3q$BEJ5yJ0%C>neVK zfPLZFP<+43_@n)0HEw9LiVxQB@iY0jtN5b*jmrYEY#-+TwBlGlm;DFr?^;=$#fSQj zB7WF@8S!lV!T7S}CtLqJ)7(#thVh%#_}Da4Wbe;v{7o^4EdOLRez!#WvG~LL`S@b< z2hYElA25H)$JzK{$9el6xb~N>EzF-he>mpn&%-X;+m%Z+?Eq{Dt`k*AH3cpWTqZGUq3Deykr~|A^>+JmjzUw)jYj`d4mt zS?2@!E0=A3q&RN9y8ka-JmgP#esr>L#rR?VlRPC;L{MU*l}~-PZrOeJifdaQ*wM<(`Nz3^as7n(K|a6DKim6Nu)gR6_PKwK^Hb2$PueOr z`_A**TUfv0_;P3;n|&OAnd@KY`fY{rgY!pL;{(SZ%|9;37mi<=zwF!3c79x+W}ZJY zetiDG^)a45tM#82*2mLf{&VO*+`fqGW12r)=C5Phdh1kMu4DdmnSbZ4Ii?LCcte|2 z{yx$5xVCoAVOh=}*uK*4p;?aq38yBAZ(3c-a(#g7S5-)TA*=p@`B$|u0FSfyQ+~45 zKW<5HG5o7b+RXKrVtps#`tQ@(-n4#lUY~7)_22lf`Ek}hp*TPC{D|wnx3GT6Tz@In zhirX|@y}{~d24QMaS5#dvhwer*2P6!pJru$74#qM-?Dx5PjP-Lwm;54a(-az+jRT& zZ&g@d{s;BXD!;XX{EhuPtNi#E%pcf4<>OBF+4^>ZEq*LNVf?H-|Ka$-{3ZMEbli&b z7v^Uee|-F~`1AEyo$-Dm=4UxREI-;G7gh11i1{xo|H9{lviN6JKb&7Meh%Z$Hh2$PWeZSy7QkF`+rvX7q7n_ z!}yWMhjaeM@fUvTqBbl48if0agC0nZ*O#{XVSdE<(;)>o{4>GtbuoIkPuI^-|g_`vh;Z_bWG zd~Ne1KW+`5c~K`-iKPDFWZ#-vc#G~aj2~?O#{-Yy^{=9T1`PERPfVUg?e7#Hk@t_R z;>X(;kGrsM&9hMyXCIrT!}bg9b=>Lt`u@DyqHkS=9(LNiisLJ`l>HLcMMLxgM z{txT_(p880WB+$?+!|E>vMv?sFOLt_KKAFg^7{jF|93jBxWC}aegxEiZc<@3f4GQ` zbpzD@rBy!eBL24fBU$;!@2_OlKL+-@s2lldF^xawzkUC-^6{C~{Kdx?9+&%{gzx9= zV>Q0rtXuZoVqI3p>p*-z1@!#l{Fv4Jf%k84e#7G~&M$ro?K{3j&n%A*m<9JY;__uV zfAaY$tNhL9m#oIO`cN;i#L|4C{C+k+V*cUzL);AWE9SSX-p}(xR_({fx11lG>|1eu zr~9vvznqV+g6j{uK6IHsc>l<%{p{OUwy(IpvOb3EkLhs#QSLu@e&z9h;QB8L)@NDS z=l#Qz_H}W75wHJneJ}SPr}MMxTfBdmm3`hnvTC0%wJ%;@nogJ@%(cBVE*Cy z$<{w`ehz{6<8c@H!Iqyr$?w$uiuD=Br=sotDeE8h$E}~BeenA8OZhR=KiBy+tNP*n zWnAB89%uJAMZP}8`^&h#&C0(0{NO4+e14JhqjUZ6{A+CMcc=JU{o(w${>&=AJU?d@ zAD-WPbZgiBNlwV%@bZR&p9|qD2Nc}LS8gb|pdglq_HjEulzdR~LMcG|xLp`ZAt(i* z6rp|GE)Jy_l%h~d&^~ULhEfVjNhoD#AGhJ7DpffsWua7{ecY}Lr4p2iP^!>AZu>&1 z3dILXH7K}`+clxofKnYwE!xNJI#B$e)P_=*_Hi3OoU0F|9+ZZ(kK1Y}_(7dNlt9|Y z?Z!|VK?#D=g!XY8KPC)@(iDn@_Hi2*Td=TG!NsWxCM33x+s&aggAxj*1r*%J?bc9Q zL1_u44ejH0dnoOow1v`v_Hny2lul4OLg_;LxZMp(S14gny3;;x_kz+BN)IT#X&<-y zLFo&n50w72kK2Qw41_WO%3#{Z?V(VHKnaI33<~b!_DCorpbUpHiuQ4PER-=&Mnf4# z`?x(3$^!EC-ecavxWiymGC|hYCw|79<4rLpZowSeJyP@oY5)Wk$6x_${ z1StEU?1hp@`?!4&$^j_*p&X)p+)jdW1j=D3$+VB#Mkod-DNszbkK4zf9EFk!i@oP&b@A z(LQe9gmMGQbtt!JAGe!zZr7s`F(gvgrN&QI!NTJc#E08pZv=M1z(k7%$NrOp4 zNHwGasg_hn3LS&JLP?vEHYaUC+LE*tX=~Cpq-{ytk+vu8K-!VC6KQACE~H_kT}iu< zb|>vY+LN>wX>Za#q_4ksN!I+Ao0>1fh1 zq+?0Pk&Y*wKsu3h66s{pDWp?Lr;$!4ok2R2bQbAs(mAAaNh3(-kw%ivC)JZmqzgzF zk}e{RB3(?ngmfwCGScOwD@a$8t|DDcx`s5GbS>#R(iqZM()FYpNH>yhB8?;6OuB`1 zE9o}U?W8+Mcap}F?jqeyx`%Wx=|0i~(nQkzqz6b3k{%*GOnQVgi8Prsh15W5BsGzy zk{%^JMtYp|1nEiAQ>1C6W>O33X;Ld`I_VkGv!v%p&y!vty-0eA^fKuc(yOG`NUxLL zAiYU?i?l4v=rOtf(I6xUoXSh!eWAE<2sHYz1BjcaZfET5Yz0{iUZ$~4s9Krt4Malnf- zECSpBnzHax8rQroSZ?=wuSR0{(_Ch*`P{INGlInAxpmE`Nuc@Nu$upZ#Bvec&0Gt( zVPAa=68}3j&y4yBw4e)?*Dde6ATiH>F=o`jxfXW8@;FrbJxKiJ z{7Ey{B5v5_&w|7gUtcwIE$W6({Jk0VH_(zUSRRL--vx37Tc=^wHs;$H!Su86ZHqwif&l! zUk|CDF?GT6zK;Di5B1;Npq1UQI3E7{B##T!DlS+aGaP46X}moF^>M@E_{~Y<7`3V! z7W2X;$`2bseciB_Z`xDdX$M-(1|uZWr@;f6D8qwcM~cPt>6KqB>}8H!RLSEgQ-6Pzz8$H!Qy{<66fJi*|n? zyAMI@x?$1ZN#yTD(0XoIj6-jV18RL2tbKg@P<(rXHgLi6_+q)!~PcFhQ4_$7B5cyjMojv@n^en z+{g`!`5_DBXof-9C&~|RvzA%nA?pk0*-2mF&4O{OMjLii@%v?LTVGn%{ z64zbTnYng!!(LW3603}?U`DMB+Q|jW`%Z*+BeBJhKhn5%cER#CJ_U1ZjWPSvP^*J> zal!I7UJSXq^!hewT*KV3Pk`Oqc+)A=J)m9PuzX(Q+6~xwpPqSit=ApcpmUzFJ%BAd z(lfRvu;+gL%_ARr0sC8P&)D9;{<-v5kL>mVRy_37BepNF1&vQUV*3HRbo(zJvHgKP zKk;Xe*a5&^tof5i>_A`_T>Q}^b`Y@Nc7DXz|GseTKN#3;=?^_(!-3sW@q3ThA;7L0 z_MJ!UP++TXyyp=+4A{I!zwwA24(z@3yNvz(g*c1=w&tm?JYq)zyKvVnkJwSbPMLMX zBX%^f(}Zgtv15Q${qHhkGrmx_v4F1JaM2@n9Iy-OocD+w4{ZCCGaj)MfNfXH>Jd8; z*oV=${0mE0ec`j0Nx+7`IO!2P8Q9uQj(fyT0e0!kRFBxHz~0zzV64{{{GA4D>zhd) zvD1NV`r9Fo*cre+|8qZMy}#hYOkj8Xwa+7V7O=6;cYDOn1~%W_ogT4sfNf&f#@HNR z@OLh-eWEsd#6|$Sx8p{S*m=Nq%pc3xoL}%E64)q9v`6fGVCRioj=SYv(MZj(oXEHYT7kr2U_S;I6JYp9E`_uDL93bnNR9yA0UdzjXD8T@LKWG3^b`7wvidFZBjRv-AlZuSZ{{;H zV~j2I1s~#o-TU`GkJ!z?ZmYL}v4y{2cMGszcZ%|e-3n~&<0Cy{w*l*8Y{}RnU+`f& zu+KL5dc^JkR+@s(WQC;{{es<{=)-Beh4p1N9@qt)r+UQhLiWu=xQ+JZ=SOw}>*=#5 zdw|W!o&zg-rrXPS6JBe=L$&n92`YT{#0m)0z1d**WrIz~2Ah}-c7Hb51Hd|duE(#t z`E@bZgV|sYWrIDO4faSj*raT*$=P62vcVd%!5Xu{LWlLZ-BPo`9?b@OEF0|cY_KP? z!JfCdI3S7^*VevkA%ArpJYBK0~H!RxQKz30txM9)HVDcCJ zzUYR<`j?_Opk8vp+Q;`BitpE;mtC+tzC4$5y^;;~steZMhx7E=*E!H@E?DjZ*3C$t zI~hQ)yI{FpjM=Aud<#w?x#?t34s5jlPj-Peha>G{nEl6B?`<9vOZ8z*N zxKBN4ldl`{n8y0h()hIvnbQ<&r7c7q%ACp}1A?7uG;Q{BV69#u1 zGivm7c&{p5rMe#qDxo*{--JFvX-%rSq|t>7ByO$|spK|NDnGyb)hHWKqEi zl)ZA1<|fTUnwK;mX@1fIqya)9(h8&% zNh^_7Caps1Lt2&8m$Vvbbs`F(gvgrN&QLT@`1hJl7qbh zNrOlmkv1l6LfVuxm^6e`Ln@GJNp++mX((wk(&nTsNL!M&B5h6DhO{kdJJR-~9Y{Me zmBdb@ok_cphB1}@dkSuLqy6rrJxF_!_9E>~+J_Vd0ekf$?N2&@bRg*<(!r$Rq(exD zk`5ysPC9~gBTAT}Zl!G>UXF=@QbVq{~Q`ldd3LNxF)3HR&4CXwtPzC2<|? z$B@R--`CUr2GWhBn@HnGH_o z=>hutLDEC?_rs(|=2cB%q$f#Fk*1NFNiC$ONv)*m zOy&Q6gPUh*{~YOg(hH;)NiUIJCcQ#>mGm0vb_QOXY6<@|NG9 zo{@1cRNj=>Jog#qy0SHzg}m*o7gwB(wcP&S5OWS$g4Vs9KdTX7{vD%wHi-bH1ySO7UyEuc@?Z=M7zl0ygzPfWuZh{z4gb*vDzsS>xF#8%05WY)!^K~p>90TMTl;x zw{Ghbt9^WAhmc=kSEWJ@?PC2Z|8Id%G*oXLr;F8=S$aSypkz(RAdBVhlWoG*5WV#W z-&pOi$3nmbne{#UC|h*;jnoJD{4zWz#>QeSUv{xU{8 z!g^IGtn`8Ti+&)RFyn>LvZmhp{C14?(Ce>-A_^Z=COki~cz5mgAeFXO6}>g~M2z-P zgGWM9g%1*AdCbmL$giDMR&TAeCq{dw)vrP^2OrQTwgdXDZB|^nytv-_$J!WeoxHyb z#fkN1eNr+ZgYiOtD;+4SJy1w*U9>Ppd!+AMp@a*&XdBD6&`R3E`SsSSvtzUoe(!{m z3V-qIUo-2rN#&!xpGR-~c}k47#FP(0DW%;YtUvmIy5=_@ZAD-oOp4K(13n6+-Pqks zcAtRVGGMoi(k>gv=qtu;EBRXu{G9{-mL=AcIFxf?m&Z4h;`={{Zv%*Ld4<1HAfB7I z+j(lY3eaw6q1`GFOJmciKh(7A4;2+Y$ab-A*lq`@pFM+qmIVE*l7kP(V0)lyUVSA@ zhW^_E`tNw?zm=6f*xC*G0WdDQ!?^eb#zl_btU?uq4=PqS^a0t0zitz@!FYQJ<82Cz zHy%ii2E!yT}2!= zP#n5J97aPN>MQ(J&To4uzSkkX!yls+itHy>)ZlF)81q1_rP?Xr0Y+YI~9|ENFA zfc~%u`h&lcWp;T#TR`*MZ_v+rLO%;|V6iRum_I`OcQ^Fk|3Uv%E7;6D$;SoGZ+u(? zDp^~8!2YJE@%8}5TW%O{LBz^!At~m!J~WOW!#K`>`K=MLe11cJ(I#pzaY%`vJ9p|?YVm-<08W(oa zHns(yFKW_!At?OKY&Wc%=@hI4O)j?u`mn!{kM<_agAc;L!GiA*_gB)M%BQzBo)x2gHUFIu%23WqY;DA2*5qY5ZE``q)u@lrZW{il&`iN* z)(!haoOdbh%%Xbhr4=#Su3i5SniEU81iGEv*O5J1w21aeNxijlT#R&|E zSgk7Zn9!cs&+Pg_?hnXg9sjJbQs}7DTgx|!)jsTgMChQfD?w_>jKkhvMhlV6_14cF zAV0j?BXm^y%f>P9J9*PWgc_~&)_;b^YKwN;B6L!+Ebn0MLq4WdK_R#uuybOyAL7>v zos}$W3*IMwX_clq)Io3UvNl$`U$s=|qVyLoJ>@wIb&S|TGZp5|xP7tO0sSL{Fr{5~ zje~s*;}F_9Z^&AhH(MNw)z-N^R_Ll^*}4zoi#|Kvf9&RlZ9(@c7s9>D8E~(%y90~% z@cIqg_^ht7_TNf+G2e;xmd=X<%{?4g-fvK?_5RQfUL7fJ$+gikuE3$Ro=VmafA9P`5M~ck`th2nHxkc!!WLe)qo5&U`{g>`PF+H&Ug zEn$EIiyRj8quN+6F;~d}Vyiu?EsF+S6$UEV13V7MZw~)km-ck9_^y1krE8^=!XPE9 z7#F2-KGJP}K0-K3Uh=Yu=7Ja}lA>4t*b7LE0ET(H? zb(d#O7vF5$V7YSVqh^Q;7H#8ulFxP2ovAWcTsdr`Wyb+2WT*qneL%YrJ>F`EFNhRx z=i6vm)+I4*m>?K8$PLcg|pv8~T~%eYlx z<`GI(G2YtH7+L~jXdaBAk=bBJDOuKTd>lL49j#>j(ATWkF-q30zhjlG!fsot+fu08 ze5l(vC9Ck)ksYsO6+Upb9oe0rWZl}GsAOH*<^E1`!?vTkEe9VYsN3Xhuv3(*B4&)*~_TaAyK37727l6Ohv%$_#vI-v@?aoxPZhe@gWEFAf0RDP|za7Ef zMd0sjC9CiOS^Ugw1+jCKtdm`PcCM0D_{;5bA0j+pxexQQ!A81aJ5t>`LEWMt4)Z-= zR}!nw1}kNQU7%zYZNdHJJ}gwSiuiV-x~&F(mq6VXWrK}UvWhl#w7Xczy7Zwl`LM(T zmixQZ4cnROwg&7jgSsvAfbBx;at~N;cZHHw#KF;rl^(F%hgC{e5wk8-w`lNp1=MY| zl2!BvM|O>pb!j(@>_&UQav#<^oBOB`h+m-CD z_kiU-Y;ePNC4bj}-PPdlMkT9=182JvyGh9^>c&}aH%`eaV&=$hRMsN2?Tu-lZZqHf%753;*m$-4Dnhmv(^m;1ZZ4cndS))RbK2X%}0fL%}Qu57To zJz%*Hd+gY-K0DO7_QiD~mdhI@P5b6E#Bm#9PN%HtZQh#=c3(Ewglw>h*vt+41`LpaaXV-SFCQbB|Km2Jm@Sp{Q8x%9Cp0kOPZ$`Sr!7a?iET4n)Y(CDg8rEoM>mHhu9aua+UXx+z*(_T3O}-h{PtnoZ=s8!+DK1#7ANt+D z=2+eAg|n?YZm!dQzc1PhH!|>*&hM|IT`cIs(=Fw7=|kpOtL0sUL zVr&P?DHklp7y0-7y69fKoFmRSzr>Q%xtb--1&bW|aH7}`+UTp1;^JqkEnQ0dU^cs8 zdAl`Q@lN>FUoR$1im@F2XQkQVz+(ORwW;HHJMF;Y`FY*1l z46$_2k=^gZ7-0Qc?yV|z_|!_Q{&`s1`{tu8XB9rkpU)$UWuH2~Sh!nnaliLObG1qz z&F36gtQY!#c3Z9W67L=!Am;yLgV}I5$$Z{{gEUY1%M&@}Lg zw_GQde|CVrqFwakH+863wMs4VTJUUPV}X&3h7K89^Q zpps7f`I(>C;p;}iZ>x`5zEap#1tPz-OuX+P-?4js zF+kf}JonQCbIB_o%y$*6{J9A7SU1Q1`?Z3VKWE@RaJyH)Zh5f#jf1}!Gi(pEdm8*5 z1pY>YzuUmyZxwcNN3I+4JPy4e4lf`M_Y`(BpFKeP7~fnF-x?6#bcpYLrCqn}_MMVt z_egR4V388S#DehE@OM9$g%LGhS{@K9=MuT^V9e0pDBn==hk#n*t2eWR4BzXP?-l-L z#uw`t6q`{;iq#9CzR7v4Cz?Xairr(Cy-7gokTjBsU%Jzok}{5bUM>7J3Px%q!&pqkzOXfLVA_-8tHXXT9>h(8^Ax^qQ5&n%lzN23iABb^Z|q> zb1j71_VbrFzCY?!U?R?Ss&Muko03=6_mcXmrH}f69LP$3rh|;dUnNo6g&##|pb8zT z20MpyBI|QK@UUzb{wB}=xCX#&Z`GS5uk`k6RYv0BT*#^_1?`pX!gl8RM&6EU=%pH_ zR^6W;kQ>p^S*fyJ`FRJ<%lbG;C3RE7@4XoFAS?N#%628_8kx^V(0hF0yO7k9>eZ3F z$Ue?_^Z@f=z0F^~mi1QofDfb8UbPn)@*%4lPX78Z7S|$V6W2N5Lw9w?(glY6j6ENi zAlJ>v8O}qT8f0Yj1{Alkj%)f?uccQjJ!t(ia9R7s1~Drs^+QN~UTI>PEEKPxWRiPsVAN|V%|GA<++V{A;&A;yNf zhy(sYNME%obg7{@V^d6WyM+dFo0~KDH-}| z>d#_CKuN~>2g&0?V$c3@+p<0eANM82eZ)w}rfh#q;yNf9kmtpLOK-pj1kz>XEg$|pnlBz*lLn3yTnkQvD2yD4e~{Y^ zW5CNSo-gp_SFt$ffvOG3nkM~8c_)AO>2cKC1K8$@4 zD32le`DAK8D%(v5-yHMg zWQgx@=sODx)tKE9S?06P85s>!5VKHK*`(@>9ZzlHDo;*^{@Yy*ziVZz!Px#}7kA|P z^R|HR!fWUi3T?4|en3rj_%`Kr6^pM!yTN?XUM*#GIZ_MR^zt-c_!zm}O#P4~&ljr> z*GBf?8=8lF*t1@l9Qt#)$C-iP@LZm9j=e;;{jR5*9+r|^IJ)MKm%k$C-R)i z;;W22+*V}|2+I`oHbN&d+Ccu_ygYhyX@4f%%kv)Ky_ z&|%>?!Vk7z6bIHjG+;195-TYak4At9jq7UL1AppQG59;H8f_dE$^_pIrLxX z4|3jV!dPG47A)^L<})v8F4&k7(3G)!eoHsF&?I!1S4P%w_1;&8K0p~aP-XxgcrsHpv!^^YzP0Lu%<~JQ<3#Q6* zx2wD(!P*Gs$qNZlu|qg>dPV3^^WV0dzK#-{WB>!LqM4ZKuiz~6}hEg1VSP_`@QK7M}k8T{?9 z&KUeYpe1A1^SRrYStmKS!eE59fVm}fv7r@Xo2KrU=ON~U0}uYfdPg-Nxiw=;Q+zYm zJDGeujCsgAs(Hz67<-uNhCBS+Txq<8{}a%bv6q5qo$4Y_;`*$Q`b|dfqK(2}3s2H&tH$hPv=!8MHB6JN>0MbOqGY`K=qU zFXHK1Fa3AuQ#@9(KK}0xtO?|MmEF+?)d{2A&mJp$$O-v!=Vnvd6Ik2Nhs4l>v3*SP z`nNWu|$(XSrXbu9UJ5y z(2KE6DW?Y6SbR^H8hSChZlWb-Z>aj%1Sz1m%+h+@N5L-9%oqFW-dO5>EU3Qyix zF!W=rN|M)Sm0|jj>xTUyqS{bkl9$9I1t&Z73p6CobF)An@# z{^9D~lb-kwVC);p4?d~(?C&Kb#2RPYoUWyL81QJpLc>7DhNsGXeHrr?V~g*J(?*B` zm$y89szF`#>pXi5gBY7a?Y5uU<#h{@BE$>6;^~D0a;w`;YGD}6*u!)!a*X-Q`+3&~ z5#rjICa1q0-(9__g13J-W8VbI*QQ3B5BPb-FKy8c{h+_EdQ_)jh9QiNr#KY1 zv1mK)+&uA*j=ra_){9UZ58N>fWo&e+9N)(*SL1zp^f`B%Nb%4Al{|g>Ze8`6hyuo8 zjP>K!Zw9PCuUqYFkz$WpxlgA(?yFw@c1X%_WJ7DE%KaC27MEpB|jvO0=7nFnGMZZn6bRw62|Do_4`&>c1Cnlw|{%jFdEqFpUW{Hq=7vZ zJ_PO6i>prbv8cKXP`5p_)i4IwRgZ{0Us>Tp#&viec3oA=qq+msLBUl6#sWLeBD1QL z+AL=a-vr-|*}#4S4&*j}56{pXD$4vu!G0jrrrY{GLz-H?snXF7tpdjDd* zVLGsrTN8UiaW~H3ouGw^X9-0H}fyu;k*|5JIrQ|6uC zuoT#tH%iKJD0tb4Wp<%%=A=wSz>Xuyz z?AU)wFn>dP=W#uTXuPcgcJX;)z1@$u)xb7fBeSZ3|GM>I4f@cV*rdPQveCdc^&$2T z<$Phw59xAz*8;ocS#h~7%Kh%v?mA%Crx4qsk6Shd*qXD6&DqZ_8w+eVk=XFTPAuyW zURuJm2D2FLuc5!f{`#HKGxavT@-xnvWt+CIdF zpG*&kpC;H@!j4tYO6;T_yzry%S3$ek zJ)0@)8b`_EeG$A56KXiZSbzC?Qz~?h7D4?e#cyzz4e zm6QUNgx7fadQk{*dEMZ<_~D*U5o7~SFg84h?%~0nY?u4%r3y28 zsU`!f3OLDF|5Ul}WPX;!-vi&<51bFOs#A=W0%f~JAuO4(mHDAY^cOz+@lRuHe2_uD zkH}blewjTCbqj+wew<=v>{5z@{9PfL=SSatQoK~-kxjM$>*;tqE&EGjD6flg5ehz> zfVxQrD`WZR^G$8zg7;r$DfjOoZqBj_{BrZ&60exUw9fZfL_XOLC-5L?hi z|4jiF?yo~zpJnW1x)1ZUt&KBdksr7&P_Fx*V{Eu=S4y$@kjYLr%K1S`InUS~bYCMi z)y_{g=2fZ{Fy4nj-R`GcV62MnIi@flu#fS6_BrDg_!|a&tzp1L#@3^D3v*GobYK^P zzeNp~$gX_P26yEA!2SIMeFnx4#@BF}v64sac15;J_wAQ4e|i1TwwLNQuTl zpT?$lV|!oa_pJps9_++*xz%Ilf&&5W@MVz!L+-}{X9tlhq2EdR_$eqKXaH|)O>v-^Ot zDoOr4OL-4ke$Q?20sU2}zGv*(RC#V$#@aZuUJ^Xp9tttTIK&wq%62J7Nwzp-`hoXF z!oaSS@`KEJG~V!8W=lQj9V3RYTc8sC$01O8fS``4x*HZZ_>#B(?;&P68a}f8e?G)4 ziGIwEB-SCVOA74*FG;LV+JF>R{qT}R=p9U9Y)GV6l{-R`|ubM z=_u0Cq+>|Ol8z%CPdb5gBIzX3$)rfi9m~;v0QqpCl%Sl&|t|VPWx|(ziX*B6t(siUUq_L#yNjH#gB;70Z)(qzR;nr29z^kRBvGM0%L?2x$^&GHD8_ zfz(K9B26VdN_vd+IOz$}lcc9e(@4#v7ShwCR?>9RGo)up&yk)dy+C@A^b+Z1(krA_ zNw1M!C%r*>lk^s;<3r5wXNmvESIm#R!2E?Ffn)Ogoj8#cwHvnxQhb5+4bja78 z+cdoe+o|shr{yBMvcD2z@j?dKvxPH4-X|HF4ukDOMdqjFR{8)7g3N{E(=M$vQ*-4H zj{2+@&+odBmPcV1cQO~c+l#N(ggVs#x6Kau7T6_Vw~W#*`;UXjVVPenMKGvlhBN|y zqrl&?jFoJ0zUgY+ufb{nvZWa^Yx&(2!-{>&5=%UYRQ^ zeNbVY&^E@Sq%~6bF(e=)?=R5T@50ai5KDQIjUhZg`qAg7kwVRuRYRUWhY!vV8qGe8 z%^b(vU(~**ItxFJE*kRvA9`{3f(_=X3cJdiRK`1vg!=_P2VeOMzFd6zRI{%O7JWc} z_r_KfO5A!7yz7HrTo$G^S5vUKBgYIMB$+=nhfs6d@!(niLe9)z$XuOR%GGMlqV4sA zztI$`x*>S%e|pgne<7`g!meaMhVvf``!wEHMg<>+oO-xUsvpdQ3>=9ARkJ`uof&6827LP;m z4wE%C18N740=uK$7uM7#yY}-N&r!p#?9&uK!{Tc_T6n&ufzk&>yLBD(ji#>8hTw7k z>8+Od3z~*XyRhVu`vb;!%9I>Jp*^fWSkLD#L|@1(!LsXqC~(X!?`Ih?6@}fG9t6jK z&|6oAY3U1@l`PuEQWW~{-}zbpwTjcHvb*WvhUC~5Sigg(I}1Z6uyJACw_t++gB(%v zL7v}uU)%V6q;RxF)sQF8_0|sujr4`g66F%f_Mg(RpG`U)DU5@0obMOC_0Zj0^o7h) z0`EJ>U_pPsp1E9DQ6@BG>GygoLjUn3{ zi}9U3W2;aG@|o9lz4iBDMYK&B%g2Sp=5F4`e%p5o#eG?xv>tp@P8&?DeayJO9jERW zM99DWPQw?)ob}a)$UfNeI-VQtviL$?|9v0J>sH9?T8)EU9$U11qDYFMgZZNIQN4BP z!3J7E;V=JXBVmhpaFUX|+nb>;n+w(Qc)sMj^)pHosY0?^J7b3N|yZBj0wL zL3mq#cF6Zey>*5$Kno3oFTO@p=(?iOFzZ=Rm)P~9^wXuAojMuNwr-MTB z^NAsgPUx+r3fI*(V{E2f?klS5@IK*%G%Dn0v))?kbPa8DVyP`y-7v;1r-tklQYQ@x zQJvLW&vmJyZ9yzw|MK%AU*q~Fp=pU8A&Hmt)?+`H(Y93DW%C=h8T!y$iWXkZY8#Sp zLvL*rQ$*WJ$-#aiuKH*=;EKwZTmzbbUWY=gr3%W{0LvsA8 zxAy9GlYb$zL~&q!9eu$5UYVhwLpjC{0o^S{)No^{Al|@*DAt+gh#>i z-sr83ChX*2$V_(S9K~Zc<#ukNYAljDHCV*3@TazInB&G_Km|H7AaYy9{ZGAryNi*`e`6Ez3IYX;wg z{5zrYYfTq027l){%D~T$y1Qy2&Fgv>n(AN zVCP@^CZwy9#dEOpqdH!{b;}0ZJsWI~Y_L6*EKJW?``arUZ0~HaeX_y!RkE;`wZHw8 ztlPTvSF&#H4#);OP{|%}=kFjT>(+b}{+qz9tvapwRyG_pqJ44C3^~JXtdtFQfs%FG77LXu>}4I_McH7Zl&sq}UaVx@`miJ$?9yzo z%d){P&j!0f$-0fh%51Q!lq~FJ-EOOutlR#uM#;Lh8=Vbyt&(*chjmKUt-mo!7WT4^ zLu@wK_1R!IWP{zPWZlMLlahtKtm_u1WZlMWvyye|!xkm$*6!A9u-lX@>}6fI?Ml|I z4?C2sTe~~6!NzBU-IWb?cQ)8PjFs=7;TJNyh*?Ga+h}-3Wp6gvec50WvcV>1gWaDE z7CHdFB>VekJQj}E#|Igj$?|(PsH?U_YTEoys=E-byUW4nqK6zx@3!Li*^8S0uX^Vw!s zY*S@-;88bhU-I`Jd^Q9A1|D<6?t?hMVJSa+mXwiici?e1?EK95ilLu(1)gxj7CR`n zTl^Wl`0V4Zz>{v+ewqD2+^*Ukc*=pbZ?}iOuY@vZ^VflXCe|*xJ21_GwQsi{GyAUy z{Ws9;z}ok-V%sA%(Ql=?i=fZJxCpd3u=aKx+wF8VSSw@s=K+}yz@vR;S7=p3KG*KR zbYkUuj`F=h?gz4yM>T`{d)WVX2c998e<3sHP?3H3-AQ7%1)gQB>wY#C*y6u_BsMmxz`9m7lBNwjJYp znX#_pz*u-Az8AIwuVjP0>fnQY|Hb^_bi22l=xO&fDkT9v^p_ZY%97KFgn%nRl$FXS+>bDeS7) z=iTTt`n&r@X8ujwzuR<2VORcK1bslh&3jv(w8n|MOm}6w30d{u(C=zjm;H|q{Mx}T zuNUgeOuOQ5;;z7N9Q@_yM<3pjznFio@82Ext-@~R1H{NSq&UDlB=#w|EAXDeuKb19 z+_ruG-Cr;v@V?Tn?K3L0dz9u)%)ebjb_IT?WMMC}pLK!!+fD8d;;4vife&OK68IM~ zqdo4!9_VNIX3W2D$L#RweZ%twstX1YVK|GZRyo9hgGqXIh&n{Eu_eI;3?; zp>5c!K4}BehNS+a0i>|XXRkm~$Vlwfh_o?j6Vj%n!K5Li8dB`B=s&J>P<5o(5pX}0 zDSV?hX>-yRq%E0BVk^?tq-{vsGF7SCk+vu8K-!VC6KQACE~H_kT}iuw@R1$lV z_9E>~+J`B8=M!l^(*C3aNC%P*A{|T`PCA5iDCscL;Y=lQ1nEf9QKX}ps#If0$C8dC z9Zx!ebRy{_(#fP#NT-rcBgGMouNktaW|Gb#olQE2bS`NG={(X%()px%Qi*f{=|a*) zq*0`cNtci=C0$0koOA{0O43!Nt4Y_8Mw6~3T}K*28cVvKbOY%|(oLjsq?<{%kZvX2 zM!KDJ2kB1Ic+y>@yGi$u?j_wvnn0RJx}Wp_=|R#%q=!k5kS38PlctawNR6Z>(p1u; zq{m2)lb#?wNqUMjjnqtPAw5lMB~2$iLwc6<9O-$|3#1oGFOgm*y+V4G^cv}P(i@~V zNpF!lKgf)8RJ^PCD-iM(y1fnNFOxTWza;vM{FoeYUOCqZ|3yGJBy0SGrbm#?L2TIl ze^PROtz@5#pBVzbs9_EMIyecQ`!(excHY9(hGut_?C2&%G~WTMnf_H$L11$ctDE_+ zA+W2=;;%g5qG1zURN+GR`HvyV*UcJJZep)&Zee`WF&{Li{169fmGu`iw?FHxM}Jt_%JyxCHaWPREXHML&li8Cdqa=8wfXDaKYcH{*e^*0gb6Jv5zh;Fuh!& zWRLgDq3!TUZ+&(kJ!Q&Xjj0H+4-;0K77fny7Z?3`#uw3kbx&^{(Em<~X{W|il-MbG z;!I6K3M%Rr{t&3@Wr@Lm zpO4BgX`RMYl31_K$);}}D%n4d1ZczH;imJQybXUuYfPnx{m?SSbm+d4?F)-&yz$g0 zcMih@U`uDiZW&^`fxoNnyjQewIq-J?_*;kkElX^WT^#tDwF$)GD8%7+ibFYKJ&A95 zVkf$2x1rE(NziWHsog3Nd*4NW$PfMDHuQ%f&>sxYA1V_2on1fU{vPcw_p?8spG}5- zR*BffcKw%+0G{oUP%vsYR4uv2N z^|`+;=C^MtzGWc3Hz2+Zh~4R;-P%*TeFN>*8Q6xzeq{YY&O5wMKBfNfmimJ~v3eK% zY%l$J`ncoCrJ(=IM#CkHn>4@DvAlbCRVcz^MEkN5E=FNJ2y$w%bE`$Xtyx>1C-#%=b z^P6(s)KzP!Eei8n=oFQq3Czc##3tX{Z>sn~X7Lx?u#Hnn*VW#BSn_&R5}K*gAivT-=~BH79mj=k2DDnwjeoT*JimuA&`rQ*YHB zd!BMNPGf38>^QHDCR4M_bqTIh?>{f2eQ`%`{rlFVlyciNrk2Fcy}R1 zjG^mCVc$;>hx^A;eofGr+7O%5I>h9CQfYVks3*cwcrbZzRAS29gBnv?V#8D&O^d!! zvakBz6oTNvvt6R&T6iT9r2! zTc2@%b57eSZ2A*EMEr3~O7T>UsROakrsOgesH|KopZRTxQ0YC)^FOspNjRo4btE=s z%y-6C{z}&Cbbq13KM;pnRa5Sr(3mP+mv2gVuqx06}kcV^^#t!WL{7qxCACI1T73|)v_yRU$8L74IyXXfoynvpOE?CH}v z*$lZljM&55yBiKWTn}A(ayR4!uxYt=BvpX33!Sc2gt#}Uh&p#%{lNZqEVs-3J#(k64!@CkaO)E43;)#(9N>cG z`K*;TRCi%&g!uTMg6ht{)CnAD$EqFTyQ+3g-Q2D7#8;_*2CQgVCvcD*>*zz}O7FDA zYRng#M5YF`d+ZlD*v4+N-6!CEy}_tO+V`{dq9!dgpio!8z;G8VubZFmVwi#@>xDlX z9oQdK+cd-tJ9*?H?LV{OKQ5dK4Y)qMrfH~+-D2|r?P5+HR`H#-M2-2@=y|CD-o>h$ zhPhy|jgjpIafsYH&$m$T}9E42H^=&fSE z4gp1XlrfFBW4RBU^<7t0tAhWebM^fz{}BU9nBUV zom+5d!i?obO;hYx$C#B|w3o4~hD}cRSg?p`s*PRa6f^G~`xyIt%>0CR(S=OY>{!Q` zr5{RQ?7`wo5@r@JXqxVZRUb)Y?ARNt5|*sbZ<=9aS2_7meb0WzP8k)O;9okQX{H_P z=tIXf2N;|F^X7!eO?gbSZ0rhKpX4#?Jn0}~D>sWzm|ixwX|^5f*v978hZtKsDj}iD z=A5QEHg=hl-SVXlGq&@Q!wFI4a+v1Yv5x-!{6J=ZwHOl)Z1yrm*w`gbZ7jtdVRn6w zpGb%;r!viR!}jltKO7@jOKv%xuu=V=G1A6HIoZAbNoLQEI-igj@Q-o68@A@&WM(&C z)vF1k{ofn)Hg=(t-BT@77<={Nt%S!7{xV87R&rvmKa$zYeZNU4U;lr`1$L}sTf|Q_ zFuSK7JV>Zi_qB1Mjh*LYcbdw`SY7+a2_I^|G%j+(&RZt4@Af}UFw}fzjIyz_o!ak<> z9qX7&+9%2EmMb|EE0?}&TxnxRJH@O|;bY8hbzPoB-;%eDtL#|EnB^TSvlR~KOB`1G zhHkYJJrot@;LM1!Suq3my297M!R8u97gP|qKWy6 zoHwquu>+jyRy0{=jnzveo-cgHxX#A*aq_p{JDH7`Rw^-fk<-Q)JJvA{H-k?we?@bd z#Aij)jIlPhhg03=&ym^u8RZfe6gy#D?}nXoRAwJ(DklC>;;3PWU3+{IZ&ye*Zn9$?>vpWW%tqYwP261durbcYwsnfxfCVxe z^k?bmym6b26`W$$xYQ{YhoY_OCw3aJ-MHP3b@X9PfXqg$ z?%eh=JGxmw;`&vaj5}>?kQ19TTxPoj1SU>SUT=(d!*-r3vl~k`N;ExMXWV6D{hjPS zTOhLqpEgdMTO-=I+r~OSYf^K)%!Vvzn)u}WD&rnv!*2e+?#?_e$}0N*54e$;l56g0 zYHAA104^}kJmYR^io529rskI7jvMp1?}C79W@PRw1GwP~54rDqW~FIqWoCtCW}AG^ zx%b>*o|%y^^ZW1jo!4vpF!<)ox#!+{?(^JxU}k1C87}R|YhS!J!fVf8pYIOqd1;om zeS5L&e>dJv-|Pds#Rqn)59~G{*zG>BJBTgJ{qasOthg^+)w`5D{|ne#*>y4PacUG5 zGV9Mx#Wi@Zz9r0lpU%=AK0axiRwv=j*>lrtTnwQ?W<87d3-~Pm>oIf8+%ej?w1o5{6B<(?v!2E4GklJ1c-UNi z_gL-Bg@x&*145{fS+-~ zmu{)lj0%}OS@hR$`vLj0zvH#&i}P(C{}-8&;iWIc^`y972ZWtVXBNP|1$M9h9j{ab zyPN-uq(WxB55n#_?ynLC{6VtY^hI>j&ek zGhB?;90Ch0JNsgPOEig_`f&kLpXs0(SorAAR9 zvz`@p-TN)OfPQmlHDZg${bLa4{^DM55ft;mxxcdQHaqtZ%OQ5_cfT6NnY-}U3`N@T z3kJ&9Hw`T?5#KGi>ED**!sRJMYC` z{G|x=w=wy9lGx2&;$WdT+@Uy}BDTDj_)e$zehBe}bEmM=#1c%g!xtv@^3$wZ#5zRUL?D&XB{Fxl%@PT9_Fzf^6w>LTh&;Z(YHI_2gkPIQ{>jq;N~b9^s@Bq)kYhk~Sl4P8vxXMQS3INzJ4< z5b$AP|Efw0(w3yHNLw?7&#@tGOWKaKJ?UGd9Z31<9*j(S%}?bdsWZLqLK@9fRl1UP zBkfMwgQ+C-B<)4oo3sy8`169K?~wK*?ax$_29ORU9Yh*KI+%0_>AR#uNr#aRCw-4} z1nEf9QKWo#9X{oRUh`dXNg7M9$C1X8jwhW!I*}A-G(IMC`G2frR+U-o=iyIcl3Gbs zrjj(9bPnlU(s`uwNf(eVBwa+hm~;s#-`#@Gkz}t`MeItgpw|hciNvoYO(IPuO(9)H z%6C*GX$`$zOUidS;4{GJHQ$|p+Y5UAA?Zfak4RHVKPKHo`U&Y~(k-N0Nw<-1C*481 zlXMs9ZqhxZdr9|^rjgo6(@8T(GfDT89w0qPdWiHeX%^`bQah=GG@Dc-%_04i^eE{u z(&MBjNKcZUB0WudhV(4yInwi_7f3IXULy5U$qcR)x{_J*p^{nip^{nip^{nip^{ni zp^{nip^{nip^{nip^{nip^{nip^{nip^{nip^{nip^{nip^{nip^{lEOr>pEHvU!3 zhe~FxFqK~A$!=jPy($pvdKHa3KX}#sf=XtsFm@}ET^}l$wZc@qRVKTIiEkBReW+yC ze5hpBe5hpBe5hpBe5hpBe5hpB3RAIJi(=+OC9~#3C9~#3C9~#3C9~#3C9~#3C9~#3 zC9~#3C3B(Hw}#XgK2$PmK2$PmK2$PmlFM$6$PX{5WY&DBWY&DBWY&DBWY&DBWG>Xa z2&2C6p^{nip^{nip^{nip^{nqvhbD6nh%xCn(I!A*r|F!C3B(jI=@#{3$?!S`&qS6 z>yS+SR+#n8Oso%;%$g6C%$g6C%$g6C%$g6C%$g6C%$g6C%$g6C%$g6C%$g6C%$g6C z%$g6C%$g6C%$g6C%-a7}$^1orC9~#3C9~#3C9~#3C9_sgCG+{z4_qsm3$?y=qxt6T zUT-M;xgxfY*?wZJFHbrvnRRx>?rEtSolTdq`nz7G&@#uOGJ1HiE7q(<@7I)jL52Sh zH+~EqxhX26rwc2pb%fpYTM2TtfmZFh)ZI`zIx2(jJK^4Hsqhq~SuX$PC)Q@@hABQ!VqDvop00Wq&r@9^E{H z_PBI$cm_5x2ls_a=GX@_w7F2poO_~K2JM3Zn_tN+{GAPz%$7D#xeArcB|10DpuIB2 zipmq*A;(>B2UWzr0~N9F1U1Xx`)Sy=jm~NZj4!eeDwxerm(9>74}aPC>+EJ31Dx^Q z=&TUI_#*q#(CX%vf6UbO-u&JWx43!6Ko?f{Ao}g;sEcyj^muJo%o@X;i;)?FoNRt2 zGsXb-w}-5KX1WT$74fL^fzY`&r0ToLoUg6_QfkDDy}uu zI~f_q_hUILd=RHWS8Gj>hb@PX=~-zo)EOBS#`kQ!+nq4-OH<|ptMW&~)X-|Xqr&*U zF0!7L%%jhK5w!w78m4E~MRHh?_fvDeKa8wrCG(>PsXR~C|L%1>#p8R( zoE2k7*uAEG#Mqd5gX$nV!5LrAO6K1;Z)9xl#!nbK(S;Q;6L#CI`H-=JfuAvUQUUA_ zt2Qw9K~4X<=)+_u>siVCQtAhc&Drr9W2d;V?mqmHxt_6ongla;s+0AsWG;Dq9b?yC zZ^_s=7uI#G<2=szcP(S3q+X1j=43r9ncolQY|iwNjGgYny8D|wVhyuXE|BVO6J$warV*0)r^fVfW7xo3bQ+O+D67& zovddi^QgRJ#vHbi6S3mFUc9-KF;eX5#MH|INNQ7A7hi9 ztY;%3c(v8$Y{XC?E{KAi2frx;`Txf{04vywUUbOPIgM{R0@w&+pK#XC?D5$2mKt^h=Cg=d|lt$$WY}XLE{`WbAqu z);*V0oJ2l6;OqxZ*0YlNdNgM@9ekPD-QZ+BE1CZbWIZdHPkhJOLvNO5c2f&rjn_DvzLv8eJ6X?4=AdJoefpHM z{G1f~&9m0z(|w%XFrp0efuE(SP#Nl3$(%7OMN~4ITV>73;ODJ{WBHkE;aGldTR4`V z?G}#Z=f8zx`57_B?0-Ms-0AF#d={_2@w#LTucTAjK_&AOs2JjB&3e1y9w!beL7zh< z=wYa2o(Ywp{5)FEV%|a9qQcb9E1ARinYEr3*UF-D^&V6*SB1(|ey*)&(JnsSD`NTC zw|90jRC<+zO53Zvk~xf@kLy`+KQtLC$l5~%Z$qdcs{s|f{0v>siky0bDuY9*GC18! zd_~*ZP{naMs5t%vD&8`@u)?nU^?IfkR@`?NqYAz5U^f*i^!9sU(JuCdd*vTL_xEfY z@}sDty8=}d9`s@t#{)h`L3}GfrT7IN-wa+qptpF2T zC9@doeW}792m;yTNtmaQ8m}I4)hmoyH~{W+8b4K ztzx>c3mr(MXvr7{9R0y*9uf#-yqh#k{NT! zXv)7e_&SvFIkB#l%)(z$DSnpn?@eM|`%UCu_X_kch;==G!<>$Nv4~ePYv*_+bHhnHhyGrNO6G$Dr)ou@lKHO@5gA_*>srZ-J|LULE19)cP{~}bVr0fGVqGhlaoixA zaJrP-9xD86o;sg)0)E5lHnD}d-oZ-d<$d8V>P~oH{7GiXLVwFy#o%E>@r_zGQX~Dk zSQYhnvOMYS7}Ni)Kgp~rm3h#VDoiD*Drq(Pes$6s^!=KoL8QEhLy~IK>(@!^kk%!w zNBRb7ebNS`4N2c5ZA99bG?+AmG?dgpY9xg_7xoAzjUa78+LW{zX>-y@(kN0BsZ44n zg^|Y|7Sa}^ElFFEwkB;u+Lp8(X?xPQNIQ^rB<)1{Hfd+lE~L?vY+LN>w zX>Za#q%a5A;~mm|r2R<;kPajrL>fanm~;r~yQD)&hmj5^eUEemQ~321(oyvN(WGPO z`|p#ErSFd;jU^pVI)QW|=_IDAGMRJ==~U7#R()FYt zkZvITkaQ#IN2IBwACqn({e*NgQ%TxFx|MVr>2}f`q&rD>k?tnlL%NrAA88t?jWnG! zgEW(LKj{I|gQSN@50hq*9wD`pI!LogHPRfWs`4r6QPN|i$4O6+o+Ld*dYbeM=~>cq zq~}R5kX|IcMCw_{ELp^75frq3`LmywEaLMJa3RHY4j1d!>b8jdt+Q2Gax_`K{CKdb z2(k2;(h@Gx;)12@k@L-tb+&5l9LbI%Lx$Un>g^iP9{PdWd&d08fxs@xOm_TTW~{v! zvEp+U&@Qt0oDkh0YTMgZEo*zSqxP;idvU!FMr84cen0Rw?MlK|jN1p~@9W_2H1PK|Vha<8%3kb> z_*y8wk0HLn5Z@{~f7LL2Z_#hZso$zXza52st4b{82aoYk&t*JR)A_*dV*9Y)cG5U| z0OM>gjI-))J|Kf*0X6E;6;mvX-&Qbw$H4flq4$C1D71@wf0!5DVP4#Wc~RsC&0bUI zgT&e<*g4;CFl~VOb_?d)c$jZNde&(dV^Qn(*`_iuk4L~ft_$D+0;PHuM4GfX^(*zuO`Iu7UhJcT1eT9fzYe9<;p@;cSci(-9&BnrY+=^7h6UIy zPV3v7VD|{DZ*LOoZGHRGuJ^Z*-mWeVt0)fLAPyrS4vlsGss`8iZl?I2hxiVK_y+5J z(Dhpo^;>!9x1XTjLiBdoIKw`}@$;C*!(RD!2jI-IazWo5>tS5{!gB$BQ ze)rJ$-2~(JF^pfMj?K@LVqW0-Cgw$$o^|F2jE9xx+m|rkio<*hCzkhxs$1Xs&^*2i z^EeOIw+Ldz`iB0ZP1NR)A8>tZ3;AI*nbec1j=kbDu=!Yi=8y)*Nf9Xbdf7SV6W;1l~z*rSTpo@dkY<#-!}APt$zi1N}yFcwIs>Wwd=3;mc&vnfnmpU zHM08y%gFc3!{^?uO>!)F_o2NNv99?+%(uV81LO;p;ZGcIOLCO7-M6>a+tsa`sf#7K zB&>z4VC=N)`nA1{o|Ui<@cq%3^^v)zX?3jHma|EYhdn;Gx7GQOf4zfoJ6hpu(_anX z&t`s|3*ZTmsO)9&#M>c!p0n=_+ zH~R)8JA%7u_P5;Z;(KFXu-Luvv1w;>t2VwyvO}76z}|sa`kY5d0X)9g#^0+hHFYvu zwJH(Gj$7UL*gNX%^3RVHaoBusglSewtMCt0R1LNMf>MyR^{W zMei@%dggyT%t)nG)C5>J*KSF6^zS#r9<8^_)&Oi9#=+7yATklw%~l7J9Stv!vUk<9 z?79!*i$1&WKXxmCZAE*Pb6~G>GVE1$cVn^rXcPTN&s<=t-`1*}3{H_Vp1f`9;f2Na zAv>pgBl)ZHR^`KUDRTIz5K~V*+dzylwEwteqI_{zyi%tBDmioPE2ds%VbL!7y!yu=^ST-{m0mqp z%QFwX8r4_NI!mU*0`nZZ~zTQn5^m{PoK2_IJIoIDe2mvoOp2_m20KGgp)40k;O& zhw9k|=%=vz@0$*DM4k7Q%$>>do^eC%!}Ki6C4!Z!Wt-o4GDfMtAz6+%Iov+H0CsL% zmie#U?<;$*CCl#~7+`--&+foJKtC`R*SqdBYiGtO0pn8SMlZFrkI=KaaW*e$gL#?% zL}f&)Rr0In%h^ZjS?4tjj`zGj=a>_YPf^}3zFPk5{hdcf=~<^;^kG1Ux6EI3nyyqH zwpyMs+nhC8&$4kQ;`USDlI9stW-1wm)$(7}XGM+Cv(6laZT#!PCb_INUfDZ$mAr77 zzv+EFtF!x1sUQ!39p=Zb6uD=eCZ@4^)|uC_pWh0rW%{b4Rq5uRA}_nt(=^VF#rGC@ z@-51Jiy`-^ko#hNV8`oO7PA-GouFq~AHRs5sAruq!@lSM{z`DJg#OM3e<%6CPS&$J zAKdLu(X$2mFjdd$;?NQN^#^}DfxmOX-#9(1^8r~rGh0IJG(GEK*Oi^FXLbGxyTXSV zgd_C*chtA}~fc)dRyF$+vXg9$JHc`*&;t);#CW609!QYj7R_Cuf zo1|xT{<^ctg1sb|-d?p4GKYu)^+IJ*$hE zJG)NL7U;uzJ*%_ZjoOw3{w6@%KJbCvpl5Y$6Lx!$-4FF_fj(^1vtI2Ae?KaK?M`j$ z2|lcZwxt$=O(FJUAJ|QWV1*B#xUkWEHX8BT46k|cd3v=P)uH8NW%Q~fbJ~jDrp-RE zTYO-*`oM1Uf!*!{yTgUWFI}(u-0zQfy0LhTjMrxvyO|HZG3{v&pJRV*v7FFmxoMXh zi;TGb4g314e8N9oxv+DtoMO9U+Uuy6EZ$oni_aU| zmYNq&nye%|nJLdn>L~B^!eaaIXR@}gHE)ias6_lRL!Mr{ue{HV75<_g3Q08oeqxd` ze}z>}=o&4jxv^*u?V=CG0>_wt?+~Z_@!dT6cy7218yWbpi2ZeBkVU(%rc^Wg%QKZ? z@k`~G174QX8Jf=uACO;{o**Z{M=aI9lPJ&ex0^EDSY*VtvU|T}y0Pd3UMHj9p}UsK z?GMLmU5}Rga+qd2*^VB(U+J_fc zI<9OaKxE!nGU)IV|EWY=P`YqcBR@1R63_Jd@ z!f1b3lTxN-aIY7;ELje-&M@T=OXmT)bCE~)pP2SEvMO=+lH}4wH=8~smi8QB*yYC| zFLjjM;`4Z=NbXAcUfIt~M|D2n3+@BPA>zkWIb?jiQme*F`Mo;-n2x!zICjui)M5S7 zn#qyxx}F? z#NiaNqOL;tfIhzm@m&t_9R=}i3h_OyV++oyXMAAK>R8o);}K(vzI;0E8&g&U_z;sM zXTQDNbdFeRTe{%z-alQtDo6f2OF40KxjfN+$8?@padv=xfKU9H84;b#C(2J(ZX91A zUkR-vU(or$YcP<*=i04H&4*(rD-pv~`Ehbb`J$d>XC1 zK7stZ6!LE(@Ba7`jRec`2N3U}tS^l(fjOn_LRWq;; zFuv%o$iH16|HkC4IP#gBzaqA%-&6jr1Npc3s&Arh=DgSPO{CgSl@8>$Z z{0va|+XwRRb;`fVkbiIL?S_l^qTl-<|1O~XI~DTp7kZXmKM0@iA6jB=1Nryvo&?8+ z_cYU&#EQ9z9QuIvXY}b{e%flf*8b5-M^?4IrmuAV=C=*wHstS%awO#6rz?{kdrd2v z-O~BM&xFx7+Wj!&is@CzzgEb<>+aXJ-`24O&rK|3KHi85na52XHX*o^H0ws`%(Uo% z7OBiqgNTdJoD!LPB=vX0U5C~1f4i1hRjRT$s!BD|>ZCPDYmx>rm84pvwMkzmtwUOu zv>xdjr1eP~kTxWJlN7p#JsOh+lZKFnl0s*(hmkal6b3hYM36QiZA#jVv^i-cX%wl6 zR3ayOZ`H z?Md2;v^QxV(!QkckoF_(Pdb2fAn72|7}CL{LrC8x9ZEWkbU5jIq$8NR*D}K|YS8z` zkiJhkmUJ9xEK^AuPdb5gBIzX3$)r0Huz zOjTt*=>pP)q>GqJ(qhsjq)SPckuE1)L7G6CNV<|Vi8Prsg>)6^YNlAXfDia6Wu}s} zj&wa!Rr!E)1AYHP(v9@}k4RJL`yZ2TqVIn~x|zPeg>)3-4!qz6e4ksc<^B0WNCCv}i!lWL?nq@R)=B|S!Zob&|gNzzlK zr%BI{o+Uj;dY<$G=|$2@r0%uM|9xDQuV2l+gwW()H{sW=>z63l28DCG{9Y;FCccLR{@yjH((c9q$lfg)v4i=L;`CQsU-(NwA%5yJgWu&jhL@0) zhLXQQjKyoFd_OGUL!dFQ(riOX#vaeu%G(CR(v`!nbM{K=%V6VH@XL%fW$xuMgQ4rr z27$k&fgKTCim`PvUE|>DLtb7U`0$@WiuNxr?zDFL98-?tX(5w7^i7v1wtv-z;ImrtksUxX({|3S+WbNIAw9 z&Ezbvv%(mNI6Th_fw>Z7d~Tg(E6>=_Og=AEcJC}~bG-}kePRfdVnQk~_HH`w3w{lY z?=Qv<{P#Y8=_iAqI?`5=vEgLb!tPV_c5}erKfrEuNF~NT%i#Xv3qBr%zYt&W0momw z?KQ@VI7l9GfS(1nDzJ@0Dl;~b;+w%6+~`Dw~^XoGpm44>R~2 z;`PaT9{b`;7-zeKYcY0;$Y=09y$|rqmB0oW^L|hbwUNz{BDmcg@Xb9>#zK6b8~p0e zHoVU4mMb8iskq!4RVlY|9mbBKzTop%?=R#@OQ2B-kc@R1+mGzx3mym27m^eJx$mw) zIvsDT$Nu{=<#p&EH-8~NG{(HH=7ltV1KFG^v|a>x8E4NR_u+aG)2KeOw{mG63SzZh z!Vj*;8~aK34VFr(tpT8gUEdm_-4Q>N-S%GQaZWH>-)>lKZz7vhTdZ$h{1xk)x~mbg z>a`cffvs;AKUm)eHEN9P-Tp6(uOG%2*SAhqTQIVgu_C9k`0C@JLVTg$8c9Z+Ad*^M z*k%6a_ZjO$7+zl+ERr!e6xkp@8fO7cR`C8({y2jUfybmwzHVBW4`QxyUvR9$`Uc|{ z{u3S#XkK{BCCGlo<^?1rctq>wyuNKT-|oiQ!Wr9y<}n|?u0Fsx1H1pSc^tvmvSgR% z9oPH-KL>24!Oyb5(1fwhyu;dttcU}yZ-B78)0DBbMPIPIrMwdVw($aeJP3 z2d*Eg!umGFW@2pN);F24g;6KiY5*jpLgE{qYE_b1=M-vDFYpl7z$j7<@1ce-cWf*{w!b(CeE zp$%i3g>UEU5VNc2VGgM!;rphLwv4Sv@y);9$>*_cm4S^3X~)>z)HZzK9$y$ccI)tRy=`P~8Kl6uh7OEP52I^)FL8jjNuNVs z+zjr>*cg$|yvIR$1-`!*cIfb7N$38CGFJ2%`r-%I>yr9~!6Ib`zm2F`lVWz+o84f^ z0@u}v&uyKN%~>Y$4*11mCdL^ga#*wA{^E3=tqZd|K8&vWJjRZ{q&D_fbHPSj<7i|p zwZr-Kuf>ZGiy-yiGf20rhOU4Xc75vx?88*L*UR}C#+1H~1D{_7yHD6&Wq0&JvV`$* z#;;*8X4tlhf5N_gt%df;)b@NF(u>*`YbU47U-ub+~)zle6Ia&24N;(_V?8Jn2F@AX0%i)#x$-~6ecvaDng zEx2NHL*v{~+W^J}g!6Hh%Hkl#`qKIXlq$KB_UD-Dp~kFpwtsd-{M1}0xgJ&DA zt)5^T#qHAAQFZgUc@oqcm%Hisvc)%shX>VtqZwO~#?BpPSNPC$s8x9swA}Gc{AI{z z^dWib>TrHoMpCITBZj@Yd~!kE^x8zxnRweY@S z`+Tcm60osti9Mux*mY$m1N&DsV(aC4tO3tdu&eSoOabavPX*q#^CdmTnJYU7SoJKi(@%M@og=|6jmf#d z-d{`X4Xr?b=K*_iII+j^TKC0qm=A3IaAI>qJjSH!JYE3oD}Kb@8t&n*IttHb?-?pR zwHg)zJLN)o9*0t=Jy>q{J{!M_fE~7u*dir8;_KRPi-Em0l(TB>odx#s5@2tKklmOM z3S^f8JL>Op%wJ3I65i(!&9`O1&Oc79f5G!@Ij|usI4ceKr$8T8pbx!?-TS0KHUZdX zLB#(0Yk_Pcu>C^+hVM-&;6qX~Fl;T>HayJbVmnUUAOmlq}_8*OlD_>Wjp+5%VSRW`n%EUkz2ON$Hz?V7K_dZuNoP<^#Lk2X+Urg}p!C$?P6C(tWJ6 zFYvmS_n!pg^t?fm=Gb;Ic01kcdE1xEfjNlRcsZfF85=}rUSoEQH3OCz8S$VxVF2LIp4ud91F@14ZY zz+M!vux}4`p^=Q`_nQG;*wj$YS`0SErqDPGWd4f#0JQBV6$gIKl z8z$a6-`^N`f7q{1?r9L_R|~TO9^m0J4U|j7`f-$NO&eT~AiRJ!RP21|PB*n@W3` zKe4_*+akVF&dcd=bqZ{%;Rs{<)4kpXC!6ofTAL)D26nB%&e-p1Os2AabM0e)2$mo0 z;XTW{6YK!Cu=6e32UbHL)E#u+&Ci6<2hkV!zy5Hx2>17Ua*&no+Gy_;zSj3KoHN7t zZHV#R_bH-Me{p6BUvpOE%IA3rp?P_CAP!4xM;RL=_F=rl4EN&MoZokhv5lN(!f00? zv)nX4VEtjNA7`wE?AG^UHwWxK03VjwPB1ox{N;NUXj|`Z9%D~(y9LA{2jWnT#o-jP z>Ml`x;M|`S@%4ktLVvaouI@PvXkq*Kj1TNt^g())_Dh1C<4p7k{3oQQn}(urj&Y8$ z*J=NZ@9#LrIm81#I1N(XWjGtGX*pIK~|7;B;Nki&eyKFja78R>a>WsDGK!)3-UqBz_Q zM|-YgCqPnRJV`uG|1LFcbp8tkUQe3NW987t8`G@ZrF zmGxJLg57FHU=3d|R`hX+{kr#ue&N>x*furvOKz9fcI3=+`ir*t&*AxX8a%ffzCu=& vBKSHK%GQ>A4(%pFd@(RiIs~@`YfcMx`n2?El`G#b7M4fC5=~?wniBZRgxFGkecF{$nRh63ra#C-NIR z-j@)frgR{Ld=AGjxU_()FK#XDK^^=p;V9<_xYkNP`(gm!tTY7qe11DF2vML~V0NF3_k?G#~j~_*9mkPoFr!d#rEINrC=7tS3$yOSMA; zJR_+KO1Twq^_6~_se#fDLZ~7r5B+NhSMG0A!QZ%o|Fa7Irts5p%m3=ZQ=Y$E`Ls;s zpTLIqP!^627r`W=wy6l66u>osYxg2g-MNI+U5#o`Uj1HZ`u_-N(gn^4eGkXDIu4gg z$d|^1h%5+ck1{*B5z_G}A)W2vyx@We>CqW(Iw8HU5Td&lE{YIC86krpk3n4tu|zv< zFAy>uvTkf{#|nTvdjyTch0vT6V!Yns4)L&yf?*}jI5 zy(P>{{;7lFfEM<)A}>GuL;xc9AQKf!gNd|Oy>rK>Gc(1 zbg1hNXGj>M{&1FrF@>|H&WSJ%-h>%$2j@u`XAQ!5bR~>$N5c4BB+R&hgqdsx=LqLZ znCUuj!GxJTn=tcj;La0f$!)@{ngaJbVK#zqdnsXdhY)5z(xaCW=HmB+xzZ4>9bvBi z3Rgs!<{J@h65wT(pZMHvxvu!3_Tf=(Ub zbcmpffC#$Yfcrlp=+m4C^wi;c6M>1G2rL^B!Qib#V7r$H-1UgS+mr}=zlQ5U1b$D6 zz`p?zjL9N`fKa$oL@?Qd2xj@i%^-r1U?Nx+M+7U(h+u6H5o}ouhw!fJaNiTbo+EJQ ziC`b%L+#)^iQov@8PyYR01?EP6MTtb@T8CRit^5Dr3W-`@(Ek2JO}{QtGjJekgOcEG61Bl_L*YC$iJI?^ zL~VRexT$d0h}x7dh}!H!~7v6xY-+=Ad!?MXJrxt zQg)M7P?E0rBqWWmHsxPI*c1g(yr36B2x*te-pSF(3I5DP5iHnF*oGvy0ZUi`2^RX1 zw~GlO!W{Pha+~HdicaJU1$&irAgvYh$2?^pla2`ft4Rq&&_>ab3MU!DsZG>Ozv^db#pbrf;|k?DXk zM3;t|@*z1>F_urOtyf+GbumgHh&K_syK-Waa$=L}fI=uV)Rb@`h^;~_pH^G15F7eR z<@FEbx!5F}*d#ij5DE=7C0qz%s}Rel)z&M-hQ3m<{R1f%TT=+jsD`)!uUl$$uofi| zb(w&)Q)tlpG8L&b5pa@~a+0NYBap0$RE`KZ$x1lM(z_8zRz)gD1e|2?eEKhXH08S5 zj#~#mSKwVkH-go&sbb#imdtk-O(hof?v=kf2Y$A~y07YQr6{=?>$e9T%%t`Y<|Y>j z%aCBkhy=gdE4)bLDXA&Kl#W+FC+x2ZH3eHztXa%HdD!%!oa8GE6|cJ9=i>jYrPoKa zU)P>-*OFIWgN51LOFKNYV!?QgU$BR;sVSnAFNwUcL?KdqN!TKV`m0H+hb4-~`S}V( z0e$;fKr1c$cvq$XH|&+{6eRyjEdBnH#ag8M}{7&?$10Dhir^mVjI6`(3)?rhtO>9zPqr|p^ zJuTK0gPh@sGE|vFe%e&5fhu06X5xBc)>PbvOEeSL6$?!N@-wDwxp;HLm-{Wnb!dim zNGOXQY${em3KxhOVkQOkJdbD*mDx%CLs0o`_Lz!=-76>WTzPzb5>QdRs1DQ&b1>yuZV9f7zi< z>LN8TwF6UGcsEUv5L`4+5U$lhT_jRh*U(TGwH3Xh^I9`o&18>-Hws6u_wc>m%M)d& zGKqYTvh&ZWvh#Z?bRPcao!?WT^Dp>m=av24U$OIH6+0i+t77L3Nm=EbAxeG5orAho zQr(HNol5e*2gHf6PxD&k;UG|>TzatUU<7+SynQ%=A}$!t9u8|C#s>*@oCj(T*x&OyF#HDjY*qa_UHWe`Cw24 zHyBCSIymuDCx$(HrpXz(Obus#T4McR&(fn%;o*?>@CElSZLlY|J&E3l$VYdysZb^tPnAh*cLcJbMdKDVC9U%m4N@ zDLI>=jY7V@CL&?Ew<(q~W$a&F3uE`~ZL(J`dET{seAnKRly{A?^Idz(jA-e5aVon; z^D4VWy~?gpZ>1hL`virh@<-;<-j&=yhSqoGKc*62QYW9i|FFqJoHF1JBi^q;1V?<{ z=cwF!p0ImUHW@v!cjtpH!32j(zvB-s-Kjc~%@=+9Ey#PELVS~q-cwa7(N>urYNKc? z@91CU93XtBQvTp)Wqy^B#)`hA5spSSrpF`iRarHxvIqD18vaQq!LZE=u7eZ!f2R$X zDD;tHqNqtHEE^NHCDGyz=r&fckKp~Zq$VBctcJ3yG3Q6Co9t@ean)W}hv?}Ic}i9$ zlPSM_BfVpKQ~U;yr7%#GWqfkdvy#q+*8W4b3~8b0OxRY~TUwFIIrdrmOLK{sJPMiMi)gHNiI<6D@uPQ*W{Gu z5xlvrF7$InaKj`8ZY;^GD08DtI(t1uBZc0RzUd69Dy{s8Eq~-#jg)mDWMSuppDn0M z`YS5cVe0(D(bTs%y;|E@_#@0}q!enHF}?Hj#?vZQ2UMrf!#|vLRk0|~MDx>OO6Mt` zO|A+xe46#Xs`eQ}dW>8lOkshgfwMMwo$}b<@*CxwDcI|@qp8m?Trh61X&PyA`0+09dV2G8_9v?3{13SNO!L0+65QYiB5&DG>uW7}-+=^{0A|^;|H!@~ z>>!zl5)+WNq!eJ3z4?ef)rGv=@~hJSNNLNZB1%j^lr85Y`cxP4a?3AC{v)9+mxw4a z0a3P`kLXifNV~VNm%!}(N1KYb<6)lQhrUX1WlstU6wMUulY-9*+9}GOkd)+R$xUH6 z%{&pM%Wq~X+A2z~W&M8V`>(&3|2K;dWgJuJDN2h01E~-x>ZG;ED7{58v*A}uZ+e4G z$4hpcEhgzX^jAlc{ylxGen&~at4>q|`$%05FtP43qB)QqI;`!m;JQTi%2??uVx6H450|eX1*a4(HC5E4b$PGJit&p1z;#)I>Z^p~y z^<9wiU6Ar!_~=C01*x(NQkHA`tH|rSAmO_p;k)qBiLwh4WfvrT7hXl^IsQ61bzS6R z=FX`%r)>6wCUi_)VH2b3N0mkX-j^y-A(!>x>7D9A`zhOH%+u?3N;>ov^zZgr)Iw>5 zl^HCQ%*@QGg%UQs7-wrUQ^r(a!J2Uqk7HbIEMUQ8F?cYD_zRB5-PXd4F)OhcY(3Z# zrcJF8`7p-Qj_0!(VvR^saZ4`N$H9{3wzRe#Vm;V`7Tp~24`RlRur}w4wYEXLIZcp@ zO~p-+SQInW-EJ_7FtcPV88pPS4wu##X~i)M$BrCAD-xQinKEKEQyNxjt#1q>W1#)$9eJzN&mT+wQ z!U?WJE&0wriMe?-{@AvK<6VZrkn0N+1QfPMF*tUq{qve;GifO{b7#UI$B6cpO zl~8Flg_#6vhNSy3GFjHGWJ%QC71Mp4hEhR@8=>)x8H`|JWQ^=V)~%GJ=mVP;O!6LS zXTzn}7uPlAQU$W#vog}I#Glx`ZvJGyQ6ubZERmn~2^EXcV^)kRP>fLaM|S4Tl6dy$?sbc2P8#Fm zIm*qIaV>Rm9_h&QG?Fpd`B|Aal9OU0LbtA25;A+n)ag^EObQx5hG%HX_3&y^Oytq9 zUE8*7*tl-}>eb5^@rlj28q$(4UxbKusx|DS3 z!i9wMd`e5%pV?VinHjfk-MpE8^X84~DSZ4FGGR88#bgVz*i1e~6Zh8;-usaRK3@$X zCE?ngHDHsc$!NmBhT8I#hWGEHsm`dEw(rm$wte8tLtod3a?qRq|&kiu|>(Hrdw=Nwt!P%0FHS66GvF$r{>E5kNr}i2sx;f$> zgxhGN9$IRbt|&y4CdftVq9#Zz3LjzEvlEvp=pb*esa}UmYRo11S?PA8_0T43s0-B@ zk(xT6GTl|&r;8@63waC0!tmvR!;O1)p$%+7?T6Hmzc76Jg0c1kdZTU;HA-Z{i?+=7 zw?lQDQ6jZcJac%{d_P-*o*nt_KM7Abb7<2%zae@(JJQ~>>KG-D!Y?6q%RK*~20c1* z<(H|8Xu`vADN+t^SuloHLgm#I=0mIolJ18~rI!+;kL*|y=wzG2$t7iE)4ASk@mE)){s;iFS7%mk^f4_7g_SB)Ri>7)Hw-}(^t7}J;KzoI% zMd&jt;)@YV|G1o#5FHV^W$_GucRLHiem$u^1YqE};NuFcg90hvfgP(CO!0TN9n@c| zd*_ZFs9f7?s%dgO^`t+8C+5tt16xr+(@@i&mP^ob?w%zEA+-!*Z>t?ypRxk zDjciK)G@9OgH25a7#c7JjGkP#AJ5ZB%3RLBloWUNSm@^EbMX}rcb5@Pjw2j~4H?Wc zG(~G9v1g8jZr`wC;k-FBW=@?R6g1wSPi#hOki?!ndGx^E9ox5T*|cf>+LcTAwC2(W zNQ;k+KEtgACypLH9LlG(l>T`cYruuX#Ds+SgoL>B=lJ+9q{7S0CFZi=5_^%4(Zq8p zMEri_IG?YEkdm-|f1mMTy4;Kxv}ctQK1`pR@a;Qxd_LjB47<0-gm2%e^IsD_%(y4g zHQK*8;lspQe@%EgM3oah%u2g6ozm?w;X8M1|KfxX8;<$LO?ajQ)1G}{#)plz)agbm zdTGXoO>rKCnf%v`4_iFWVSrW_IgmWkMub=J1@zL_jXMC6>A?8Hr`gy*zk{4%u zm;`B&2evF2H^NNkr5PV4VI&U{VxkW3TsGa?ZlF%jE>v71<%|!L2qeEJ#GZ}VzcD1p z!@Y%{5bCKcuwk)4N$!Fvc z6Ww0js4D)N@nMpBlAjaeVosenw0GmOS>xU9%?x#V_w3QFTNgUxyL6`WB}~!)6~@QL zoQVkAu_h$Q&)LpGJiy36pV4Rf%XRwlJdGqwVtztgbmXDk>lfpbI9@JJ!$%AoZfB40 zl5mAI<+^v`(C$rZmdu|uW9rnPDS?6bJP?=IjH}^nc5d0ce*L<&t5+^vz^65r zJV5QyXChA=KNcQ-_{hP7p?mn0mXbd)*W+SiV$Pk5jyV^7I*O0~LLy9L5|~6m0vpfA zXySbiI`V$xFrTlckP4Q|=(H+?_ph9-d5s{!%q>`1tCNhSG(#j!fI|_umeMCKvA($2 zVdxNeQJ#*tV6=zJaJwN^R`l7VulVuY>5~GmZ9Ccxp^tdI#gDdcT)lX~%&Fu2-5l{m zDAp1`JQHy=bkF9ED;7-;aJ9z+o4BX=!PUzb;?6~#2;aYD>6FoqHh8S;A-<32gOqFE zUY5j0hHaP^;Ed-tad$D3{eZhazmX!1kJzzjlDi$Ay1I#lxIurCiKn4c`<74kK(XSk z;`*{D*|*a!M~AJR<~0lttX;$nWd)fxuEZQ(JIlw>%3R!8+(=fCb@N)nkqxtb9j(p9 zoy3h1aVsU^=%zWo!vWCIQT!PqGEx$cZ<*se45fAuH<1-&(}>M;QHGhgy|^hKaRRr9 zG(uC{j4R_p#P;B^BdpDU9r8IXBQ+^%=fVId8#A%GxH*kTyL@K%qH!a^AriMh8JRb) zoZGi#f|Hf0_&?%Svcjxe*UpD68BZC$5x15VW@jYF9bArdGx68rFA%-o?*X6eVJ*J@RfnIeXYgcAbdMD z{^0WQBOs<$ViDMr(H;Li+5}i6%4^m1<~eYKZhX2Fg^5!qgEi#UqL) zXt7q$Zk_N%qAt=A6_^_9_r(s{neN(sMUOq49jr}_^!wq?9QPW%MUR4K295D?9Wlhx zuwPf8e`tvw?%uLt`Qq6#1O1(?4YcSZM^Dj%(6H1kc$sysZ1>643br$X0GaWm^nV>*c%Nek%1%K90jEc$iP zL_}jmBt{?JFmsf7Ulh|(^cf;9L?7NX$HTl2B07kgNDD4YqQf`M9)&_QMD0aQ`G_rZ zye<26)&yEhGh~sRJGv#<+e)Vkg;e>RM#LQ3zQE50H=20FYfcM|J-KJmm?4xyBx->& zk`hksTRPTO7ZLvvwUQQIlAH-!5n!u>O1=@bmKI*VaQ5Kp3AVZje=Yg~VM+ACRpae+ zI;)Gm614&Ug>wg2kF)8AJGRDDm3SnS7G08@4O{MKq19gWrKp{>=(6PO{zYDcx@+P_ z@Jj>}PwkoKYSfk9^?e2AxX7(D9re+GHlnYkMHl0aZJO-RAN75KU?HS=WL=;gt-rPC z8yb!|yn4K?HUM8*iA2((r09byQ9Xh!Md~zoVC7irevnxU1ku`a2Ui4e$<0L?w0F^m zmXEdSgVug7(xeSNcW{}HSr1JF+oNSkF<~Lj`siCTQAcUX#prDl2ls?%Y2b3=vBhrs zoe=0GElE1PWt?eu4GdfaF2#n;9o`Qr5d|}wsSNZn8GG}U_pSSaHYjcCXbm(J_Y+Ju( zamb9R<9tRA*2iGx=Ew=$2kzRkVb!9U{=*0Lr4R3zBeCbsMx8v4N5V}@r+5r5pCgG6 za07V${Mo2u``6F)#glypZjRs%@Jamns6$&81vnTf=ZNGd@wSqpfxL8A2n@ z9Niw`iwJIppp3Yfh+T{PhtL^;86qi6IDc}_5A}LIajoi09z=oz{h9G=CYTvT4 z+z7=C0e@`N{$>7FeJjimNl`-V$-Rqx%zJS&L{fw@c87Qj2=6jOE5WW{9LHE^6P>F;-M+ zm?3=7--=Ec%n+`%`81&k`?>=nO&K=TGfhPwYSVa2%pS}TNl9YN!38dQ9q9~_l*C1B7%T3^%@9dR!kIm@?E7*vq#03E0II2g zWb@7_ILL5{a5z0tf00&VxhW04j&krmZ^iIh&gTiwJ!r|Bic}`QhU>-D4-7TL&1nO^ zH4X4m8h3*A%R{9c_!-dEXj2;irifypy%dx$69A2+A)tg%j48a0=zUK^F}{oTH^;q% z$2Zb=HV`uk;{x$p^3=>4v=tgL*q-;8S&vkDY~A3gfay~K^yi%cgODMVs{aMjN+egO zv9F^ou|RX#{*mFeoX-=Udz4LhU6F5Y;ftvs7;1>_HQ)u(0H96uZmZtA1?7R2D*#XsF=0ce5A?JST`IGPH&YI`CAp3ur6cJ9gCKJsMqfc#mdxLwG7c zAXUIff($4q(mRpee1-~yYJ&z}M>*}i6~k*epC>%`pv`Y8Qknc3t`}23Fr*v_v^5Q& z01XYi<>J~_VO;Qu&xgs2LHW2>4TOfG7e@dc4S%Vhju(V9Kq`)c&b-dmJNDu|&qskq zcLT~w@j*Wb^yv|wUG*KyzkS2A6mp?owS1ieR2T~d{6*w^sFWuqJSpNy0Z1PpUGZ2d zwU%U{fB1x-oI=M?n)@%JD)rWCb*t1{+tvF|2v-;ZHJarSzZe7eom-r7ME>7HadeD+ z8~nMeG&HYb9vVzV*tZwKQ(k6eA4Vz%lP?Ku}XjClBk(uqEhq+thE2~kZGI^ zLk4+2lE&w&RpkGuT++zTRYg+yqLV*>^rSoCbHlmL6``GAdZw=^%OfeY`BhJT2*ib|E*u2e~|)dq=-YCD}n zO@p>oRHD>&B}xLIXjOt_h95pCK$?;OHw{0uaQJEONT1y$Y1wu_X@e(4W~=i2gAgF; zayj8QJ6>S;dGNzM|DnHK$>5}L5;z4w&t8TZt6h;c9GaTkR+r*j$>h%MILdl((Y1iQ z3T3TLt%~F{C{=1us??yAS6yu&uL7BCQ>!954N8<6lqfYQ;Wbzrh(dn-RWN#h0sObc zrwyaat3saS%hT9N{{o7g^o3UwKvSuDoVN=+pxotZN94EDZ`QjhPtUmB^0pw;kO&lp zr0ll>1u-CHd5RiA*gOSMK#Nt6-F1=&2|Hcwi2PzAFrVa!Nf%pQ6kMv&TC93JrXxJ? zQ$)2R^7xqZ_0G#<;^JGz3leIy7ONhW=`IidlvC}9Jmp4Oy)^la)RdMff@Gx@|BJ7P zVnxm2SJdiG@FJWjI?0N&Z(InS=Vndudub@+%8AwE?9CDCOc8(1ZJXw7#RZD9(jPi&syiOe)e z5tw2^mjzIir~2aVw5p_tjnhXBwcvtCz8bT4p+5y+sweJ2lO;!1Poj8DTrm6Aw^5s? zQ?R9a;-0eN%+&L{=XwlLhO*Ny99ZOoinuiN@aT#$4i;PppiNhzHcoLukLn_0QFi9F zn4NP*4KYWs7l4z}5)UsQM=Py^U}0AJ<;cy`+-(7&rG_xDs*+<5uAnGVredL33jkPY zm!o!u_>Z7yTmnQq0h*O0V$1xoPD7A~5%-oo0uohh_?86}zZfvjGA-Go?93bA#va|a z1n9`pCjX$|}%`9JtL)I7NrYBzjDr&I*h{3Xc6yFKy$G6S(9xBsDBLN&N ziP$jNNu~ou1JgJzY@v^=zwBw&t#40lohoZ8W22%)(QM+G24|XO_9Ve|lN6n##h2rb zF7q_(LIGcCNOEdRkd2lmLY<|>Nzwb}IrRs&$7eKjDfY;kF=l|jp`oJ72`9Hsv)AE3 zOla^zbm(Gl3Ru!u)CHhDu}3#dveN;mNFy3Vv3o*12O)1GQCEQS#2j7|WKRJ~8X{PD zDdFUfxuXUGwHAm1-H;iWJrivEqfK1!Qe4EA*)AqM+jBuc_?!)04ul`Tozxd~mlj@( zJ+@`K^MD@6U5|z@OU~?H;%iCaRqBa)(54(&7vwo}7j7-W;}6 z)S<15r?{Cz9@4%jH~#Fg-D_r{$`Hc)h=2SWs@=OebybsxwN5unllvnFt;4nIVILKAaj%PcnvY)l6MGDq%P8epS~HgUm( z=6n%8lj1h+2_#r~Ei2xfk&W3`s(jfu_q_ao1 z%=H2y7(YY+k`xJE4S&f}r<*p4dq{5{5eXn9h($K1}7XEwK2dMq5g%VVggC17hT z?3Ga#4$qlr(OjCHvVL<8Vum)v)`c&?)W%8au^s^r1s)P0*=iU9JRp&LupQ@TOoc$L zv9RF+0KZWa%grdJO%s6P)Zt-nnjm*w9{A=ncF0ZiYPBI3va#8(eRs)?VPS=bD7_o8vwkL!sa0ps7&(qgdH5C>QPX|oVt=8T=H z4(+^+y(8mT?Bwj>KXuWjtw?HhrtIvwQ^XhW4V^d#9F3oOAdK9%Bfx!7LqW**J)a@x zV-n!PX!aODI|5HnW8R}t9;4CYd5qGdSswG8S+mzbK397!rKdyhL5OJy=$rOh<-QJ_ z50$jnGU3@fXwf1mSBIWP<@`M;APv_hecq$dRTrLS6#hmaD%0qqjSvN_p@GhQxd5ZV zCCWQdV3Vf6-Vp+7r9)R`Kusjq=m>ukioZg)2M!*m3E1lLfH|MRTVI3`MC+&rPa{N7 zgcS~Rhk7WAiUx{6I)y*hq{XrA0m$_X{_eC^IabDcN~j-!=&5FhuDy+D&*j|0^$0NV zojP{t)VZ6Mf#pa#MauePwWuTd6V24>r=zW_XKXprf95=-v^r3B@bIphJ)XK#bygf$ z8s#w>-IYV_d5mUx%*&&&eJ|xmc|NfCp~elY=V`r^1GBvrEt(rn+#uq(IAj~NM5DVN z-z4>}6#A%qIH`B(hfw)&>ePn|aKl6(l5;pY<-@7{%fm^aUZ=9g5(Rg|SnAM?8%x;T zD~u%#j3q-lvExsCr)S*MiPTjQhEgW4DUqET`O3a;NKJ=6)&v;VC z6FE;j7=v1a?ys)2^e_=xyrjNST17Du6OoO|BG;My0A(YfPo8Hvmz6+__l;XB8HK*PzdE zqN}xOCH%_w^o@irfKRz)@KawoD4@y($oZbT)5!f-UU|%qdtBe&;>zBmP(Uj2SJq%r ziT{(%y7v-)<-+9r$_e1^zw*kjBj0g-e~T;o-3#`1?}oCIO(A)*YV;+Owm!YmE`aC| zDPeaSp5Wnk>L0I#6wn(C;d%yN9o~n&zpk&%BRCn9H5fe9wuvokW%QYm8)2Uo)hlA3 zmenh3QVIyA|0+ZZkUJknvia<{KN5kqd9ay=CwN-_crBz#ZKG#OZNIsX%_F$ZjdUn~Nl=H|pJB zQK-QtPuo&Ta^k&<;7!L1@UA`H6x6S z{Wh*eoIEK24P$z;9lmVwrTm*ONN_!v2vjnj6DJ8N%Sl4Ya+0Vm^aixJaBN zB)lXfydF;j?x`xg0YOlX+er3o~kynZ!lb1_+wIg_4{-UV~H9LVt=tl(;c&qy4 zcuCD!#nu5qj%?moRYl4rk--b(7Ee?PtZ_p`rNA1evKLpM7ZvzXt?98KzD0dySR0fk z|M&T2LPc1m2p;hQc?<$<0p37fUZ^yVtrUBCdExK8scof{rflLH$rIip^})Z9s5FRS zT%$Fw(qK*3Aa4;bPiOgcuTl);E4MT}|8U0sZz4B&maKmrsR%(p{jksfFK?!Q^9Az1 z*W2#PWeTE2jfXRNp6r@IO0x-JNKe}Es&BE3mr2gYA}SqnP!pA^Sd|W|WTw>Sd01MY zJjwFpZ?sq$hDrY`P2UTy^6?Lq=^ynZ41c1hvQFSU;!g-&d#0o%ACvx0fR%*);2_w? zr!PSkWRU;D!l*2RECuO<$7KAo>vYf;JH0J_N$WT0ZfwW z>HmYXgMCyRt}qY*Ou%z7tK?6I@ki9GO8y^H+Ar6|%l|D*+U3=UN5(BY8MWccX1s6) zz7lQb-=nBBYOtSDlP|Dz|5!Ha?_N;`Z#|#SliYtX`GM=Z27n35-MdTkqv=_tHdZ-S zRcfn|bN26Q<4wZf>4&37ulWJ&bw7+%K|J>Z)nmf{Kn2SEP*hXs6WU%pTO?N@!RJE^ z6!K*5jl%P*x5qM-;*^mp{k>5ya8{{B1& zqw9}m3;n(oea{pnMex32{b>1A`eR?IIA!EV)5H5#q|)D;^!EWK%{b4YuPDnS zDfHk-)stWOitg4X!hI(AE=lLj0N|YX+@#fkYHJ$Lb z=I?7G%G>IGwChdYCiWUXLSIaeGdfvLGl{BJ+3RO0`n^RNoU|29V3XK8=)sg(cw=AD0cXLQ^gA4R?+SReGN-5T&CgX9K4vgwZ zp7AYHlH5Epm&kv8$h8(; z8zkX_^luT)lmGhDU5&fOMDrp0dw$#e;07j&FX+wJN3s%p%2!nUPNcO$o?nCAJ8RDQgqy%WK(k>8-h<}RCar^y|;>>BYU z7(T!KoGZ+g|D=F{R~rTWjwx_KxZ(fyMA@E?*8i%i2o__X$k6Fc)!yN42VNvk@*82b zO2RpLRg-!7yh(&_k@li^m7xk!{uCA*Q0|+m&F4G*BDr~|(VfYJz5B4?!#;$~#}^{2 zmfYuS__KNvdKVzfXMf4{l-D%Rn6!B) zS3J(w?_&~`1}k#_s5HpFa_Xz*Al8`I&g(|>8&4IDJ97BYch!j8AvYDh6pivqZ<3T> z@*3o^_a10GFeXCWOe=ELav4P#x&Bk`H@WPOIgN8Z!%?>^YUq(sJ;(=r4)MLde28x{ z*6l{v>nY7sj7hsZ_CD@S7zIPvwA9a2yFgg-8`M1Idm=BOG>70dSGA;yAJDF{98yZv zS;Yi)D=MMAtCUqjdyk>nT+xZM4SVHBao=cL#oLr|`98tNb05-0g8N8sb48s8?3048 z3!WAi{7gv6vqsPAmSU;NVY4$EW^zkS@zc+r(xv8F5zX~0xmHH$C;3F}Th;q9?M3OV zAw)feO}_T!HDmHwDtkSxW19TxwHtMA&^MwVn5s}OWy|DW%2D!DwxqaYv0Nc9s#8Qu zu4a0` zp7JbZHHO@wT`41PMYL6V;Dp5~ypmP?Rtiw6N~H&W(0+P7z(lfA%>>hUo5M;cItqdO zDO-jw-WSV7@|LAo;hxYHuBcQ&NM`PT=o3hb9J<0Ozw(_+CH%^7et*bkx>4r)8^Loe zdynkzVl}VLeH`{Blc}3m=_$QWaHSthRZl5PPrjPc7SBY@^W=)MhYcQSd*{pevTv3qOAoFP!mb`+Wa@*w6)>VA(_u^Z?cMes<*M|S}3X?PF ztR(Y9d1aJ?%?Zzh-&`xZnsSo_lM94ZBf<3*)bOz~il>`zWt3C%n^{R_Ve-l-r?f47 zT>nO1#+E*zXAZ9tf_K`uk?d6dI)x>4&EPEA3c2g!D!3MKWj^Gt_dnj1y^mjpLkL^) zu<=7SKd)mR`^#ONnE5a5@tya({7AEXqKm38uh-fqQVBN{p zKV`AkGaF~JcXB%Bu>Y5fgNDD+F`WN?m!E02PjsnzvqPMw_%5qu z7LJ14Wfb>GZ1}civnKeAa&a0tV#LUiPEO8@GvmaLbYh$eU0hw=-P}jHySd@yQQBFB1^7b{gpn7FSodI&K12 zflH~Y3wqK?;W0c1zbQTSy-SGk^`m%NoJ zb8~ec<>Be&?d|31!FZIodw7oa@f!o)$M?wU<+H~7c(^*#G8q@f^>;USaE>1BGaBsP zqkVnHjGs7}FLw2^S>ydYU7e|%8RvW#lm1`$z;||C*I^ zCi;zX88O`6!D0CD5l*gdUg-X4KfizpQ|2sMvm^Ax*;t-)JveOI zoIYd51sHR5;O*+@KpE{F97npkLi(e9{3lGAw{&A@WbCDDH*P80xqN1Tm$Re&P+MC&`{9lw z-JlyU6d5#g(T2UpV=ktoXJqo6s}@fm+@k)9|R<;bR-`^vP=1)YA&`y-; zIKm04_l6!P&0M^8&++q@Q*UL;7+G67LW42h!Dw&C*xeg8!pQ|=WVA12Ie*2rgQqVf z-@GjofboZWWZum2UM?es+1on|8$QCt-2>%~oiJtgqV@YCV!utx$SUWXGb4cVIe=}X zvzrHo&zK1i_{#0!r;}1{W@dAI|96kfoF3rm>NtGZFvsEOho_JKIE;zl6`MmNeBFwUG@AQa!R z<0sFYzjW=+!>1Fk+{no0*?zo7rcU>CJfmiSafb5?#CN=-G?OH!{Ih z`a^EsJ+S?c_>DnfnBCr9KK!WM6m}}%%8lE!Z_jdaf4lz(%p?3olgrhz{P_OE-l@CSFa4;3?xT_Z}6MfbrK{ z;v3+HO2IqY*FSK|{8c-lpzB;WpZ@skgMyNWU@Oi=H~eXVjMwAQzGEk1E`**+yoS+O zSN813yoW_4IUjk;$s>o>2TyRbGc(rL)zQ(`(dpk`5C8pj`!oFu^$ZM*3!{T!_Z8S3fk>gekA z*B9!m^=I^0eS^9N+@xE+Xp)<)sjF5e{S(;d=ugCp^2kn!iWQOOQH+A$d3p7kem(eZLK?#ihGqer=0>d%`&Q zwfgn}rvbVoM*TLnj-&i1hpgDT=OE8HBXE?xnUQYa-o1NiY4z@_t2baEgk)+u*k-t! z@8pm*JHw8g;yI@WdDxj6>h$g1t7orXeYJJ;AZ!z{sfD$@^XR~NYqlRcarV5DbE5lD zu|Yqro;`c@M437UhLF72%+l7;Gho*8?FUYrjZ0LvbApTYK)rswdUo&8Q>#xuT`JLm zW)?QXT>Ymn*}Oj@I$m;-=bSXgd9bl=U#(s}d-Uklr=LCqI!J6b*v@%$P{{h-$D`vf zT)f0{j`tg3Zlu$j)~==1Pq)8;@xVc57DI-)kDI+>XZWf33zsfS!HIpw-^geu2Z7H_6*bA39zM^}?1HIPQ>C>C( zoew@kV^ipQ=rDJmiSyU(K6Wng;$@Bz8;F~;^*{sdzJ2=igKUgVOf7Bf9bHFHn7w>E z?f{Z5Nrk8vY|f5@2N~$}>x)k484fVDw6+`W<~eTql1-2xEltVh zbE_f4UAzOPE?BoK{B+!f%RC$QnUTXSO^h(cF+&Xpnpq98clH=Fbv}2~kpS7Lp-${G z!-rW6GQ#|VCX5G}S=)_p^PeE@(SyDm_R8f4747IfwXgt7(F}iOuXps5fA;aCrOkJ>H_mR_a657ksgtLd~ z?G|>NAvR{>fhH!#12Oh2t?iw>#?4u|?O;?4$M-DZOQ7x1to!vcm zlu0+#jg80B$_(qrph1{Q7K4X6drt~kA9^Atfwr(D;qda&CLNlC@hN3QnZiMTV)d|b za6^GRj+}`{f#8eTJ#A>W=JmjbjmN^;LM%psbao6K;Wa5_ATu+LVqBi;u__`4R zV_q&9Y-5QMY1L*{_OAXjmhTEblb8fulq8*8!i8krih1K)Y|XH8F}iXrMvVR=11#QHLFx8mG+=-+W6TWT zHlO87r;Q$lQOfOS{dM((dIH^NC>SfVP#>FtKE#2IU~%vSmmy*-aN2Yi!uBNSFGuZ+ z?o+ymb9)iDSIwE>JHl$9VSjB#yO6e!+aLA%*XdtITT3%?wayCiw8v(Fj_9BR{q-2^ zWCjLk=M&V3?FzMHJ4Myl1EylR=6Gp&h(`k5gfPmnozfi%%OW^2QiI033^6rAZWKz3 zph?CiCId0hnE@q+m^RQlSn;?sF#xOsum@n)(Jl3Ne#xY})j(`ore>BlLml|~CysF$ zVr~qf^Zh}g#uyc*7G|b&ud<>GgeN$$$^?#~>d~h=kaiyW238X>-7w6t5m?hL!z&;N ztodLa=W0s})utPZwr+oYqk#kI4ro@0iibIm4wyVUgs&c3pq)8%-luP0EJ|2!uwoD5 zs>Xuo>JvCKWc3EV%t_<10~__{m&4xLy7~sj#+YZ1&CIQbU~ic?cgcqB`}jhqj&mDo zicLsMtCvM^#peCtCr|TbPR0lsq~Es}7WbaLdiT-M(;r}LJWy;tWcVomX^S`QJ#sRdu07D` zqyVSECjG(LtvlBDzB>9)4VG>zduN|13)k%lkBW|s2PbYSCiso87@*S^dl1tj4-M7R zGs2!BwzM7TH32)|;Ye^M@P!8W3^y~tmO=Lxt-dLM4 z_8&hJmmm?MUa*ZEZh_+Z^}#-b5d;a^I=GA)I|VoU;gPg7CEEzx?dj`c@KBwYm<_gZ zaPk;4Y2M0h2OyS2o(Ce2x~CG_~2a}b^y>clqWU~fLq z08>;CS{o=HZ0qRaGhz0U4SU16_SXRuwxOZ6<^wT3^)OF4#X5P8ow{({?!!^haq(zX zS=>1~XzGqj#kK}sjAgo8O_;j| z+hh!FU&*=9MV`i*bPuA8gUzsbfREcVT>Pgk*?iyxEfI{Tw+7jCDc^+526J@}q&Jhc z!$*yu3w@o&AQ4K6MJl_G{{myoU6+eoMUL zY=eXP1?1*`fBfa%gU1DhMa7>LGez>kqQW|b?Ql}`2bLc8{*FHs_#OF)o}BrPa0h5! z6Um)q`Hnwo^LL`m_a>su{tI7`lH~CrCHajHaYtXiM)e3AUYN8abj1D-sj z!co3?eng}05+(WbZy|LBa7MCuoRR8HT4b@=vae-j|4aW7_H3*hUX2RyuJ8_CS9y4P zhwR+BYxnLwd-m6;UmW)PDY(Nb2d5#3s%y_OP4O!yUZpf)=6YM1nyaQH_N?_ z8sk4UVBEL~fs=x!Or1Vs&iqBo*KOXpH!S>kRCN5Mbj_w6`wkvCaXKbZnsOrpuN#`m@K%++$duuwjF*r9*m2_n z11CYf+fYly>2vWHuU@~2H%QH7LRZGEXq4w@zp)c0PM$JdFkLVs zZ|1DobLIyxS+RcG-h;F$Me_k}W{e}o-8d=&hN z7r(uhay|VPUi)Rsn#=y2I%C${kcG?EY}mRx>@YOIoD@XnpN>3r>g?Hb=MyhTlap_x z-@0`>GYjl3WDi1?u3Wo*^Y*<5j+{6{_tN+TCgDM%M3Q(R36E{xCSSjSrrgeAsN!46 z9&FscYhPISv8c0g370NixpM8wHNiD`N^+_owdDGZ^qU!IwII8#?9qYnh{!YN;?bGp zR3tFzYB!l%r5U#}GBTM=ChHs7<1>)VrOVflN+auK%Cj=F)UwoNPcBNYCSOmxnVxYw z^L93q&1RKfI?IYu&>F-;{MxdooG)9}UslS+=*zf98pzPnU;!%={>bF$$x43B%lq}0 zyE!slS@DC14Dk^w%|F_&6lq4*9TJ+?89+>*c3Loa=JS-`Cbnh1~ z6mDr5{;;Ir!LL8kG)tk-GN+{IVcw6jPBMAI>S+z8)y$bIFl6b?He+zd5U&&liv1QX zUc7YavSlk)u3EKr-TKX2x9{A&XJ2U8L4FROI$iHH8yQh2f-x2t70{b%JU&?r9&Ba9 z*!(=y&S4l{x4Mk-_M0$uPRNoK>o#xShgTD^l8cw5O{J(vsGn_sda!#Awz9SvGQ@VM zJ>IY*i>GhElvyE5SFPW=GxSJgbesfF&P}Cq+~W)MiVWyOzonJU5WH*tnR|VYTJRp$ zKXAsp#Vglu*|qNw-Tm=Q-b{*jWsCu1STw-I)WXWve)tId5cIPXetmJpGUGLR?1bs_ zm#*GKC;ai#G4Ya1G|w&ivW~tbu^uwa$$b>w^^f-R@$(zwKL*o(%Ix4}>$mQ~3_5ul z`z=N)a%7m&S5H>9b|YN9{Kf`O#)>sKtwjlF*aS zrMInZhTu$D?&Nbloi^OUKx=PzBke(UbN z2M!%RbU2&|7aVzf?D(-0kx^%3a7%G9=@N5^y)11deK2$W!lf(LZQQZvV0grd)2Gj# zIx9HKLrhyb~4HnFo3X=?^B~d3&M#bP|kFK^1>#w_+jGDXqY?8FEw4hP_`i+`*Fd4o4 zZ~}rtQc|yZx1rN^#~`3aN*aAVz<*;@lC%#E)Nifpz2;<+w1ZS05facKpk_{N%mRHp zo9o}fQyO0Eji!6j0*t#QOEI@suida|>$dIKMfPFyICAXx@rZg6?6L4V;f#^MFpJ)V z)A?XwVQFP$Jp?~Q(Mjs+iNTBUh*`R6=l&y+XU}7>G?lRWcvDbFU&!K72N|px>z{3g z;O8R; zW>6-5zl2w{PWa7e+(g`r1Wm!zqIV>-gBP#bux-zQL&qYbPSF{WDEVB%SY-{t%yx41 z_MbR;*4+8QAqy5RShR2nR?+1v*KXQ|g(D*J)amG$SXx1I$$dvBXZ(URCJ^fi-EcQ; z+_;I^l)rWJmMuGW?AjZ4@EE3R^!f8~aS7mWA$j2CKYr5W8FLmcMO%07-5P zg9mY2b?C^^qHlaW!_^iOm5 zU+3fF69tKFC6AV^UcYI_uKfoOA3u5O^x0@8nmH$rITypk6vdv8jg7-PkRbV5@+WP7 z_))M#$DGIF5GRad;^nwCP)kskJUN85<@A|z=VD{y;}V%fHlh5|SyF^G2VJJ6XiJ`Q zzC=lXNhuejFX38iAVHHc!zIEv14+rTqeqXOJ{Kp^l@zaDzI^r8(39sRI+7w^4-em< zMO%-aLpg5&h8GfI?>8{?S1#fOwM$PRk z2vbdWeKKB?}>K5*b;0(pCmz zEKN#MKOJd@hERuAe9O1uO4SmzY4X(xxQS+IJ@jx^n+QgV`lYOdRxD*>KOJd@hERuA zoZ(w>wrYu5fIK7u_arQ>hZ9CPBSHNV_B^dv!o`0g(hd!w4%MIJ8xvWzM9p75_b}FR zme#`w1Ft7gzk>aRR;*w%J{@U?hERuA+~HgC-A5s>0`4r2!^zZtMh2|eENM6z52(cS z+D6!Piq}}-8?5lZ5C#Tar9-^6rntEsiHiIs0t%Shfd(J)g1KL5Bv|-_`#4GCM A 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%0DBMxJH*V#Q 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 ywr~f>{?_KD;b6Hj%Wcg?8|ZG||NjFBp(tel literal 0 HcmV?d00001 diff --git a/mods/animal_vombie/models/vombie.blend b/mods/animal_vombie/models/vombie.blend new file mode 100644 index 0000000000000000000000000000000000000000..c66fc127b9f43104ccb0db62142e450ccb00f6fe GIT binary patch literal 589620 zcmeFa3xHi!eYSrl3CV~ch@c~Q8ATx~3UVD$a|Z_Go+#s`CPOliktCBZGr_^C47J+S zYN1|g>PIyNwY0X@3+mKj5-x4idMO2wRLZ|l6{1B&>ZcKu{MXvge&^kL%{j@OIhjB* z=fKH6&)Ms@*4n?d_Otid=Q8uoKJDBEr(O8+%a1?#gbTyN&Pt^+=T)EIu;a?`AlzD5 zRBj5(g-d%@_2fLB#iG*|E@}-mw*GwJk?n>0heBoX-rnB6qC)x5R=Xd5_!0jUwtrHLe;j9xeOykK{XdR>fB#^1|DE6I-W2cRLk@Yy*C)&P zPuBha6|Xq%Uim&<9(LF>H&2%FpRD_TbNo5KYwrJ?0~Q_7-2eCObN}eP=KkN@|BL&4 z@o{tiZ|?t-<@~RC{BIurC*$k?=JCII{MRu*Uhgel4{jd+_wD0<@ZFU!e(}-&r16i( zz<3uw{pp8%E|eLHuM_t5`(!-+$MJv8bDsM-jrXy~zViNf7aw@wf!9u!@sIO6Z0i!; z<9yiH=X}`Ku>T+Rj~egv{lBL_{prp9e;;>W^Zd`pHtqXyIT`l<=(pzhH_!j&|8&_r z|F;|V)pLR7{@>jH)BRrD-2a>VfAHR<`25#oeEr`%|10m`&GY~Adq9)P|IPjXnx8hW z|4**#f6@OlX0-li*w1f{_X7?%@NdHXv*M{!r)_N>|I5dSn6rK9e$r6~eC6FsU-hAQ zzq0G7_gvZa;`fM8c<}*WnJnWU$8<6t|Kl-UulLerTsK+9f3hC`o8xbvH~0VM`M>5s zJRVGjdvpKyIBV?VG9C~1_3;ne_}haIe)?y0+>hHF@8aYUw-Wu&jF$v!hX@*|M$^zfP)V{cw_jC z_jSvbEx#?^FS_W>!*6)Qn})>)9{9BDLYYm`jr;n2GVcFjn;)M(ea4^0&w#~y%t5@1 zXUv%Kr;#U%118(?KWy*N{`)`mzfQ})_oeX{$9191Rg+=-#~pXv>|Kq2C=;f>_mO@1@nqZo!}eYoKJRm_uJ>Mg>56Y$ zdg*1~5KpG>e@@2zKWy{khaP&^7c|}-9jE>%-o?QUU&xPxlj0h{WZVDK@sDF2?~`%- z<8~Lve_uY%6}GMP{!e(__p5j>jQ{3Pc1odqWnX?=9RD~U_T_EWw(aWtFO-`U?w_Rl zf90Tq4*uFX=bZo7@jh$T+&`Z+YtFUexNfqHf7~A?+x~yTNwa@+{P8E=AAaxqJMq3~ zQP)=%ExPC{;<&E!b#I&$-vO9x`+u10SH9|1ulaHO{deu}>HZ(r#WJDnP~1QE_4{Pn z|Ks?_-}%?I{t7H|LC^KwExHV{?qY)*Smi2 z{&+9Wg;-`XdGi+3E|j?~mJR#IKL0v!lI{Q5-}xzyf7}P+ zz4%T_x7v_k1xLXivDBY z-nZtm{?*+}dlnym+$)bi?)c+QS-i4$RnI_A|G=@`t9n;X5dMmfs4+mRJwvVw%l@G=7$f3$I&CZx?Ob6MZK%e>0Y&~ zaywgJt)1n!(T`fosdBAJUo-v4 z%Fv9KX|ev6%6^rfPTemX_u>EiVAXso@5ApS@9R!n@kq?SmfO0H%HldNVmbKZJG1<^ z<X;?ddq_3Q5DIHV29mkZCWR9Zu4hX0ZAx+CjXrPA>@oD?6yg%_T%p#2TKJ#TM6 zeeH@BBTv`$Kshc3ZTkT24*oOCZTYg}U*H>(Wid8B9y#9TE2gIf>f|_Y+Cz-`b!T`S z``z`yo##h!DyO(sZCAdXp{o4$k?iC^aVn=cRmI+aVn=cl~aAQ%h@k;bdM;#R<-X7Pq#(%Qgy5EprE!Y1m-1Vz+-c>$b zW_b%8Rova7K<>NUa^4q+vjG>_J_;N%9{TU<#XlPS&10CCDfzk(CkVj-lONI zPMuacpt67Esu_o8_v%$DKh@T@WLwb^>WW(vZ-=wk&HpNY%9rxj@dNUwyk^Y~eQ|ze zX!&jK!q6P?wD9C%`HH{DW&OuFKRsW{;aZ7mB!LME?M zph_l7_WbgbEtQXkF6~#Dn&)pr<@j=e8Z`K=e7pa<%KWJk6Z03(Uley&C=*Al?ca7D z|AsS9yXb@ki_c%Qc%ZLuMgQWyi{I9>bRfQ-snST5ry7kvFKe%TQEa?Q^<#MIN57p` z*`djql|OI{QH>T+zLj6)d-!(pt#L@(N%M8_nzjAQ(?UDpM&swz+1}``eEspOD=#bM zJDyKY^iBCzewFX8JIJ@jA?-)id}VVzEm@r#jgJ$%dd*{f_N++s813iPQ zyL(p+q(!T8qw(jh9_Z~`HO^C$tVbXH?bVeJmHKu-i6#b=Z{=6{9{e8p);OfCr}@gx zPZo!i53F6Y%gG%oYczh*m|IGFF8-ZS^LrPk?FwvYseCKH%6Hp;l5dSe+KBVjzjW=2 z)dP$B>YH$l#y38{4;z*5{N-u7sk@bxZ{=6{9=?}+YaG%>N9C*kij^yS2G(4W7OcUI z#xJa|xhlQ*ZSV;ET9Ma~TFJ51+?CD?Lv#fV)@(z_X z8h=h`uaQ@mmCC1nb9H6Go=`|Bb;`H$t9)<2k9=z!NBA{-UhCMrQaYgHJY= zHf#S9O$;dC%CGXR)-(=cEq9XdF-_4%;~SdV*+%?%@X3$0Ioa~5C7KwB`JNeeBwbI{ z_0`S?@rkaxX06BTtCct1s-DcAd)1u7p9jZd&SCkASVz3oy1uIQlp6WB>h;yF;i^Xb z>_)veu1`;|yfAxLGe(cCmK%P^c5At-b~RsBKAo?%;yvG1boa-zyPh@O1AS|16(99{ zqw(j4cLW#m9%=XL%9tSTl)~wuVD?3~H&c~-#R*>AC72D10lyBu%`QH9N`MBldmp1EsUAnqw)zaR2FBUf% zf5w`g?*5+k^T*RR+j3CI_v=fWwI`CVd@H}o_xhiZZ;eB#V*#A6%fp8yPFS{h^_uA9 zf!?06UE^suKD3(lsXjjNw^Nhz2l=bMdg?2!d@H}ocgN4jx5go@byU8>rRn~09slz2 zsxv-(DkfZ_uBXLx3qJarsg)(AC*v_?qHoH#@~eDreVBY}9MXP_%J-`7m1DVXr+ONV zKXagG{OZm+@y3wv7pXhhvdUq$w0?Jh@~!+T--C~kZ;eCR)~I|f>+N5?qI;~DlSccf z&iDoOHJ5fj@I#LVf0vZKUzJk3`zhsH`BlE#enGx94r#li^1ZSzUZ7t*u%>(IWxcB| zP0Od;X#6=@bM4_YWlYVb%?JKY$T#Ptn%8^s{VwHK`5w;CCp8Xfhn=sB!xmqiXjlA7di_eW*9q^|CyE*5U#CogvT5M2F4z?Muxag^uAF`L`CpjziIe_5_F>ka+_>_lqkr(t+28B@!N$;s zkqeC75_kLo(TONGulbi27dCk1%{_3uqUw!Y?dC#7ss6X`GKn6M<~bcK8oi+v2B)9E3Iw6ALxLPkD=M$`sO#o2j1SXpmu8qhtD+6 zh#yMcZ8v@ILf^BvBh(!G*SR+T-eCTHjI_ap7tW2}1dPY#$}5gL?v?5Kv2biBy{+4U zm$y%+{pB-Q-tY{TZHKZPyo_ZUzw_^1RBJJoLXixPyjz@}9ImHdk&C%$I7<7S2@UiCZOf7QOqD}GxZuX@#Px*scEuX>fY)DMbRdBwLKNc*Z+`KuML z@`_)V$E#lTyH>o)D}H+(uX+`qdP@CQdBrb(8vR$jYPVLr$}4_r9k#^{dgUJ-Uvykh`zo*a zEqT1^)qY5$H7|1vsnI`aH062a8!?Hx-(|{$@C+#Gp6vk@IBVy0qWPX^{{-ro>^{J z?WfCZ+`<`$;&dHtuv+|*zsX;t>3ghqlsTKNVJ9Gv55OJYUbruLIl;&ly-S6ms(?d46us&g3eU zzWl;Kh*f|Q-{L6T(U@UZt+U0_-w2rI}Hs_?#370 zNoO zYq_-z?mWD{{YG&b_v-NdcUdbxjT=a_xeSP&O3Ku`~vvWzE$yiK4a}6+g!PR5gP?gu4abkG)#6tC zLC81XN7l3Bn&1i^<5KxnewFX_?c`hIkXGk>g%4%)tm#kJ?}{6ZKYLuQ7JJnf@(qVW zb9S59BQR|!-^#D@-SI;5t#Qb^G_r8Mmi4aeS=C?fmnR#IUofs#N4g&#eBkjJE#D|U zk-bMzdSU`V`Br|F@2y9YZ;eCRwDZ-yYM{4!MQ?Zi7(NB#S{jX?8(Mw&+`5}}2P&tA ze4je<8SS`2^Sn@Kw?9)t5@_aYtKK2 zG_Staet$Cg{?0kh!MaR$KkL5=V3Y9b(fBv{yEp(vr$Zyl* zwqIOQB+EwQ=Z&k?Vjm6|<&!=2{n+iH8@m4YrSNzxuWPjr7PsKZ{Mf(aNH2GU zAIsZNrNeRl#piY1Ro7vcpM+m^eKvjnRqrS2`fRc4x92CCSB57KI%sgep(+{fJdygf zT>eUU>+vj$^;LTu`yD?AtT9Q@B1G-E_b-$$k)S}v{jKFzDBzaw9EoeXa|r9M9>PV>8J{LnA*`7A#?@$b_-E#xNVC%x_I z_i2vp zq49mL@Y&(;JH2f!=Y;oZUY*xhEMJ^o2Zqw=Ek>r#O$5jNrY*Fj`TNz-$XFV#(&dTh z-fpjR{i$QyFRL{i^AhtFe|CzkL8BKK|=gczCJ9%t!3nQ=%101 zIlhjH?{4bz(uZYK{@wbxzU$un@5bci*L~ZcmyheWAO7IT=jS7LJW^iY*;-y-{JecE z-}x`pe^}C=fMIQ@|Gsj4UH@9{&(^)Gq3My z+1es=2I=+uvbC9CwlMSe6wK2@jm7$AB;1IKEbn`O)~r*K$RU zuQiJKi~C)1eVAei$F;6+TCh=>V}6S3V}6Pp^HXH)Adt+h?W*Guvlo`^;>gne8*PeP*`L%=VetK5^K*Z2JZu zD(_G0x0d&h;Rnj=x87M^-*HcQecQj4*KfHN)_Ic7i*%l}{mpn$=TG_^p*~Nh&*ka$ zRP1-Wy)hi`;(6{>;qi~dm1+-~Uzv0IZEoVA`8%$JuMSUc2={m%^s+op>F;et zF0Kz)yv0-YIe0Gndj^&1p~hpTUR^mnudi4*<}cp=Z+J4!uk_YZIX^t>zh{uH-(9Ty zDPPK8>uKaqd8NIB=T|DKkfg@Yt~x)Jk@0+(VS8GB3!e;yPR5ylMbbU6HR7lI)rs20*^DjomE8n45UAMv0nKy$AtN5!* zO)-D*{RPG8`fFR~&g1?4`@Q$~v#x&ve?Lq4RlbMM%*QPszjUaa@4ff;v#x&ve?Lq4 zRld7kN4_-i#$lKFuJiY=ynj4#zn^t|Wl3qX^212! zx!n!&xALoeuRoW3YaG&cN9AiT{Qa!!pTOVGQht^1j`PX4#$lKFuJiY=MvYgU@s0m} z*4*D*pKp}TNy5vs3BPH6E5FM3)(gnD#v$#+fg%`mxj}t=hN=T*mnwulMNn zp)>x}im!i@+vwla zdd`96-_JVhZhk-O=x@Db)9}UruyOc^qqBM*_{i+pcOUwhjpse*(2W21?jL@6*4c|^ z4=j5$`~9pp9`T&7^z{tQ?s@0eZ?1%EXEFYJAtrR-E3p$_4Rzfa;yXf2>(J@J;k&$0Qi5F6g-(6Z|L99>fmuf%)xoAOibeGa0E z?{ieIqtR!TKjlmL+p?JaDX+BC8Rq2bo84yQGj5H%CEWib+~fNg`U@Wa93ID;t}{n2 zuFqDE{KMx#_75)x_&iAbyUqU*{@YSfJtIZ)2eF-a-VooL%AfM3{HeI|TB)>$d3Q;eZyPp;`yAH4Bk;lD z`S!Vy<2=*+ipzKB^Fq%@*809f-g9caXP;L*fBqRUKHhp+#DAxSPa?L&Syb&7pWj*j zYDZS9ZT!#0{5>4P<Y<@DVI-4 zTMgUYoBKLnuJ3^dm)FW)u?0S-6<v}aB|E-e9dZ}vS9*()d-6D{d?|nGkMhcKV0oB-^KOmnZhHD9H$QOC+eY$tW!R2u z!aaIk`6(U;VvLRhS|6XwjstU^bNc>wANiW_>SNwn*^|*QQ>IM|HO4GdyT$XKxPR8l zU+u_hwT=I|=$+26-SWUu;c@tXm$yCfw~Tk$i8=~Qw9n&bRg1Uy!%Oidugl}|I&1BF zeNJAV|El%-YWh6$OTs=E_q&#sww7C}j96g%JkTG}e{KKfS7Ps~wz}CZ6a@-eaz38zj$3$tm~?$?l^Ex+WzN%e)g#6 zK0dd6UA432ocuTbhc>Q8^3bSGfq^0pZT9(x-o9g^5?$hgwTf*j%oY#$$u7j$L~Ks)X_fgm$yE! z@yJ)dO-OaB{R=_?^$1Z*;Q{l{>1NpGF)r@-d~36tuK4|H_y2B{onoMoIm{T zCpVva(?6W>k>k&pfBDP}o7c|VFemn-p6$Q>XV;xPh1W{i_Sf70dpDnW%8#yo;AZtd zOUI=Chj~^`!PuWW?U0+l_{(Wu{?ad|oisb%!K{cuT8rH&)}`gPTis!DcUwK5bQab1;jyFGhdRezU2 ze}~|XtY6{Cct3vB-zx}Dmu?F$oZq){bzgt)K>W>=OUL!633OyER=oal+U{u0i^#`W(k2wWo55+mgqrKE;J!BrN^?1eH@<#}%}v z`V{xB8Ra;YQ``-Coa$5DG1CXKhw7)wDX#4uw5R$M_pTY`IF(b}x;#$xDejo*<$kK1 z;7lN@|vgVyi>f&D}H?*uX+`q&LhREyy9Em zP5Y`>?WXfd@hY$Q!8~5|s@+=gDzEr$dA#b?ev{5GwXgDu@4Axyt6t6LTJb8c_$_(7 z>Q%qfd8+nRUhy46w6A)#{k7s%Uhy~N@v2w-uNANIif_A$_EoR?Uu*kSUh(Vlc-5=^ zr~8|>U*#3QJ&#wt>i711f7iTLyvi$n`R~zx)vI=E#jCvHx90JxSMllotM*l1@tyCX zebuXWYsIU);)nBi)vM!E>H)Q{@`|7N`?Rlm6(_%>`BQntug~LEulAo>@hY$Q*8KcH z^=kgridT8X59aZzS9#NRr2SWU#q0b;^(z0h+E;nStA5q1{A(U)ea!!c06GuSb)K2; zC;uv^`7e*w@?k6=|2|;+Tl4WuV#bVj&+zZQtG4ica-9$6%g#Tbz2SA`b{$cEl+BxP zpirEyQ&f*ne)oOkcg*#^c)9MB^!E;*9an6KzkwdE^JvLy>+ChSf4}E2CrSj8|gX}hEbr|cb;>)pc%T8FrGX33m zvDRmWNB+sKP0Y?;zvRFBe$|XAmDS;1`xfUGXR75gTqldq?JT++Gak}@qy0qtP21JX zU+quYU*!)Sf8-;z{qk@=qKF3t9$7GV082{~+~i+4e{9x)0R1-zZMwUNwGb zRX)!7elm1JygnLkW7}`e&%2%NHN#H_B_cjJ!F#^OEPQbKdbMoOScZ|NT89tn$UB@}>8^BFFc2-k24N`P$X*4PDUk zrecMK$I4&KZJb}}t#)KuvN4YP&F!HI&EI%&)3dvF-SKxK_J&(L5X9|~ALIl1;fB9t zKb1G+g|_^>u-191#&2z?doZ|f+O!K=re&|3%UN0e8S2-v^%{8aPwMl7;xxaj$0vUm z;z{6##UVE_Kj}?=7|UEsW9wm^mndJ#pXyLvGmhV5p7V~|v~I_aPtJe*N_bA_=mmLa ze>9a67v?NK%ud#;o_ran;+*|MtiQ*6LCcS)&I$LVWWeJ5dTZ7ERf`&3Px{QZ4>9ky zd}{3TFMf|%arz#`x{vHUzR|zy&}jVb_`49ZTV9l=Z^Ajw*O+hRSNWd#r{r7Xkaons zySexNU5MFF;NOK%ewFVnA0yuyhuZnxd;czkd?me1>=`;4)cjU{mG9+$M!q!;we!9A z{#}UKPvGB$P=1x~*8fYsH4e4&z4!iIh}loz--S?qmG2v_CEpr{+WFpl|1L!I$)RDx zRle8#1^L!Eq>UExz1RL-h&11O>U+%D`FEaQ<$LD! z?iQ=LMXq=xALoT z5NqlAx%d8Eh}0*0^6x_E`rnsALi5W+N^RAp&Y`NVd=ftC&q33 zs6F>Sjq;`Z4StsVX*}41C(rMh#{9*5%x#=s>8+*mweako`#n?TOZnUOH{?%wrGNhY z(#TKb@0k|!S8aas{_vjrJyYdN`P2Tdypq50`=y&#+{WYhZ~Q&e;alUQ>%;xVaF6c; zUX{;>>%!xB)B6CCi|ezM{)hJg0_X1ogkN*LvGRK@*H>0onP1Uu@m_oW#h^X+J!$1j z`O{`8ui_`mQvR!zzayu{{deMSTmFvyGaf(U_fW+89?I|ZJP_wY>GrG63+9xb2%ztE z=y`n)<=&4TJNxzTzHVddr}=%K6HY&M_Wh52a@I!|J!exayQ$-qH=TS^&+OxW_5JX@ zj!NZCNB!-_$M4;|as5+Hyg7V^WcGiB_)|j6=1?xKzbMr8gAm^lVj|B7_5Nw7OYy6E zem3W0vu@vf&W^vH6XRbx{S&hX?*9Evzj*ZMO`#8)?)=nW&VJ3m{@&~xKlPm1p%1f< zzVeed{bTp5=d`Z)!NyR>#%XsQvFW70`SVR%U-`lqjZU0cI zZ2r=5xBk=DFaE-XDz__}x4E z=El2n+V<8jpQ^_!H;jA_D6vmZ*o`m&Dj`-mhiV^ZsL|A6|*~>Nn-*r|cM| zLPYJk^M2(^`BP_<*Gl&LDwVL!@po1#3$Fe2f8P4-3s)^T|Jr}M`Tu+8^aV$Rv5wzS zi04&*n7>hZc;I-`c~@kw*XP+DJ-t$S^z?@=7=G>kcRwThI|kvegT=6EvBvjLIb!-? zUSE8&c#HY_Sw6pt&&S6xGJS3$IL^Q0LLW4b<3YX3aE@v^{T}(K0u%T|%=1{QPruI< zXnz$&t>cSgRV!Yd|b}R{TN>tPM;pXu`{|iTQ=bt zEeHPr?%G(Ne-x+vXWLCx;)hxj-^@$6*!$6swLO`CHqQ;Q!9QA7^-pWK<`D1IZ>9Q@ zB1G*u|0rL|pYpG~Cf$3|V6E3Jyl$QrOg4JX?at2Y_@{g+e`-T{g@@*Q`FlZCEpsZB zuWhUheQr$qb8Ego?XFj3asJiHU+V2?^gVrhkq+EmMniZ>h_c3U&koZO`LWpMzVb#m9Qh|!fz|Ax z+EY2jb#0@cs!wqP)5~!xr?@S7oa$3t_$B_*_NkoWI`aKa^(k&(dO1$z6sP@F^(n4v zYPp{(r#O{Ued4aE9>4f|>GFVn?{{791(nx+ktkwX6L>{ZhQjD}HMpuX@#Pt$3AJeCI>7uX@{ZucZ5d+E;nS59jf!SNnObc$HWD z%%9M{>Q%qf{YmYsyyDmA@v2wtru&uRRbKI}Kc#)ut9EO}tGwa|^LW*({-^t=+E;nS zZ_DFVuku$bUgZ_v^)vdfde!e*@hY$QEqT1^)%d5LQ2$k4@f{D-zUo!}Q(q`vU%Q9-+jI+{8oCrSHCGgk7P&ca+w$vKa=b)#~hkxk8*AIkiV@(imFtSX-F{GIXW!kK`91QN#--f#)3sUN zZg^*9QQ?SPgQ*_n7O(OS9T zJNdX@L;YLx<=}SqmuG3}Lrut z{pQg;Q0rAszKpN;lix!=pyk4;k5yuh22cN&Y`pgmg<|!}UyQ9*UyPg~xr_X* ze+;i|-LN9dW7lKMyN;`wmtAkd(}O*=^A~>~OmX`Cr0u^c&)?zimiN;}f6utl_}%e) z$d6TClxO#-8d=``Pe;$kd@H}o_xi`lx5goD*}qq{_x>L8J(bs%HtT{CO$;dC%CGX> zQDOhkIHavR-+S-xA>Wg4lss}_x{(vW%D3{Xd~aK;8OWkewFXG{m8e*A?4Xm0jzv0zsh%4 zEBV$qq)j_td++Zdr}@4p-N*@Gy2>cgOD`r~ZCpx{(vW%D3{Xe0Lm3zBLYM)6Uo4`+LauRNhzG ztT&ZtVnF#;ewFX7Pb1$NhqQI)d++@{H8&hTzGe#@Teah!O8JcB%);7IWzsh&pA>>=*khVXPueGas z2hx>e;6~$LADZnSLp!yLocj1ZmGUdf*VQh(+tw)G%CGW0{0#D~aY!2+$=78)SM;vB zba8)AeVgBC{Ohu2+ZWc^Y+*C*{p~%K@MmcYx3de6ix2(YQ1RLEJyyPzU*)^&F!HT& zNNXR-*Xre0^!F~Ud#W`Wf5w{b%Xe6Fje&1Gl=JXOx z3@G2quktax5gpufbw;DIQ#7xTzu)8zO{9oe>WQchOFK8GwN;E+i~sVk5xWy43Az_A|M`6 z%cG ze3!47l286Y|YX$II-; zztauf%^bHo&Tr*c`5t~b`PMk3%_?6j`UiM8h_3>+x2$*B)s47Gh=vk zQi&!8lyBu%`R+QFd}|!i)|D^j_pw#=NawD1>DYZ(aW; z-^Wf+j*HbQ-^#D@J$x$p);M(Dd3KHSlV!dAtHXDAij|JxvGYB?_yyx?wb-#g4X<}T zoIgRnk1MX8pvTI$@~eDzy@q^i9ER_zneVmX^AJljrPR^KLcYfpzhGQZ#SXqH_ahSQaR=!94yEt5uUei5BjXU4tiy!fK`)PHwT1?`+!s~hF z_wmKm6ZBa5R(_T5^|Q&h#$o;UYUMls{?6*|f#qY&b=(x^dwlWd^u=Rz`}y^?T1?_g zN9Fs3;_3-{tb8lK%6G?H@~v@by|-4ri&w11-bv?seDRH6uR5fVZ+@`i#IbjO+$EK7 zgQ0Y;vRV*@f@$mP4J*7B=Grzqu!Q8{xdd+KGCo zd@H}ociZXYTjP+nALELjhv=^J`bnelX@BbH;`J(`Ur>J~bw?=Q%CGW0d!?Kbjh zh)U(=aDGz$$fI8Uq}w_X?_Vmv%J=%S$+yNK?St~Yy05=y@rvGy*L1I`>m_}o@#lwj z+t04QU2n%<70w5F_QhT~VUIMwm0#t%<6QEsaY#F$d|kRce7!hbIR#ofT z`Ce!YkB%zQ#DMax{3_pD&m-R&hqQI&tM{`0z7^p^5sP~Vy8D-=rD}7d@x6<>7tU{A z-Myweyp37^+ts0CM~#}_N7wG|Zd;>#E5FM3;05GcM@-g$hzSYO_W=Na{MuhIB=+Nxf5^y{5xS1-6*pH;qzX`BlERUqrq&4qJXweSVKz zy{@x+%J+EVN3MU@*{+K}E#&({#_;GlC7KvezLj6)d;J^9x5lCE|5eZTvYxs>dXjC3 z@;%=8@YgTu{m4s_z)ywOm*wBDdVW%3B2f8OewFWzH;>#Rlc{rg?wuqIv%c`@9|#$P`<|-zo6mkCpU$Bmp@_u z+;Qfxo-pNG`BlCL-%7qU4r!g|%w2Tag=fw^yLe4@Wp{Yx(c8TuEnAHnjjvW`eb2ph z$32yImqHFKks)3`2_GTeEjQ&``BlE#mXL3aL)us|U#r*jT;ALB_O!@OxzYIZ$I)iF zLmR{UJL^hMRsa3+Qjvy1`Br|F@8NFpt#L>jD&{ME0{oJ-{dJvwR~n69Fpf6M+i+>f zcljHx2bBv<2r1vnukzislzeL((#DJV>R;WnbnS}nHEEfhaij4I$I)iFKfejT$5Fms zwX@&NFUO9blyBu%`QE;ad}|!i7E1YA-o32eA1r7zzVYAJ{7CluC&lg3@4OeE+ue_q zZ{=6{UVjPs);Of?7W0+8#$272*f}>EpS`{emj}b|B-C}?-MxBAHop(`6T9sIWzsh&Va`LTlNCS)cTG_j1OA@HhkTb`?>wViU_wawR(_T5 zt-a)1ATrX}*hdeU}?B z&H~D}@~eCgUPit(4r%qJd_|!wOH1sW8;xH$jyB6ZxUHz)wjC-&)YW|f8IFSEN{cF!|(gtUV7@8C7KvezLj6)dw3Q3);OfC7xNXq zL%*!AzLz^Ce~%|Vo}bj)W_cU#5BcV%`TeYNfe9hyTlrPKyH=BLjYHaaG2i34=G16> zSH@v}s*$%FYGjrO~>+Emf&B8lRmH#&*a3eW}Mr zT^~Fm-N*@G;!3x3?OOueZT;11jGL*H7MAdiJR$nix>Nm0#t%>s{nqH4bU(g?!chTVb)TM&ld!p|E^YjtcqarujWD=ZRb>-^#D@-SKH1x9qw!~sr_oZUW(1$iD821IzqEd0K>1dFmG7SH@wDmM! zi~GCd-xV11HRwj;vwXKNtgq41M*M8l_1Fca^%DcixALoe55AXtYaG(nN9C)|UtMoB zo_sg*tLt}<%J*sMMos`L-^#D@-S!9MTjP*6UC7sXE)SOcT{y)_o2ki-pP#G^zqig! z{_d>V+U{GSd@H}o_wYLMt#L?OjB&;5Co969otD`dHyXdQy2rL|^!1aH%*R$q-KCUo z5R98_LQ z<*VL#y}RPiu5*7x+)cGL4 zs-!KPm}T7V?V;+e*D#;I6dsp$vKr0qiG8m|({(*PHCQ=b*PfDZRmVTwo_)`5$6=Mq zhAK71e8lJ5K14pg8y?4ew0;a;_pAG}__pt}9DI=FwtPAKLpX$t-1_r@{A76Mpo0dc zZzyDV@P?@mZx4r&Z6Bq6En7bf4}OH@NM-qhEvIkI`Z4^CTeD^C_sq~y#oZms#eP?f zU-F>^RCD{>Y&rDpGPAPgzuKPc`+Q4c?3TF|Eh|IeL&xzRb3S$Iw8{aM{VN0056|w^ zt1Q)*6p4}hg)Q;9O!-@c>;9Vj4PJR)mIp19YAWj=xGP(~{B1{N`A*j>f6ABgr*g_` z*tX4;%AEXCMCZJ(-SwB7-?zDYgjK${)b{D~sgVx}1>Tz#in;2XS9#}$!po7)dEffx zH^Z9*?Q`?jCR3(`%c-p)cke4!m^_a4#qaukGI>5?j0~%5-q!yW`KwtVU(s-fOU-Y^X?|CYANoZ;pL0J{-j}d?Uw!%1eBiS^b?ChzHuyoys(v`2|vTPl@nZhkC0c|fQq?*HfK1s=_p@+pYQg z)eu!{%!+ka>2h)Pljia8S5{>C(X!*(e7_7oJF_r+n`Lz!Kf)6868G1G!&3G9Bs`AK z|8IEHINsOi^~Z9@{hj%tyi8bx`O#7t9{gc8F7dPDaW4_a&o&qNu#74r>tlRe-*qqX z;&tDCAgfQj{qP4%-0?_xeP?TV{kDHj*8dCjhtsiAf1X#_u_JD;`uqHBeUaJcy`D2X z^VCpZvHY}z<5@*<{q%&RRf_9d6Mjm<`zQR=gbzsgz=WTc@IeV5obb~VJ|y91Bz$PX zam0(;_soQ!m2g|a&rbO8gpWx0ISD^E;pZj%{Dj*RenG-7O!&xzUzG5R6Fw^8qZ6K) z@JkYYX~Hi{_?U!Wp71LYJ~rXwO5EH(n)^q2|9x`pADW-7%kaOrV^x{AU0&w(SC+YR zU72tAvod#GSLW8wmU;L~WnO+$ncM!c%v-)y=E3ildFFqWdFz8^?)Y_?x3z4`j*r^@ z_4}8(^BHB{engpXcu|?VUS8(blgm6jtIW&KD0AESW!}i)Z02}u=6G!8cx>i)Z02}u=6G!8cx>i)Z02}u=6GzzH)f8l$>$7YVlW{$^Zj>l$>$7YVlW{$^Zj>l$>$7YVlW{$^Zj>l$>$7XzE=6G!8cx>i) zZ02}u=6G!8cx>i)Z02}u=6G!8cx>i)Z02}u=6G!8cx>i)Z02}ueq}QMk5Bl7gilQP zq=ZjS_>_b@5`I;}rzZUBgkO{JYZIQ8@a%-=Bs@3ac?r)?ctOIal~}&)%wHdf_4-1r z*B_DNYel`j(0aXI5qCV!bwY9HTCUTGx7=Um)*W2e(fZ}-UJWv`RGvi}se9VlGnej0*K4!+p%=nlYA2Z`)W_-+y zkD2i?Gd^a<$ISSc86Pv_V`hBJjE|Y|F*819#>dR~m>C~4{x{=)GyXT@e>46!<9{>$ zH{*XZ{x{=)GyXT@e>46!<9{>$H{*XZ{x{=)GyXT@e>46!<9{>$H{*XZ{x{=)GyXT@ ze>46!<9{>$H{*XZ{x{=)GyXT@e>46!<9{>$H{*XZ{x{=)GyXT@fAi^;mP(~!J|p4I zgwIU)tb|{e@YxBUlkm9-pO^6Y315)#g$XZA7=La*{K1kx&G^%dKh5~lj6coz(~LjO z_|uF(&G^%dKh5~lj6coz(~LjO_|uF(&G^%dKh5~lj6coz(~LjO_|uF(&G^%dKh5~l zj6coz(~LjO_|uF(&G^%dKh5~lj6coz(~LjO_|uF(&G^%dKh5~lj6coz(~LjO_|uF( z&G^%dKh5kv+y1$H{$XbSF|+@e*?-LJKW6qHGy9L3{m0DyV`l#`v;Uacf6VMZX7(R5 z`;VFZ$ISj?X8$p>|Crf-%H9$|1q=wnAv~K>_2AqA2a)pnf=Gi z{$pnUF|+@e*?-LJKW6qHGy9L3{m0DyV`l#`v;Uacf6VMZX7(R5`;VFZ$ISj?X8$p> z|Cl-dFmwK4=KRCV`G=YF4>RW+lPQq_ZcyYo@66ScY?%U<#ftllhnd5<(0jsC`%C>Z(?2u)Gt)ma z{WH@)GyOBuKQsL^)4whEm-}a?e`fk;rhjJoXQqE<`e&wpX8LEQf2}*dU&^1E{+a2Y znf{sSpPBxd>7SYYndzUI{w-hsgHr#@^v_KH%=FJp|IGByO#jUE&rJW!^l#mR<^GxJ zpPBxd>7SYYndzUI{+a2Ynf{sc`FDEx{huu(oX@`z&gb6<=ksrb^Z7Tz`TQH93jon(42Z{+j8pnf{vTubKXu>93jbH8Z|u#@EdFni*d+<7;Mo&5W;^ z*Ar%5Pl%rquI0Cc|8#ubKjDDc>p5NT7i<2&EtRc*!|OZo%=;Lh{j&I$iuk~sRepNL zm67!^`|%GWb)y7@?j<)X7XVsA7=7lCLd<gne8*PeP*^#95yA}qV4yU_wTNMW&b`X zUq7n+Pgt+`j(f`SZU0tYKlo62{raut^}`R8*KfVEynf5I@PfIE=57d$ww=xS=XbOI zRVrN{gIhoL-`ROz$B#IFz9C=Ed;s3|Aj{bAcza`*(EUMDe-R$v9Uf1ge#F#Mrp6Ke z|Jl0|z$%LKzd0aLQPir9cm=#-1wl|r<#@S(pdiSZDitC;NEAp+f<{~AS*u2+;#C{1 zM+B`|@615~03r@Eb!pC{Z|D#l3ek?D5cx9kuH8lM&Za+=;ze86`VqDaN(uc-Wri-bpS zKKKJ);4iyO_yeyB7kRkYDk$A-WSnfrpQFS#bw;k{$&{1Ov$6A;yMkQ_n`UKMds|j! zZ<5$Q<2m|yB}xBc4xgkf?q6Of)+Eyst0B4QeH?4tEc|(KTPMkJSIqF~Kibp7g>STjSGUdAl5@RTamACxPoI%HBV1D#u8&KbU!iK^drwz}vp>5s zx-bI1!7uo3ohE#v9lR=SzA6`$F9^@BuBob~!>+fBDsO*6FUI z#umGhyEFp6!7uoRJwiKpmD+qQC|}eGx~*jK<4A4p)guld5L##!*?g~C6%?+3(L<(bvog{^W}5a1Q(9yEZyyxZ#7@j^9#&3 zFyF&Gq`T{psC=Hw@-Oy$Bg>Mj5|Qq-&#QmqKi^2S9^emrfj`K>yiMW}nxnFdl>C11 z>+8N+@srS-liphQ<*PqY^Hj+T{(FEv0T1ee6A|;>ApQ=>I4FbHP=eg*P4V%!da2BF zOCO9e-|cU%JDN!$w^PoKV$aujy@g%djdH!zTyL(U=1G>4lkS+Y>tr8qTOlXjeA7*% z*=Ib5A&1jaF2z8KffNHN22u>97)UXYVj#spih&dZDF#vuq!>ssz-tz%^@3DCNHLIN zAjLq6ffNHN22u>97)UXYVj#spih&dZDF!-Xz`1^K+! z{*L8sp}j1B_Sw%ODA_gakM5dO@CUxYU;a|z546?&cPMe2&Unt} zcsT3r*!kSPp8eL_h@W>9M;hw#K8YcZk!t6=3(@rv@CUxY-|C3)2VRxt+?REKD=qSk zcTl}+^roLVDi??A!nJjS%NNte?S-??ty*+uWq2^{Td!ME6RsWX z6`P8u7)UYjKfr+NeAlP_>_y?)iesu5FZdrgzSJS480bz0czA~VU94;xlGCgq*+?-qrv+-A{_0+35iI17F~; z{u<#Ayeb7z&q*IzoTi_fUP%Sk=vv@8=@mK-{t!pL&W7j1-x_*GdZq7k(k*o1!Otx* ze}4Usk$l}rmto!Nz#sSme^3fu5#Le#e-k?!h{GWMex2s`bh=MR?c@P%y;k}c^H)uE zLHs_F$6E5v{U`Sak6RX%c6IN_23mojpSay#p0J)nzkht-hCkl>v(c~aHAv+>_xZ>T zd#}23{hXl(i;VaGHEfp)&I&zu;q&TQr3e1pcf%P6ytrY}zn|Vn@dHT<|j#?LOjbHlg){EN{K^&1qTI)u*o z@X-x*D}T2Bf)fwkKy}#gqq`O#x9-G9=+uVi*HazV_rK!G4WC^4#|_U^ZY-oa6#ihr zBkLPVHq)`>oM2fKj=T2pD@XtG#tYXE`~HlO)pE~c!&+7rh4;Mr=_?D$pPv53?Jegl zUh(wUH>G&V68n|)aegCA6KhgRhNA>^C%_BGNeffKZB!f8k zX1kAm{PO}Y1M#KhD*iA3!@Z+(J}Y1U$Wc~k>V74msZ-Y%@((im+_LY8H~#$7(P{60 zF}mNfH>jUB6{e+G7SGl`&pbXvKS~oPtG|&@*}37Ov1iv8J^bAhijW7N&%-%{$9m8G zltEG3VO8zo+9-a-OX54_ak%V< zo7DSO8p5wBALAZy826fQ^1(;W(46Xdzcs@X_iA&;`FPl=8F(%0nu zG(7JwquD$E{2lo5dp`}M_>D;Dr&_BmsO?eVuk@uwpYnTt;M)aspkl2&r<>Ot<9S_b zXz&I8Dw>5q@T$b|ysPO)n~e^h_wS|R&UtHzu5{4675PSv3h}vHuq)NYyq~7Y8bkB` zF@^*eCi+sjI45SUbDw%(KFC>lRhb3!_AAKUw@Fr7w3H zE03)yDEF^lF1On0$c@AN+N5-Sh|hQC8~lRrira*5w1Zc(m#;HxmelfnhIn1F_@V^$ zMc3=Dua;YdF23oqquU+$2EX7tyGfrPo_>xB`SPXuI!eU$lf`q#j;*1i+>?lJ8ivVb z>Y|S2CY{pt9{2{o;CuBQ!Z+H%tJ$Bg+Pa#mv*WTT$>OKRt;t(+#FrD_;=nh*1GKvx z_y)h=yL6@Sjdt+X!=JCYOKQ%Ii*74fd~w{GyfsJsyePh7y&nXqWPR`re!=(FRl+yg z!K=rgukz~ZaCuGn;<+7?o-DpFZcW~rBR)HdZ+_=&cRTP6e!+Lcox(TT!CMb6U+1cq zt5ug*E{?kO?S-m%viM2Wb(K|%J2^E`HTWsbPp)&-&HZ*aS5}urz&H2>-+8NrZ?uC~ zp_eZ;Kbfuf1$Ybl#FNEOlN|^?lH*PKepLUaZ4}+^z&H2>->ttCzR?ceiWt6X=Pp@T zT{pWbu@09kKKcH=ZxrAB&g1TO;2Zpc?}~ebZ?uEA9#MSNp1){OxUS}WZ^3|gviPZq zsq?ADmt;@GVSdubr&L!bfp72&zO(NWzR?b=OJiSO@>YZJyvq2DHywoGTdq$N#ZM%C z$y{Ap)~YX-TP6C+{s=`Yc<*YCo$|mp_yymq?-#z&4ml^s$9KGTC5Z2M@rv)HjLP5s zyIif-F&kpJdpU{erZD&hzu>#{LE#(i;8pMC>%4H~f{MD%&rcG?&s6%7>ETz9JyExa z>_gkb4s~Aue1l)`z4amC8|~n&K@7g*>Y~Zwlj_>)V9p_X;#$(S`g#wt8{*&_{DSX> zM}%**gIBeeukxBj<-A2SUK^e)zEJDyd=H;R^OI$+^{RknT<@VL6$jto7kuYEDtx0I zyh>v66;B6G7H{+2>5iUDd>`gIET3g@SAJJSz&H2>-&j9KJ9u?@`Kqp}4adLw9X&ru z6hE2tb-r)&(eQlmZ?69BJ;v^cgKzK)zM%{4fH?dhzT@fJEF)RG;=9v*n`^L<_;&a2 zo*M->dwF4YBW!p}e=hay{AAuMvF`bN07|<+Xfu93;4w6<Gr!Q3g)~BSuw!Wap|Kp{<=5LDKUx7n^ZCEdO z=&Qd!sK3gcT$GE~H~qD9_-V8XUOT_4W>LHfqsonKUul0IK(4o=igZH)#xw8>zVlji zd+GLTdmxDK&VAs;@ZC9l^51uP`>U1q_g&;pu8*1Sa>l_o_yyms8-;JQL)k$=>l^$* zg<IN-agSY3&X2(__^#L_e4`y&59xq!y0uu_sqs(q zogjW#NiN-DOhlui)bZyO>fdv8T=)*M-40OFLG*9%3%;|T5x&t5`2#xOdog`*C4t&R z_3s4n=^6{)J-L1de!=(ZUkTr6ht-F5!1uhwKDZLacY^rjzwh!N zvM1tTPlR=y*i9b#H~0nLrLDp@+M(jOegXT9w9;W^9up?|I=H?Xdc^AbUa9-@y74YJqhr#CH_Gi7K*^2nt$%%1l2fBl>=!xngg; z*S$UwbX*O;lXa)&SKaGRZNC+J%kw*a4iRxYhj{6zHg{tx1@S+Jc+SPG>uw)>^r)t* zE>d!idgh|guO7Q>#K38-YLj#Iy$>BX_*Y9qhhz*~$D+S#|7i3sm;YhIQG2|%(V}Nt zY6;I6>)pGLW=M=U<0bsg1V-Ld=Zcl?>}UKRTLZUaYA9Y%dRq%`#K z-#*^3TjZTWszc!|XDnKG#|!(BteK?$*`cjv2abB}pmRqw|DiHu?X&UG4;J>>^!-wg2)f7?$dY<%(1Hw#HdA?y4myS@+I zT;M(aSZT+s8}SJBn+=vVxrO^r@fRPje{1OW(T8l!4t+c(BlJ?)`-S|2%rUd}OZYj& z#~$uqIDPG%MW4R1st9u6^LaQYjlN^8pHIVchv5#z9#k%<41Fw#NB*{OC+wJ=Zmay$K8daVk`9miF%%I4rA$gKKN13 z^YQoQSM}-S0?WIWLU;RQGm;tZ?lBnrfiLiv_qy;0UVW;#LnPfpwRnfdKd`}?_FsUNbyANT@)$Oo?yuh!>lR>@v_ zUA(@eq$%{(374*KnRthqQveg>uhQr5@jm?}2oozk7JsXHb(NM_HPG)d>Tg*XXYl=8 zpfDccJO==~{ahy}sc?#c6ay&+QVgURNHLIN zAjLq6ffNHN22u>97)UYTWq{Ygo$C(X{8T)}K#GAB11Sbl45S!HF_2;)#XyRI6ay&+ zQVgURNHM?+#9lvezt^AF8`w=fh4xNRB)eVq>%2^9oR>4{eYMZ5^*woSJ(qR5sZ++$ z1An;_suonvwT>Awq$Xh2OP=)m!Br}hCBm)Fq6Z;p&W3lH4gHCi)6WRCSp&W1x8V7m6S=LW8`S^iDIpDTy9OMBP$#UaR4!DX8sVC$CN8cP%-30nj z4!AargFN64>+Qy&9B`$Xq7U*6PD0R!a=PloSRRS0}kg8&P z(GR)6dHW~uC=Yyt#zQX7TW>!F9_4}GuJMoyy+L@C2fkugsXyexzTr5~FQ6agfp61z z$OS$~Kgt7Nx|`^ST(n!%`KJ3H$^+l5@sJDtg77F0d|n^X54qqk2#@l>H)=fO;(U)f ze|7y)9{B9tML*=?_=E5$4}87GLoVu#dU)Fp<$>R-@sNvlkFp~;|8;rb%l44^LoW0N z;ZYv=R*gqJa`ZR^`{u1b$^(!21>}OaAUw(g5BZRbdi&vjc$v&l!L( z@Q3<AF``0MI*#{DA&z{=5nuS@=PKy=l??JT zcO{AGRyF;C9rrDnX}ZhEa|WCi3+={qCdU1*iGVmyaNcAOl>UqJ3FC#={=%L^_u+J5 zfPVHO5tW%ai)KdAjJ1A8|)8~zKzbB5``}?Qs>Z|i6 zavx#oyn!F}d=7taYgSr6^^2AVejX#4%#YVGl6#O(mbYk9ao8R31^yruysEf*pWvv? z$op#PFN(ixe|;0jPo|2_(v^Kw`=@9h=gmo;e8|y0KV#wf-qx(N$I?!wpQj{6!5`;9 zpR*Jro$+|XrQeo*mv>bB{g1!@1RS2{-kK8|Uo?H%v`ME-!}pYV-#@YZF@m{Ur|Okuif!i(pH<9~6Z7L+u; zQ(B!zaXIlV-+w}Cr#d*mar)pJ{DSYi1BGw2gIAp4Yhn5M;hI`+en;_S@e?|w)mf`5 z;#=Z0G%MG=Be3WI-{2Q~w;m*XqaAdWY|rpDuX0g%ac!a>t4S7L(kZQW^(nCItCP~6 zb0+lc`|vcs;Je}w;T!GXsu)EKU*(JID$5sEme(fq4w7W?g`{;*VZv%1hjAkDeWH55 z4-(PO5$_Hk{Tuv(@9h4OJ$FRES`o|miN8&;H85|u1|YNxb1k78HFH>aRq zCws5LDLp6*zQHf}EnDAur^#1v}+{uY*bsoj*QGEC4`|vcs z;Je{S;T!GXtSN^LU$u2)O1;?~#*@WQ?UYt$wVqad??XwjCq4Q;Jk2lo#`P)sxwEDm zHhfhrsjFU+;MHaF_(`48>O6|Wi0{js3ACQl{SNj7{DN<2Mn6X!zTx}K^7y`R3#9nT z;)^<^)meu=QTC*#-iNoHs)6;tM<^W6buG?8=Mn74Vefk`+UaAfO+FRo{>SN9cf~qv z{V=hwSf9oHJKP7tdMwswouUub6CYk@+-onsb05v{)}bOF{&v0YTYs#iJLUO>x!(Mq zB;c@)SaFOWexZBaHL|%xWMW;`PlHLr@yL6U7~4wkNz%UWI_zP+`&s<+cP@FJB7*9< z`xoE~{DFV)s;Z~fVc$^eu2S8TiBF0174)0>7_ct-td3(H7IEb3Ymhb!E1IXVf|lXLI{=_IuVH$=w{p`HudH{tC6|#}aSS=XZ6nHTjTD)`yRj zhsjv;^A}=TuMLcXZAY&3Hrhq{gvY;ANME!GuE>BXN5}NyE!Ct1J%niS>j`9 z!+WiYHgoFS;PXAGzcLcX(49W>S4s+CZ(ArFk795VUAK1E6_D|Yg{^9WCgzfX`zpXQ8G6wkF_zDD6Y%`BG>H6Hm< z3R4Lw1{@5)-ow7b-eVs(#sTlXDcF6C0}wfeI%P50eAxT6wDt@?d!I8_>^l6s5fa~8 zkeIy(4)&^Xqz}Gjp|(rf-nT4u$5HtJ|0`vN^uDJEW69pb_qF%!8T~B&MLQ=ye)e8a zJ!kL17x>E_E&PF3IfB0QJ-xA;&C&ENZeJ>K{+4_b{dk^rwC3q*3bVtUgX7M8m1+LS zbpyrqbpw6Xs>vFdvE1sX<(ZFkt zvR-%^$MKi>Chp|#JY67&KjcG>_PzYkbyt&BZ!NdxdkS*Y$)Dd>UuEYIe^1kAu=SDG z*(C4>zQ7;OfAA{uk0bsTIr<-c-;v{yYd5W=0&8?7uF+Lqq2uU(h$CNT!}Hlcw8pwN zeI@-+#Q1F6_!r#&xZm;j9ebw#fiLifnu1rvcN8D?FNnYP48K`k*VVqPNX}30fBby{ z#PNNC^@kqp-Yi3^Z##ZbR9e;E8T^R_b`kT#H6|xJo$QNsrVxz#oyR4Q??n9_b%=z1 zdi;xpjsz8KKJ?0{wD$IYZ}OItV+uMhZ)yK>$=2Vi<(n42x^HcP_n6~N^J_ou55Iq< z%5MLv%1NGcp^5T(S^xbn?c*FhJe2>$yX!xG?uPXlAAPt!O;v>3c}rCM?!-fqDIES1ia|@r}GGR1KIpcVqvGvy}22e z9fak1zxI9S{Ux;fnt%Qd{P@lL1=Vx&e((kUP-F0_;*p=wF@OFv@~p^B6hA`E!-f$z zCG_KYJ=SrCYQ8Y<;M0xrZv@cdftJ~1)8^(q}`o9EUghIs~e#DSJ1qH zk)Gn+66OAvL&t@F{5WaRhaFQN9pFyswoi!fy!1Ob=7ss%lYGeen8KXChyImK6!~24 zT}ngzBb`qkxitIv@o%Y^iSxb+zGlJm<@>6b`+0NDFMG>8f6noS7mWSq`1XE(vBv|B z=YQ(XFU@x6bFJXGywh>qIlgeb^f#h^Un5L;MEqZ~wl;E6xxMJer_(zr$NeIgB%ofeP?+o8rt3*T zUk4n@0atpeK8`57`+0qo1Fl))AP-8t&-tSqaCuWiALJRFgiueE1FliyAP+e2bN(m? zT=rDmJ{k|4_c?!*1Fl}XNR}Iia=_(J7k!Wi99arwnxPNnfLpC`kOy2O%Z)=h;Bfvx9&qzA+&Gj2 z4&@*Z@p&2U=lpSAzDfo7eAuqfQmoMurkNT=)3ncjo8hgRVZkj3gEZf8Y!JK?-|Y zB%Q98$;or_?-p3ro`v7^=j3so;JnFOApIBTlXu*K9mIGdyvkobZ`jq+uW#RrX$HhI z0k_MZFY@8%&6RlLyu{8M;Lz^A_;;7)>}Bv>n-0?#dzJdw8;A5b+lcqv`E$% zbJgB4%1)=rd1f}TaGG1BE5`EJnsEQ}y4Xl>>CVU5?z}{B^xyRqj_&2r@}s|T9bINe zNZ|!+J{~^KCh}nqU?1x1;rJ<-wl<1_&@9Z+!OYJzjNF1`)8OR+;6vuqd-r;e+GPkzwKuUf8bTs zjrVUC4BTw$$@?-Sj(r52_h7(ED2_8ApSxnguGCk|{_Q5~q4eeSGa8+t+bNPoU5fjc z*D+G|VR&=8Hja4-_yT{~i-kY%sH6Z>hi97i_&lGTlz+XVVFMqrbquwRO zM3_I;+dKNSR695*hxTD4<|-D-al`Kj&HV9uF;G6<{qMyS#!u$$?+eT6DM;RmUS3yK z(~&YqezN#e!sq2qom&$QFLnq`DA?A%oWA?r(+>R={S*DQxklOz{aDpY_1BYJ=X-ld z;?Dk>=X3rs9{n{S-?zUWMfB6RDQDfaW&!c+HmgV&S~fBY^DAxE>Vs(tWzHN2EX7N!q5(g z!v|lB%4^OJ*UX+*SzApnbU|*%ezN$9N^fpSqIylus)_G8CQ2b6GwsUniU{lj>;ddU zUY(pDup6R_$N$9+`;c2~wNyId?i%rU!w%OA9Ovr=S&`-(r{n8~NQhTp`MG&5R&GUsRdD47E4NpH zO77rKp}x1|H{SR^2U6Jks0{u^3vQyMcS&9lfBvXwImxD=|KYldPsVt9{64;lBOyO* z(0tObEX3~BDj|P8DE0OG%wH2#1J}K{4#xdvTpxSar?K9R>tP&8nEDFOTh@}#&j;wpXWW=dNHP6W;&feR z4RQ2ex31fD)O%gF(Opc(^mQ3^F@0U8p7(m1M!g4p%5#6sq_RQdQADQQ?{(QcdPbao{to>3U6%=} z=dR1Z7x>$LmGB2%)e-DK*JWTd$Zq%abs6{qf7#20Kk#b!>#_TjF|W(w<1g{+vWlO` zal?n6AfL})b$?Rh5}oI!uFHa$^-qVrME^v8&ACq64gFZ5ccAMs98K)=J(G$hHqWTP zMvfak^aT0nuPC2re@$JN1u^TNj{b`NiT>Jfy|f$pv7mRH`(-$q*!`6!;)(TF$c@(r zf8Y!JVSWW(MPBUtWqkdG>n`>&A3{3Ekx$nnRDyoN_si&HofmjrMqnjBh(AI0+;tiF z0)JdTcHmWF&cC=GgYV4q4_~9ZLj2cd*QDKN@h@@L)7NE~-*2X>#?#|_=DI9xhrcev z^P_lP^kvOo!(YVy;ki<8512ZIc28AS*YOt`7IfivqML6Ly%o2M-=_WSUrM}Q`}yxm z+*_~idVUo3!gF?cH~Z^Heb_GMQUv9IYt%T%LwS6K4>*(qF8k-A5AuNXK0k_bz}0IU z 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 literal 0 HcmV?d00001 diff --git a/mods/animal_vombie/sounds/animal_vombie_random_1.ogg b/mods/animal_vombie/sounds/animal_vombie_random_1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..0806ca64366f2f635664552d3db6509c096e9b11 GIT binary patch literal 13119 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 Jg8qT>e*p4}rtAO! literal 0 HcmV?d00001 diff --git a/mods/animal_vombie/sounds/animal_vombie_sun_damage.ogg b/mods/animal_vombie/sounds/animal_vombie_sun_damage.ogg new file mode 100644 index 0000000000000000000000000000000000000000..4b06f51544df60e7380e28979d192284b8d71d95 GIT binary patch literal 9125 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 RD;6j^qlH^#4*s~({vXIvPDKC! literal 0 HcmV?d00001 diff --git a/mods/animal_vombie/sounds/soundlist.txt b/mods/animal_vombie/sounds/soundlist.txt new file mode 100644 index 0000000..fd4da95 --- /dev/null +++ b/mods/animal_vombie/sounds/soundlist.txt @@ -0,0 +1,16 @@ +--vombie-- +random: + random_1.ogg +hit: + --missing-- +die: + --missing-- +melee: + hit.ogg +sun_damage: + sun_damage.ogg + + + + + diff --git a/mods/animal_vombie/textures/animal_vombie_flames.png b/mods/animal_vombie/textures/animal_vombie_flames.png new file mode 100644 index 0000000000000000000000000000000000000000..5e388aa36548a0b6c2222c9f8cd267800b72493e GIT binary patch literal 1286 zcmV+h1^N1kP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyo0 z5)mV)KiGi)000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}000DGNklAy!;TMwtXo+Kk!f3UrK6*J&e`Ak zzO~lg``cABs}~zFgf+N;e_{^jOJ455H&Eed?x)ZxdGQcd;u5}#Vf+TIg7Z;I4F&+>0%_F5-vy7e2z(g1hl!jEA5hoXx=Z3MSFchzpp-hCI7b z<4br6r|}^g>`$3D>Xh^*zKONCj%!$gxq?53=8KrY7@kEx#;a!1Qmn#P6Ltc}-TciI z)0SdKAbM~vqv2w~_i!%;1ND=5;b$lXSMmL*`8Ha4_HFFx`r!zc#!U-}Hi+W|Tk(%L zYAAkqGLfcgjNrW_x;-@iI&ia9GhzUD;L+$Z9@rUls%Auq%>B485J&QXV#?A*a`)pz z?tM5@uq)VGLeyY1c>~iWe%yx@(P48~?BMPanXA-4nU@W|j?*Re|1P-mNpfG{Uaq76 z$&j>j5!DOmDPeI4yJM0`yntSutD4^`nHTG^DG^7K$5A9p*n-jhe`{t?kE%wcKZq~aA z&*Ar3Z8|uQ{yJXRm@c#@v~LSHosu4UU+#ZNH`;?I@LEZ0HX7`0_*KHsW46XK!9AK* zRUGyMTy5=dnGKsOqUIb9rz?KHPP^Wd`cL3H`RG*~DhatOE;voj!VVJTc%VWD`y{m6TJ(6Ls<# z49vmS<1K3!>Axc~4`$G{f_Kw4@5Y(**Kg&tGTqhU?aQ$`lti-$9-mc;Jc zlH27vp?Bc1jNThhti+x=4|fNmFG*g)kFc(5`}ricD#`7Q4X5jjd?g&*6%BS}hR@eo zj}FCyQ(4F_M*8C=%H5N){vNnr#uLZ7Yt(f-pNTw%cjA-Ta%{nkD7P;{O(w!hyww`6 zJe-$b$+aR&;55eSNIRU3r8iv6B-y7+@SE`e?-=-6xVTzUdv8p-GJ*ViKse-KXxC?q}0P1eIPFDl;aKIzge^{e3TDPwfZXer|zAf zI-sA$T&u6L9gpO^-3bp%y6V;`ZCPsXdZUiZ)|X%}L|&nI4ZhZeSRD@L;-X7&)-p7$ wzUn{WSLa2OQpfPOvS@u?m(niBWivSY2^c{YuJ!n!4FCWD07*qoM6N<$g7rLYYybcN literal 0 HcmV?d00001 diff --git a/mods/animal_vombie/textures/animal_vombie_vombie.png b/mods/animal_vombie/textures/animal_vombie_vombie.png new file mode 100644 index 0000000000000000000000000000000000000000..4e247336bd80ef23381de7bd9294dcfd135e76c4 GIT binary patch literal 27826 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 C<8#&k literal 0 HcmV?d00001 diff --git a/mods/animal_vombie/textures/animal_vombie_vombie_item.png b/mods/animal_vombie/textures/animal_vombie_vombie_item.png new file mode 100644 index 0000000000000000000000000000000000000000..8f2f51f0f5ca4e362d7ec50bb8a514d3a80e0994 GIT binary patch literal 402 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 z zS*9nAiZ!r&mr3+~cQN_BY~5(iyfM)~$>Gy8ls3hx6N8g|Mw?Q7v(!1mzGrW-heA1^>mF+6lh<%{l5Uf%{-j| literal 0 HcmV?d00001 diff --git a/mods/animalmaterials/depends.txt b/mods/animalmaterials/depends.txt new file mode 100644 index 0000000..331d858 --- /dev/null +++ b/mods/animalmaterials/depends.txt @@ -0,0 +1 @@ +default \ No newline at end of file diff --git a/mods/animalmaterials/init.lua b/mods/animalmaterials/init.lua new file mode 100644 index 0000000..34b982f --- /dev/null +++ b/mods/animalmaterials/init.lua @@ -0,0 +1,299 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file init.lua +--! @brief animalmaterials +--! @copyright Sapier +--! @author Sapier +--! @date 2013-01-27 +-- +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- +minetest.log("action","MOD: animalmaterials loading ...") +local version = "0.0.15" + + +animalmaterialsdata = {} +--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +-- Node definitions +--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +-- Item definitions +--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +------------------------------------------------------------------------------- +------------------------------------------------------------------------------- +-- deamondeath sword +-- +------------------------------------------------------------------------------- +------------------------------------------------------------------------------- +minetest.register_tool("animalmaterials:sword_deamondeath", { + description = "Sword (Deamondeath)", + inventory_image = "default_tool_steelsword.png", + tool_capabilities = { + full_punch_interval = 0.50, + max_drop_level=1, + groupcaps={ + fleshy={times={[1]=2.00, [2]=0.80, [3]=0.40}, uses=10, maxlevel=1}, + snappy={times={[2]=0.70, [3]=0.30}, uses=40, maxlevel=1}, + choppy={times={[3]=0.70}, uses=40, maxlevel=0}, + deamon={times={[1]=0.25, [2]=0.10, [3]=0.05}, uses=20, maxlevel=3}, + } + } + }) +------------------------------------------------------------------------------- +------------------------------------------------------------------------------- +-- scissors +-- +------------------------------------------------------------------------------- +------------------------------------------------------------------------------- +minetest.register_tool("animalmaterials:scissors", { + description = "Scissors", + inventory_image = "animalmaterials_scissors.png", + tool_capabilities = { + max_drop_level=0, + groupcaps={ + wool = {uses=20,maxlevel=1} + } + }, +}) +------------------------------------------------------------------------------- +------------------------------------------------------------------------------- +-- lasso +-- +------------------------------------------------------------------------------- +------------------------------------------------------------------------------- +minetest.register_craftitem("animalmaterials:lasso", { + description = "Lasso", + image = "animalmaterials_lasso.png", + stack_max=10, +}) +------------------------------------------------------------------------------- +------------------------------------------------------------------------------- +-- net +-- +------------------------------------------------------------------------------- +------------------------------------------------------------------------------- +minetest.register_craftitem("animalmaterials:net", { + description = "Net", + image = "animalmaterials_net.png", + stack_max=10, +}) +------------------------------------------------------------------------------- +------------------------------------------------------------------------------- +-- saddle +-- +------------------------------------------------------------------------------- +------------------------------------------------------------------------------- +minetest.register_craftitem("animalmaterials:saddle", { + description = "Saddle", + image = "animalmaterials_saddle.png", + stack_max=1 +}) +------------------------------------------------------------------------------- +------------------------------------------------------------------------------- +-- meat +-- +------------------------------------------------------------------------------- +------------------------------------------------------------------------------- +minetest.register_craftitem("animalmaterials:meat_raw", { + description = "Raw meat", + image = "animalmaterials_meat_raw.png", + on_use = minetest.item_eat(1), + groups = { meat=1, eatable=1 }, + stack_max=25 +}) +minetest.register_craftitem("animalmaterials:meat_pork", { + description = "Pork (raw)", + image = "animalmaterials_meat_raw.png", + on_use = minetest.item_eat(1), + groups = { meat=1, eatable=1 }, + stack_max=25 +}) +minetest.register_craftitem("animalmaterials:meat_beef", { + description = "Beef (raw)", + image = "animalmaterials_meat_raw.png", + on_use = minetest.item_eat(1), + groups = { meat=1, eatable=1 }, + stack_max=25 +}) +minetest.register_craftitem("animalmaterials:meat_chicken", { + description = "Chicken (raw)", + image = "animalmaterials_meat_raw.png", + on_use = minetest.item_eat(1), + groups = { meat=1, eatable=1 }, + stack_max=25 +}) +minetest.register_craftitem("animalmaterials:meat_lamb", { + description = "Lamb (raw)", + image = "animalmaterials_meat_raw.png", + on_use = minetest.item_eat(1), + groups = { meat=1, eatable=1 }, + stack_max=25 +}) +minetest.register_craftitem("animalmaterials:meat_venison", { + description = "Venison (raw)", + image = "animalmaterials_meat_raw.png", + on_use = minetest.item_eat(1), + groups = { meat=1, eatable=1 }, + stack_max=25 +}) +minetest.register_craftitem("animalmaterials:meat_undead", { + description = "Meat (not quite dead)", + image = "animalmaterials_meat_raw.png", + on_use = minetest.item_eat(-2), + groups = { meat=1, eatable=1 }, + stack_max=5 +}) +minetest.register_craftitem("animalmaterials:meat_toxic", { + description = "Toxic Meat", + image = "animalmaterials_meat_raw.png", + on_use = minetest.item_eat(-5), + groups = { meat=1, eatable=1 }, + stack_max=5 +}) +minetest.register_craftitem("animalmaterials:meat_ostrich", { + description = "Ostrich Meat", + image = "animalmaterials_meat_raw.png", + on_use = minetest.item_eat(-5), + groups = { meat=1, eatable=1 }, + stack_max=5 +}) + +minetest.register_craftitem("animalmaterials:fish_bluewhite", { + description = "Fish (bluewhite)", + image = "animalmaterials_meat_raw.png", + on_use = minetest.item_eat(1), + groups = { meat=1, eatable=1 }, + stack_max=25 +}) + +minetest.register_craftitem("animalmaterials:fish_clownfish", { + description = "Fish (clownfish)", + image = "animalmaterials_meat_raw.png", + on_use = minetest.item_eat(1), + groups = { meat=1, eatable=1 }, + stack_max=25 +}) +------------------------------------------------------------------------------- +------------------------------------------------------------------------------- +-- feather +-- +------------------------------------------------------------------------------- +------------------------------------------------------------------------------- +minetest.register_craftitem("animalmaterials:feather", { + description = "Feather", + image = "animalmaterials_feather.png", + stack_max=25 +}) +------------------------------------------------------------------------------- +------------------------------------------------------------------------------- +-- milk +-- +------------------------------------------------------------------------------- +------------------------------------------------------------------------------- +minetest.register_craftitem("animalmaterials:milk", { + description = "Milk", + image = "animalmaterials_milk.png", + on_use = minetest.item_eat(1), + groups = { eatable=1 }, + stack_max=10 +}) +------------------------------------------------------------------------------- +------------------------------------------------------------------------------- +-- egg +-- +------------------------------------------------------------------------------- +------------------------------------------------------------------------------- +minetest.register_craftitem("animalmaterials:egg", { + description = "Egg", + image = "animalmaterials_egg.png", + stack_max=10 +}) + +minetest.register_craftitem("animalmaterials:egg_big", { + description = "Egg (big)", + image = "animalmaterials_egg_big.png", + stack_max=5 +}) + +animalmaterialsdata["animalmaterials_egg"] = { + graphics_3d = { + visual = "mesh", + mesh = "animalmaterials_egg_ent.b3d", + textures = { "animalmaterials_egg_ent_mesh.png" }, + collisionbox = { -0.12,-0.125,-0.12,0.12,0.125,0.12 }, + visual_size = {x=1,y=1,z=1}, + } + } + +animalmaterialsdata["animalmaterials_egg_big"] = { + graphics_3d = { + visual = "mesh", + mesh = "animalmaterials_egg_ent.b3d", + textures = { "animalmaterials_egg_ent_mesh.png" }, + collisionbox = { -0.24,-0.25,-0.24,0.24,0.25,0.24 }, + visual_size = {x=2,y=2,z=2}, + } + } + +------------------------------------------------------------------------------- +------------------------------------------------------------------------------- +-- bone +-- +------------------------------------------------------------------------------- +------------------------------------------------------------------------------- +minetest.register_craftitem("animalmaterials:bone", { + description = "Bone", + image = "animalmaterials_bone.png", + stack_max=25 +}) +------------------------------------------------------------------------------- +------------------------------------------------------------------------------- +-- furs +-- +------------------------------------------------------------------------------- +------------------------------------------------------------------------------- +minetest.register_craftitem("animalmaterials:fur", { + description = "Fur", + image = "animalmaterials_fur.png", + stack_max=25 +}) + +------------------------------------------------------------------------------- +------------------------------------------------------------------------------- +-- scale +-- +------------------------------------------------------------------------------- +------------------------------------------------------------------------------- +minetest.register_craftitem("animalmaterials:scale_golden", { + description = "Scale (golden)", + image = "animalmaterials_scale_golden.png", + stack_max=25 +}) +minetest.register_craftitem("animalmaterials:scale_white", { + description = "Scale (white)", + image = "animalmaterials_scale_white.png", + stack_max=25 +}) +minetest.register_craftitem("animalmaterials:scale_grey", { + description = "Scale (grey)", + image = "animalmaterials_scale_grey.png", + stack_max=25 +}) +minetest.register_craftitem("animalmaterials:scale_blue", { + description = "Scale (blue)", + image = "animalmaterials_scale_blue.png", + stack_max=25 +}) + +minetest.log("action","MOD: animalmaterials mod version " .. version .. " loaded") diff --git a/mods/animalmaterials/models/animalmaterials_egg_ent.b3d b/mods/animalmaterials/models/animalmaterials_egg_ent.b3d new file mode 100644 index 0000000000000000000000000000000000000000..fcbc9203ebbb7be9fb5f5f4852535ca81c27a498 GIT binary patch literal 75242 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 literal 0 HcmV?d00001 diff --git a/mods/animalmaterials/models/animalmaterials_egg_ent.xcf b/mods/animalmaterials/models/animalmaterials_egg_ent.xcf new file mode 100644 index 0000000000000000000000000000000000000000..9a61de6aff7dc3d82548c1072bde78d8a95658c0 GIT binary patch literal 31134 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 literal 0 HcmV?d00001 diff --git a/mods/animalmaterials/models/egg.blend b/mods/animalmaterials/models/egg.blend new file mode 100644 index 0000000000000000000000000000000000000000..4a24a942da9a2866a142542e46dab6c2fdbd4f28 GIT binary patch literal 508604 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

Z%FWyCIKZ^TL;4$9UFbf|qd7LzT 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 literal 0 HcmV?d00001 diff --git a/mods/animalmaterials/textures/animalmaterials_egg_ent_mesh.png b/mods/animalmaterials/textures/animalmaterials_egg_ent_mesh.png new file mode 100644 index 0000000000000000000000000000000000000000..d276db13895b092c8ad3ebedcd8248c6c85b7896 GIT binary patch literal 8129 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 literal 0 HcmV?d00001 diff --git a/mods/animalmaterials/textures/animalmaterials_fur.png b/mods/animalmaterials/textures/animalmaterials_fur.png new file mode 100644 index 0000000000000000000000000000000000000000..c8dd7e30a9e7540c5f18e86ea9f33884864119a8 GIT binary patch literal 1053 zcmV+&1mgRNP)Px#24YJ`L;&Rg(g3%@e>9;0000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyn< z5;-(%ejCdG000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}000AcNkl(NABf5>H$5-z^XJ8Vfi(7zB_Yh-2mp}PJFsjA{Qs{2004{G1X&US09d+0 zZ8?QyJ78m%v+<<>#IS6KgE1RbShn+@0JMgv9iJkrcfisW2azQq7PAQ+ZZ7sN!@(}~ z=O?iT9G`-XU6_q302F|dP$)wI;>WMQ#(VEOYMvQ}=mMRP=7USV5CBAh53^APOIH&0 zSrT$EbT35|_#0(vwz~iTr_5K~6R!U)PpX4n$mt&PCgqjVh-+t9PVq zMV;u%003JxK)&ayC*iHLMeOna5PNU5uNxE_yTx(rNoDB|?zRJ&Rb@!Ara4 zP5`37M{PMRvJog2S&>_D;RFI9g8y6z)^^I0P||_68^#_i+d*wPm0YtI0CBR3S&#-) zfo?D(JX-)|gvvt$cC#h;C8eBewf@8xeKILH~Sn6S8HvsA2X-(tVcgXh(FV zY-UqNy#Kd`oDH*4<+~yEm{=2^-+4oFWgX_~Lq#0{tcR4^f@vU$7NyddjcRF|K2S5K zhu_Am&v!yuy#p5bFi}j#q6zthC{sb{be#Gd%&NVBYv6ftpX(-|ZtRu~9Ccqo6OpAW z^apnv&FDZJzkK6>5LjDJq>iSUF6K#yX1l9ZJK1*7KgV_SqAvk87!q1EcBLt%j!`v! z{?6#IptRiu>z{McQaiq~4s-D<%EPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyS{ z799dmPvVdO00Fc~L_t(I%XO1GZWKWfhQF%row0YJUiLMQ{t3pr+Q-mRtN(6weO*;uWho`3n)SGw3;}rY@)c$#07+(M zw2ioLczSw9e$*AfYB@Jx0|E{xmQrFe{>roGXGoCeT@}ULq~^XPkT7@h{8$H&(RjpS zIi)BU09xy+Dyi#cR@IWl;*r_x0YKaKPAaI%Y6D(tbHhF0?t~EObUJuT9wI=udxCp& zu+~YCRAB~6H7Jqg`2oPEe`nlHZjovRgL6WNl4`8+qag`AL_#>yU~s+*0O<94OvYmX zX0r!#&*dIfR|Qfc#ACVVD$BXGhVbL(FHZVB0B&!GjD}yV-|y4OdTOBeW@eOC`Tsgt zESGF+Nqqk{u`J6dRs}IeJcPp>08a^QerK(dL`tby5i&?h?Eu3uH+Hl=A)lg_)LP2T zdj{@}d)s=yaNF9!0aBe zoZykws^sG0wXUx}*+DZ&+CZj{Q$Bor-x~0~F~C1}^61K+W!2^Y0000aiCSIo-U3d5r^M~TMIQAh}>B&VpPQ3c1kjT zVf%(pVq4BdSSP>MU9pGd`G%q$jC>^Z7nQ~NhB#7xJ$v&4ZVTWxaE>Ss(09*`uppEhxY>iLr1IBn3k9SWl(>Z zWGieq+0%K^E%AL1MfA-|tax{3v{lPw=eTv({;g)xn!WVn6vl#owkemViCY%h?%8oT vbitRGdl#JOtaVZ_S=!i8&SdiA_D9jZ(X-=rzK^>P3{?hCS3j3^P6kqh6PFiLxlUdNbJa48$*Oi5{r(a(v5$LiYP)9NG@bmxw?^k=dL`2Um z7D`(3L9XHYs-Ty*(|Bvn7jqg0W$_-^y6)wi$>%H?Ph7j=z4qj}=kXQ0mwuQRa9!ly zV+NO$Z<%YS9+UWKBa`yyo`mvtfhC4+QQ4}|!Ou&Sj&L~ayU+aLqIF^D(kn57*3X|* zZ-2bB{l4CGMxU(=1+mM;WL2Inv0!UI8}o0kIGf3TAIE5{BIN89Ry&ac@UkDfQywAE(< Ph8lyXtDnm{r-UW|E48P= literal 0 HcmV?d00001 diff --git a/mods/animalmaterials/textures/animalmaterials_milk.png b/mods/animalmaterials/textures/animalmaterials_milk.png new file mode 100644 index 0000000000000000000000000000000000000000..e53526457b744fac55bd78c8a7da6b4ba570ef00 GIT binary patch literal 559 zcmV+~0?_@5P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyS& z0t+Sjh^|Qh00FN_L_t(I%WacOZ`wc-EqpeFy<= zZpNtAHyZW^-YP`EyaV$@{eDNFyMKF<)pyJsZI(JmZ8FdxBw4MP+~0Q-42MHj%O#gQ znM_bsk|e3;(Hjl=`v$$r)pWj=4J#WvY&N&_*zt$5CF<)83{U{*n_X#v4&r4oj xw#;TTx$-yKNwRz0F@7_)hTHY&^Ow%I{2u_o8v3;F=RW`d002ovPDHLkV1kD@^J4%2 literal 0 HcmV?d00001 diff --git a/mods/animalmaterials/textures/animalmaterials_net.png b/mods/animalmaterials/textures/animalmaterials_net.png new file mode 100644 index 0000000000000000000000000000000000000000..5f92ddc1f40ea7398849ae72181e5d6661fdb9fb GIT binary patch literal 432 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Y)RhkE)4%c zaKYZ?lYt_f1s;*b3=G`DAk4@xYmNj^kiEpy*OmPaBOf1&YG9&>9ncg5PZ!6Kh{IRI zbNLP{aD*Nf&8?oGw)@bexFsJay*ck8DukbIu7oATPbrdG$&f@&Chj5S<4sB)vP?L{(*t_qsHxNtmmiH6in8QxERNJKshOV z)1H0PBtD(5JwL@J;-s_b;%d!IUJ-wv^9EgaZ4&vmUE>Y*n9=-et=zoD*3Bf*hER|Fx8mh`oHR$S2roYRjHy zYnMDOTzdB0af@ZMJY6PxWN5aVEcx_x!PY*Zm0RqMN~N-XpZR}7xXxI+$jGbi!l7qT zx~4_bLWI3GY3oLKCo!s*3Pmt)VVRaEaJFbhOtQ;q$IVZr_i|6WUvo9i!AAPt-8Oxv Xyw#7G9-O@j3{D15S3j3^P67srr@!*9c_`I-%QzHYW~ao<$T z^Ul7I;n=-Ha~)WP9v#VSx)PD}>HW>RjXW+bQC#gJ!U|^@a!zJ9BxLEFW#rkPw^jd} zQj?bK1rae;1MB7Q&b^uAbKu|4oPDd+l@4uVcj8-L=(FnA-gS<5Eq^X#woBDnVEQwa zMNxV6oujF}8<%k_&W;FNQ@V?JqLJEH?F)U%>F;jN{xIjvEE_I`=~Fc8oOzeccH7XQ zAa>_d&BSU!Mgh$Y=D%z&Fm7mV&?xZS*!ox1p@h%ovCjF2j+zV=Z_dBG&+vocg-7j- UOPbrX8-^I literal 0 HcmV?d00001 diff --git a/mods/animalmaterials/textures/animalmaterials_scale_blue.png b/mods/animalmaterials/textures/animalmaterials_scale_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..b970c23e069a43e6a4418453fcefcdbeeccd02de GIT binary patch literal 668 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 R_QwDK002ovPDHLkV1lfK$PNGi literal 0 HcmV?d00001 diff --git a/mods/dungeon/depends.txt b/mods/dungeon/depends.txt new file mode 100644 index 0000000..4ad96d5 --- /dev/null +++ b/mods/dungeon/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/dungeon/init.lua b/mods/dungeon/init.lua new file mode 100644 index 0000000..dd0fa32 --- /dev/null +++ b/mods/dungeon/init.lua @@ -0,0 +1,560 @@ +-- minetest/dungeon: dungeon + +local DUNGEON_Y = -1000 + +-- Define this so ores don't get placed on walls +minetest.register_node("dungeon:stone", { + description = "Dungeon Stone", + tiles = {"default_stone.png"}, + groups = {}, + legacy_mineral = true, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_alias("mapgen_singlenode", "dungeon:stone") + +-- Make chests not pickable up +local def = minetest.registered_nodes["default:chest"] +def.groups = {} +minetest.register_node(":default:chest", def) + +local v3 = {} +function v3.new(x, y, z) + if x == nil then + return { + x = 0, + y = 0, + z = 0 + } + end + if type(x) == "table" then + return { + x = x.x, + y = x.y, + z = x.z, + } + end + return { + x = x, + y = y, + z = z, + } +end +function v3.floor(v) + return { + x = math.floor(v.x), + y = math.floor(v.y), + z = math.floor(v.z), + } +end +function v3.cmp(v, w) + return ( + v.x == w.x and + v.y == w.y and + v.z == w.z + ) +end +function v3.add(v, w) + return { + x = v.x + w.x, + y = v.y + w.y, + z = v.z + w.z, + } +end +function v3.sub(v, w) + return { + x = v.x - w.x, + y = v.y - w.y, + z = v.z - w.z, + } +end +function v3.mul(v, a) + return { + x = v.x * a, + y = v.y * a, + z = v.z * a, + } +end +function v3.len(v) + return math.sqrt( + math.pow(v.x, 2) + + math.pow(v.y, 2) + + math.pow(v.z, 2) + ) +end +function v3.norm(v) + return v3.mul(v, 1.0 / v3.len(v)) +end +function v3.distance(v, w) + return math.sqrt( + math.pow(v.x - w.x, 2) + + math.pow(v.y - w.y, 2) + + math.pow(v.z - w.z, 2) + ) +end + +mobs = {} + +mobs.make_vault_part = function(p, part, pr) + local ns = nil + local top_y = 2 + local mob_y = 0 + local mob = nil + local item = nil + if part == 'w' then + ns = { + {name='default:cobble'}, + {name='default:cobble'}, + {name='default:cobble'}, + {name='default:cobble'}, + } + elseif part == 'W' then + top_y = 3 + ns = { + {name='default:cobble'}, + {name='default:cobble'}, + {name='default:cobble'}, + {name='default:cobble'}, + {name='default:cobble'}, + {name='default:cobble'}, + } + elseif part == 'c' then + ns = { + {name='default:cobble'}, + {name='air'}, + {name='air'}, + {name='default:cobble'}, + } + elseif part == 'f' then + ns = { + {name='air'}, + {name='air'}, + {name='air'}, + {name='default:cobble'}, + } + elseif part == 'l' then + top_y = 3 + ns = { + {name='default:cobble'}, + {name='air'}, + {name='air'}, + {name='air'}, + {name='air'}, + {name='default:lava_source'}, + } + elseif part == 'm' then + ns = { + {name='default:cobble'}, + {name='air'}, + {name='air'}, + {name='default:cobble'}, + } + local a = pr:next(1,2) + if a == 1 then + mob = "animal_dm:dm__default" + else + mob = "animal_vombie:vombie__default" + end + elseif part == 'r' then + ns = { + {name='default:cobble'}, + {name='air'}, + {name='air'}, + {name='default:cobble'}, + } + mob = "animal_rat:rat__default" + elseif part == 'C' then + top_y = 3 + ns = { + {name='default:cobble'}, + {name='air'}, + {name='air'}, + {name='air'}, + {name='default:cobble'}, + } + elseif part == 'd' then + ns = { + {name='default:cobble'}, + {name='air'}, + {name='air'}, + {name='default:cobble'}, + } + elseif part == 'a' then + ns = { + nil, + {name='air'}, + {name='air'}, + nil, + } + elseif part == 'A' then + ns = { + nil, + {name='air'}, + {name='air'}, + {name='air'}, + {name='default:cobble'}, + } + elseif part == 'i' then + ns = { + {name='default:cobble'}, + {name='air'}, + {name='air'}, + {name='default:cobble'}, + } + if pr:next(1,4) == 1 then + item = 'default:torch '..tostring(pr:next(1,15)) + elseif pr:next(1,4) == 1 then + item = 'default:apple '..tostring(pr:next(1,3)) + elseif pr:next(1,6) == 1 then + item = 'default:sword_stone '..tostring(pr:next(2,5)*100) + end + elseif part == 't' then + local invcontent = {} + if pr:next(1,4) == 1 then + table.insert(invcontent, 'default:apple '..tostring(pr:next(1,5))) + end + if pr:next(1,3) == 1 then + table.insert(invcontent, 'default:cobble '..tostring(pr:next(1,5))) + end + if pr:next(1,3) == 1 then + table.insert(invcontent, 'default:torch '..tostring(pr:next(1,20))) + end + if pr:next(1,3) == 1 then + table.insert(invcontent, 'default:sword_stone '..tostring(pr:next(400,655)*100)) + end + if pr:next(1,10) == 1 then + table.insert(invcontent, 'default:sword_steel '..tostring(pr:next(0,655)*100)) + end + if pr:next(1,6) == 1 then + table.insert(invcontent, 'bucket:bucket_empty 1') + end + if pr:next(1,8) == 1 then + table.insert(invcontent, 'bucket:bucket_lava 1') + end + if pr:next(1,20) == 1 then + table.insert(invcontent, 'bucket:bucket_water 1') + end + if pr:next(1,34) == 1 then + table.insert(invcontent, 'bucket:nyancat 1') + table.insert(invcontent, 'bucket:nyancat_rainbow '..tostring(pr:next(1,6))) + end + if pr:next(1,2) == 1 then + table.insert(invcontent, 'default:gravel '..tostring(pr:next(1,10))) + end + if pr:next(1,30) == 1 then + table.insert(invcontent, 'default:bookshelf '..tostring(pr:next(1,2))) + end + if pr:next(1,8) == 1 then + table.insert(invcontent, 'default:cactus '..tostring(pr:next(1,2))) + end + if pr:next(1,40) == 1 then + table.insert(invcontent, 'default:rail '..tostring(pr:next(1,10))) + end + if pr:next(1,5) == 1 then + table.insert(invcontent, 'default:ladder '..tostring(pr:next(1,9))) + end + if pr:next(1,30) == 1 then + table.insert(invcontent, 'default:sign_wall 1') + end + if pr:next(1,60) == 1 then + table.insert(invcontent, 'default:steelblock '..tostring(pr:next(1,6))) + end + ns = { + {name='default:cobble'}, + {name='air'}, + {name='default:chest', inv=invcontent}, + {name='default:cobble'}, + } + else + return + end + + for i=1,#ns do + local dy = top_y + 1 - i + local p2 = v3.new(p) + p2.y = p2.y + dy + local oldn = minetest.env:get_node(p2) + local n = ns[i] + if n and oldn.name ~= "air" then + if n.name == 'default:cobble' then + local perlin = minetest.env:get_perlin(123, 2, 0.8, 2.0) + if perlin:get3d(p2) >= 0.0 then + n.name = 'default:mossycobble' + end + end + minetest.env:set_node(p2, ns[i]) + if n.inv then + local meta = minetest.env:get_meta(p2) + local inv = meta:get_inventory() + for _,itemstring in ipairs(n.inv) do + inv:add_item('main', itemstring) + end + end + end + end + if mob then + minetest.env:add_entity(v3.add(p, v3.new(0, mob_y, 0)), mob) + end + if item then + minetest.env:add_item(v3.add(p, v3.new(0, mob_y, 0)), item) + end +end + +mobs.generate_vault = function(vault_def, p, dir, seed) + local dim_z = #vault_def + assert(dim_z > 0) + local dim_x = #vault_def[1] + if not v3.cmp(dir, v3.new(0,0,1)) then return end + --print("Making vault at "..minetest.pos_to_string(p)) + --if dim_x >= 14 then + -- mobs.debug("Making large vault at "..minetest.pos_to_string(p)) + --else + -- mobs.debug("Making vault at "..minetest.pos_to_string(p)) + --end + -- Find door in definition + local def_door_p = nil + for dx=1,dim_x do + for dz=1,dim_z do + if vault_def[dim_z+1-dz][dx] == 'd' then + def_door_p = v3.new(dx,0,dz) + end + if def_door_p then break end + end + if def_door_p then break end + end + --print("Vault door found at "..minetest.pos_to_string(def_door_p).." in definition") + assert(def_door_p) + local pr = PseudoRandom(seed) + local randseed = seed + for dx=1,dim_x do + for dz=1,dim_z do + local p2 = v3.add(v3.sub(p, def_door_p), v3.new(dx, 0, dz)) + local part = vault_def[dim_z+1-dz][dx] + --print("Making vault part "..dump(part).." at "..minetest.pos_to_string(p2)) + mobs.make_vault_part(p2, part, pr) + randseed = randseed + 1 + end + end +end + +-- Definition is for Z=up, X=right, dir={x=0,y=0,z=1} +mobs.vault_defs = { + { + {'w','w','w','w','w','w','w','w','w','w'}, + {'w','c','c','c','c','c','C','C','c','w'}, + {'w','c','C','c','c','c','C','C','m','w'}, + {'w','C','C','C','w','w','C','C','c','w'}, + {'w','C','C','C','w','w','C','C','c','w'}, + {'w','r','C','c','w','w','C','w','w','w'}, + {'w','c','c','c','w','w','C','w',nil,nil}, + {'w','w','w','w','w','w','C','w',nil,nil}, + {nil,nil,nil,nil,nil,'w','d','w',nil,nil}, + {nil,nil,nil,nil,nil,nil,'A',nil,nil,nil}, + }, + { + {'w','w','w','w','w','w','w','w'}, + {'w','c','c','c','c','C','c','w'}, + {'w','C','c','c','C','C','c','w'}, + {'w','C','c','c','C','C','c','w'}, + {'w','C','t','w','C','C','r','w'}, + {'w','C','c','w','C','w','d','w'}, + {'w','w','w','w','C','w','A',nil}, + {'w','w','w','w','C','w',nil,nil}, + {nil,nil,nil,'w','w','w',nil,nil}, + }, + { + {'W','W','W','W','W','W','W','W','W','W','W','W','W','W','W','W'}, + {'W','l','l','l','l','l','l','c','i','l','l','l','l','l','l','W'}, + {'W','l','l','l','l','l','l','f','f','l','l','l','l','l','l','W'}, + {'W','l','l','l','l','l','l','f','f','l','l','l','l','l','l','W'}, + {'W','c','l','l','l','l','l','f','f','l','l','l','l','l','m','W'}, + {'W','c','l','l','l','l','l','f','f','l','l','l','l','l','c','W'}, + {'W','c','l','l','t','f','f','f','f','l','l','l','l','l','c','W'}, + {'W','c','l','l','l','l','l','f','f','l','l','l','l','l','c','W'}, + {'W','m','l','l','l','l','l','f','f','l','l','l','l','l','c','W'}, + {'W','l','l','l','l','l','l','f','f','l','l','l','l','l','l','W'}, + {'W','l','l','l','l','l','l','f','f','l','l','l','l','l','l','W'}, + {'W','l','l','l','l','l','l','f','f','l','l','l','l','l','l','W'}, + {'W','W','W','W','W','W','W','W','d','W','W','W','W','W','W','W'}, + {nil,nil,nil,nil,nil,nil,nil,nil,'A',nil,nil,nil,nil,nil,nil,nil}, + }, + { + {'w','w','w','w','w','w','w','w'}, + {'w','c','c','c','m','C','c','w'}, + {'w','C','c','c','C','C','c','w'}, + {'w','C','C','C','C','C','C','w'}, + {'w','C','C','C','C','C','C','w'}, + {'w','C','C','C','C','C','C','w'}, + {'w','C','C','C','C','C','C','w'}, + {'w','C','c','c','C','C','r','w'}, + {'w','C','c','w','C','w','d','w'}, + {'w','c','w','w','C','w','A',nil}, + {'w','c','C','C','C','w',nil,nil}, + {nil,nil,nil,'w','w','w',nil,nil}, + }, + { + {'w','w','w','w','w','w','w','w'}, + {'w','c','c','c','c','C','i','w'}, + {'w','C','c','c','C','C','c','w'}, + {'w','C','w','w','C','C','c','w'}, + {'w','C','c','c','C','C','c','w'}, + {'w','C','C','w','C','w','d','w'}, + {'w','c','C','C','C','w','A',nil}, + {'w','c','C','C','C','w',nil,nil}, + {'w','C','C','C','C','C','C','w'}, + {'w','C','C','C','C','C','C','w'}, + {nil,nil,nil,'w','w','w',nil,nil}, + }, + { + {'w','w','w','w','w','w','w','w'}, + {'w','c','c','c','c','C','c','w'}, + {'w','C','c','c','w','C','c','w'}, + {'w','C','w','w','w','w','c','w'}, + {'w','C','C','C','C','C','c','w'}, + {'w','C','c','w','C','w','d','w'}, + {'w','i','w','w','C','w','A',nil}, + {'w','c','C','C','C','w',nil,nil}, + {nil,nil,nil,'w','w','w',nil,nil}, + }, + { + {'w','w','w','w','w','w','w','w'}, + {'w','i','c','c','c','C','t','w'}, + {'w','C','w','c','C','C','c','w'}, + {'w','c','w','w','w','C','w','w'}, + {'w','C','w','c','C','C','C','w'}, + {'w','C','w','c','C','C','d','w'}, + {'w','c','w','w','w','C','A',nil}, + {'w','c','C','C','C','C',nil,nil}, + {nil,nil,nil,'w','w','w',nil,nil}, + }, + { + {'W','W','W','W','W','W','W','W','W','W','W','W','W','W','W','W'}, + {'W','C','C','C','C','C','C','C','C','C','C','C','C','C','C','W'}, + {'W','C','C','C','C','C','C','C','C','C','C','C','C','C','C','W'}, + {'W','C','C','C','C','C','C','C','C','C','C','C','C','C','C','W'}, + {'W','C','C','C','C','C','C','C','C','C','C','C','C','C','C','W'}, + {'W','C','C','C','C','C','C','C','C','C','C','C','C','C','C','W'}, + {'W','C','C','C','C','C','C','C','C','C','C','C','C','C','C','W'}, + {'W','C','C','C','C','C','C','C','C','C','C','C','C','C','C','W'}, + {'W','C','C','C','C','C','C','C','C','C','C','C','C','C','C','W'}, + {'W','C','C','C','C','C','C','C','C','C','C','C','C','C','C','W'}, + {'W','C','C','C','C','C','C','C','C','C','C','C','C','C','C','W'}, + {'W','C','C','C','C','C','C','C','C','C','C','C','C','C','C','W'}, + {'W','C','C','C','C','C','C','C','C','C','C','C','C','C','C','W'}, + {'W','C','m','C','C','C','C','C','C','C','C','C','C','C','C','W'}, + {'W','C','C','C','C','C','C','C','C','C','C','C','C','C','C','W'}, + {'W','C','C','C','C','C','C','C','C','C','C','C','C','C','C','W'}, + {'W','C','C','C','C','C','C','C','C','C','C','C','C','C','C','W'}, + {'W','C','C','C','C','C','C','C','C','C','C','C','C','C','C','W'}, + {'W','W','W','W','W','W','W','W','d','W','W','W','W','W','W','W'}, + {nil,nil,nil,nil,nil,nil,nil,nil,'d',nil,nil,nil,nil,nil,nil,nil}, + }, +} + +mobs.generate_random_vault = function(p, dir, pr) + seed = pr:next() + local vault_def = mobs.vault_defs[pr:next(1, #mobs.vault_defs)] + mobs.generate_vault(vault_def, p, dir, seed) +end + +local generate_corridor = function(from, to, seed) + local pr = PseudoRandom(seed+92384) + local p = {x=from.x, y=from.y, z=from.z} + local step = 0 + while p.x ~= to.x do + if step >= 5 and minetest.env:get_node(p).name == "air" then + return + end + step = step + 1 + mobs.make_vault_part(p, 'C', pr) + if p.x > to.x then + p.x = p.x - 1 + else + p.x = p.x + 1 + end + end + local step = 0 + while p.z ~= to.z do + if step >= 5 and minetest.env:get_node(p).name == "air" then + return + end + step = step + 1 + mobs.make_vault_part(p, 'C', pr) + if p.z > to.z then + p.z = p.z - 1 + else + p.z = p.z + 1 + end + end +end + +minetest.register_on_generated(function(minp, maxp, seed) + --[[if minp.x > maxp.x or minp.y > maxp.y or minp.z > maxp.z then + mobs.debug"foo") + return + end--]] + if minp.y > DUNGEON_Y or maxp.y < DUNGEON_Y then + return + end + local area = (maxp.x-minp.x+1)*(maxp.z-minp.z+1) + + local possible_entrances = {} + + local entrance = { + p = {x=0, y=-DUNGEON_Y, z=-5}, + dir = {x=0, y=0, z=1}, + } + table.insert(possible_entrances, entrance) + + local pr = PseudoRandom(seed+931) + for i=0,area/300 do + local p1 = { + x = pr:next(minp.x, maxp.x), + y = DUNGEON_Y, + z = pr:next(minp.z, maxp.z), + } + local entrance = { + p = p1, + dir = {x=0, y=0, z=1}, + } + table.insert(possible_entrances, entrance) + end + + local pr = PseudoRandom(seed+9322) + local lastp = nil + if minp.x < 0 and maxp.x > 0 and minp.z < 0 and maxp.z > 0 then + lastp = {x=0, y=DUNGEON_Y, z=0} + end + for i,entrance in ipairs(possible_entrances) do + --mobs.debug("Entrance: "..dump(entrance)) + mobs.generate_random_vault(entrance.p, entrance.dir, pr) + if lastp then + generate_corridor(lastp, entrance.p, pr:next()) + end + lastp = entrance.p + end + if minp.x < 0 and maxp.x > 0 and minp.z < 0 and maxp.z > 0 then + p = {x=0, y=DUNGEON_Y+2, z=0} + minetest.env:set_node(p, {name="default:torch"}) + end +end) + +local function give_initial_stuff(player) + player:get_inventory():add_item('main', 'default:torch 99') + --player:get_inventory():add_item('main', 'default:shovel_steel') + --player:get_inventory():add_item('main', 'default:sword_steel') + --player:get_inventory():add_item('main', 'default:cobble 99') +end + +minetest.register_on_newplayer(function(player) + player:setpos({x=0, y=DUNGEON_Y, z=0}) + give_initial_stuff(player) +end) +minetest.register_on_respawnplayer(function(player) + player:setpos({x=0, y=DUNGEON_Y, z=0}) + player:get_inventory():set_list("main", {}) + player:get_inventory():set_list("craft", {}) + give_initial_stuff(player) + return true +end) + diff --git a/mods/mobf/README b/mods/mobf/README new file mode 100644 index 0000000..45ef3db --- /dev/null +++ b/mods/mobf/README @@ -0,0 +1,632 @@ +------------------------------------------------------------------------------- +Mob Framework Mod (former animals mod) provides a framework for creating mobs + +(c) sapier (code,some graphics) +(c) rinoux (many 2D graphics) + +Contact sapier a t gmx net +------------------------------------------------------------------------------- +Big thanks to rinoux for providing graphics and all others for their +suggestions too! +------------------------------------------------------------------------------- + + +No what is in? +------------------------------------------------------------------------------- + +--hostile mobs-- +Vombies +Hostile mobs spawning at night in unlighted areas. They can't withstand the +sun and will burn as sun rises + +Dungeonmasters +Just dungenmasters throwing fireballs they spawn in dark stony areas too. + +Big Red +They look like giant easter bunnys but beware of their plasma balls! Big red +spawns in dark stony areas + +Boombomb +Don't get near they will explode + +--slime-- +will bounce in large caves below surface + +--semi hostile mobs -- + +Wolf +A animal hiding in the woods that can be tamed to follow you + +--friendly mobs -- + +Chicken +Cicken droping egs now and then + +Sheep +Sheep that can be sheered, their wool will grow again. They randomly will +spawn on willows + +Cow +Cows will spawn on willows and produce milk. + +Deer +Will spawn below trees. + +Rat +Just a small animal jumping around + +Blue White Fish +Just a swimming animal + +Gull +flys around over your head! + +Clownfish +A funny small quick fish swiming around + +--npc trader-- +will sell goods + + +What can you do with them? +------------------------------------------------------------------------------- + +Sheep -> take scissors and sheer them +Cow -> take an empty glass and get milk +Chicken -> collect eggs +Vombie -> drops bone on kill +Clownfish -> drops golden scale on kill +Wolf -> tame it! +NPC trader -> trading of course + + +How to catch mobs? Take a lasso or net to catch them, create a farm. Sheep, +chicken and cow will even breed if there's a filled barn nearby + + +Recieps: +------------------------------------------------------------------------------- + +Lasso + +none wool none +wool none wool +none wool none + +Scissors + +none iron_ingot none +none iron_ingot none +stick none stick + +Net + +wool none wool +none wool none +wool none wool + +Barn + +stick stick stick +wood wood wood + +Small barn + +stick stick +wood wood + +Vombie trap + +wood wood wood +wood scale_golden wood +wood wood wood + +Settings (it's recommended to use mobf_settings command to change settings): +------------------------------------------------------------------------------- +mobf_enable_socket_trace = true/false +-->enable socket mod tracing + +mobf_disable_3d_mode = true/false +-->disable 3d models + +disable_vombie_3d_burn_animation = true/false +-->VOMBIE ONLY disable 3d burn animation + +mobf_disable_animal_spawning = true/false +-->disable spawning of animals + +mobf_blacklist = +-->disable all animals in table e.g. + mobf_blacklist = return {animal_sheep:sheep} + +mobf_animal_spawning_secondary = true/false +-->enable/disable secondary spawning mechanism + NOTE secondary mechanism may cause serious lag issues sometimes + +mobf_log_removed_entities = true/false + log removed mobs with reason of removal + +vombie_3d_burn_animation_enabled = true/false + show vombie burn animation (may cause huge lag) + +mobf_log_bug_warnings = true/false + show all mobf bug warnings + +mobf_delete_disabled_mobs = true/false + delete mobs and spawners if a mob is disabled + +Changelog: +------------------------------------------------------------------------------- +Changes 2.0.5 +-fix bug in mobf_settings using settings_save instead of mobf_setting_save + +Changes 2.0.4 +-fixed bug trader selling without pay if price1 or price 2 not set + +Changes 2.0.3 +-fixed crash on typical state time not available +-fixed bug mob_slime typical state time not set + +Changes 2.0.2 +-fix crash with invalid targetpos in follow movgen + +Changes 2.0.1 +-fix crash on teleport of wolf + +Changes 2.0.0 +-documentation update +-add more items for trader +-fix price update bug in trader +-new cow textures +-improve sheep model + +Changes 1.9.15 +-fixed crash when mob got spawned at unloaded pos +-make mobf_version command available to all users +-reduce chance for trader building by factor 5 +-code cleanup +-add support for tracing mob removal reason +-add clownfish mesh +-fix fish blue white swiming in wrong direction + +Changes 1.9.14 +-add vombie 3d mesh +-fix crash when trying to access empty movgen +-fix old default movgen definition was still used instead of default state + movgen in state change handling +-fixed deer model flying when lying +-fix crash in changestate +-fixed bug mobs disapearing as soon as attacking if spawned in slightly wrong + positions +-fixed boombomb and npc to use current api +-added big_red mesh +-fixed big_red not being agressive +-fixed wolf missing combat movegen +-added backtrace support + +Changes 1.9.13 +-add gull 3d mesh +-fix bug tamed wolf removed immediatly +-fix bug ostich_f can't be spawned +-revert accidentaly changed wolf to be not agressive +-fix mobs following don't jump +-fix height level check for flying mobs not working +-stop movement of inactive mobs + +Changes 1.9.12 +-rename debug class to avoid naming conflicts +-improve environment definition +-add ride support +-fixed punch mob not pushing back animals correctly +-fixed mobs don't respawn within torch ... +-fixed crash on show npc inventory due to changed api +-fixed drop avoidance not working if dropping to water (due to another fix) +-improve house spawning +-add ostrich +-improve collision checking for pos_is_ok +-add fish blue_white mesh +-add chatcommand show version +-add wolf mesh +-add sheep mesh +-fixed crash with secondary spawning enabled +-fixed crash on listactivemobs +-fixed boombomb still using abm based spawner +-updated dm model to 4aiman version + +Changes 1.9.11 +-added calf mesh +-added rat mesh +-replaced .x meshes by .b3d meshes +-fixed bug 3d inventory mob not facing player correctly +-fixed crash in random drop handling with incorrect dynamic_data +-mobs will face player on combat now +-improved follow behaviour (you can't get away that easy anymore) +-reduced damage done by mobs + +Changes 1.9.10 +-fixed group support for mobs +-fixed sun damage handler resetting animation to "stand" +-fix orientation not updated correct for mobs following new default state schema +-fixed bug 2d sprites not shown correctly +-fixed doku +-added support for upright sprites +-added 3d mesh model for dm +-added 3d mesh models for chicken +-added sounds for some mod +-added license information +-added support for mobf without fire mod +-added non inventory_plus settings gui (requres core patch) +-replaced custom debug chatcommand handlers by official minetest ones + +Changes 1.9.9 +-added trader spawning +-multiple fixes related to new state only modes +-fixed doku + +Changes 1.9.8 +-added trader support +-fixed sheep not being sheered +-added support for on_rightclick callbacks + +Changes 1.9.7 +-fixed bug big_willow spawner not enabled +-fixed bug steer not using big_willow spawner +-make mobs more smart in avoiding dropping +-make mobs more smart in avoiding falling into water + +Changes 1.9.6 +-catch misspelled blacklist string +-fix bug in barn crashing game +-fix bug custom on step handler making minetest unresponsive +-fixed crash on invalid blacklist +-added check to warn on unrealistic count of callbacks +-added statistics feature for mobf callback times +-make vombies and boombomb spawn in desert too + +Changes 1.9.5 +-fixed height level controling for fish and gulls (has been brocken for ages) +-added spawner based spawning for any abm based spawning +-"default" state is now mandatory for any mob! + +Changes 1.9.4 +-fixed sound name collisions +-fixed stereo->mono for some sounds +-added jordan4ibanez movement generator + +Changes 1.9.3 +-added lots of security checks to callback handlers +-added new tracing facilitys mobf_core and mobf_core_helper +-fixed additional bugs in entity replacement code of state changer +-fixed bug mobf crashing on no good position beeing known for mob when needed + +Changes 1.9.2 +-added workaround for lost dynamic data on saving of permanent data +-don't drown mobs but move to last known good position +-added animated 3d mesh cow and steer + +Changes 1.9.1 +-increased spawn rates of wolf +-drop correct meat +-add support for multiple drops +-fix lots of bugs in state change handling +-add animation support +-added experimental mob npc to demonstrate animation handling + +Changes 1.9.0 +-preserve orientation on replacement of entity +-add state support +-don't generate vaults if dm is disabled +-fix bug vaults generated above sea level +-added support for mesh 3d models +-use vessels drinking glass -> cow depends on vessels now! +-add support for removing disabled animals unknown objects + +Changes 1.4.6 +-added 3d dm +-added 3d big red +-added calfs +-added chicks +-added 3d Boombomb (was Creeper) +-added 3d clownfish +-added support for secondary spawning mechanisms +-change animal behaviour in case of unable to find safe new accel +-added on death callback support +-added function to get mob description + +Changes 1.4.5 +-added mobf registration of steer +-added get version api +-added support for blacklisting of animals + +Changes 1.4.4 +-fixed bug in mob orientation calculation +-improoved random movement generator + ->don't invert speed on collision + ->new random acceleration is dependent of old yaw now + ->mpattern stop and go reduce start stop chances drastically +-added steer +-added rooster +-added breeding of cow and chicken + +Changes 1.4.3 +-fixed bug in deep caves spawn algorithm tried to print nil value maxlight +-fixed bug in walking through walkable nodes +-added new config file option mobf_disable_animal_spawning to disable automatic animal spawning +-added mapgen based willow spawn algorithm +-added mapgen based in_forrest spawn algorithm + +Changes 1.4.2 +-readded lost trap +-fixed bug in inventory check + +Changes 1.4.1 +-hopefully (haven't tested) fixed bug with mob killed by non player actor +-added dropping of results in case of player inventory full +-fixed bug in distance attack if distance attack is invalid +-fixed dm having invalid distance attack +-fixed big_red having invalid distance attack + +Changes 1.4.0 +-rename core to MOBF +-remove some dead code +-fixed bug in random drops entities lifetime not save +-fixed bug wrong parameter set to true on remove due to pop dens check +-fixed bug mobs running around like crazy after on_step frequency increase +-added spawn in deep caves spawn algorithm +-added special movement gen none only applying y acceleration but stopping mob + otherwise + +Changes 1.3.5 +-make vault generation much more quiet +-add function for adding movement pattern by external functions + +Changes 1.3.4 +-increase check frequency to 4/s +-fix jumpy cow and deer +-fixed dm and big_red spawning in lighted areas +-fixed bug harvest delay not enforced +-make cow a little bit more slim +-added vault generation code from celeron (slightly modified) +-reduce sound distance dm/cow/sheep/vombie +-fixed vombie model (was wrong direction) +-made vombie agressive again +-remove vombie at once if entity is activated at daytime + +Changes 1.3.3 +-disable luatrace + +Changes 1.3.2 +-split configuration of 2d 3d animals +-more 3d animals +-improoved base position checking +-added warnings for long abms +-added load/unload check +-removed spawn point registry +-removed minetest serialization +-readded remove animals script(non working atm) + +Changes 1.3.1 +-fixed regression unable to craft lasso and net +-added doxygen style comments +-added documentation +-fixed lot of code style breakages +-extracted environments from movement patterns +-moved prototype for path based movement generator to own folder + +Changes 1.3.0 +-added 3d fish blue white +-fixed another yaw bug +-fixed movement check bug +-fixed position prediction +-replaced animalmaterials:wool_? by wool:x +-added fire effect for fireball +-replaced custom serialization by new minetest function +-added fire for self destruct +-fix lasso and net recieps +-added wolf + +Changes 1.2.93: +-added 3d barn +-fixed bug animals have wrong orientation +-fixed bug sheep get stuc in corner +-fixed cow model + +Changes 1.2.92: +-added support for 3d animals +-fix bug in probabilistic movement gen when handling min speed +-fixed movement of stop_and_go animals +-made Sheep 3D +-made Cow 3D + + +Changes 1.2.91: +-fixed bugs in animals sheep +-updated animalmaterials to new syntax + +Changes 1.2.90: +-added support for surface differentiation in good/ok/bad +-added support for different movement generators +-added fight mode movement generator change +-fixed bug barn depending on vombie instead of sheep +-reduced cpu load in normal movement loop +-adjusted probability values to new check cycle + +Changes 1.2.1: +-use official health system +-add group support for all animals +-scissors get damaged by harvesting wool +-add footstep sounds + +Changes 1.2.0: +-added sound support +-(non working) path based movement gen stub + +Changes 1.1.0: +-support for prefered environment +-performance improvements (mainly in spawning algorithms) +-internal reorganization +-added on_hit_callback and on_kill_callback in fighting subsystem + +Changes 1.0.0: +-added changes required for flying animals +-added lifetime support (it's only used for breeding right now) +-for any animal a item is created by default +-added gull +-added clownfish +-added vombie trap +-added barn (breed sheep!) + +Changes 0.9.11: +-animal definitions have been moved to different mods +-player punch pushes back animal + +Changes 0.9.9: +-MAJOR code reorganization +-fixed creeper +-added collision boxes with correct height +(width ain't possible as sprites are rotated automaticaly) +-added some missing item graphics +-fixed a lot of small bugs probably not even discovered +-improoved big red graphic +-added initial documentation + +Changes 0.9.0: +-changed harvesting to LMB +-fixed bug making rats jump to high +-adjusted to new git 20120122 +-make dungeon master more dangerous +-added glass for harvesting milk + +Changes 0.8.9: +-added net +-added fish support +-added rat + +Changes 0.8.3: +-added creeper +-added movement pattern support -> support for different movement styles +-added lua script "remove_animals.lua" (rename to init.lua to remove all animals from your world) + +Changes 0.8.2: +-added cow graphics from rinoux +-added some item images from rinoux +-fixed unnecessary workaround in line of sight code by correct implementation + +Changes 0.8.1: +-bugfix for release error + +Changes 0.8.0: +-added deer graphics from rinoux +-added distance attack support (inspired by jeija mod throwing) +-added plasma and fireballs +-added dungeonmaster + +Changes 0.7.3: +-fixed some issues with spawning to many animals in case of frequent server restarts +-added chicken (big thanks to rinoux) +-added new graphics for sheep (even more thanks to rinoux for providing them) + +Changes 0.7.0: +-added support for animals following target while fighting +-make hostile animals even more agressive +-add vampire spawning all over the world during night ;-) + +Changes 0.6.0: +-added support for looking directions +-added support for animals attacking player on their own +Latest git from 20120103 required! + +Changes 0.5.0: +-fixed bug animals disapearing if more than one animal is at same position +-switched to new lua api +Latest build 20120102 required! + +Changes 0.4.5: +-fixed spawn algorithms not correctly ensuring population density of animals + +Changes 0.4.3: +-added lasso for catching animals + +Changes 0.4.2: +-add scissors for harvesting wool + +Changes 0.4.1: +-fixed bug mod not running on stock 0.4 dev +-big red now spawns in shadows only + +Changes 0.4.0: +-added support for animals spawning + +Changes 0.3.0: +-added support for animals fighting back + +Changes 0.2.2: +-animal may jump 1 block but only if it's a "natural" surface (to avoid jumping over fences, walls e.g.). Natural surfaces are by now dirt, sand, stone and clay. + +Changes 0.2.1: +-animal size increased + +Changes 0.2.0: +-added cow +-added deer +-fixed bugs in base functionality used by deer and cow + +Changes 0.1.1: +-fixed bug crashing server on rightclick + +Changes 0.1.0: +-Major improovements in motion generation code +-switched to modular design (still needed to create a single file till next dev release of minetest, if you've already got the master minetest you may rename init_modular.lua to init) +-added support for: +*animals harvestable +*animals transforming on harvest +*animals retransforming after specified amount of time +-prepared for: +*animals harvestable when wearing special tool +*animals harvestable by consuming special tool + +Links: +http://www.mediafire.com/?axsikpooji7hq16 Version 0.1.1 (there will be sheep) +http://www.mediafire.com/?yo6b8cyq0rt6b51 Version 0.2.0 (diversity growing) +http://www.mediafire.com/?v45fue5z6hidkjw Version 0.2.1 (no tiny animals) +http://www.mediafire.com/?1l4cfj35kadjf1l Version 0.2.2 (let em jump) +http://www.mediafire.com/?leyjbj5831gc6zm Version 0.3.0 (don't make them angry) +http://www.mediafire.com/?ilslao0gi2ulwev Version 0.4.1 (big red is hiding) +http://www.mediafire.com/?tkamh7a5r6mlsze Version 0.4.2 (let there be tools) +http://www.mediafire.com/?ib5ax24vp54h938 Version 0.4.3 (catch em all) +http://www.mediafire.com/?m9dfrqq6fdoamnz Version 0.4.5 (catch em all) +http://www.mediafire.com/?22ex6fn8d49deoy Version 0.5.0 (none disappearing) +http://www.mediafire.com/?a0g894d4b90acax Version 0.6.0 (be carefull) +http://www.mediafire.com/?mym9dyjbnb98cmo Version 0.7.0 ( do you fear the night?) +http://www.mediafire.com/?3lw27vuzxn7cyy8 Version 0.7.3 (still fear the night?) +http://www.mediafire.com/?3ah17kl2uhg0437 Version 0.8.1 (stay distant!) +http://www.mediafire.com/?j447z7q3rfim8iv Version 0.8.2 (stay distant!) +http://www.mediafire.com/?1b9rcez7dbdnbuu Version 0.8.3 (stay distant!) +http://www.mediafire.com/?r4jke39dfv218yj Version 0.8.9 (have a swim) +http://www.mediafire.com/?5w9a5vc55az2dqq Version 0.9.0 (left "hand" harvesting) +http://www.mediafire.com/?y8k42doeebo2c5o Version 0.9.9 (cleanup) +http://www.mediafire.com/?hl37vzqb5kzra05 Version 0.9.11 (cleanup) +http://www.mediafire.com/?zty2qzn9hjtxl1s Version 1.0.0 (let them breed) +http://www.mediafire.com/?xax85pwsno1incc Version 1.1.0 (speed it up) +http://www.mediafire.com/?ze274bvlxtjsk1c Version 1.1.1 (speed it up) +http://www.mediafire.com/?gn0f1e005wtmsom Version 1.2.0 (make some noise) +http://www.mediafire.com/?zkf54fckd7w2g3f Version 1.2.1 (hit them) +http://www.mediafire.com/?7hm2xm51aoytbua Version 1.2.90 (loose weight) +http://www.mediafire.com/?lnw1bcs5gq6au83 Version 1.2.91 (fix it) +http://www.mediafire.com/?axuhv41wc2ch7yl Version 1.2.92 (enter the 3rd dimension) +http://www.mediafire.com/?vldqym8hrasjbuk Version 1.2.93 (finding the right direction) +http://www.mediafire.com/?1ne46d88ej6qlus Version 1.3.0 (let there be pets) +http://www.mediafire.com/?vr9w97ac350u215 Version 1.3.1 (paperworks) +http://www.mediafire.com/?25an9a14ty4ifat Version 1.3.3 (no trace) +http://www.mediafire.com/?p8a3wkl3s936n6o Version 1.3.4 (finetuning) +http://www.mediafire.com/?jmm1g4j2j4hp8d4 Version 1.4.0 (slimy) +http://www.mediafire.com/?goyb9r7e94h8gwl Version 1.4.1 (dropper) +http://www.mediafire.com/?63o9qgycaccb3q3 Version 1.4.2 (dropper) +http://www.mediafire.com/?jcocc1vop19a3kj Version 1.4.3 (no respawn) +http://www.mediafire.com/?b8hw3fo3599wbtd Version 1.4.4 (more breeding) +http://www.mediafire.com/?5cuh2lz2m12915p Version 1.4.5 (more breeding) +http://www.mediafire.com/?ds4g46v3dhnkdg9 Version 1.9.0 (sleeping sheep) --experimental +http://www.mediafire.com/?umbcd1ptax9bbcb Version 1.9.1 (animating!) --experimental +http://www.mediafire.com/?66v84hi9p43hw7o Version 1.9.6 (faster?) --experimental +http://www.mediafire.com/?5z5wz2d329m849k Version 1.9.7 (frightened about water) --experimental + diff --git a/mods/mobf/api.lua b/mods/mobf/api.lua new file mode 100644 index 0000000..a87581f --- /dev/null +++ b/mods/mobf/api.lua @@ -0,0 +1,188 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file api.lua +--! @brief api functions to be used by other mods +--! @copyright Sapier +--! @author Sapier +--! @date 2012-12-27 +-- +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +------------------------------------------------------------------------------- +-- name: mobf_register_on_death_callback(callback) +-- +--! @brief get version of mob framework +--! @ingroup framework_mob +-- +--! @param callback callback to register +--! @return true/false +------------------------------------------------------------------------------- +function mobf_register_on_death_callback(callback) + return fighting.register_on_death_callback(callback) +end + +------------------------------------------------------------------------------- +-- name: mobf_get_mob_definition(mobname) +-- +--! @brief get COPY of mob definition +--! @ingroup framework_mob +-- +--! @return mobf version +------------------------------------------------------------------------------- +function mobf_get_mob_definition(mobname) + + if mobf_rtd.registred_mob_data[mobname] ~= nil then + local copy = minetest.serialize(mobf_rtd.registred_mob_data[mobname]) + return minetest.deserialize(copy) + end + return nil +end + +------------------------------------------------------------------------------- +-- name: mobf_get_version() +-- +--! @brief get version of mob framework +--! @ingroup framework_mob +-- +--! @return mobf version +------------------------------------------------------------------------------- +function mobf_get_version() + return mobf_version +end + +------------------------------------------------------------------------------ +-- name: mobf_add_mob(mob) +-- +--! @brief register a mob within mob framework +--! @ingroup framework_mob +-- +--! @param mob a mob declaration +------------------------------------------------------------------------------- +function mobf_add_mob(mob) + + if mob.name == nil or + mob.modname == nil then + minetest.log(LOGLEVEL_ERROR,"MOBF: name and modname are mandatory for ALL mobs!") + return false + end + + --check if mob may be added + if mobf_contains(mobf_rtd.registred_mob,mob.modname.. ":"..mob.name) then + mobf.blacklisthandling(mob) + return false + end + + --if a random drop is specified for this mob register it + if mob.random_drop ~= nil then + random_drop.register(mob.random_drop) + end + + --create default entity + minetest.log(LOGLEVEL_INFO,"MOBF: adding: " .. mob.name) + mob_state.prepare_states(mob) + + mobf.register_mob_item(mob.name,mob.modname,mob.generic.description) + + --check if a movement pattern was specified + if mobf_rtd.movement_patterns[mob.movement.pattern] == nil then + minetest.log(LOGLEVEL_WARNING,"MOBF: no movement pattern specified!") + end + + --spawn mechanism handling + if not minetest.setting_getbool("mobf_disable_animal_spawning") then + --register spawn callback to world + if environment_list[mob.generic.envid] ~= nil then + local secondary_name = "" + if mob.harvest ~= nil then + secondary_name = mob.harvest.transforms_to + end + + dbg_mobf.mobf_core_lvl3("MOBGF: Environment to use: " .. tostring(mob.generic.envid)) + + if mobf_spawn_algorithms[mob.spawning.algorithm] ~= nil and + type(mobf_spawn_algorithms[mob.spawning.algorithm].register_spawn) == "function" then + mobf_spawn_algorithms[mob.spawning.algorithm].register_spawn(mob.modname..":"..mob.name, + secondary_name, + mob.spawning, + environment_list[mob.generic.envid]) + else + dbg_mobf.mobf_core_lvl2("MOBGF: " .. mob.name + .. " no primary spawn algorithm defined: " + .. tostring(mob.spawning.algorithm)) + end + + if minetest.setting_getbool("mobf_animal_spawning_secondary") then + if mob.spawning.algorithm_secondary ~= nil and + type(mobf_spawn_algorithms[mob.spawning.algorithm_secondary].register_spawn) == "function" then + mobf_spawn_algorithms[mob.spawning.algorithm_secondary].register_spawn(mob.modname..":"..mob.name, + secondary_name, + mob.spawning, + environment_list[mob.generic.envid]) + end + end + else + minetest.log(LOGLEVEL_ERROR,"MOBF: specified mob >" .. mob.name + .. "< without environment!") + end + else + dbg_mobf.mobf_core_lvl3("MOBF: MOB spawning disabled!") + end + + --register mob name to internal data structures + table.insert(mobf_rtd.registred_mob,mob.modname.. ":"..mob.name) + mobf_rtd.registred_mob_data[mob.modname.. ":"..mob.name] = mob; + + return true +end + +------------------------------------------------------------------------------ +-- name: mobf_is_known_mob(name) +-- +--! @brief check if mob of name is known +--! @ingroup framework_mob +-- +--! @param name name to check if it's a mob +--! @return true/false +------------------------------------------------------------------------------- +function mobf_is_known_mob(name) + for i,val in ipairs(mobf_rtd.registred_mob) do + if name == val then + return true + end + end + + return false +end + +------------------------------------------------------------------------------ +-- name: mobf_register_environment(name,environment) +-- +--! @brief register an environment to mob framework +--! @ingroup framework_mob +-- +--! @param name of environment +--! @param environment specification +--! @return true/false +------------------------------------------------------------------------------- +function mobf_register_environment(name,environment) + return environment.register(name,environment) +end + +------------------------------------------------------------------------------ +-- name: mobf_probab_movgen_register_pattern(pattern) +-- +--! @brief register an movement pattern for probabilistic movement gen +--! @ingroup framework_mob +-- +--! @param pattern to register (see pattern specification) +--! @return true/false +------------------------------------------------------------------------------- +function mobf_probab_movgen_register_pattern(pattern) + return movement_gen.register_pattern(pattern) +end diff --git a/mods/mobf/compatibility.lua b/mods/mobf/compatibility.lua new file mode 100644 index 0000000..6dadcbf --- /dev/null +++ b/mods/mobf/compatibility.lua @@ -0,0 +1,71 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file compatibility.lua +--! @brief contains compatibility/transition code thats to be removed +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-09 +-- +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +minetest.register_abm({ + nodenames = { "animalmaterials:wool_white" }, + interval = 1, + chance = 1, + + action = function(pos, node, active_object_count, active_object_count_wider) + minetest.env:remove_node(pos) + minetest.env:add_node(pos,{name="wool:white"}) + end + + }) + +minetest.register_abm({ + nodenames = { "animalmaterials:wool_grey" }, + interval = 1, + chance = 1, + + action = function(pos, node, active_object_count, active_object_count_wider) + minetest.env:remove_node(pos) + minetest.env:add_node(pos,{name="wool:grey"}) + end + + }) + +minetest.register_abm({ + nodenames = { "animalmaterials:wool_brown" }, + interval = 1, + chance = 1, + + action = function(pos, node, active_object_count, active_object_count_wider) + minetest.env:remove_node(pos) + minetest.env:add_node(pos,{name="wool:brown"}) + end + + }) + +minetest.register_abm({ + nodenames = { "animalmaterials:wool_black" }, + interval = 1, + chance = 1, + + action = function(pos, node, active_object_count, active_object_count_wider) + minetest.env:remove_node(pos) + minetest.env:add_node(pos,{name="wool:black"}) + end + + }) + +------------------------------------------------------------------------------- +-- compatibility functions to make transition to new name easier +------------------------------------------------------------------------------- + +function animals_add_animal(animal) + mobf_add_mob(animal) +end \ No newline at end of file diff --git a/mods/mobf/debug.lua b/mods/mobf/debug.lua new file mode 100644 index 0000000..42fe20a --- /dev/null +++ b/mods/mobf/debug.lua @@ -0,0 +1,264 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file debug.lua +--! @brief contains debug functions for mob framework +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-09 +--! +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +--! @defgroup debug_in_game In game debugging functions +--! @brief debugging functions to be called from in game +--! @ingroup framework_int +--! @{ + +mobf_debug = {} + +------------------------------------------------------------------------------- +-- name: print_usage(player,command,toadd) +-- +--! @brief send errormessage to player +-- +--! @param player name of player to print usage +--! @param command display usage for this command +--! @param toadd additional information to transfer to player +------------------------------------------------------------------------------- +function mobf_debug.print_usage(player, command, toadd) + + if toadd == nil then + toadd = "" + end + + if command == "spawnmob" then + print("CMD: ".. player .."> ".. "Usage: /spawnmob " .. toadd) + minetest.chat_send_player(player, "Usage: /spawnmob " .. toadd) + end + + if command == "ukn_mob" then + print("CMD: ".. player .."> ".. "Unknown mob name "..toadd) + minetest.chat_send_player(player, "Unknown mob name "..toadd) + end + + if command == "inv_pos" then + print("CMD: ".. player .."> ".. "Invalid position "..toadd) + minetest.chat_send_player(player, "Invalid position "..toadd) + end + + if command == "mob_spawned" then + print("CMD: ".. player .."> ".. "Mob successfully spawned "..toadd) + minetest.chat_send_player(player, "Mob successfully spawned "..toadd) + end +end + +------------------------------------------------------------------------------- +-- name: spawn_mob(name,param) +-- +--! @brief handle a spawn mob command +-- +--! @param name name of player +--! @param param parameters received +------------------------------------------------------------------------------ +function mobf_debug.spawn_mob(name,param) + print("name: " .. name .. " param: " .. dump(param)) + + local parameters = param:split(" ") + + if #parameters ~= 2 then + mobf_debug.print_usage(name,"spawnmob") + return + end + + local pos_strings = parameters[2]:split(",") + + if #pos_strings ~= 3 then + mobf_debug.print_usage(name,"spawmob") + return + end + + if mobf_is_known_mob(parameters[1]) ~= true then + mobf_debug.print_usage(name,"ukn_mob", ">"..parameters[1].."<") + return true + end + + local spawnpoint = { + x=tonumber(pos_strings[1]), + y=tonumber(pos_strings[2]), + z=tonumber(pos_strings[3]) + } + + if spawnpoint.x == nil or + spawnpoint.y == nil or + spawnpoint.z == nil then + mobf_debug.print_usage(name,"spawnmob") + return + end + + spawning.spawn_and_check(parameters[1],"__default",spawnpoint,"mobf_debug_spawner") +end + +------------------------------------------------------------------------------- +-- name: list_active_mobs(name,param) +-- +--! @brief print list of all current active mobs +-- +--! @param name name of player +--! @param param parameters received +------------------------------------------------------------------------------ +function mobf_debug.list_active_mobs(name,param) + + local count = 1 + for index,value in pairs(minetest.luaentities) do + if value.data ~= nil and value.data.name ~= nil then + local tosend = count .. ": " .. value.data.name .. " at " + .. printpos(value.object:getpos()) + print(tosend) + minetest.chat_send_player(name,tosend) + count = count +1 + end + end +end + +------------------------------------------------------------------------------- +-- name: add_tools(name,param) +-- +--! @brief add toolset for testing +-- +--! @param name name of player +--! @param param parameters received +------------------------------------------------------------------------------ +function mobf_debug.add_tools(name,param) + local player = minetest.env:get_player_by_name(name) + + if player ~= nil then + player:get_inventory():add_item("main", "animalmaterials:lasso 20") + player:get_inventory():add_item("main", "animalmaterials:net 20") + player:get_inventory():add_item("main", "animalmaterials:scissors 1") + player:get_inventory():add_item("main", "animalmaterials:glass 10") + end + +end + +------------------------------------------------------------------------------- +-- name: list_defined_mobs(name,param) +-- +--! @brief list all registred mobs +-- +--! @param name name of player +--! @param param parameters received +------------------------------------------------------------------------------ +function mobf_debug.list_defined_mobs(name,param) + + local text = "" + for i,val in ipairs(mobf_rtd.registred_mob) do + text = text .. val .. " " + end + minetest.chat_send_player(name, "MOBF: "..text) +end + +------------------------------------------------------------------------------- +-- name: init() +-- +--! @brief initialize debug commands chat handler +-- +------------------------------------------------------------------------------ +function mobf_debug.init() + + minetest.register_chatcommand("spawnmob", + { + params = " ", + description = "spawn a mob at position" , + privs = {mobfw_admin=true}, + func = mobf_debug.spawn_mob + }) + + minetest.register_chatcommand("listactivemobs", + { + params = "", + description = "list all currently active mobs" , + privs = {mobfw_admin=true}, + func = mobf_debug.list_active_mobs + }) + + minetest.register_chatcommand("listdefinedmobs", + { + params = "", + description = "list all currently defined mobs" , + privs = {mobfw_admin=true}, + func = mobf_debug.list_defined_mobs + }) + + minetest.register_chatcommand("mob_add_tools", + { + params = "", + description = "add some mob specific tools to player" , + privs = {mobfw_admin=true}, + func = mobf_debug.add_tools + }) + + minetest.register_chatcommand("mobf_version", + { + params = "", + description = "show mobf version number" , + privs = {}, + func = function(name,param) + minetest.chat_send_player(name,"MOBF version: " .. mobf_version) + end + }) + + if mobf_rtd.luatrace_enabled then + minetest.register_chatcommand("traceon", + { + params = "", + description = "start luatrace tracing" , + privs = {mobfw_admin=true}, + func = luatrace.tron() + }) + + minetest.register_chatcommand("traceon", + { + params = "", + description = "stop luatrace tracing" , + privs = {mobfw_admin=true}, + func = luatrace.troff() + }) + end +end + + +------------------------------------------------------------------------------- +-- name: handle_spawnhouse(name,message) +-- +--! @brief spawn small house +-- +--! @param entity entity rightclicked +--! @param player player doing rightclick +------------------------------------------------------------------------------ +function mobf_debug.rightclick_callback(entity,player) + local lifetime = mobf_get_current_time() - entity.dynamic_data.spawning.original_spawntime + print("MOBF: " .. entity.data.name .. " is alive for " .. lifetime .. " seconds") + print("MOBF: \tCurrent state: " .. entity.dynamic_data.state.current ) + print("MOBF: \tCurrent movgen: " .. entity.dynamic_data.current_movement_gen.name ) + if entity.dynamic_data.current_movement_gen.name == "follow_mov_gen" then + local basepos = entity.getbasepos(entity) + local targetpos = entity.dynamic_data.spawning.spawnpoint + if entity.dynamic_data.movement.guardspawnpoint ~= true then + targetpos = entity.dynamic_data.movement.target:getpos() + end + print("MOBF: \t\tmovement state: " .. mgen_follow.identify_movement_state(basepos,targetpos) ) + end + print("MOBF: \tTime to state change: " .. entity.dynamic_data.state.time_to_next_change .. " seconds") + print("MOBF: \tCurrent environmental state: " .. environment.pos_is_ok(entity.getbasepos(entity),entity)) + print("MOBF: \tCurrent accel: " .. printpos(entity.object:getacceleration())) + print("MOBF: \tCurrent speed: " .. printpos(entity.object:getvelocity())) + return false +end + + +--!@} diff --git a/mods/mobf/debug_trace.lua b/mods/mobf/debug_trace.lua new file mode 100644 index 0000000..fb93ab4 --- /dev/null +++ b/mods/mobf/debug_trace.lua @@ -0,0 +1,96 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file debug_trace.lua +--! @brief contains switchable debug trace functions +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-09 +--! +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +--! @defgroup debug_trace Debug trace functions +--! @brief central configuration of trace functions +--! @ingroup framework_int + +--lvl1 excessive output +--lvl2 medium output +--lvl3 less output + +--! @brief configuration of trace level to use for various components +--! @ingroup debug_trace +dbg_mobf = { + + generic_lvl1 = function () end, + generic_lvl2 = function () end, + generic_lvl3 = function () end, + + graphics_lvl1 = function () end, + graphics_lvl2 = function () end, + graphics_lvl3 = function () end, + + spawning_lvl1 = function () end, + spawning_lvl2 = function () end, + spawning_lvl3 = function () end, + + permanent_store_lvl1 = function () end, + permanent_store_lvl2 = function () end, + permanent_store_lvl3 = function () end, + + movement_lvl1 = function () end, + movement_lvl2 = function () end, + movement_lvl3 = function () end, + + pmovement_lvl1 = function () end, + pmovement_lvl2 = function () end, + pmovement_lvl3 = function () end, + + fmovement_lvl1 = function () end, + fmovement_lvl2 = function () end, + fmovement_lvl3 = function () end, + + fighting_lvl1 = function () end, + fighting_lvl2 = function () end, + fighting_lvl3 = function () end, + + environment_lvl1 = function () end, + environment_lvl2 = function () end, + environment_lvl3 = function () end, + + harvesting_lvl1 = function () end, + harvesting_lvl2 = function () end, + harvesting_lvl3 = function () end, + + sound_lvl1 = function () end, + sound_lvl2 = function () end, + sound_lvl3 = function () end, + + random_drop_lvl1 = function () end, + random_drop_lvl2 = function () end, + random_drop_lvl3 = function () end, + + mob_state_lvl1 = function () end, + mob_state_lvl2 = function () end, + mob_state_lvl3 = function () end, + + mobf_core_lvl1 = function () end, + mobf_core_lvl2 = function () end, + mobf_core_lvl3 = function () end, + + mobf_core_helper_lvl1 = function () end, + mobf_core_helper_lvl2 = function () end, + mobf_core_helper_lvl3 = function () end, + + trader_inv_lvl1 = function () end, + trader_inv_lvl2 = function () end, + trader_inv_lvl3 = function () end, + + ride_lvl1 = function () end, + ride_lvl2 = function () end, + ride_lvl3 = function () end, +} \ No newline at end of file diff --git a/mods/mobf/depends.txt b/mods/mobf/depends.txt new file mode 100644 index 0000000..2591fc3 --- /dev/null +++ b/mods/mobf/depends.txt @@ -0,0 +1,2 @@ +default +animalmaterials diff --git a/mods/mobf/doc/Doxyfile b/mods/mobf/doc/Doxyfile new file mode 100644 index 0000000..00b1455 --- /dev/null +++ b/mods/mobf/doc/Doxyfile @@ -0,0 +1,1774 @@ +# Doxyfile 1.7.6.1 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project +# +# All text after a hash (#) is considered a comment and will be ignored +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" ") + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the config file +# that follow. The default is UTF-8 which is also the encoding used for all +# text before the first occurrence of this tag. Doxygen uses libiconv (or the +# iconv built into libc) for the transcoding. See +# http://www.gnu.org/software/libiconv for the list of possible encodings. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or sequence of words) that should +# identify the project. Note that if you do not use Doxywizard you need +# to put quotes around the project name if it contains spaces. + +PROJECT_NAME = "Mob Framework Minetest Mod" + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = + +# Using the PROJECT_BRIEF tag one can provide an optional one line description +# for a project that appears at the top of each page and should give viewer +# a quick idea about the purpose of the project. Keep the description short. + +PROJECT_BRIEF = + +# With the PROJECT_LOGO tag one can specify an logo or icon that is +# included in the documentation. The maximum height of the logo should not +# exceed 55 pixels and the maximum width should not exceed 200 pixels. +# Doxygen will copy the logo to the output directory. + +PROJECT_LOGO = + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = . + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create +# 4096 sub-directories (in 2 levels) under the output directory of each output +# format and will distribute the generated files over these directories. +# Enabling this option can be useful when feeding doxygen a huge amount of +# source files, where putting all generated files in the same directory would +# otherwise cause performance problems for the file system. + +CREATE_SUBDIRS = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, +# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, +# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English +# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, +# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, +# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. + +OUTPUT_LANGUAGE = English + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator +# that is used to form the text in various listings. Each string +# in this list, if found as the leading text of the brief description, will be +# stripped from the text and the result after processing the whole list, is +# used as the annotated text. Otherwise, the brief description is used as-is. +# If left blank, the following values are used ("$name" is automatically +# replaced with the name of the entity): "The $name class" "The $name widget" +# "The $name file" "is" "provides" "specifies" "contains" +# "represents" "a" "an" "the" + +ABBREVIATE_BRIEF = "The $name class" "The $name widget" "The $name file" is provides specifies contains represents a an the + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = NO + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the +# path to strip. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of +# the path mentioned in the documentation of a class, which tells +# the reader which header file to include in order to use a class. +# If left blank only the name of the header file containing the class +# definition is used. Otherwise one should specify the include paths that +# are normally passed to the compiler using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful if your file system +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like regular Qt-style comments +# (thus requiring an explicit @brief command for a brief description.) + +JAVADOC_AUTOBRIEF = NO + +# If the QT_AUTOBRIEF tag is set to YES then Doxygen will +# interpret the first line (until the first dot) of a Qt-style +# comment as the brief description. If set to NO, the comments +# will behave just like regular Qt-style comments (thus requiring +# an explicit \brief command for a brief description.) + +QT_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed +# description. Set this tag to YES if you prefer the old behaviour instead. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# re-implements. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce +# a new page for each member. If set to NO, the documentation of a member will +# be part of the file/class/namespace that contains it. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 4 + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user-defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = + +# This tag can be used to specify a number of word-keyword mappings (TCL only). +# A mapping has the form "name=value". For example adding +# "class=itcl::class" will allow you to use the command class in the +# itcl::class meaning. + +TCL_SUBST = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C +# sources only. Doxygen will then generate output that is more tailored for C. +# For instance, some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = NO + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java +# sources only. Doxygen will then generate output that is more tailored for +# Java. For instance, namespaces will be presented as packages, qualified +# scopes will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources only. Doxygen will then generate output that is more tailored for +# Fortran. + +OPTIMIZE_FOR_FORTRAN = NO + +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for +# VHDL. + +OPTIMIZE_OUTPUT_VHDL = NO + +# Doxygen selects the parser to use depending on the extension of the files it +# parses. With this tag you can assign which parser to use for a given extension. +# Doxygen has a built-in mapping, but you can override or extend it using this +# tag. The format is ext=language, where ext is a file extension, and language +# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C, +# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make +# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C +# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions +# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. + +EXTENSION_MAPPING = + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should +# set this tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. +# func(std::string) {}). This also makes the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. + +CPP_CLI_SUPPORT = NO + +# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. +# Doxygen will parse them like normal C++ but will assume all classes use public +# instead of private inheritance when no explicit protection keyword is present. + +SIP_SUPPORT = NO + +# For Microsoft's IDL there are propget and propput attributes to indicate getter +# and setter methods for a property. Setting this option to YES (the default) +# will make doxygen replace the get and set methods by a property in the +# documentation. This will only work if the methods are indeed getting or +# setting a simple type. If this is not the case, or you want to show the +# methods anyway, you should set this option to NO. + +IDL_PROPERTY_SUPPORT = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using +# the \nosubgrouping command. + +SUBGROUPING = YES + +# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and +# unions are shown inside the group in which they are included (e.g. using +# @ingroup) instead of on a separate page (for HTML and Man pages) or +# section (for LaTeX and RTF). + +INLINE_GROUPED_CLASSES = NO + +# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and +# unions with only public data fields will be shown inline in the documentation +# of the scope in which they are defined (i.e. file, namespace, or group +# documentation), provided this scope is documented. If set to NO (the default), +# structs, classes, and unions are shown on a separate page (for HTML and Man +# pages) or section (for LaTeX and RTF). + +INLINE_SIMPLE_STRUCTS = NO + +# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum +# is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically +# be useful for C code in case the coding convention dictates that all compound +# types are typedef'ed and only the typedef is referenced, never the tag name. + +TYPEDEF_HIDES_STRUCT = NO + +# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to +# determine which symbols to keep in memory and which to flush to disk. +# When the cache is full, less often used symbols will be written to disk. +# For small to medium size projects (<1000 input files) the default value is +# probably good enough. For larger projects a too small cache size can cause +# doxygen to be busy swapping symbols to and from disk most of the time +# causing a significant performance penalty. +# If the system has enough physical memory increasing the cache will improve the +# performance by keeping more symbols in memory. Note that the value works on +# a logarithmic scale so increasing the size by one will roughly double the +# memory usage. The cache size is given by this formula: +# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, +# corresponding to a cache size of 2^16 = 65536 symbols. + +SYMBOL_CACHE_SIZE = 0 + +# Similar to the SYMBOL_CACHE_SIZE the size of the symbol lookup cache can be +# set using LOOKUP_CACHE_SIZE. This cache is used to resolve symbols given +# their name and scope. Since this can be an expensive process and often the +# same symbol appear multiple times in the code, doxygen keeps a cache of +# pre-resolved symbols. If the cache is too small doxygen will become slower. +# If the cache is too large, memory is wasted. The cache size is given by this +# formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range is 0..9, the default is 0, +# corresponding to a cache size of 2^16 = 65536 symbols. + +LOOKUP_CACHE_SIZE = 0 + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = YES + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = YES + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = YES + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. When set to YES local +# methods, which are defined in the implementation section but not in +# the interface are included in the documentation. +# If set to NO (the default) only methods in the interface are included. + +EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base +# name of the file that contains the anonymous namespace. By default +# anonymous namespaces are hidden. + +EXTRACT_ANON_NSPACES = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these classes will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the +# function's detailed documentation block. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. + +CASE_SENSE_NAMES = NO + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = NO + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put a list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen +# will list include files with double quotes in the documentation +# rather than with sharp brackets. + +FORCE_LOCAL_INCLUDES = NO + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the +# brief documentation of file, namespace and class members alphabetically +# by member name. If set to NO (the default) the members will appear in +# declaration order. + +SORT_BRIEF_DOCS = NO + +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen +# will sort the (brief and detailed) documentation of class members so that +# constructors and destructors are listed first. If set to NO (the default) +# the constructors will appear in the respective orders defined by +# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. +# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO +# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. + +SORT_MEMBERS_CTORS_1ST = NO + +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the +# hierarchy of group names into alphabetical order. If set to NO (the default) +# the group names will appear in their defined order. + +SORT_GROUP_NAMES = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be +# sorted by fully-qualified names, including namespaces. If set to +# NO (the default), the class list will be sorted only by class name, +# not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the +# alphabetical list. + +SORT_BY_SCOPE_NAME = NO + +# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to +# do proper type resolution of all parameters of a function it will reject a +# match between the prototype and the implementation of a member function even +# if there is only one candidate or it is obvious which candidate to choose +# by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen +# will still accept a match between prototype and implementation in such cases. + +STRICT_PROTO_MATCHING = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting +# \deprecated commands in the documentation. + +GENERATE_DEPRECATEDLIST = YES + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or macro consists of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and macros in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = YES + +# If the sources in your project are distributed over multiple directories +# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy +# in the documentation. The default is NO. + +SHOW_DIRECTORIES = NO + +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. +# This will remove the Files entry from the Quick Index and from the +# Folder Tree View (if specified). The default is YES. + +SHOW_FILES = YES + +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the +# Namespaces page. This will remove the Namespaces entry from the Quick Index +# and from the Folder Tree View (if specified). The default is YES. + +SHOW_NAMESPACES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command , where is the value of +# the FILE_VERSION_FILTER tag, and is the name of an input file +# provided by doxygen. Whatever the program writes to standard output +# is used as the file version. See the manual for examples. + +FILE_VERSION_FILTER = + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed +# by doxygen. The layout file controls the global structure of the generated +# output files in an output format independent way. The create the layout file +# that represents doxygen's defaults, run doxygen with the -l option. +# You can optionally specify a file name after the option, if omitted +# DoxygenLayout.xml will be used as the name of the layout file. + +LAYOUT_FILE = + +# The CITE_BIB_FILES tag can be used to specify one or more bib files +# containing the references data. This must be a list of .bib files. The +# .bib extension is automatically appended if omitted. Using this command +# requires the bibtex tool to be installed. See also +# http://en.wikipedia.org/wiki/BibTeX for more info. For LaTeX the style +# of the bibliography can be controlled using LATEX_BIB_STYLE. To use this +# feature you need bibtex and perl available in the search path. + +CITE_BIB_FILES = + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = NO + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = YES + +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some +# parameters in a documented function, or documenting parameters that +# don't exist or using markup commands wrongly. + +WARN_IF_DOC_ERROR = YES + +# The WARN_NO_PARAMDOC option can be enabled to get warnings for +# functions that are documented, but have no documentation for their parameters +# or return value. If set to NO (the default) doxygen will only warn about +# wrong or incomplete parameter documentation, but not about the absence of +# documentation. + +WARN_NO_PARAMDOC = NO + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. Optionally the format may contain +# $version, which will be replaced by the version of the file (if it could +# be obtained via FILE_VERSION_FILTER) + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = ../ + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is +# also the default input encoding. Doxygen uses libiconv (or the iconv built +# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for +# the list of possible encodings. + +INPUT_ENCODING = UTF-8 + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: +# *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh +# *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py +# *.f90 *.f *.for *.vhd *.vhdl + +#FILE_PATTERNS = *.c \ + +FILE_PATTERNS = *.lua + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should be +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. +# Note that relative paths are relative to the directory from which doxygen is +# run. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or +# directories that are symbolic links (a Unix file system feature) are excluded +# from the input. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. Note that the wildcards are matched +# against the file with absolute path, so to exclude all test directories +# for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# AClass::ANamespace, ANamespace::*Test + +EXCLUDE_SYMBOLS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = * + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command , where +# is the value of the INPUT_FILTER tag, and is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. If FILTER_PATTERNS is specified, this tag will be +# ignored. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: +# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further +# info on how filters are used. If FILTER_PATTERNS is empty or if +# non of the patterns match the file name, INPUT_FILTER is applied. + +FILTER_PATTERNS = *.lua=/usr/local/bin/lua2dox + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse (i.e. when SOURCE_BROWSER is set to YES). + +FILTER_SOURCE_FILES = NO + +# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file +# pattern. A pattern will override the setting for FILTER_PATTERN (if any) +# and it is also possible to disable source filtering for a specific pattern +# using *.ext= (so without naming a filter). This option only has effect when +# FILTER_SOURCE_FILES is enabled. + +FILTER_SOURCE_PATTERNS = + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. +# Note: To get rid of all source code in the generated output, make sure also +# VERBATIM_HEADERS is set to NO. + +SOURCE_BROWSER = NO + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C and C++ comments will always remain visible. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = NO + +# If the REFERENCES_RELATION tag is set to YES +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = NO + +# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) +# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from +# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will +# link to the source code. Otherwise they will link to the documentation. + +REFERENCES_LINK_SOURCE = YES + +# If the USE_HTAGS tag is set to YES then the references to source code +# will point to the HTML generated by the htags(1) tool instead of doxygen +# built-in source browser. The htags tool is part of GNU's global source +# tagging system (see http://www.gnu.org/software/global/global.html). You +# will need version 4.8.6 or higher. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = YES + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. Note that when using a custom header you are responsible +# for the proper inclusion of any scripts and style sheets that doxygen +# needs, which is dependent on the configuration options used. +# It is advised to generate a default header using "doxygen -w html +# header.html footer.html stylesheet.css YourConfigFile" and then modify +# that header. Note that the header is subject to change so you typically +# have to redo this when upgrading to a newer version of doxygen or when +# changing the value of configuration settings such as GENERATE_TREEVIEW! + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet. Note that doxygen will try to copy +# the style sheet file to the HTML output directory, so don't put your own +# style sheet in the HTML output directory as well, or it will be erased! + +HTML_STYLESHEET = + +# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or +# other source files which should be copied to the HTML output directory. Note +# that these files will be copied to the base HTML output directory. Use the +# $relpath$ marker in the HTML_HEADER and/or HTML_FOOTER files to load these +# files. In the HTML_STYLESHEET file, use the file name only. Also note that +# the files will be copied as-is; there are no commands or markers available. + +HTML_EXTRA_FILES = + +# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. +# Doxygen will adjust the colors in the style sheet and background images +# according to this color. Hue is specified as an angle on a colorwheel, +# see http://en.wikipedia.org/wiki/Hue for more information. +# For instance the value 0 represents red, 60 is yellow, 120 is green, +# 180 is cyan, 240 is blue, 300 purple, and 360 is red again. +# The allowed range is 0 to 359. + +HTML_COLORSTYLE_HUE = 220 + +# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of +# the colors in the HTML output. For a value of 0 the output will use +# grayscales only. A value of 255 will produce the most vivid colors. + +HTML_COLORSTYLE_SAT = 100 + +# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to +# the luminance component of the colors in the HTML output. Values below +# 100 gradually make the output lighter, whereas values above 100 make +# the output darker. The value divided by 100 is the actual gamma applied, +# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, +# and 100 does not change the gamma. + +HTML_COLORSTYLE_GAMMA = 80 + +# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML +# page will contain the date and time when the page was generated. Setting +# this to NO can help when comparing the output of multiple runs. + +HTML_TIMESTAMP = YES + +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to +# NO a bullet list will be used. + +HTML_ALIGN_MEMBERS = YES + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. For this to work a browser that supports +# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox +# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). + +HTML_DYNAMIC_SECTIONS = NO + +# If the GENERATE_DOCSET tag is set to YES, additional index files +# will be generated that can be used as input for Apple's Xcode 3 +# integrated development environment, introduced with OSX 10.5 (Leopard). +# To create a documentation set, doxygen will generate a Makefile in the +# HTML output directory. Running make will produce the docset in that +# directory and running "make install" will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find +# it at startup. +# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html +# for more information. + +GENERATE_DOCSET = NO + +# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the +# feed. A documentation feed provides an umbrella under which multiple +# documentation sets from a single provider (such as a company or product suite) +# can be grouped. + +DOCSET_FEEDNAME = "Doxygen generated docs" + +# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that +# should uniquely identify the documentation set bundle. This should be a +# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen +# will append .docset to the name. + +DOCSET_BUNDLE_ID = org.doxygen.Project + +# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify +# the documentation publisher. This should be a reverse domain-name style +# string, e.g. com.mycompany.MyDocSet.documentation. + +DOCSET_PUBLISHER_ID = org.doxygen.Publisher + +# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. + +DOCSET_PUBLISHER_NAME = Publisher + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be +# written to the html output directory. + +CHM_FILE = + +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run +# the HTML help compiler on the generated index.hhp. + +HHC_LOCATION = + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING +# is used to encode HtmlHelp index (hhk), content (hhc) and project file +# content. + +CHM_INDEX_ENCODING = + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the HTML help documentation and to the tree view. + +TOC_EXPAND = NO + +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and +# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated +# that can be used as input for Qt's qhelpgenerator to generate a +# Qt Compressed Help (.qch) of the generated HTML documentation. + +GENERATE_QHP = NO + +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can +# be used to specify the file name of the resulting .qch file. +# The path specified is relative to the HTML output folder. + +QCH_FILE = + +# The QHP_NAMESPACE tag specifies the namespace to use when generating +# Qt Help Project output. For more information please see +# http://doc.trolltech.com/qthelpproject.html#namespace + +QHP_NAMESPACE = org.doxygen.Project + +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating +# Qt Help Project output. For more information please see +# http://doc.trolltech.com/qthelpproject.html#virtual-folders + +QHP_VIRTUAL_FOLDER = doc + +# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to +# add. For more information please see +# http://doc.trolltech.com/qthelpproject.html#custom-filters + +QHP_CUST_FILTER_NAME = + +# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the +# custom filter to add. For more information please see +# +# Qt Help Project / Custom Filters. + +QHP_CUST_FILTER_ATTRS = + +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this +# project's +# filter section matches. +# +# Qt Help Project / Filter Attributes. + +QHP_SECT_FILTER_ATTRS = + +# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can +# be used to specify the location of Qt's qhelpgenerator. +# If non-empty doxygen will try to run qhelpgenerator on the generated +# .qhp file. + +QHG_LOCATION = + +# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files +# will be generated, which together with the HTML files, form an Eclipse help +# plugin. To install this plugin and make it available under the help contents +# menu in Eclipse, the contents of the directory containing the HTML and XML +# files needs to be copied into the plugins directory of eclipse. The name of +# the directory within the plugins directory should be the same as +# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before +# the help appears. + +GENERATE_ECLIPSEHELP = NO + +# A unique identifier for the eclipse help plugin. When installing the plugin +# the directory name containing the HTML and XML files should also have +# this name. + +ECLIPSE_DOC_ID = org.doxygen.Project + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) +# at top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. Since the tabs have the same information as the +# navigation tree you can set this option to NO if you already set +# GENERATE_TREEVIEW to YES. + +DISABLE_INDEX = NO + +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index +# structure should be generated to display hierarchical information. +# If the tag value is set to YES, a side panel will be generated +# containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). +# Windows users are probably better off using the HTML help feature. +# Since the tree basically has the same information as the tab index you +# could consider to set DISABLE_INDEX to NO when enabling this option. + +GENERATE_TREEVIEW = YES + +# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values +# (range [0,1..20]) that doxygen will group on one line in the generated HTML +# documentation. Note that a value of 0 will completely suppress the enum +# values from appearing in the overview section. + +ENUM_VALUES_PER_LINE = 1 + +# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, +# and Class Hierarchy pages using a tree view instead of an ordered list. + +USE_INLINE_TREES = YES + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open +# links to external symbols imported via tag files in a separate window. + +EXT_LINKS_IN_WINDOW = NO + +# Use this tag to change the font size of Latex formulas included +# as images in the HTML documentation. The default is 10. Note that +# when you change the font size after a successful doxygen run you need +# to manually remove any form_*.png images from the HTML output directory +# to force them to be regenerated. + +FORMULA_FONTSIZE = 10 + +# Use the FORMULA_TRANPARENT tag to determine whether or not the images +# generated for formulas are transparent PNGs. Transparent PNGs are +# not supported properly for IE 6.0, but are supported on all modern browsers. +# Note that when changing this option you need to delete any form_*.png files +# in the HTML output before the changes have effect. + +FORMULA_TRANSPARENT = YES + +# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax +# (see http://www.mathjax.org) which uses client side Javascript for the +# rendering instead of using prerendered bitmaps. Use this if you do not +# have LaTeX installed or if you want to formulas look prettier in the HTML +# output. When enabled you also need to install MathJax separately and +# configure the path to it using the MATHJAX_RELPATH option. + +USE_MATHJAX = NO + +# When MathJax is enabled you need to specify the location relative to the +# HTML output directory using the MATHJAX_RELPATH option. The destination +# directory should contain the MathJax.js script. For instance, if the mathjax +# directory is located at the same level as the HTML output directory, then +# MATHJAX_RELPATH should be ../mathjax. The default value points to the +# mathjax.org site, so you can quickly see the result without installing +# MathJax, but it is strongly recommended to install a local copy of MathJax +# before deployment. + +MATHJAX_RELPATH = http://www.mathjax.org/mathjax + +# The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension +# names that should be enabled during MathJax rendering. + +MATHJAX_EXTENSIONS = + +# When the SEARCHENGINE tag is enabled doxygen will generate a search box +# for the HTML output. The underlying search engine uses javascript +# and DHTML and should work on any modern browser. Note that when using +# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets +# (GENERATE_DOCSET) there is already a search function so this one should +# typically be disabled. For large projects the javascript based search engine +# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. + +SEARCHENGINE = YES + +# When the SERVER_BASED_SEARCH tag is enabled the search engine will be +# implemented using a PHP enabled web server instead of at the web client +# using Javascript. Doxygen will generate the search PHP script and index +# file to put on the web server. The advantage of the server +# based approach is that it scales better to large projects and allows +# full text search. The disadvantages are that it is more difficult to setup +# and does not have live searching capabilities. + +SERVER_BASED_SEARCH = NO + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = NO + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = latex + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. If left blank `latex' will be used as the default command name. +# Note that when enabling USE_PDFLATEX this option is only used for +# generating bitmaps for formulas in the HTML output, but not in the +# Makefile that is written to the output directory. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the +# default command name. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, letter, legal and +# executive. If left blank a4wide will be used. + +PAPER_TYPE = a4 + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for +# the generated latex document. The footer should contain everything after +# the last chapter. If it is left blank doxygen will generate a +# standard footer. Notice: only use this tag if you know what you are doing! + +LATEX_FOOTER = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = YES + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = YES + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +# If LATEX_HIDE_INDICES is set to YES then doxygen will not +# include the index chapters (such as File Index, Compound Index, etc.) +# in the output. + +LATEX_HIDE_INDICES = NO + +# If LATEX_SOURCE_CODE is set to YES then doxygen will include +# source code with syntax highlighting in the LaTeX output. +# Note that which sources are shown also depends on other settings +# such as SOURCE_BROWSER. + +LATEX_SOURCE_CODE = NO + +# The LATEX_BIB_STYLE tag can be used to specify the style to use for the +# bibliography, e.g. plainnat, or ieeetr. The default style is "plain". See +# http://en.wikipedia.org/wiki/BibTeX for more info. + +LATEX_BIB_STYLE = plain + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimized for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load style sheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = .3 + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `xml' will be used as the default path. + +XML_OUTPUT = xml + +# The XML_SCHEMA tag can be used to specify an XML schema, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_SCHEMA = + +# The XML_DTD tag can be used to specify an XML DTD, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_DTD = + +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will +# dump the program listings (including syntax highlighting +# and cross-referencing information) to the XML output. Note that +# enabling this will significantly increase the size of the XML output. + +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES Doxygen will +# generate a Perl module file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate +# the necessary Makefile rules, Perl scripts and LaTeX code to be able +# to generate PDF and DVI output from the Perl module output. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be +# nicely formatted so it can be parsed by a human reader. This is useful +# if you want to understand what is going on. On the other hand, if this +# tag is set to NO the size of the Perl module output will be much smaller +# and Perl will parse it just the same. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. +# This is useful so different doxyrules.make files included by the same +# Makefile don't overwrite each other's variables. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = NO + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_DEFINED tags. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# pointed to by INCLUDE_PATH will be searched when a #include is found. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. To prevent a macro definition from being +# undefined via #undef or recursively expanded use the := operator +# instead of the = operator. + +PREDEFINED = + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition that +# overrules the definition found in the source code. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all references to function-like macros +# that are alone on a line, have an all uppercase name, and do not end with a +# semicolon, because these will confuse the parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES option can be used to specify one or more tagfiles. +# Optionally an initial location of the external documentation +# can be added for each tagfile. The format of a tag file without +# this location is as follows: +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where "loc1" and "loc2" can be relative or absolute paths or +# URLs. If a location is present for each tag, the installdox tool +# does not have to be run to correct the links. +# Note that each tag file must have a unique name +# (where the name does NOT include the path) +# If a tag file is not located in the directory in which doxygen +# is run, you must also specify the path to the tagfile here. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will +# be listed. + +EXTERNAL_GROUPS = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base +# or super classes. Setting the tag to NO turns the diagrams off. Note that +# this option also works with HAVE_DOT disabled, but it is recommended to +# install and use dot, since it yields more powerful graphs. + +CLASS_DIAGRAMS = YES + +# You can define message sequence charts within doxygen comments using the \msc +# command. Doxygen will then run the mscgen tool (see +# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the +# documentation. The MSCGEN_PATH tag allows you to specify the directory where +# the mscgen tool resides. If left empty the tool is assumed to be found in the +# default search path. + +MSCGEN_PATH = + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = YES + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = YES + +# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is +# allowed to run in parallel. When set to 0 (the default) doxygen will +# base this on the number of processors available in the system. You can set it +# explicitly to a value larger than 0 to get control over the balance +# between CPU load and processing speed. + +DOT_NUM_THREADS = 0 + +# By default doxygen will use the Helvetica font for all dot files that +# doxygen generates. When you want a differently looking font you can specify +# the font name using DOT_FONTNAME. You need to make sure dot is able to find +# the font, which can be done by putting it in a standard location or by setting +# the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the +# directory containing the font. + +DOT_FONTNAME = Helvetica + +# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. +# The default size is 10pt. + +DOT_FONTSIZE = 10 + +# By default doxygen will tell dot to use the Helvetica font. +# If you specify a different font using DOT_FONTNAME you can use DOT_FONTPATH to +# set the path where dot can find it. + +DOT_FONTPATH = + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = YES + +# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for groups, showing the direct groups dependencies + +GROUP_GRAPHS = YES + +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling +# Language. + +UML_LOOK = NO + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = NO + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = YES + +# If the CALL_GRAPH and HAVE_DOT options are set to YES then +# doxygen will generate a call dependency graph for every global function +# or class method. Note that enabling this option will significantly increase +# the time of a run. So in most cases it will be better to enable call graphs +# for selected functions only using the \callgraph command. + +CALL_GRAPH = YES + +# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then +# doxygen will generate a caller dependency graph for every global function +# or class method. Note that enabling this option will significantly increase +# the time of a run. So in most cases it will be better to enable caller +# graphs for selected functions only using the \callergraph command. + +CALLER_GRAPH = YES + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will generate a graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = YES + +# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES +# then doxygen will show the dependencies a directory has on other directories +# in a graphical way. The dependency relations are determined by the #include +# relations between the files in the directories. + +DIRECTORY_GRAPH = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. Possible values are svg, png, jpg, or gif. +# If left blank png will be used. If you choose svg you need to set +# HTML_FILE_EXTENSION to xhtml in order to make the SVG files +# visible in IE 9+ (other browsers do not have this requirement). + +DOT_IMAGE_FORMAT = png + +# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to +# enable generation of interactive SVG images that allow zooming and panning. +# Note that this requires a modern browser other than Internet Explorer. +# Tested and working are Firefox, Chrome, Safari, and Opera. For IE 9+ you +# need to set HTML_FILE_EXTENSION to xhtml in order to make the SVG files +# visible. Older versions of IE do not have SVG support. + +INTERACTIVE_SVG = NO + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found in the path. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The MSCFILE_DIRS tag can be used to specify one or more directories that +# contain msc files that are included in the documentation (see the +# \mscfile command). + +MSCFILE_DIRS = + +# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of +# nodes that will be shown in the graph. If the number of nodes in a graph +# becomes larger than this value, doxygen will truncate the graph, which is +# visualized by representing a node as a red box. Note that doxygen if the +# number of direct children of the root node in a graph is already larger than +# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note +# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. + +DOT_GRAPH_MAX_NODES = 50 + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the +# graphs generated by dot. A depth value of 3 means that only nodes reachable +# from the root by following a path via at most 3 edges will be shown. Nodes +# that lay further from the root node will be omitted. Note that setting this +# option to 1 or 2 may greatly reduce the computation time needed for large +# code bases. Also note that the size of a graph can be further restricted by +# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. + +MAX_DOT_GRAPH_DEPTH = 0 + +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent +# background. This is disabled by default, because dot on Windows does not +# seem to support this out of the box. Warning: Depending on the platform used, +# enabling this option may lead to badly anti-aliased labels on the edges of +# a graph (i.e. they become hard to read). + +DOT_TRANSPARENT = NO + +# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output +# files in one run (i.e. multiple -o and -T options on the command line). This +# makes dot run faster, but since only newer versions of dot (>1.8.10) +# support this, this feature is disabled by default. + +DOT_MULTI_TARGETS = NO + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermediate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = YES diff --git a/mods/mobf/doc/Testcases.txt b/mods/mobf/doc/Testcases.txt new file mode 100644 index 0000000..37274ea --- /dev/null +++ b/mods/mobf/doc/Testcases.txt @@ -0,0 +1,28 @@ +Date 2012 01 28 + +testcases to check before release: + + +Features: + +-mobs moving +-catching mobs with lasso +-catching mobs with net +-killing mobs +-harvesting mobs +-mobs doing meele attack +-mobs transforming on harvest +-mobs auto transform +-mobs taking damage in sun +-mobs self destruct +-mobs honoring jump limitiations +-mobs random dropping +-mobs honoring movement medium +-mobs doing random jumps +-mobs level changing + + +General: +-version number correct? +-readme correct? +-debug output disabled? diff --git a/mods/mobf/doc/mainpage_description.lua b/mods/mobf/doc/mainpage_description.lua new file mode 100644 index 0000000..5b54245 --- /dev/null +++ b/mods/mobf/doc/mainpage_description.lua @@ -0,0 +1,46 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file mainpage_description.lua +--! @brief just a doc page +--! @copyright Sapier +--! @author Sapier +--! @date 2013-01-27 + +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +--! @mainpage Mob Framework Mod 2.0.x +--! +--! This documentation uses doxygen created from lua code. As some of you +--! probably know doxygen doesn't support lua on it's own so some of the +--! shown descriptions arent perfectly correct.\n +--! +--! On this page some of the caveats are explained:\n +--! Lua doesn't support classes and structs but tables which ain't supported by +--! doxygen.\n +--! +--! Mapping of classes and structs: +--! \li \b classes are used to group (sub)components containing primary functions\n +--! \li \b structs are result of parsing tables and containing configuration or +--! temporary data +--! +--! Datatypes shown in doxygen and it's meaning: +--! \li \b function this is a return value of function and can be nil too +--! \li \b var a variable +--! \li \b struct some table element +--! \li \b anonymous_value a table element specified without a name +--! \li \b parameter is a parameter declared in a function definition +--! +--! +--! Keywords used in config parameter description +--! \li \b MANDATORY some parameter required +--! \li \b OPTIONAL parameter may be nill without causinh an error +--! \li \b MOV_GEN_DEPENDENT parameter is required dependent of selected movement gen +--! \li \b 2D MANDATORY parameter is required in case of 2D mob +--! \li \b 3D MANDATORY parameter is required in case of 3D mob +--! \li \b ALGORITHM \b DEPENDENT is required dependent on selected algorithm diff --git a/mods/mobf/doc/mob_template.lua b/mods/mobf/doc/mob_template.lua new file mode 100644 index 0000000..2d194e4 --- /dev/null +++ b/mods/mobf/doc/mob_template.lua @@ -0,0 +1,361 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file mob_template.lua +--! @brief template for mob +--! @copyright Sapier +--! @author Sapier +--! @date 2013-01-27 +-- +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +-- WARNING this code might be not correct lua in order to get doxygen +-- compatibility! +--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + +--! @brief Template for creating mobs +--! +--! This template trys to describe all available configuration options +--! in mob framework. +--! @ingroup framework_mob +local mob_template = { + + --! @brief [MANDATORY] name of mob @b (alphanumeric and "_" only!!) + name = "some name", + --! @brief [MANDATORY] name of mod defining the mob + modname = "name of mod", + + --! @brief [MANDATORY] generic parameters for mob + generic = { + --! @brief [MANDATORY] description to show on mouse over in inventory + description="Some mob", + + --! @brief [MANDATORY] maximum health + base_health=0, + + --! @brief [MANDATORY] environment of mob to be + envid="some environment id", + + --! @brief [OPTIONAL] item description OR function all returning a item description of whats the result of a kill + kill_result = nil, + + --! @brief [OPTIONAL] armor groups of mob + armor_groups = nil, + + --! @brief [OPTIONAL] custom on_hit(entity,player) callback return true to skip normal fight callback + on_hit_callback = nil, + + --! @brief [OPTIONAL] custom on_kill(entity,player) callback return true to skip normal on kill handling + on_kill_callback = nil, + + --! @brief [OPTIONAL] custom on_place(entity, placer, pointed_thing) callback called after normal on place handling is done + custom_on_place_handler = nil, + + --! @brief [OPTIONAL] custom on_activate(entity) callback called after normal on_activate handling is done + custom_on_activate_handler = nil, + + --! @brief [OPTIONAL] custom on_step(entity) callback called after normal on_step handling is done + custom_on_step_handler = nil, + + }, + + --! @brief [MANDATORY] configuration of movement generator + movement = { + --! @brief [MANDATORY] is this a flying mob + canfly=false, + + --! @brief [MANDATORY] minumum acceleration of mob + min_accel=0, + + --! @brief [MANDATORY] maximum acceleration of mob + max_accel=0, + + --! @brief [MANDATORY] maximum absolute speed of mob + max_speed=0, + + --! @brief [OPTIONAL] minimum speed a mob shall move (if moving at all) + min_speed=0, + + --! @brief [MOV_GEN_DEPENDENT | MANDATORY] pattern based movement gen -> pattern to use for movement + pattern="some pattern id", + + --! @brief [MOV_GEN_DEPENDENT | OPTIONAL] follow movement gen -> does this mob guard it's spawnpoint + guardspawnpoint = false, + + --! @brief [MOV_GEN_DEPENDENT | OPTIONAL] follow movement gen -> time until this mob teleports to its target + teleportdelay = 60, + + }, + + --! @brief [OPTIONAL] if mob is harvestable configure it here + harvest = { + --! @brief [OPTIONAL] tool required for harvesting + tool=nil, + + --! @brief [OPTIONAL] is tool consuled by harvesting + tool_consumed=false, + + --! @brief [MANDATORY] result of harvest + result="", + + --! @brief [OPTIONAL] mob transforms to this mob on harvest + transforms_to="", + + --! @brief [MANDATORY] minimum time between two harvests (in case of transform set this to -1) + min_delay=-1, + }, + + --! @brief [OPTIONAL] configuration how to catch the mob + catching = { + --! @brief [MANDATORY] tool required to wear to catch the mob + tool = "some item", + --! @brief [MANDATORY] is tool consumed by catching + consumed = true, + }, + + --! @brief [OPTIONAL] does this mob do random drops + random_drop = { + + --! @brief [MANDATORY] item to be dropped + result="some_material", + + --! @brief [MANDATORY] minimum delay between two drops + min_delay=60, + + --! @brief [MANDATORY] chance per second to drop after min_delay has passed + chance=0.2 + }, + + --! @brief [OPTIONAL] if this mob s intended to transform by its own configure it here + auto_transform = { + + --! @brief [MANDATORY] mob to transform to + result="some_mob", + + --! @brief [MANDATORY] time to transformation + delay=1800 + }, + + --! @brief [OPTIONAL] combat settings for mob + combat = { + --! @brief [MANDATORY] does mob start an attack on its own? + starts_attack=true, + + --! @brief [MANDATORY] chance mob will attack (if starting attack on its own or beeing attacked) + angryness=0.95, + + --! @brief [OPTIONAL] is mob sensitive to sun? + sun_sensitive=true, + + --! @brief [OPTIONAL] configuration of meele attack + melee = { + --! @brief [MANDATORY] maximum damage mob does per hit + maxdamage=4, + --! @brief [MANDATORY] range mob will hit + range=2, + --! @brief [MANDATORY] minimum time between two hits + speed=2, + }, + --! @brief [OPTIONAL] configuration of distance attack + distance = { + --! @brief [MANDATORY] distance projectile to issue + attack="some_entity", + --! @brief [MANDATORY] distance to issue an attack + range=10, + --! @brief [MANDATORY] minimum time between two attacks + speed=2, + }, + + --! @brief [OPTIONAL] configuration for self destructing mob + self_destruct = { + --! [MANDATORY] maximum damage to be done on self destruct + damage=15, + --! [MANDATORY] maximum range to do damage + range=5, + --! [MANDATORY] range to destroy nodes on self destruction + node_damage_range = 1.5, + --! [MANDATORY] delay between self destruct triggering and explosion + delay=5, + }, + }, + --! @brief [MANDATORY] spawning configuration for mob + spawning = { + --! @brief [MANDATORY] rate this mob is spawned + rate=0.01, + --! @brief [MANDATORY] typical distance between two mobs of this type when spawend + density=1000, + --! @brief [MANDATORY] identifyer of spawn algorithm + algorithm="some algorithm id", + + --! @brief [ALGORITHM DEPENDENT] shadows minimum number of air blocks above pos + height = 1, + }, + + --! @brief [OPTIONAL] sounds to be played by mob + sound = { + --! @brief [OPTIONAL] random sound to be played + random = { + --! @brief [MANDATORY] basename of file + name="random_1", + --! @brief [MANDATORY] minimum time between playing sounds + min_delta = 10, + --! @brief [MANDATORY] chance per second to play sound after minimum time + chance = 0.5, + --! @brief [MANDATORY] amplify the sound by this value + gain = 1, + --! @brief [MANDATORY] maximum distance sound is heared + max_hear_distance = 75, + }, + --! @brief [OPTIONAL] sound played on self destruction + self_destruct = { + --! @brief [MANDATORY] basename of file + name="bomb_explosion", + --! @brief [MANDATORY] amplify the sound by this value + gain = 2, + --! @brief [MANDATORY] maximum distance sound is heared + max_hear_distance = 1000, + }, + --! @brief [OPTIONAL] sound played on harvest + harvest = { + --! @brief [MANDATORY] basename of file + name="harvest", + --! @brief [MANDATORY] amplify the sound by this value + gain = 0.8, + --! @brief [MANDATORY] maximum distance sound is heared + max_hear_distance = 5, + }, + --! @brief [OPTIONAL] sound played on distance attack + distance = { + --! @brief [MANDATORY] basename of file + name="fireball", + --! @brief [MANDATORY] amplify the sound by this value + gain = 1, + --! @brief [MANDATORY] maximum distance sound is heared + max_hear_distance = 100, + }, + --! @brief [OPTIONAL] sound played if mob dies + die = { + --! @brief [MANDATORY] basename of file + name="die", + --! @brief [MANDATORY] amplify the sound by this value + gain = 1, + --! @brief [MANDATORY] maximum distance sound is heared + max_hear_distance = 100, + }, + --! @brief [OPTIONAL] sound played if mob does meele attack + melee = { + --! @brief [MANDATORY] basename of file + name="hit", + --! @brief [MANDATORY] amplify the sound by this value + gain = 1, + --! @brief [MANDATORY] maximum distance sound is heared + max_hear_distance = 100, + }, + }, + --! @brief [OPTIONAL] used to specify different movement/model states, + --! you may specify as many states as you like + states = { + { + --! @brief [MANDATORY] (default state is MUST have!) name of state + name = "default", + --! @brief [MANDATORY] typical duration of this state + typical_state_time = 180, + --! @brief [MANDATORY] chance of state to be selected (SUM may not be > 1) + chance = 0.5, + --! @brief [MANDATORY] a special movement handler for this state + movgen = "none", + --! @brief [3D MANDATORY] a special model to be used for this state + graphics_3d = { + --! @brief [MANDATORY] this is the drawtype to use + visual = "mesh", + --! @brief [MANDATORY] this is the drawtype to use + mesh = "mesh.x", + --! @brief [MANDATORY] the model of the mob + textures = {"some node declatation"}, + --! @brief [MANDATORY] collisionbox to use + collisionbox = { "" }, + --! @brief [MANDATORY] xyz scale factors for the model + visual_size = {x=1,y=1,z=1}, + }, + --! @brief [2D MANDATORY] a special sprite to be used for this state + graphics_2d = { + --! @brief [MANDATORY] scale of sprite + sprite_scale={x=0,y=0}, + --! @brief [MANDATORY] description of multi dimensional sprites (e.g. containing burning/ differend view directions) + sprite_div = {x=0,y=0}, + --! @brief [MANDATORY] height of sprite + visible_height = 3.2, + + }, + --! @brief [MANDATORY] a animation to be played while this state is active + animation = "walk", + }, + { + --! @brief [MANDATORY] name of state + name = "another_state_example", + --! @brief [MANDATORY] typical duration of this state + typical_state_time = 180, + --! @brief [MANDATORY] chance of state to be selected (SUM may not be > 1) + chance = 0.5, + --! @brief [OPTIONAL] a function to check before switching to this state + custom_preconhandler = nil, + --! @brief [OPTIONAL] a special movement handler for this state + movgen = "none", + --! @brief [OPTIONAL] a special model to be used for this state + graphics_3d = "", + --! @brief [OPTIONAL] a special sprite to be used for this state + graphics_2d = "", + --! @brief [OPTIONAL] a animation to be played while this state is active + animation = "name", + }, + { + + } + }, + --! @brief [OPTIONAL] description of animations + animation = { + --! @brief [OPTIONAL] one or many animation descriptions + animationname = { + --! @brief [MANDATORY] start frame of animation + start_frame = 1, + --! @brief [MANDATORY] end frame of animation + end_frame = 2, + }, + }, + --! @brief [OPTIONAL] parameters for rideable mobs + ride = { + --! @brief [OPTIONAL] speed when walking + walkspeed = 7.8, + --! @brief [OPTIONAL] speed when sneaking + sneakspeed = 0.8, + --! @brief [OPTIONAL] inital jumpspeed + jumpspeed = 58, + --! @brief [OPTIONAL] offset to center player is put to + attacheoffset = { x=0,y=2,z=0}, + --! @brief [OPTIONAL] texture modifier when player is attached + texturemod = "^mob_ostrich_ostrich_saddle_mesh.png", + --! @brief [OPTIONAL] animation to show when riding + walk_anim = "walk" + }, + --! @brief [OPTIONAL] configuration for a trader mob + trader_inventory = { + --! @brief [MANDATORY] goodlist to be sold + goods = { + --! @brief [MANDOTORY] first element in list + { "default:mese 1", "default:dirt 99", "default:cobble 50"}, + --! @brief [OPTIONAL] any further element + { "default:steel_ingot 1", "default:dirt 50", "default:cobble 20"}, + }, + --! @brief [MANDATORY] list of names randomly choosen for trader + random_names = { "Name1","Name2","Name3"}, + } + } \ No newline at end of file diff --git a/mods/mobf/environment.lua b/mods/mobf/environment.lua new file mode 100644 index 0000000..448f685 --- /dev/null +++ b/mods/mobf/environment.lua @@ -0,0 +1,604 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +-- +--! @file environment.lua +--! @brief component for environment related functions +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-09 +-- +--! @defgroup environment Environment subcomponent +--! @brief Environment check functions used by different subcomponents +--! @ingroup framework_int +--! @{ +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +environment = {} + +--! @brief list of known environments +--! @memberof environment +environment_list = {} + + + +------------------------------------------------------------------------------- +-- name: get_suitable_pos_same_level(pos_raw,maxsearcharea,entity) +-- +--! @brief find a position suitable around a specific position +--! @ingroup environment +-- +--! @param pos_raw position to look at +--! @param maxsearcharea max range to look for suitable position +--! @param entity mob to look for position +--! @param accept_possible return position thats possible only too +--! @return {x,y,z} position found or nil +------------------------------------------------------------------------------- +function environment.get_suitable_pos_same_level(pos_raw,maxsearcharea,entity,accept_possible) + dbg_mobf.movement_lvl3("MOBF: --> get_suitable_pos_same_level " + .. printpos(pos_raw)) + local pos = mobf_round_pos(pos_raw) + + dbg_mobf.movement_lvl1("MOBF: Starting pos is "..printpos(pos) + .." max search area is "..maxsearcharea) + + local e1 = "|" + local e2 = "|" + local e3 = "|" + local e4 = "|" + + local possible_targets = {} + + --search next position on solid ground + for search=1, maxsearcharea,1 do + --TODO randomize search order + + --find along edge 1 + for current=-search,search,1 do + local pos_tocheck = { x= pos.x + current,y=pos.y,z=pos.z -search} + local pos_state = environment.pos_is_ok(pos_tocheck,entity) + + dbg_mobf.movement_lvl1("MOBF: state of "..printpos(pos_tocheck).." is " + .. pos_state) + + if pos_state == "ok" then + dbg_mobf.movement_lvl1("found new pos") + table.insert(possible_targets, pos_tocheck) + elseif pos_state == "possible_surface" and + accept_possible then + table.insert(possible_targets, pos_tocheck) +-- elseif pos_state == "collision_jumpabe" then +-- dbg_mobf.movement_lvl1("found new pos above") +-- return {x=pos_tocheck.x,y=pos_tocheck.y+1,z=pos_tocheck.z} + else + e1 = e1..pos_state.."|" + end + end + + --find along edge 2 + for current=-(search-1),(search-1),1 do + local pos_tocheck = { x= pos.x + search,y=pos.y,z=pos.z + current} + local pos_state = environment.pos_is_ok(pos_tocheck,entity) + + dbg_mobf.movement_lvl1("MOBF: state of "..printpos(pos_tocheck).." is " + .. pos_state) + + if pos_state == "ok" then + dbg_mobf.movement_lvl1("found new pos") + table.insert(possible_targets, pos_tocheck) + elseif pos_state == "possible_surface" and + accept_possible then + table.insert(possible_targets, pos_tocheck) + else + e2 = e2..pos_state.."|" + end + end + + --find along edge 3 + + for current=search,-search,-1 do + local pos_tocheck = { x= pos.x + current,y=pos.y,z=pos.z + search} + local pos_state = environment.pos_is_ok(pos_tocheck,entity) + + dbg_mobf.movement_lvl1("MOBF: state of "..printpos(pos_tocheck).." is " + .. pos_state) + + if pos_state == "ok" then + dbg_mobf.movement_lvl1("found new pos") + table.insert(possible_targets, pos_tocheck) + elseif pos_state == "possible_surface" and + accept_possible then + table.insert(possible_targets, pos_tocheck) + else + e3 = e3..pos_state.."|" + end + end + + --find along edge 4 + for current=(search-1),-(search-1),-1 do + local pos_tocheck = { x= pos.x -search,y=pos.y,z=pos.z + current} + local pos_state = environment.pos_is_ok(pos,entity) + + dbg_mobf.movement_lvl1("MOBF: state of "..printpos(pos_tocheck).." is " + .. pos_state) + + if pos_state == "ok" then + dbg_mobf.movement_lvl1("found new pos") + table.insert(possible_targets, pos_tocheck) + elseif pos_state == "possible_surface" and + accept_possible then + table.insert(possible_targets, pos_tocheck) + else + e4 = e4..pos_state.."|" + end + end + end + +-- print("MOBF: Bug !!! didn't find a suitable position to place mob") +-- print("Surrounding of " .. printpos(pos_raw) .. "was:") +-- print(e1) +-- print(" " .. e2) +-- print(e4) +-- print(e3) + + if #possible_targets > 0 then + local i = math.random(1, #possible_targets) + return possible_targets[i] + end + + return nil +end + +------------------------------------------------------------------------------- +-- name: is_media_element(nodename,environment) +-- +--! @brief check if nodename is in environment +--! @ingroup environment +-- +--! @param nodename name to check +--! @param media environment of mob +--! @return true/false +------------------------------------------------------------------------------ +function environment.is_media_element( nodename, media ) + + --security check + if media == false then + mobf_bug_warning(LOGLEVEL_ERROR,"MOBF: BUG!!!! no environment specified!") + return false + end + + for i,v in ipairs(media) do + if v == nodename then + return true + end + end + + dbg_mobf.environment_lvl2("MOBF: " .. nodename .. " is not within environment list:") + + for i,v in ipairs(media) do + dbg_mobf.environment_lvl3("MOBF: \t" .. v) + end + + return false +end + +------------------------------------------------------------------------------- +-- name: get_absolute_min_max_pos(env, pos) +-- +--! @brief check if nodename is in environment +--! @ingroup environment +-- +--! @param env environment mob should be +--! @param pos position it is currently +--! @return { minpos,maxpos } +------------------------------------------------------------------------------ +function environment.get_absolute_min_max_pos(env,pos) + + local node = minetest.env:get_node(pos) + + --if is not within environment it should be return current position + --as min max + if environment.is_media_element(node.name,env.media) == false then + return pos.y,pos.y + end + + local min_y = env.min_height_above_ground + local max_y = env.max_height_above_ground + + + --a fully generic check isn't possible here so we need to use media + --specific ways ... it's ugly but works + if node.name == "air" then + min_y = min_y + ( pos.y - mobf_surface_distance(pos)) + max_y = max_y + ( pos.y - mobf_surface_distance(pos)) + end + + if node.name == "default:water" or + node.name == "defailt:water_flowing" then + -- water mobs do use min/max directly + end + + if node.name == "default:lava" or + node.name == "default:lava_flowing" then + --TODO e.g. lava fish + --not implemented by now + end + + return min_y,max_y +end + + +------------------------------------------------------------------------------- +-- name: is_jumpable_surface(name) +-- +--! @brief check if name is a surface an mob may jump onto +--! @ingroup environment +-- +--! @param name name to check +--! @return true/false +------------------------------------------------------------------------------- +function environment.is_jumpable_surface(name) + + + if name == "default:dirt" or + name == "default:dirt_with_grass" or + name == "default:stone" or + name == "default:sand" or + name == "default:clay" + then + return true + end + + dbg_mobf.environment_lvl1("MOBF: is "..name.." a jumpable surface?") + return false +end + +------------------------------------------------------------------------------- +-- name: checksurfacek(pos,surfaces) +-- +--! @brief check if a position is suitable for an mob +--! @ingroup environment +-- +--! @param pos position to check +--! @param surface surfaces valid +--! @return true on valid surface false if not +------------------------------------------------------------------------------- +function environment.checksurface(pos,surface) + + --if no surfaces are specified any surface is treated as ok + if surface == nil then + return "ok" + end + + local pos_below = {x=pos.x,y=pos.y-1,z=pos.z} + + local node_below = minetest.env:get_node(pos_below) + + + if node_below == nil then + return "ok" + end + + for i,v in ipairs(surface.good) do + if node_below.name == v then + return "ok" + end + end + + if surface.possible ~= nil then + for i,v in ipairs(surface.possible) do + if node_below.name == v then + return "possible_surface" + end + end + end + + return "wrong_surface" + +end + +------------------------------------------------------------------------------- +-- name: get_min_max_ground_dist(entity) +-- +--! @brief calculate absolute minimum and maximum height for a mob +--! @ingroup environment +-- +--! @param entity mob to check +--! @return min y val,max y val +------------------------------------------------------------------------------- +function environment.get_min_max_ground_dist(entity) + local min_ground_distance = 0 + local max_ground_distance = 0 + + if entity.environment.max_height_above_ground ~= nil then + max_ground_distance = entity.environment.max_height_above_ground + end + + if entity.environment.min_height_above_ground ~= nil then + min_ground_distance = entity.environment.min_height_above_ground + end + + if entity.data.movement.canfly == nil or + entity.data.movement.canfly == false then + max_ground_distance = 1 + end + + return min_ground_distance,max_ground_distance +end + +------------------------------------------------------------------------------- +-- name: pos_is_ok(pos,entity) +-- +--! @brief check if a position is suitable for an mob +--! @ingroup environment +-- +--! @param pos position to check +--! @param entity mob to check +--! @param dont_do_jumpcheck +--! @return suitability of position for mob values: +--! -ok -@>position is ok +--! -collision -@>position is within a node +--! -collision_jumpable -@>position is within a node that can be jumped onto +--! -drop -@>position is a drop +--! -drop_above_water -@>position is to far above water +--! -above_water -@>position is right over water +--! -in_water -@>position is within a water node(source or flow) +--! -in_air -@>position is in air +--! -above_limit -@>position is above level limit +--! -below_limit -@>position is below level limit +--! -wrong_surface -@>position is above surface mob shouldn't be +--! -invalid -@>unable to check position +------------------------------------------------------------------------------- +function environment.pos_is_ok(pos,entity,dont_do_jumpcheck) + + local min_ground_distance,max_ground_distance = environment.get_min_max_ground_dist(entity) + + local cornerpositions = {} + + table.insert(cornerpositions,pos) + --read positions at corners + table.insert(cornerpositions,{x=pos.x + entity.collisionbox[4] -0.01,y=pos.y,z=pos.z + entity.collisionbox[6] -0.01}) + table.insert(cornerpositions,{x=pos.x + entity.collisionbox[4] -0.01,y=pos.y,z=pos.z + entity.collisionbox[3] +0.01}) + table.insert(cornerpositions,{x=pos.x + entity.collisionbox[1] +0.01,y=pos.y,z=pos.z + entity.collisionbox[6] -0.01}) + table.insert(cornerpositions,{x=pos.x + entity.collisionbox[1] +0.01,y=pos.y,z=pos.z + entity.collisionbox[3] +0.01}) + + local lastpos = nil + + local retval = "temp_ok" + + --check if mob at pos will be in correct environment + for i=1,#cornerpositions,1 do + if not mobf_pos_is_same(lastpos,cornerpositions[i]) then + local node_to_check = minetest.env:get_node(cornerpositions[i]) + + if node_to_check == nil then + mobf_bug_warning(LOGLEVEL_ERROR,"MOBF: BUG!!!! checking position with invalid node") + retval = "invalid" + break + end + + if not environment.is_media_element(node_to_check.name,entity.environment.media) == true then + dbg_mobf.environment_lvl3("MOBF: " .. i .. ": " .. + printpos(cornerpositions[i]) .. " -- " .. printpos(pos) .. + " not within environment") + + if mobf_pos_is_same(pos,cornerpositions[i]) then + if node_to_check.name == "default:water_source" or + node_to_check.name == "default:water_flowing" then + retval = "in_water" + break + end + + if node_to_check.name == "air" then + retval = "in_air" + break + end + + --TODO maybe replace by "invalid medium" + else + retval = "collision" + end + end + end + lastpos = cornerpositions[i] + end + + -- + if retval == "temp_ok" then + dbg_mobf.environment_lvl2("MOBF: \tin environment") + local ground_distance = mobf_ground_distance(pos,entity.environment.media) + + --following return codes are only usefull for non flying + if entity.data.movement.canfly == nil or + entity.data.movement.canfly == false then + + if mobf_above_water(pos) then + + if ground_distance > max_ground_distance then + dbg_mobf.environment_lvl2("MOBF: \tdropping above water") + retval = "drop_above_water" + end + dbg_mobf.environment_lvl2("MOBF: \tabove water") + retval = "above_water" + end + + if ground_distance > max_ground_distance then + dbg_mobf.environment_lvl2("MOBF: \tdropping " + .. ground_distance .. " / " .. max_ground_distance) + retval = "drop" + else + dbg_mobf.environment_lvl2("MOBF: \tsurface dependent") + retval = environment.checksurface(pos,entity.environment.surfaces) + end + else + local miny,maxy = environment.get_absolute_min_max_pos(entity.environment,pos) + dbg_mobf.environment_lvl2("MOBF: \tflying mob detected, min: " + .. miny .. " max: " .. maxy .. " current: " .. pos.y) + if pos.y < miny then + retval = "below_limit" + else if pos.y > maxy then + retval = "above_limit" + else + retval = environment.checksurface(pos,entity.environment.surfaces) + end end + end + end + + if retval == "collision" and not dont_do_jumpcheck then + dbg_mobf.environment_lvl2("MOBF: check if pos is jumpable") + local upper_pos_state = environment.pos_is_ok({x=pos.x, + y=pos.y+1, + z=pos.z}, + entity,true) + if upper_pos_state == "ok" then + retval = "collision_jumpable" + else + dbg_mobf.environment_lvl2("MOBF: upper pos state was: " .. upper_pos_state) + end + end + + return retval +end + +------------------------------------------------------------------------------- +-- name: get_default_gravity(pos,environment,canfly) +-- +--! @brief get default acceleration depending on mobs medium and pos +--! @ingroup environment +-- +--! @param pos position where to check gravity +--! @param media mobs movement medium +--! @param canfly is mob capable of flying? +--! @return y-acceleration +------------------------------------------------------------------------------ +function environment.get_default_gravity(pos,media,canfly) + + if pos == nil then + return nil + end + + local node = minetest.env:get_node(pos) + + --if an mob can't fly or isn't within it's medium default acceleration + -- for it's current medium is applied + if canfly == nil or + canfly == false or + environment.is_media_element(node.name,media) == false + then + if (node.name == "air") then + return -9.81 + end + + if node.name == "default:water_source" or + node.name == "default:water_flowing" then + return -2.5 + end + + if node.name == "default:lava" then + return 0.1 + end + + --mob is at invalid position thus returning default air acceleration + return -9.81 + end + + return 0 +end + + +------------------------------------------------------------------------------- +-- name: fix_base_pos(entity, middle_to_bottom) +-- +--! @brief fix the mobs y position according to model or sprite height +--! @ingroup environment +-- +--! @param entity mob to fix base position +--! @param center_to_bottom distance from center of mob to its bottom (absolute value) +--! @return new position set by function +------------------------------------------------------------------------------ +function environment.fix_base_pos(entity, center_to_bottom) + + if center_to_bottom > 0.5 then + + local pos = entity.object:getpos() + + local node_pos = minetest.env:get_node(pos) + + local pos_to_check = {x=pos.x,y=pos.y-center_to_bottom+0.1,z=pos.z} + local node_pos_check = minetest.env:get_node(pos_to_check) + + if node_pos ~= nil and + node_pos_check ~= nil then + dbg_mobf.environment_lvl3("MOBF: fixing y position / base position required? " + .. node_pos.name .. " " .. node_pos_check.name) + if node_pos.name ~= node_pos_check.name then + distance_to_ground = mobf_surface_distance(pos) + + pos.y = pos.y + (center_to_bottom - distance_to_ground +0.5) + dbg_mobf.environment_lvl2("MOBF: fixing y position of " .. entity.data.name + .. " got distance " .. center_to_bottom .. " moving to " ..printpos(pos)) + entity.object:moveto(pos) + end + end + end + + return entity.getbasepos(entity) +end + +------------------------------------------------------------------------------- +-- name: register(name, environment) +-- +--! @brief register an environment to mob framework +--! @ingroup environment +-- +--! @param name id of environment +--! @param environment description of environment +--! @return true/false succesfully registred environment +------------------------------------------------------------------------------- +function environment.register(name, environment) + + if environment_list[name] ~= nil then + return false + end + + environment_list[name] = environment + return true +end + +------------------------------------------------------------------------------- +-- name: pos_state_is_impossible(entity,pos) +-- +--! @brief checks if a entity can be there (not if it would move there by its own) +--! @ingroup environment +-- +--! @param entity entity to check +--! @param pos position to check +--! @return true entity may be there, entity can never be there +------------------------------------------------------------------------------- +function environment.possible_pos(entity,pos) + local state = environment.pos_is_ok(pos,entity) + + if state == "collision" or + state == "collision_jumpable" or + state == "invalid" then + return false + end + + return true +end + +--!@} + +dofile (mobf_modpath .. "/environments/general_env_sets.lua") +dofile (mobf_modpath .. "/environments/flight_1.lua") +dofile (mobf_modpath .. "/environments/meadow.lua") +dofile (mobf_modpath .. "/environments/on_ground_1.lua") +dofile (mobf_modpath .. "/environments/on_ground_2.lua") +dofile (mobf_modpath .. "/environments/open_waters.lua") +dofile (mobf_modpath .. "/environments/shallow_waters.lua") +dofile (mobf_modpath .. "/environments/simple_air.lua") \ No newline at end of file diff --git a/mods/mobf/environments/flight_1.lua b/mods/mobf/environments/flight_1.lua new file mode 100644 index 0000000..03e585a --- /dev/null +++ b/mods/mobf/environments/flight_1.lua @@ -0,0 +1,33 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file flight_1.lua +--! @brief a environment description for in flight mobs +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-10 +-- +--! @addtogroup environments +--! @{ +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +--! @struct env_flight_1 +--! @brief flying mobs in height between 13-23 blocks above surface +env_flight_1 = { + media = { + "air" + }, + surfaces = nil, + --ground is first node above/below not beeing of media type + max_height_above_ground = 23, + min_height_above_ground = 13 + } + +--!@} + +environment.register("flight_1", env_flight_1) \ No newline at end of file diff --git a/mods/mobf/environments/general_env_sets.lua b/mods/mobf/environments/general_env_sets.lua new file mode 100644 index 0000000..de35543 --- /dev/null +++ b/mods/mobf/environments/general_env_sets.lua @@ -0,0 +1,37 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file flight_1.lua +--! @brief a environment description for in flight mobs +--! @copyright Sapier +--! @author Sapier +--! @date 2013-01-06 +-- +--! @addtogroup environments +--! @{ +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +--! @addtogroup predev_env_sets +--! @{ +mobf_env_placable_items = { + "default:rail", + "default:ladder", + "default:torch", + "default:sign_wall", +} + + +mobf_env_plants = { + "default:junglegrass", + "default:papyrus", + "default:sapling", + "default:apple" + +} +--@} +--@} \ No newline at end of file diff --git a/mods/mobf/environments/meadow.lua b/mods/mobf/environments/meadow.lua new file mode 100644 index 0000000..721bdaa --- /dev/null +++ b/mods/mobf/environments/meadow.lua @@ -0,0 +1,48 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file meadow.lua +--! @brief meadow environment description +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-10 +-- +--! @addtogroup environments +--! @{ +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +--! @struct env_meadow +--! @brief environment for mobs that prefere green meadows but may walk on +--! dirt and sand too +env_meadow = { + media = { + "air", + }, + surfaces = { + good = { + "default:dirt_with_grass" + }, + possible = { + "default:dirt", + "default:sand", + }, + }, + } +--!@} + +table.foreach(mobf_env_placable_items, + function(index) + table.insert(env_meadow.media,mobf_env_placable_items[index]) + end) + +table.foreach(mobf_env_plants, + function(index) + table.insert(env_meadow.media,mobf_env_plants[index]) + end) + +environment.register("meadow", env_meadow) \ No newline at end of file diff --git a/mods/mobf/environments/on_ground_1.lua b/mods/mobf/environments/on_ground_1.lua new file mode 100644 index 0000000..04f9e22 --- /dev/null +++ b/mods/mobf/environments/on_ground_1.lua @@ -0,0 +1,38 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file on_ground_1.lua +--! @brief a environment description for mobs on ground +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-10 +-- +--! @addtogroup environments +--! @{ +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +--! @struct env_on_ground_1 +--! @brief an environment for mobs capable of walking through junglegrass +env_on_ground_1 = { + media = { + "air", + } + } +--!@} + +table.foreach(mobf_env_placable_items, + function(index) + table.insert(env_on_ground_1.media,mobf_env_placable_items[index]) + end) + +table.foreach(mobf_env_plants, + function(index) + table.insert(env_on_ground_1.media,mobf_env_plants[index]) + end) + +environment.register("on_ground_1", env_on_ground_1) \ No newline at end of file diff --git a/mods/mobf/environments/on_ground_2.lua b/mods/mobf/environments/on_ground_2.lua new file mode 100644 index 0000000..631a404 --- /dev/null +++ b/mods/mobf/environments/on_ground_2.lua @@ -0,0 +1,54 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file on_ground_2.lua +--! @brief a environment description for mobs on ground +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-10 +-- +--! @addtogroup environments +--! @{ +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + + +--! @struct env_on_ground_2 +--! @brief an environment for mobs capable of walking through junglegrass +--! and stay on natural surfaces +env_on_ground_2 = { + media = { + "air", + }, + surfaces = { + good = { + "default:dirt_with_grass", + "default:dirt", + "default:stone" + }, + }, + +--TODO add support for light checks +-- light = { +-- min_light = 0, +-- max_light = 0, +-- } + } + +--!@} + +table.foreach(mobf_env_placable_items, + function(index) + table.insert(env_on_ground_2.media,mobf_env_placable_items[index]) + end) + +table.foreach(mobf_env_plants, + function(index) + table.insert(env_on_ground_2.media,mobf_env_plants[index]) + end) + +environment.register("on_ground_2", env_on_ground_2) \ No newline at end of file diff --git a/mods/mobf/environments/open_waters.lua b/mods/mobf/environments/open_waters.lua new file mode 100644 index 0000000..30172c9 --- /dev/null +++ b/mods/mobf/environments/open_waters.lua @@ -0,0 +1,33 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file open_waters.lua +--! @brief open waters +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-10 +-- +--! @addtogroup environments +--! @{ +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +--! @struct env_open_waters +--! @brief open waters from 4 to 30 blocks deep +env_open_waters = { + media = { + "default:water_source", + "default:water_flowing" + }, + surfaces = nil, + --ground is first node above/below not beeing of media type + max_height_above_ground = -4, + min_height_above_ground = -30 + } +--!@} + +environment.register("open_waters", env_open_waters) \ No newline at end of file diff --git a/mods/mobf/environments/shallow_waters.lua b/mods/mobf/environments/shallow_waters.lua new file mode 100644 index 0000000..a10b7d4 --- /dev/null +++ b/mods/mobf/environments/shallow_waters.lua @@ -0,0 +1,33 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file shallow_waters.lua +--! @brief shallow waters +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-10 +-- +--! @addtogroup environments +--! @{ +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +--! @struct env_shallow_waters +--! @brief shallow waters not deeper than 10 blocks +env_shallow_waters = { + media = { + "default:water_source", + "default:water_flowing" + }, + surfaces = nil, + --ground is first node above/below not beeing of media type + max_height_above_ground = -1, + min_height_above_ground = -10 + } +--!@} + +environment.register("shallow_waters", env_shallow_waters) \ No newline at end of file diff --git a/mods/mobf/environments/simple_air.lua b/mods/mobf/environments/simple_air.lua new file mode 100644 index 0000000..6b3cf2e --- /dev/null +++ b/mods/mobf/environments/simple_air.lua @@ -0,0 +1,39 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file simple_air.lua +--! @brief a very basic environment definition +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-10 +-- +--! @addtogroup environments +--! @{ +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +--! @struct env_simple_air +--! @brief simple environment only checking for air +env_simple_air = { + media = { + "air", + } + } + +--!@} + +table.foreach(mobf_env_placable_items, + function(index) + table.insert(env_simple_air.media,mobf_env_placable_items[index]) + end) + +table.foreach(mobf_env_plants, + function(index) + table.insert(env_simple_air.media,mobf_env_plants[index]) + end) + +environment.register("simple_air", env_simple_air) \ No newline at end of file diff --git a/mods/mobf/fighting.lua b/mods/mobf/fighting.lua new file mode 100644 index 0000000..94d93f0 --- /dev/null +++ b/mods/mobf/fighting.lua @@ -0,0 +1,878 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file fighting.lua +--! @brief component for fighting related features +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-09 +-- +--! @defgroup fighting Combat subcomponent +--! @brief Component handling all fighting +--! @ingroup framework_int +--! @{ +-- Contact: sapier a t gmx net +------------------------------------------------------------------------------- + +--! @class fighting + +--! @brief factor added to mob melee combat range to get its maximum agression radius +MOBF_AGRESSION_FACTOR = 5 + +--!@} + +--! @brief fighting class reference +fighting = {} + +--! @brief user defined on death callback +--! @memberof fighting +fighting.on_death_callbacks = {} + +------------------------------------------------------------------------------- +-- name: register_on_death_callback(callback) +-- +--! @brief register an additional callback to be called on death of a mob +--! @memberof fighting +-- +--! @param callback function to call +--! @return true/false +------------------------------------------------------------------------------- +function fighting.register_on_death_callback(callback) + + if type(callback) == "function" then + + table.insert(fighting.on_death_callbacks,callback) + return true + end + return false +end + +------------------------------------------------------------------------------- +-- name: do_on_death_callback(entity,hitter) +-- +--! @brief call all registred on_death callbacks +--! @memberof fighting +-- +--! @param entity to do callback for +--! @param hitter object doing last punch +------------------------------------------------------------------------------- +function fighting.do_on_death_callback(entity,hitter) + + for i,v in ipairs(fighting.on_death_callbacks) do + v(entity.data.name,entity.getbasepos(),hitter) + end +end + +------------------------------------------------------------------------------- +-- name: push_back(entity,player) +-- +--! @brief move a mob backward if it's punched +--! @memberof fighting +--! @private +-- +--! @param entity mobbeing punched +--! @param dir direction to push back +------------------------------------------------------------------------------- +function fighting.push_back(entity,dir) + --get some base information + local mob_pos = entity.object:getpos() + local mob_basepos = entity.getbasepos(entity) + local dir_rad = mobf_calc_yaw(dir.x,dir.z) + local posdelta = mobf_calc_vector_components(dir_rad,0.5) + + --push back mob + local new_pos = { + x=mob_basepos.x + posdelta.x, + y=mob_basepos.y, + z=mob_basepos.z + posdelta.z + } + + local pos_valid = environment.possible_pos(entity,new_pos) + new_pos.y = mob_pos.y + local line_of_sight = mobf_line_of_sight(mob_pos,new_pos) + + dbg_mobf.fighting_lvl2("MOBF: trying to punch mob from " .. printpos(mob_pos) + .. " to ".. printpos(new_pos)) + if pos_valid and line_of_sight then + dbg_mobf.fighting_lvl2("MOBF: punching back ") + entity.object:moveto(new_pos) + else + dbg_mobf.fighting_lvl2("MOBF: not punching mob: " .. dump(pos_valid) .. " " ..dump(line_of_sight)) + end +end + + +------------------------------------------------------------------------------- +-- name: hit(entity,player) +-- +--! @brief handler for mob beeing hit +--! @memberof fighting +-- +--! @param entity mob being hit +--! @param player player/object hitting the mob +------------------------------------------------------------------------------- +function fighting.hit(entity,player) + + if entity.data.generic.on_hit_callback ~= nil and + entity.data.generic.on_hit_callback(entity,player) == true + then + dbg_mobf.fighting_lvl2("MOBF: ".. entity.data.name .. " custom on hit handler superseeds generic handling") + return + end + + --TODO calculate damage by players weapon + --local damage = 1 + + --dbg_mobf.fighting_lvl2("MOBF: ".. entity.data.name .. " about to take ".. damage .. " damage") + --entity.dynamic_data.generic.health = entity.dynamic_data.generic.health - damage + + --entity.object:set_hp(entity.object:get_hp() - damage ) + + + --get some base information + local mob_pos = entity.object:getpos() + local mob_basepos = entity.getbasepos(entity) + local playerpos = player:getpos() + local dir = mobf_get_direction(playerpos,mob_basepos) + + --update mob orientation + if entity.mode == "3d" then + entity.object:setyaw(mobf_calc_yaw(dir.x,dir.z)+math.pi) + else + entity.object:setyaw(mobf_calc_yaw(dir.x,dir.z)-math.pi) + end + + if entity.data.sound ~= nil then + sound.play(mob_pos,entity.data.sound.hit); + end + + fighting.push_back(entity,dir) + + -- make it die + if entity.object:get_hp() < 1 then + --if entity.dynamic_data.generic.health < 1 then + local result = entity.data.generic.kill_result + if type(entity.data.generic.kill_result) == "function" then + result = entity.data.generic.kill_result() + end + + + --call on kill callback and superseed normal on kill handling + if entity.data.generic.on_kill_callback == nil or + entity.data.generic.on_kill_callback(entity,player) == false + then + + if entity.data.sound ~= nil then + sound.play(mob_pos,entity.data.sound.die); + end + + if player:is_player() then + if type(result) == "table" then + for i=1,#result, 1 do + if player:get_inventory():room_for_item("main", result[i]) then + player:get_inventory():add_item("main", result[i]) + end + end + else + if player:get_inventory():room_for_item("main", result) then + player:get_inventory():add_item("main", result) + end + end + else + --todo check if spawning a stack is possible + minetest.env:add_item(mob_pos,result) + end + spawning.remove(entity, "killed") + else + dbg_mobf.fighting_lvl2("MOBF: ".. entity.data.name + .. " custom on kill handler superseeds generic handling") + end + + return + end + + --dbg_mobf.fighting_lvl2("MOBF: attack chance is ".. entity.data.combat.angryness) + -- fight back + if entity.data.combat ~= nil and + entity.data.combat.angryness > 0 then + dbg_mobf.fighting_lvl2("MOBF: mob with chance of fighting back attacked") + --either the mob hasn't been attacked by now or a new player joined fight + + local playername = player.get_player_name(player) + + if entity.dynamic_data.combat.target ~= playername then + dbg_mobf.fighting_lvl2("MOBF: new player started fight") + --calculate chance of mob fighting back + if math.random() < entity.data.combat.angryness then + dbg_mobf.fighting_lvl2("MOBF: fighting back player "..playername) + entity.dynamic_data.combat.target = playername + + fighting.switch_to_combat_state(entity,mobf_get_current_time(),player) + end + end + + end + +end +------------------------------------------------------------------------------- +-- name: switch_to_combat_state(entity,now,target) +-- +--! @brief switch to combat state +--! @memberof fighting +--! @private +-- +--! @param entity mob to switch state +--! @param now current time in seconds +--! @param target the target to attack +------------------------------------------------------------------------------- +function fighting.switch_to_combat_state(entity,now,target) + local combat_state = mob_state.get_state_by_name(entity,"combat") + + if target == nil then + dbg_mobf.fighting_lvl2("MOBF: no target for combat state change specified") + return + end + + if combat_state == nil then + dbg_mobf.fighting_lvl2("MOBF: no special combat state") + return + end + + dbg_mobf.fighting_lvl2("MOBF: switching to combat state") + + --make sure state is locked + mob_state.lock(entity,true) + + --backup dynamic movement data + local backup = entity.dynamic_data.movement + backup.current_state = mob_state.get_state_by_name(entity,entity.dynamic_data.state.current) + + --switch state + local newentity = mob_state.change_state(entity,combat_state) + + if newentity ~= nil then + entity = newentity + end + + --save old movement data to use on switching back + entity.dynamic_data.movement.backup = backup + + --set target + entity.dynamic_data.movement.target = target + + --make sure a fighting mob ain't teleporting to target + entity.dynamic_data.movement.teleportsupport = false + + --make sure we do follow our target + entity.dynamic_data.movement.guardspawnpoint = false + +end + +------------------------------------------------------------------------------- +-- name: restore_previous_state(entity,now) +-- +--! @brief restore default movement generator of mob +--! @memberof fighting +--! @private +-- +--! @param entity mob to restore movement generator +--! @param now current time in seconds +------------------------------------------------------------------------------- +function fighting.restore_previous_state(entity,now) + + --check if ther is anything we can restore + if entity.dynamic_data.movement.backup ~= nil then + local backup = entity.dynamic_data.movement.backup + + local newentity = nil + if backup.current_state ~= nil then + newentity = mob_state.change_state(entity,backup.current_state) + else + minetest.log(LOGLEVEL_WARNING,"MOBF: unable to restore previous state switching to default") + newentity = mob_state.change_state(entity,mob_state.get_state_by_name(entity,"default")) + end + + + if newentity ~= nil then + entity = newentity + end + + --restore old movement data + entity.dynamic_data.movement = backup + + --make sure all remaining data is deleted + entity.dynamic_data.movement.backup = nil + entity.dynamic_data.movement.current_state = nil + end + + --make sure state is unlocked + mob_state.lock(entity,false) +end + +------------------------------------------------------------------------------- +-- name: combat(entity,now) +-- +--! @brief periodic callback called to do mobs own combat related actions +--! @memberof fighting +-- +--! @param entity mob to do action +--! @param now current time +------------------------------------------------------------------------------- +function fighting.combat(entity,now) + + --handle self destruct mobs + if fighting.self_destruct_handler(entity,now) then + return + end + + if entity.dynamic_data.combat ~= nil and + entity.dynamic_data.combat.target ~= "" then + + dbg_mobf.fighting_lvl1("MOBF: attacking player: "..entity.dynamic_data.combat.target) + + local player = minetest.env:get_player_by_name(entity.dynamic_data.combat.target) + + + --check if target is still valid + if player == nil then + dbg_mobf.fighting_lvl3("MOBF: not a valid player") + + -- switch back to default movement gen + fighting.restore_previous_state(entity,now) + + --there is no player by that name, stop attack + entity.dynamic_data.combat.target = "" + return + end + + --calculate some basic data + local mob_pos = entity.object:getpos() + local playerpos = player:getpos() + local distance = mobf_calc_distance(mob_pos,playerpos) + + fighting.self_destruct_trigger(entity,distance,now) + + --find out if player is next to mob + if distance > entity.data.combat.melee.range * MOBF_AGRESSION_FACTOR then + dbg_mobf.fighting_lvl2("MOBF: " .. entity.data.name .. " player >" + .. entity.dynamic_data.combat.target .. "< to far away " + .. distance .. " > " .. (entity.data.combat.melee.range * MOBF_AGRESSION_FACTOR ) + .. " stopping attack") + + --switch back to default movement gen + fighting.restore_previous_state(entity,now) + + --there is no player by that name, stop attack + entity.dynamic_data.combat.target = "" + return + end + + --is mob near enough for any attack attack? + if (entity.data.combat.melee == nil or + distance > entity.data.combat.melee.range) and + (entity.data.combat.distance == nil or + distance > entity.data.combat.distance.range) then + + if entity.data.combat.melee ~= nil or + entity.data.combat.distance ~= nil then + dbg_mobf.fighting_lvl2("MOBF: distance="..distance) + + + if entity.data.combat.melee ~= nil then + dbg_mobf.fighting_lvl2("MOBF: melee="..entity.data.combat.melee.range) + end + if entity.data.combat.distance ~= nil then + dbg_mobf.fighting_lvl2("MOBF: distance="..entity.data.combat.distance.range) + end + end + return + end + + if fighting.melee_attack_handler(entity,player,now,distance) == false then + + if fighting.distance_attack_handler(entity,playerpos,mob_pos,now,distance) then + + -- mob did an attack so give chance to stop attack + + local rand_value = math.random() + + if rand_value > entity.data.combat.angryness then + dbg_mobf.fighting_lvl2("MOBF: rand=".. rand_value + .. " angryness=" .. entity.data.combat.angryness) + dbg_mobf.fighting_lvl2("MOBF: " .. entity.data.name .. " " + .. now .. " random aborting attack at player " + ..entity.dynamic_data.combat.target) + entity.dynamic_data.combat.target = "" + end + end + end + end + + --fight against generic enemy "sun" + fighting.sun_damage_handler(entity,now) + + +end + +------------------------------------------------------------------------------- +-- name: get_target(entity) +-- +--! @brief find and possible target next to mob +--! @memberof fighting +--! @private +-- +--! @param entity mob to look around +--! @return target +------------------------------------------------------------------------------- +function fighting.get_target(entity) + + local possible_targets = {} + + if entity.data.combat.melee.range > 0 then + local objectlist = minetest.env:get_objects_inside_radius(entity.object:getpos(), + entity.data.combat.melee.range*MOBF_AGRESSION_FACTOR) + + local count = 0 + + for i,v in ipairs(objectlist) do + + local playername = v.get_player_name(v) + + if playername ~= nil and + playername ~= "" then + count = count + 1 + table.insert(possible_targets,v) + dbg_mobf.fighting_lvl3(playername .. " is next to a mob of type " + .. entity.data.name); + end + + end + dbg_mobf.fighting_lvl3("Found ".. count .. " objects within attack range of " + .. entity.data.name) + end + + + local targets_within_sight = {} + + for i,v in ipairs(possible_targets) do + + local entity_pos = entity.object:getpos() + local target_pos = v:getpos() + + --is there a line of sight between mob and possible target + --line of sight is calculated 1block above ground + if mobf_line_of_sight({x=entity_pos.x,y=entity_pos.y+1,z=entity_pos.z}, + {x=target_pos.x,y=target_pos.y+1,z=target_pos.z}) then + + table.insert(targets_within_sight,v) + end + + end + + local nearest_target = nil + local min_distance = -1 + + for i,v in ipairs(targets_within_sight) do + + local distance = mobf_calc_distance(entity.object:getpos(),v:getpos()) + + if min_distance < 0 or + distance < min_distance then + + nearest_target = v + min_distance = distance + end + + end + + return nearest_target + +end + + +------------------------------------------------------------------------------- +-- name: aggression(entity) +-- +--! @brief start attack in case of agressive mob +--! @memberof fighting +-- +--! @param entity mob to do action +--! @param now current time +------------------------------------------------------------------------------- +function fighting.aggression(entity,now) + + --if no combat data is specified don't do anything + if entity.data.combat == nil then + return + end + + --mob is specified as self attacking + if entity.data.combat.starts_attack and + (entity.dynamic_data.combat.target == nil or + entity.dynamic_data.combat.target == "") then + dbg_mobf.fighting_lvl3("MOBF: ".. entity.data.name .. " " .. now + .. " aggressive mob, is it time to attack?") + if entity.dynamic_data.combat.ts_last_aggression_chance + 1 < now then + dbg_mobf.fighting_lvl3("MOBF: ".. entity.data.name .. " " .. now + .. " lazzy time over try to find an enemy") + entity.dynamic_data.combat.ts_last_aggression_chance = now + + if math.random() < entity.data.combat.angryness then + + dbg_mobf.fighting_lvl3("MOBF: ".. entity.data.name .. " " .. now + .. " really is angry") + local target = fighting.get_target(entity) + + if target ~= nil then + local targetname = target.get_player_name(target) + + if targetname ~= entity.dynamic_data.combat.target then + + entity.dynamic_data.combat.target = targetname + + fighting.switch_to_combat_state(entity,now,target) + + dbg_mobf.fighting_lvl2("MOBF: ".. entity.data.name .. " " + .. now .. " starting attack at player: " ..targetname) + minetest.log(LOGLEVEL_INFO,"MOBF: starting attack at player "..targetname) + end + end + end + end + end +end + +------------------------------------------------------------------------------- +-- name: fighting.init_dynamic_data(entity) +-- +--! @brief initialize all dynamic data on activate +--! @memberof fighting +-- +--! @param entity mob to do action +--! @param now current time +------------------------------------------------------------------------------- +function fighting.init_dynamic_data(entity,now) + local targetstring = "" + local data = { + ts_last_sun_damage = now, + ts_last_attack = now, + ts_last_aggression_chance = now, + ts_self_destruct_triggered = -1, + + target = targetstring, + } + + entity.dynamic_data.combat = data +end + +------------------------------------------------------------------------------- +-- name: self_destruct_trigger(entity,distance) +-- +--! @brief handle self destruct features +--! @memberof fighting +--! @private +-- +--! @param entity mob to do action +--! @param distance current distance to target +--! @param now current time +--! @return true/false if handled or not +------------------------------------------------------------------------------- +function fighting.self_destruct_trigger(entity,distance,now) + if entity.data.combat ~= nil and + entity.data.combat.self_destruct ~= nil then + + dbg_mobf.fighting_lvl1("MOBF: checking for self destruct trigger " .. + distance .. " " .. + entity.dynamic_data.combat.ts_self_destruct_triggered .. + " " .. now) + + --trigger self destruct + if distance <= entity.data.combat.self_destruct.range and + entity.dynamic_data.combat.ts_self_destruct_triggered == -1 then + dbg_mobf.fighting_lvl2("MOBF: self destruct triggered") + entity.dynamic_data.combat.ts_self_destruct_triggered = now + end + end +end +------------------------------------------------------------------------------- +-- name: self_destruct_handler(entity) +-- +--! @brief handle self destruct features +--! @memberof fighting +--! @private +-- +--! @param entity mob to do action +--! @param now current time +--! @return true/false if handled or not +------------------------------------------------------------------------------- +function fighting.self_destruct_handler(entity,now) + --self destructing mob? + if entity.data.combat ~= nil and + entity.data.combat.self_destruct ~= nil then + + + + local pos = entity.object:getpos() + + dbg_mobf.fighting_lvl1("MOBF: checking for self destruct imminent") + --do self destruct + if entity.dynamic_data.combat.ts_self_destruct_triggered > 0 and + entity.dynamic_data.combat.ts_self_destruct_triggered + + entity.data.combat.self_destruct.delay + <= now then + + dbg_mobf.fighting_lvl2("MOBF: executing self destruct") + + if entity.data.sound ~= nil then + sound.play(pos,entity.data.sound.self_destruct); + end + + mobf_do_area_damage(pos,nil, + entity.data.combat.self_destruct.damage, + entity.data.combat.self_destruct.range) + + --TODO determine block removal by damage and remove blocks + mobf_do_node_damage(pos,{}, + entity.data.combat.self_destruct.node_damage_range, + 1 - 1/entity.data.combat.self_destruct.node_damage_range) + + if mobf_rtd.fire_enabled then + --Add fire + for i=pos.x-entity.data.combat.self_destruct.range/2, + pos.x+entity.data.combat.self_destruct.range/2, 1 do + for j=pos.y-entity.data.combat.self_destruct.range/2, + pos.y+entity.data.combat.self_destruct.range/2, 1 do + for k=pos.z-entity.data.combat.self_destruct.range/2, + pos.z+entity.data.combat.self_destruct.range/2, 1 do + + local current = minetest.env:get_node({x=i,y=j,z=k}) + + if (current.name == "air") then + minetest.env:set_node({x=i,y=j,z=k}, {name="fire:basic_flame"}) + end + + end + end + end + else + minetest.log(LOGLEVEL_NOTICE,"MOBF: self destruct without fire isn't really impressive!") + end + spawning.remove(entity, "self destruct") + return true + end + end + return false +end + +------------------------------------------------------------------------------- +-- name: melee_attack_handler(entity,now) +-- +--! @brief handle melee attack +--! @memberof fighting +--! @private +-- +--! @param entity mob to do action +--! @param player player to attack +--! @param now current time +--! @param distance distance to player +--! @return true/false if handled or not +------------------------------------------------------------------------------- +function fighting.melee_attack_handler(entity,player,now,distance) + + if entity.data.combat.melee == nil then + dbg_mobf.fighting_lvl2("MOBF: no meele attack specified") + return false + end + + local time_of_next_attack_chance = entity.dynamic_data.combat.ts_last_attack + + entity.data.combat.melee.speed + --check if mob is ready to attack + if now < time_of_next_attack_chance then + dbg_mobf.fighting_lvl1("MOBF: to early for meele attack " .. + now .. " >= " .. time_of_next_attack_chance) + return false + end + + if distance <= entity.data.combat.melee.range + then + + --save time of attack + entity.dynamic_data.combat.ts_last_attack = now + + if entity.data.sound ~= nil then + sound.play(entity.object:getpos(),entity.data.sound.melee); + end + + --calculate damage to be done + local damage_done = math.floor(math.random(0,entity.data.combat.melee.maxdamage)) + 1 + + local player_health = player:get_hp() + + --do damage + player:set_hp(player_health -damage_done) + + dbg_mobf.fighting_lvl2("MOBF: ".. entity.data.name .. + " doing melee attack damage=" .. damage_done) + return true + end + dbg_mobf.fighting_lvl1("MOBF: not within meele range " .. + distance .. " > " .. entity.data.combat.melee.range) + return false +end + + +------------------------------------------------------------------------------- +-- name: distance_attack_handler(entity,now) +-- +--! @brief handle distance attack +--! @memberof fighting +--! @private +-- +--! @param entity mob to do action +--! @param playerpos position of target +--! @param mob_pos position of mob +--! @param now current time +--! @param distance distance between target and player +--! @return true/false if handled or not +------------------------------------------------------------------------------- +function fighting.distance_attack_handler(entity,playerpos,mob_pos,now,distance) + if entity.data.combat.distance == nil then + dbg_mobf.fighting_lvl2("MOBF: no distance attack specified") + return false + end + + local time_of_next_attack_chance = entity.dynamic_data.combat.ts_last_attack + + entity.data.combat.distance.speed + + --check if mob is ready to attack + if now < time_of_next_attack_chance then + dbg_mobf.fighting_lvl1("MOBF: to early for distance attack " .. + now .. " >= " .. time_of_next_attack_chance) + return false + end + + if distance <= entity.data.combat.distance.range + then + + dbg_mobf.fighting_lvl2("MOBF: ".. entity.data.name .. " doing distance attack") + + --save time of attack + entity.dynamic_data.combat.ts_last_attack = now + + local dir = mobf_get_direction({ x=mob_pos.x, + y=mob_pos.y+1, + z=mob_pos.z + }, + playerpos) + + if entity.data.sound ~= nil then + sound.play(mob_pos,entity.data.sound.distance); + end + + local newobject=minetest.env:add_entity({ x=mob_pos.x+dir.x, + y=mob_pos.y+dir.y+1, + z=mob_pos.z+dir.z + }, + entity.data.combat.distance.attack + ) + + local thrown_entity = mobf_find_entity(newobject) + + --TODO add random disturbance based on accuracy + + if thrown_entity ~= nil then + local vel_trown = { + x=dir.x*thrown_entity.velocity, + y=dir.y*thrown_entity.velocity + math.random(0,0.25), + z=dir.z*thrown_entity.velocity + } + + dbg_mobf.fighting_lvl2("MOBF: throwing with velocity: " .. printpos(vel_trown)) + + newobject:setvelocity(vel_trown) + + newobject:setacceleration({x=0, y=-thrown_entity.gravity, z=0}) + thrown_entity.owner = entity.object + + dbg_mobf.fighting_lvl2("MOBF: distance attack issued") + else + minetest.log(LOGLEVEL_ERROR, "MOBF: unable to find entity for distance attack") + end + return true + end + dbg_mobf.fighting_lvl1("MOBF: not within distance range " .. + distance .. " > " .. entity.data.combat.distance.range) + return false +end + + +------------------------------------------------------------------------------- +-- name: sun_damage_handler(entity,now) +-- +--! @brief handle damage done by sun +--! @memberof fighting +--! @private +-- +--! @param entity mob to do action +--! @param now current time +------------------------------------------------------------------------------- +function fighting.sun_damage_handler(entity,now) + if entity.data.combat ~= nil and + entity.data.combat.sun_sensitive then + + local pos = entity.object:getpos() + local current_state = mob_state.get_state_by_name(entity,entity.dynamic_data.state.current) + local current_light = minetest.env:get_node_light(pos) + + if current_light == nil then + minetest.log(LOGLEVEL_ERROR,"MOBF: Bug!!! didn't get a light value for " + .. printpos(pos)) + return + end + --check if mob is in sunlight + if ( current_light > LIGHT_MAX) then + dbg_mobf.fighting_lvl1("MOBF: " .. entity.data.name .. + " health at start:" .. entity.object:get_hp()) + + if current_state.animation ~= nil and + entity.data.animation ~= nil and + entity.data.animation[current_state.animation .. "__burning"] ~= nil then + graphics.set_animation(entity,current_state.animation .. "burning") + else + graphics.set_animation(entity,"burning") + end + + + if entity.dynamic_data.combat.ts_last_sun_damage +1 < now then + local damage = (1 + math.floor(entity.data.generic.base_health/15)) + dbg_mobf.fighting_lvl1("Mob ".. entity.data.name .. " takes " + ..damage .." damage because of sun") + + entity.object:set_hp(entity.object:get_hp() - damage) + + if entity.data.sound ~= nil then + sound.play(mob_pos,entity.data.sound.sun_damage); + end + + if entity.object:get_hp() <= 0 then + --if entity.dynamic_data.generic.health <= 0 then + dbg_mobf.fighting_lvl2("Mob ".. entity.data.name .. " died of sun") + spawning.remove(entity,"died by sun") + return + end + entity.dynamic_data.combat.ts_last_sun_damage = now + end + else + --use last sun damage to avoid setting animation over and over even if nothing changed + if entity.dynamic_data.combat.ts_last_sun_damage ~= -1 and + current_state.animation ~= nil then + graphics.set_animation(entity,current_state.animation) + entity.dynamic_data.combat.ts_last_sun_damage = -1 + end + end + end +end \ No newline at end of file diff --git a/mods/mobf/generic_functions.lua b/mods/mobf/generic_functions.lua new file mode 100644 index 0000000..f6180df --- /dev/null +++ b/mods/mobf/generic_functions.lua @@ -0,0 +1,908 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file generic_functions.lua +--! @brief generic functions used in many different places +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-09 +--! +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +--! @defgroup gen_func Generic functions +--! @brief functions for various tasks +--! @ingroup framework_int +--! @{ + +if minetest.setting_getbool("mobf_enable_socket_trace") then + require "socket" +end + + +------------------------------------------------------------------------------- +-- name: mobf_bug_warning() +-- +--! @brief make bug warnings configurable +-- +--! @param level bug severity level to use for minetest.log +--! @param text data to print to log +------------------------------------------------------------------------------- +function mobf_bug_warning(level,text) + if minetest.setting_getbool("mobf_log_bug_warnings") then + minetest.log(level,text) + end +end + +------------------------------------------------------------------------------- +-- name: mobf_get_time_ms() +-- +--! @brief get current time in ms +-- +--! @return current time in ms +------------------------------------------------------------------------------- +function mobf_get_time_ms() + if minetest.setting_getbool("mobf_enable_socket_trace") then + return socket.gettime()*1000 + else + return 0 + end +end + +------------------------------------------------------------------------------- +-- name: mobf_contains(cur_table,element) +-- +--! @brief check if element is in table +-- +--! @param cur_table table to look in +--! @param element element to look for +--! @return true/false +------------------------------------------------------------------------------- +function mobf_contains(cur_table,element) + + if cur_table == nil then + return false + end + + for i,v in ipairs(cur_table) do + if v == element then + return true + end + end + + return false +end + +------------------------------------------------------------------------------- +-- name: MIN(a,b) +-- +--! @brief minimum of two numbers +-- +--! @param a number 1 +--! @param b number 2 +--! @return minimum +------------------------------------------------------------------------------- +function MIN(a,b) + if a > b then + return b + else + return a + end +end + +------------------------------------------------------------------------------- +-- name: MAX(a,b) +-- +--! @brief maximum of two numbers +-- +--! @param a number 1 +--! @param b number 2 +--! @return maximum +------------------------------------------------------------------------------- +function MAX(a,b) + if a > b then + return a + else + return b + end +end + +------------------------------------------------------------------------------- +-- name: mobf_is_walkable(node) +-- +--! @brief check if walkable flag is set for a node +-- +--! @param node to check +--! @return true/false +------------------------------------------------------------------------------- +function mobf_is_walkable(node) + return (node and node.name and minetest.registered_nodes[node.name] and + minetest.registered_nodes[node.name].walkable == false) +end + +------------------------------------------------------------------------------- +-- name: printpos(pos) +-- +--! @brief convert pos to string of type "(X,Y,Z)" +-- +--! @param pos position to convert +--! @return string with coordinates of pos +------------------------------------------------------------------------------- +function printpos(pos) + if pos ~= nil then + if pos.y ~= nil then + return "("..pos.x..","..pos.y..","..pos.z..")" + else + return "("..pos.x..", ? ,"..pos.z..")" + end + end + return "" +end + +------------------------------------------------------------------------------- +-- name: mobf_get_current_time() +-- +--! @brief alias to get current time +-- +--! @return current time in seconds +------------------------------------------------------------------------------- +function mobf_get_current_time() + return os.time(os.date('*t')) + --return minetest.get_time() +end + +callback_statistics = {} + +------------------------------------------------------------------------------- +-- name: mobf_warn_long_fct(starttime,fctname,facility) +-- +--! @brief alias to get current time +-- +--! @param starttime time fct started +--! @param fctname name of function +--! @param facility name of facility to add time to +-- +--! @return current time in seconds +------------------------------------------------------------------------------- +function mobf_warn_long_fct(starttime,fctname,facility) + local currenttime = mobf_get_time_ms() + local delta = currenttime - starttime + + if minetest.setting_getbool("mobf_enable_socket_trace_statistics") then + if facility == nil then + facility = "generic" + end + + if callback_statistics[facility] == nil then + callback_statistics[facility] = { + upto_005ms = 0, + upto_010ms = 0, + upto_020ms = 0, + upto_050ms = 0, + upto_100ms = 0, + upto_200ms = 0, + more = 0, + valcount = 0, + sum = 0, + last_time = 0, + } + end + + callback_statistics[facility].valcount = callback_statistics[facility].valcount +1 + callback_statistics[facility].sum = callback_statistics[facility].sum + delta + + if callback_statistics[facility].valcount == 1000 then + callback_statistics[facility].valcount = 0 + local deltatime = currenttime - callback_statistics[facility].last_time + callback_statistics[facility].last_time = currenttime + + minetest.log(LOGLEVEL_ERROR,"Statistics for: " .. facility .. ": " .. + callback_statistics[facility].upto_005ms .. "," .. + callback_statistics[facility].upto_010ms .. "," .. + callback_statistics[facility].upto_020ms .. "," .. + callback_statistics[facility].upto_050ms .. "," .. + callback_statistics[facility].upto_100ms .. "," .. + callback_statistics[facility].upto_200ms .. "," .. + callback_statistics[facility].more .. + " (".. callback_statistics[facility].sum .. " / " .. deltatime .. ") " .. + tostring(math.floor((callback_statistics[facility].sum/deltatime) * 100)) .. "%") + + callback_statistics[facility].sum = 0 + end + + if delta < 5 then + callback_statistics[facility].upto_005ms = callback_statistics[facility].upto_005ms +1 + return + end + if delta < 10 then + callback_statistics[facility].upto_010ms = callback_statistics[facility].upto_010ms +1 + return + end + if delta < 20 then + callback_statistics[facility].upto_020ms = callback_statistics[facility].upto_020ms +1 + return + end + if delta < 50 then + callback_statistics[facility].upto_050ms = callback_statistics[facility].upto_050ms +1 + return + end + if delta < 100 then + callback_statistics[facility].upto_100ms = callback_statistics[facility].upto_100ms +1 + return + end + + if delta < 200 then + callback_statistics[facility].upto_200ms = callback_statistics[facility].upto_200ms +1 + return + end + + callback_statistics[facility].more = callback_statistics[facility].more +1 + end + + if delta >200 then + minetest.log(LOGLEVEL_ERROR,"MOBF: function " .. fctname .. " took too long: " .. delta .. " ms") + end +end + +------------------------------------------------------------------------------- +-- name: mobf_round_pos(pos) +-- +--! @brief calculate integer position +-- +--! @param pos position to be rounded +--! @return rounded position +------------------------------------------------------------------------------- +function mobf_round_pos(pos) + if pos == nil then + return pos + end + + return { x=math.floor(pos.x + 0.5), + y=math.floor(pos.y + 0.5), + z=math.floor(pos.z + 0.5) + } + +end + +------------------------------------------------------------------------------- +-- name: mobf_calc_distance(pos1,pos2) +-- +--! @brief calculate 3d distance between to points +-- +--! @param pos1 first position +--! @param pos2 second position +--! @retval scalar value, distance +------------------------------------------------------------------------------- +function mobf_calc_distance(pos1,pos2) + return math.sqrt( math.pow(pos1.x-pos2.x,2) + + math.pow(pos1.y-pos2.y,2) + + math.pow(pos1.z-pos2.z,2)) +end + +------------------------------------------------------------------------------- +-- name: mobf_calc_distance_2d(pos1,pos2) +-- +--! @brief calculate 2d distance between to points +-- +--! @param pos1 first position +--! @param pos2 second position +--! @return scalar value, distance +------------------------------------------------------------------------------- +function mobf_calc_distance_2d(pos1,pos2) + return math.sqrt( math.pow(pos1.x-pos2.x,2) + + math.pow(pos1.z-pos2.z,2)) +end + +------------------------------------------------------------------------------- +-- name: mobf_find_entity(newobject) DEPRECATED +-- +--! @brief find entity by object reference +-- +--! @param newobject r object reference +--! @return entity object reference points at or nil on error +------------------------------------------------------------------------------- +function mobf_find_entity(newobject) + return newobject:get_luaentity() +end + +------------------------------------------------------------------------------- +-- name: mobf_max_light_around(pos,range,daytime) +-- +--! @brief get maximum light level around specified position +-- +--! @param pos center of area to search +--! @param distance radius of area +--! @param daytime time of day to check +--! @return highest detected light level +------------------------------------------------------------------------------- +function mobf_max_light_around(pos,distance,daytime) + + local max_light = 0 + + for y_run=pos.y-distance,pos.y+distance,1 do + for z_run=pos.z-distance,pos.z+distance,1 do + for x_run=pos.x-distance,pos.x+distance,1 do + local current_pos = {x=x_run,y=y_run,z=z_run } + local node = minetest.env:get_node(current_pos) + + if node.name == "air" then + local current_light = minetest.env:get_node_light(current_pos,daytime) + + if current_light > max_light then + max_light = current_light + end + end + end + end + end + + return max_light +end + + +------------------------------------------------------------------------------- +-- name: mobf_mob_around(mob_name,mob_transform_name,pos,range,) +-- +--! @brief get number of mobs of specified type within range of pos +-- +--! @param mob_name basic name of mob +--! @param mob_transform secondary name of mob +--! @param pos position to check +--! @param range range to check +--! @param ignore_playerspawned ignore mob spawned by players for check +--! @return number of mob found +------------------------------------------------------------------------------- +function mobf_mob_around(mob_name,mob_transform,pos,range,ignore_playerspawned) + local count = 0 + local objectcount = 0 + + local objectlist = minetest.env:get_objects_inside_radius(pos,range) + + if mob_transform == nil then + mob_transform = "" + end + + for index,value in pairs(objectlist) do + + local entity = mobf_find_entity(value) + + dbg_mobf.generic_lvl1("MOBF: entity at "..printpos(pos).. + " looking for: "..mob_name .. + " or " .. mob_transform ) + + --any mob is required to have a name so we may use this to decide + --if an entity is an mob or not + if entity ~= nil and + entity.data ~= nil and + entity.dynamic_data ~= nil and + entity.dynamic_data.spawning ~= nil then + + if entity.removed == false then + + if entity.data.modname..":"..entity.data.name == mob_name or + entity.data.modname..":"..entity.data.name == mob_transform then + if (ignore_playerspawned and entity.dynamic_data.spawning.player_spawned) or + ignore_playerspawned ~= false then + dbg_mobf.generic_lvl1("MOBF: Found "..mob_name.. " or " + ..mob_transform .. " within specified range of "..range) + count = count + 1 + end + end + + end + + end + + objectcount = objectcount +1 + end + + dbg_mobf.generic_lvl2("MOBF: found " .. objectcount .. " within range " + .. count .. " of them are relevant mobs ") + + return count +end + +------------------------------------------------------------------------------- +-- name: mobf_spawner_around(mob_name,pos,range) +-- +--! @brief get number of mobs of specified type within range of pos +-- +--! @param mob_name basic name of mob +--! @param pos position to check +--! @param range range to check +--! @return number of mob found +------------------------------------------------------------------------------- +function mobf_spawner_around(mob_name,pos,range) + dbg_mobf.generic_lvl2("MOBF: mobf_spawner_around param: ".. dump(mob_name) + .. " "..dump(pos).. " " .. dump(range)) + + local count = 0 + local objectcount = 0 + + local objectlist = minetest.env:get_objects_inside_radius(pos,range) + + for index,value in pairs(objectlist) do + + local entity = value:get_luaentity() + + dbg_mobf.generic_lvl3("MOBF: entity at: "..dump(value:getpos()).. + " looking for: "..mob_name .. " " .. + dump(value) .. " " .. + dump(entity)) + + --any mob is required to have a name so we may use this to decide + --if an entity is an mob or not + if entity ~= nil and + entity.spawner_mob_name ~= nil then + + if entity.spawner_mob_name == mob_name then + dbg_mobf.generic_lvl2("MOBF: Found "..mob_name + .. " within specified range of "..range) + count = count + 1 + end + end + + objectcount = objectcount +1 + end + + dbg_mobf.generic_lvl2("MOBF: found " .. objectcount .. " within range " + .. count .. " of them are relevant spawners ") + + return count +end + +------------------------------------------------------------------------------- +-- name: mobf_line_of_sightX(pos1,pos2) +-- +--! @brief is there a line of sight between two specified positions +-- TODO add code to minetest to get this working! +-- +--! @param pos1 start position of los check +--! @param pos2 end position of los check +--! @return: true/false +------------------------------------------------------------------------------- +function mobf_line_of_sightX(pos1,pos2) + return minetest.env:get_line_of_sight(pos1,pos2) +end + +------------------------------------------------------------------------------- +-- name: mobf_line_of_sight(pos1,pos2) +-- +--! @brief is there a line of sight between two specified positions +-- +--! @param pos1 start position of los check +--! @param pos2 end position of los check +--! @return: true/false +------------------------------------------------------------------------------- +function mobf_line_of_sight(pos1,pos2) + + --print("Checking line of sight between "..printpos(pos1).." and "..printpos(pos2)) + local distance = mobf_calc_distance(pos1,pos2) + + local normalized_vector = { x=(pos2.x-pos1.x)/distance, + y=(pos2.y-pos1.y)/distance, + z=(pos2.z-pos1.z)/distance} + + + local line_of_sight = true + + for i=1,distance, 1 do + local tocheck = { x=pos1.x + (normalized_vector.x * i), + y=pos1.y + (normalized_vector.y *i), + z=pos1.z + (normalized_vector.z *i)} + + local node = minetest.env:get_node(tocheck) + + + if minetest.registered_nodes[node.name].sunlight_propagates ~= true then + line_of_sight = false + break + end + end + + return line_of_sight +end + +------------------------------------------------------------------------------- +-- name: mobf_get_direction(pos1,pos2) +-- +--! @brief get normalized direction from pos1 to pos2 +-- +--! @param pos1 source point +--! @param pos2 destination point +--! @return xyz direction +------------------------------------------------------------------------------- +function mobf_get_direction(pos1,pos2) + + local x_raw = pos2.x -pos1.x + local y_raw = pos2.y -pos1.y + local z_raw = pos2.z -pos1.z + + + local x_abs = math.abs(x_raw) + local y_abs = math.abs(y_raw) + local z_abs = math.abs(z_raw) + + if x_abs >= y_abs and + x_abs >= z_abs then + + y_raw = y_raw * (1/x_abs) + z_raw = z_raw * (1/x_abs) + + x_raw = x_raw/x_abs + + end + + if y_abs >= x_abs and + y_abs >= z_abs then + + + x_raw = x_raw * (1/y_abs) + z_raw = z_raw * (1/y_abs) + + y_raw = y_raw/y_abs + + end + + if z_abs >= y_abs and + z_abs >= x_abs then + + x_raw = x_raw * (1/z_abs) + y_raw = y_raw * (1/z_abs) + + z_raw = z_raw/z_abs + + end + + return {x=x_raw,y=y_raw,z=z_raw} + +end + + +------------------------------------------------------------------------------- +-- name: mobf_pos_is_zero(pos) +-- +--! @brief check if position is (0,0,0) +-- +--! @param pos position to check +--! @return true/false +------------------------------------------------------------------------------- + +function mobf_pos_is_zero(pos) + + if pos.x ~= 0 then return false end + if pos.y ~= 0 then return false end + if pos.z ~= 0 then return false end + + return true +end + +------------------------------------------------------------------------------- +-- name: mobf_air_above(pos,height) +-- +--! @brief check if theres at least height air abov pos +-- +--! @param pos position to check +--! @param height min number of air to check +--! @return true/false +------------------------------------------------------------------------------- +function mobf_air_above(pos,height) + + for i=0, height, 1 do + local pos_above = { + x = pos.x, + y = pos.y + 1, + z = pos.z + } + local node_above = minetest.env:get_node(pos_above) + + if node_above.name ~= "air" then + return false + end + end + + return true +end + + +------------------------------------------------------------------------------- +-- name: mobf_ground_distance(pos,media) +-- +--! @brief get number of blocks above solid ground +-- +--! @param pos position to check +--! @param media table of blocks not considered to be ground +--! @return number of blocks to ground +------------------------------------------------------------------------------- +function mobf_ground_distance(pos,media) + + local node_to_check = minetest.env:get_node(pos) + + local count = 0 + + while node_to_check ~= nil and mobf_contains(media,node_to_check.name) and + count < 32 do + + count = count +1 + pos = {x=pos.x,y=pos.y-1,z=pos.z}; + node_to_check = minetest.env:get_node(pos) + end + + return count +end + +------------------------------------------------------------------------------- +-- name: mobf_surface_distance(pos) +-- +--! @brief get number of blocks above surface (solid or fluid!) +-- +--! @param pos position to check +--! @return number of blocks to ground +------------------------------------------------------------------------------- +function mobf_surface_distance(pos) + + local node_to_check = minetest.env:get_node(pos) + + local count = 0 + + while node_to_check ~= nil and + node_to_check.name == "air" and + count < 32 do + + count = count +1 + + pos = {x=pos.x,y=pos.y-1,z=pos.z}; + node_to_check = minetest.env:get_node(pos) + end + + return count +end + +------------------------------------------------------------------------------- +-- name: mobf_air_distance(pos) +-- +--! @brief get number of blocks below waterline +-- +--! @param pos position to check +--! @return number of blocks to air +------------------------------------------------------------------------------- +function mobf_air_distance(pos) + + local node_to_check = minetest.env:get_node(pos) + + local count = 0 + + while node_to_check ~= nil and ( + node_to_check.name == "default:water_source" or + node_to_check.name == "default:water_flowing") do + + count = count +1 + pos = {x=pos.x,y=pos.y+1,z=pos.z}; + node_to_check = minetest.env:get_node(pos) + end + + if node_to_check.name == "air" then + return count + else + return -1 + end +end + +------------------------------------------------------------------------------- +-- name: mobf_above_water(pos) +-- +--! @brief check if next non-air block below mob is a water block +-- +--! @param pos position to check +--! @return true/false +------------------------------------------------------------------------------- +function mobf_above_water(pos) + + local node_to_check = minetest.env:get_node(pos) + + while node_to_check ~= nil and + node_to_check.name == "air" do + + pos = {x=pos.x,y=pos.y-1,z=pos.z}; + node_to_check = minetest.env:get_node(pos) + end + + if node_to_check.name == "default:water_source" or + node_to_check.name == "default:water_flowing" then + return true + end + + return false +end + +------------------------------------------------------------------------------- +-- name: get_surface(x,z, min_y, max_y) +-- +--! @brief get surface for x/z coordinates +-- +--! @param x x-coordinate +--! @param z z-coordinate +--! @param min_y minimum y-coordinate to consider +--! @param max_y maximum y-coordinate to consider +--! @return y value of surface or nil +------------------------------------------------------------------------------- +function mobf_get_sunlight_surface(x,z, min_y, max_y) + + for runy = min_y, max_y,1 do + local pos = { x=x,y=runy, z=z } + local node_to_check = minetest.env:get_node(pos) + + if node_to_check.name == "default:dirt_with_grass" then + return pos.y + end + end + + return nil +end + +------------------------------------------------------------------------------- +-- name: get_surface(x,z, min_y, max_y) +-- +--! @brief get surface for x/z coordinates +-- +--! @param x x-coordinate +--! @param z z-coordinate +--! @param min_y minimum y-coordinate to consider +--! @param max_y maximum y-coordinate to consider +--! @return y value of surface or nil +------------------------------------------------------------------------------- +function mobf_get_surface(x,z, min_y, max_y) + + local last_node = minetest.env:get_node({ x=x,y=min_y, z=z }) + + for runy = min_y+1, max_y,1 do + local pos = { x=x,y=runy, z=z } + local node_to_check = minetest.env:get_node(pos) + + if node_to_check.name == "air" and + last_node.name ~= "air" and + last_node.mame ~= "ignore" then + return pos.y + end + last_node = node_to_check + end + return nil +end + +------------------------------------------------------------------------------- +-- name: entity_at_loaded_pos(entity) +-- +--! @brief check if entity is activated at already loaded pos +-- +--! @param pos to check +--! @return true/false +------------------------------------------------------------------------------- +function entity_at_loaded_pos(pos) + + local current_node = minetest.env:get_node(pos) + + if current_node ~= nil then + if current_node.name == "ignore" then + minetest.log(LOGLEVEL_WARNING,"MOBF: spawned at unloaded pos! : " + .. dump(pos)) + return false + else + return true + end + end + minetest.log(LOGLEVEL_WARNING,"MOBF: spawned at invalid pos!") + return false +end + +------------------------------------------------------------------------------- +-- name: mobf_random_direction() +-- +--! @brief get a random (blocked) 3d direction +-- +--! @return 3d dir value +------------------------------------------------------------------------------- +function mobf_random_direction() + + local retval = {} + + retval.x=math.random(-1,1) + retval.y=math.random(-1,1) + retval.z=math.random(-1,1) + + return retval +end + +------------------------------------------------------------------------------- +-- name: mobf_calc_yaw(x,z) +-- +--! @brief calculate radians value of a 2 dimendional vector +-- +--! @param x vector component 1 +--! @param z vector component 2 +-- +--! @return radians value +------------------------------------------------------------------------------- +function mobf_calc_yaw(x,z) + local direction = math.atan2(z,x) + + while direction < 0 do + direction = direction + (2* math.pi) + end + + while direction > (2*math.pi) do + direction = direction - (2* math.pi) + end + + return direction +end + +------------------------------------------------------------------------------- +-- name: mobf_calc_vector_components(dir_radians,absolute_speed) +-- +--! @brief calculate calculate x and z components of a directed speed +-- +--! @param dir_radians direction of movement radians +--! @param absolute_speed speed in direction +-- +--! @return {x,z} +------------------------------------------------------------------------------- +function mobf_calc_vector_components(dir_radians,absolute_speed) + + local retval = {x=0,z=0} + + retval.x = absolute_speed * math.cos(dir_radians) + retval.z = absolute_speed * math.sin(dir_radians) + + return retval +end + +------------------------------------------------------------------------------- +-- name: mobf_pos_is_same(pos1,pos2) +-- +--! @brief check if two positions are equal +-- +--! @param pos1 +--! @param pos2 +-- +--! @return true/false +------------------------------------------------------------------------------- +function mobf_pos_is_same(pos1,pos2) + if pos1 == nil or + pos2 == nil then + return false + end + + if pos1.x ~= pos2.x or + pos1.y ~= pos2.y or + pos1.z ~= pos2.z or + pos1.x == nil or + pos1.y == nil or + pos1.z == nil or + pos2.x == nil or + pos2.y == nil or + pos2.z == nil then + return false + end + + return true +end + +------------------------------------------------------------------------------- +-- name: mobf_assert_backtrace(value) +-- +--! @brief assert in case value is false +-- +--! @param value to evaluate +------------------------------------------------------------------------------- +function mobf_assert_backtrace(value) + if minetest.assert_backtrace ~= nil then + minetest.assert_backtrace(value) + else + assert(value) + end +end +--!@} diff --git a/mods/mobf/graphics.lua b/mods/mobf/graphics.lua new file mode 100644 index 0000000..1d49b6d --- /dev/null +++ b/mods/mobf/graphics.lua @@ -0,0 +1,232 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file graphics.lua +--! @brief graphics related parts of mob +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-09 +-- +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +--! @class graphics +--! @brief graphic features +graphics = {} + +------------------------------------------------------------------------------- +-- name: update_orientation_simple(entity,velocity) +-- +--! @brief calculate direction of mob to face +--! @memberof graphics +-- +--! @param entity mob to calculate direction +--! @param current_velocity data to calculate direction from +------------------------------------------------------------------------------- +function graphics.update_orientation_simple(entity,current_velocity) + local x_abs = math.abs(current_velocity.x) + local z_abs = math.abs(current_velocity.z) + if x_abs > z_abs then + if current_velocity.x > 0 then + entity.object:setyaw(0) + else + entity.object:setyaw(math.pi) + end + else + if current_velocity.z >0 then + entity.object:setyaw(math.pi/2) + else + entity.object:setyaw(math.pi * (3/2)) + end + end +end + +------------------------------------------------------------------------------- +-- name: update_orientation(entity) +-- +--! @brief callback for calculating a mobs direction +--! @memberof graphics +-- +--! @param entity mob to calculate direction +--! @param now current time +--! @param dtime current dtime +------------------------------------------------------------------------------- +function graphics.update_orientation(entity,now,dtime) + + if entity.dynamic_data == nil or + entity.dynamic_data.movement == nil then + mobf_bug_warning(LOGLEVEL_ERROR,"MOBF BUG!!!: >" ..entity.data.name + .. "< removed=" .. dump(entity.removed) .. " entity=" + .. tostring(entity) .. " graphics callback without dynamic data") + return + end + + local new_orientation = 0 + +-- if entity.dynamic_data.movement.ts_orientation_upd + 1 < now and + if entity.dynamic_data.movement.orientation_fix_needed then + + dbg_mobf.graphics_lvl3("MOBF: Updating orientation") + --entity.dynamic_data.movement.ts_orientation_upd = now + + local current_velocity = entity.object:getvelocity() + local acceleration = entity.object:getacceleration() + local pos = entity.getbasepos(entity) + + dbg_mobf.graphics_lvl3("MOBF: vel: (" .. current_velocity.x .. ",".. current_velocity.z .. ") " .. + "accel: (" ..acceleration.x .. "," .. acceleration.z .. ")") + + --predict position mob will be in 0.25 seconds + --local predicted_pos = movement_generic.calc_new_pos(pos,acceleration,dtime,current_velocity) + + --local delta_x = predicted_pos.x - pos.x + --local delta_z = predicted_pos.z - pos.z + local delta_x = current_velocity.x + local delta_z = current_velocity.z + + --legacy 2d mode + if (entity.mode == "2d") then + graphics.update_orientation_simple(entity,{x=delta_x, z=delta_z}) + -- 3d mode + else + + if (delta_x ~= 0 ) and + (delta_z ~= 0) then + + entity.object:setyaw(mobf_calc_yaw(delta_x,delta_z)) + + dbg_mobf.graphics_lvl3("MOBF: x-delta: " .. delta_x + .. " z-delta: " .. delta_z) + elseif (delta_x ~= 0) or + (delta_z ~= 0) then + dbg_mobf.graphics_lvl3("MOBF: at least speed for one direction is 0") + graphics.update_orientation_simple(entity,{x=delta_x,z=delta_z}) + else + dbg_mobf.movement_lvl3("MOBF: not moving") + end + end + end + +end + +------------------------------------------------------------------------------- +-- name: set_animation(entity,name) +-- +--! @brief set the drawmode for an mob entity +--! @memberof graphics +-- +--! @param entity mob to set drawmode for +--! @param name name of animation +------------------------------------------------------------------------------- +function graphics.set_animation(entity,name) + + if name == nil then + dbg_mobf.graphics_lvl2("MOBF: calling updating animation without name for " .. entity.data.name) + return + end + + if entity.mode == "2d" then + + if id == "stand" then + entity.object:setsprite({x=0,y=0}, 1, 0, true) + end + + if name == "burning" then + entity.object:setsprite({x=0,y=1}, 1, 0, true) + end + + return + end + + if entity.mode == "3d" then + --TODO change frame rate due to movement speed + dbg_mobf.graphics_lvl2("MOBF: " .. entity.data.name .. " updating animation: " .. name) + if entity.data.animation ~= nil and + name ~= nil and + entity.data.animation[name] ~= nil and + entity.dynamic_data.animation ~= name then + + dbg_mobf.graphics_lvl2("MOBF:\tSetting animation to " .. name + .. " start: " .. entity.data.animation[name].start_frame + .. " end: " .. entity.data.animation[name].end_frame) + entity.object:set_animation({ + x=entity.data.animation[name].start_frame, + y=entity.data.animation[name].end_frame + }, nil, nil) + entity.dynamic_data.animation = name + end + + return + end + + mobf_bug_warning(LOGLEVEL_WARNING,"MOBF BUG!!: invalid graphics mode specified " + .. dump(entity.mode)) + +end + +------------------------------------------------------------------------------ +-- name: prepare_graphic_info(graphics2d,graphics3d) +-- +--! @brief get graphics information +--! @memberof graphics +-- +--! @param graphics2d +--! @param graphics3d +--! @param modname +--! @param name +--! @param statename +--! @return grahpic information +------------------------------------------------------------------------------- +function graphics.prepare_info(graphics2d,graphics3d,modname,name,statename) + + local setgraphics = {} + + + + if (graphics3d == nil) or + minetest.setting_getbool("mobf_disable_3d_mode") then + if (graphics2d == nil) then + --this maybe correct if there's a state model requested! + return nil + end + + local basename = modname .. name + + if statename ~= nil and + statename ~= "default" then + basename = basename .. "__" .. statename + end + + setgraphics.collisionbox = {-0.5, + -0.5 * graphics2d.visible_height, + -0.5, + 0.5, + 0.5 * graphics2d.visible_height, + 0.5} + if graphics2d.visual ~= nil then + setgraphics.visual = graphics2d.visual + else + setgraphics.visual = "sprite" + end + setgraphics.textures = { basename..".png^[makealpha:128,0,0^[makealpha:128,128,0" } + setgraphics.visual_size = graphics2d.sprite_scale + setgraphics.spritediv = graphics2d.sprite_div + setgraphics.mode = "2d" + else + if graphics3d.visual == "mesh" then + setgraphics.mesh = graphics3d.mesh + end + + setgraphics.collisionbox = graphics3d.collisionbox --todo is this required for mesh? + setgraphics.visual = graphics3d.visual + setgraphics.visual_size = graphics3d.visual_size + setgraphics.textures = graphics3d.textures + setgraphics.mode = "3d" + end + + return setgraphics +end \ No newline at end of file diff --git a/mods/mobf/harvesting.lua b/mods/mobf/harvesting.lua new file mode 100644 index 0000000..1143e7e --- /dev/null +++ b/mods/mobf/harvesting.lua @@ -0,0 +1,219 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file harvesting.lua +--! @brief component for all harvesting related mob features +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-09 +-- +--! @defgroup harvesting Harvesting subcomponent +--! @brief Component handling harvesting +--! @ingroup framework_int +--! @{ +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +--! @class harvesting +--! @brief harvesting features +harvesting = {} + +--!@} + +------------------------------------------------------------------------------- +-- name: init_dynamic_data(entity,now) +-- +--! @brief initialize dynamic data required by harvesting +--! @memberof harvesting +-- +--! @param entity mob to initialize harvest dynamic data +--! @param now current time +------------------------------------------------------------------------------- +function harvesting.init_dynamic_data(entity,now) + dbg_mobf.harvesting_lvl1("MOBF: " .. entity.data.name + .. " initializing harvesting dynamic data") + local data = { + ts_last = now, + } + entity.dynamic_data.harvesting = data +end + +------------------------------------------------------------------------------- +-- name: callback(entity,player,now) +-- +--! @brief callback handler for harvest by player +--! @memberof harvesting +-- +--! @param entity mob being harvested +--! @param player player harvesting +--! @param now the current time +--! @return true/false if handled by harvesting or not +------------------------------------------------------------------------------- +function harvesting.callback(entity,player,now) + + dbg_mobf.harvesting_lvl1("MOBF: harvest function called") + + local now = mobf_get_current_time() + + --handle catching of mob + if entity.data.catching ~= nil and + entity.data.catching.tool ~= "" then + + -- what's wielded by player + local tool = player:get_wielded_item() + + if tool:get_name() == entity.data.catching.tool then + dbg_mobf.harvesting_lvl1("MOBF: player wearing ".. entity.data.catching.tool) + + --play catch sound + if entity.data.sound ~= nil then + sound.play(entity.object:getpos(),entity.data.sound.catch); + end + + if entity.data.catching.consumed == true then + if player:get_inventory():contains_item("main",entity.data.catching.tool.." 1") then + dbg_mobf.harvesting_lvl2("MOBF: removing: " + .. entity.data.catching.tool.." 1") + player:get_inventory():remove_item("main", + entity.data.catching.tool.." 1") + else + mobf_bug_warning(LOGLEVEL_ERROR,"MOBF: BUG!!! player is" + .. " wearing a item he doesn't have in inventory!!!") + --handled but not ok so don't attack + return true + end + end + if entity.data.generic.addoncatch ~= nil then + player:get_inventory():add_item("main", + entity.data.generic.addoncatch.." 1") + else + player:get_inventory():add_item("main", + entity.data.modname ..":"..entity.data.name.." 1") + end + spawning.remove(entity, "cought") + return true + end + end + + + --handle harvestable mobs, check if player is wearing correct tool + if entity.data.harvest ~= nil then + + dbg_mobf.harvesting_lvl1("MOBF: trying to harvest harvestable mob") + if (entity.data.harvest.tool ~= "") then + local tool = player:get_wielded_item() + if tool ~= nil then + dbg_mobf.harvesting_lvl1("MOBF: Player is wearing >" + .. tool:get_name() .. "< required is >".. entity.data.harvest.tool + .. "< wear: " .. tool:get_wear()) + + if (tool:get_name() ~= entity.data.harvest.tool) then + --player is wearing wrong tool do an attack + return false + else + --tool is completely consumed + if entity.data.harvest.tool_consumed == true then + if player:get_inventory():contains_item("main",entity.data.harvest.tool.." 1") == false then + dbg_mobf.harvesting_lvl1("MOBF: Player doesn't have" + .. " at least 1 of ".. entity.data.harvest.tool) + --handled but not ok so don't attack + return true + end + else + --damage tool + local tool_wear = tool:get_wear() + + dbg_mobf.harvesting_lvl1("MOBF: tool " .. tool:get_name() + .. " wear: " .. tool_wear) + -- damage used tool + if tool_wear ~= nil and + entity.data.harvest.max_tool_usage ~= nil then + + local todamage = (65535/entity.data.harvest.max_tool_usage) + dbg_mobf.harvesting_lvl1("MOBF: tool damage calculated: " + .. todamage); + if tool:add_wear(todamage) ~= true then + dbg_mobf.harvesting_lvl3("MOBF: Tried to damage non tool item " + .. tool:get_name() .. "!"); + end + player:set_wielded_item(tool) + end + end + end + else + --player isn't wearing a tool so this has to be an attack + return false + end + else + --no havest tool defined so this has to be an attack + return false + end + + + --transformation and harvest delay is exclusive + + --harvest delay mode + if entity.data.harvest.min_delay < 0 or + entity.dynamic_data.harvesting.ts_last + entity.data.harvest.min_delay < now then + + player:get_inventory():add_item("main", entity.data.harvest.result.." 1") + + --check if tool is consumed by action + if entity.data.harvest.tool_consumed then + dbg_mobf.harvesting_lvl2("MOBF: removing " + ..entity.data.harvest.tool.." 1") + player:get_inventory():remove_item("main",entity.data.harvest.tool.." 1") + end + else + dbg_mobf.harvesting_lvl1("MOBF: " .. entity.data.name + .. " not ready to be harvested") + end + + -- check if mob is transformed by harvest + if entity.data.harvest.transforms_to ~= "" then + local transformed = spawning.replace_entity(entity, + entity.data.harvest.transforms_to) + else + entity.dynamic_data.harvesting.ts_last = mobf_get_current_time() + end + + + --play harvest sound + if entity.data.sound ~= nil then + sound.play(entity.object:getpos(),entity.data.sound.harvest); + end + + --harvest done + return true + end + + return false +end + + +------------------------------------------------------------------------------- +-- name: transform(entity) +-- +--! @brief self transform callback for mob +--! @ingroup harvesting +-- +--! @param entity mob calling +--! @param now current time +------------------------------------------------------------------------------- +function transform(entity,now) + + --check if it's a transformable mob + if entity.data.auto_transform ~= nil then + + if now - entity.dynamic_data.spawning.original_spawntime + > entity.data.auto_transform.delay then + spawning.replace_entity(entity,entity.data.auto_transform.result) + end + + end + +end diff --git a/mods/mobf/init.lua b/mods/mobf/init.lua new file mode 100644 index 0000000..b0726af --- /dev/null +++ b/mods/mobf/init.lua @@ -0,0 +1,350 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file init.lua +--! @brief main module file responsible for including all parts of mob framework mod +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-09 +-- +--! @defgroup framework_int Internal framework subcomponent API +--! @brief this functions are used to provide additional features to mob framework +--! e.g. add additional spawn algorithms, movement generators, environments ... +-- +-- +--! @defgroup framework_mob Mob Framework API +--! @brief this functions are used to add a mob to mob framework +-- +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +print("MOD: mobf loading ...") + +--! @brief runtime data required to be setup once on start +mobf_rtd = { + --!is mob running with fire support + fire_enabled = false, + --!do we have luatrace + luatrace_enabled = false, + --!do we have inventory plus support + inventory_plus_enabled = false, + --!registry for movement patterns + movement_patterns = {}, + --!registry of mobs + registred_mob = {}, + --!registred mobs_data + registred_mob_data = {}, +} + +--!path of mod +mobf_modpath = minetest.get_modpath("mobf") + +LOGLEVEL_INFO = "verbose" +LOGLEVEL_NOTICE = "info" +LOGLEVEL_WARNING = "action" +LOGLEVEL_ERROR = "error" +LOGLEVEL_CRITICAL = "error" + +--include debug trace functions +dofile (mobf_modpath .. "/debug_trace.lua") + +--include engine +dofile (mobf_modpath .. "/generic_functions.lua") +dofile (mobf_modpath .. "/environment.lua") +dofile (mobf_modpath .. "/movement_generic.lua") +dofile (mobf_modpath .. "/graphics.lua") +dofile (mobf_modpath .. "/movement_gen_registry.lua") +dofile (mobf_modpath .. "/harvesting.lua") +dofile (mobf_modpath .. "/weapons.lua") +dofile (mobf_modpath .. "/fighting.lua") +dofile (mobf_modpath .. "/random_drop.lua") +dofile (mobf_modpath .. "/sound.lua") +dofile (mobf_modpath .. "/permanent_data.lua") +dofile (mobf_modpath .. "/ride.lua") +dofile (mobf_modpath .. "/mobf.lua") +dofile (mobf_modpath .. "/api.lua") +dofile (mobf_modpath .. "/debug.lua") +dofile (mobf_modpath .. "/mob_state.lua") +dofile (mobf_modpath .. "/inventory.lua") + +--include spawning support +dofile (mobf_modpath .. "/spawning.lua") + +--include movement generators +dofile (mobf_modpath .. "/mgen_probab/main_probab.lua") +dofile (mobf_modpath .. "/mgen_follow/main_follow.lua") +dofile (mobf_modpath .. "/mgen_rasterized/mgen_raster.lua") +dofile (mobf_modpath .. "/mgen_jordan4ibanez/mgen_jordan4ibanez.lua") +dofile (mobf_modpath .. "/mov_gen_none.lua") + +mobf_version = "2.0.5" + +--! @brief define tools used for more than one mob +function mobf_init_basic_tools() + minetest.register_craft({ + output = "animalmaterials:lasso 5", + recipe = { + {'', "wool:white",''}, + {"wool:white",'', "wool:white"}, + {'',"wool:white",''}, + } + }) + + minetest.register_craft({ + output = "animalmaterials:net 1", + recipe = { + {"wool:white",'',"wool:white"}, + {'', "wool:white",''}, + {"wool:white",'',"wool:white"}, + } + }) + + minetest.register_craft({ + output = 'animalmaterials:sword_deamondeath', + recipe = { + {'animalmaterials:bone'}, + {'animalmaterials:bone'}, + {'default:stick'}, + } + }) + +end + + +--! @brief main initialization function +function mobf_init_framework() + minetest.log(LOGLEVEL_NOTICE,"MOBF: Initializing mob framework") + mobf_init_basic_tools() + + minetest.log(LOGLEVEL_NOTICE,"MOBF: Reading mob blacklist") + local mobf_mob_blacklist_string = minetest.setting_get("mobf_blacklist") + + if mobf_mob_blacklist_string ~= nil then + mobf_rtd.registred_mob = minetest.deserialize(mobf_mob_blacklist_string) + + if mobf_rtd.registred_mob == nil then + minetest.log(LOGLEVEL_ERROR,"MOBF: Error on serializing blacklist!") + mobf_rtd.registred_mob = {} + end + end + + minetest.log(LOGLEVEL_NOTICE,"MOBF: Initialize external mod dependencys...") + mobf_init_mod_deps() + + minetest.log(LOGLEVEL_NOTICE,"MOBF: Initializing probabilistic movement generator") + movement_gen.initialize() + + minetest.log(LOGLEVEL_NOTICE,"MOBF: Initializing weaponry..") + mobf_init_weapons() + + minetest.log(LOGLEVEL_NOTICE,"MOBF: Initializing debug hooks..") + mobf_debug.init() + + minetest.log(LOGLEVEL_NOTICE,"MOBF: Initialize mobf supplied modules..") + mobf_init_modules() + + -- initialize luatrace if necessary + if mobf_rtd.luatrace_enabled then + luatrace = require("luatrace") + end + + -- register privilege to change mobf settings + minetest.register_privilege("mobfw_admin", + { + description = "Player may change mobf settings", + give_to_singleplayer = true + }) + + print("MOD: mob framework mod "..mobf_version.." loaded") +end + +--! @brief initialize mod dependencys +function mobf_init_mod_deps() + local modlist = minetest.get_modnames() + + for i=1,#modlist,1 do + if modlist[i] == "fire" then + mobf_rtd.fire_enabled = true + end + + if modlist[i] == "inventory_plus" then + mobf_rtd.inventory_plus_enabled = true + end + end +end + +--! @brief initialize mobf submodules +function mobf_init_modules() + + --state change callback + mobf.register_on_step_callback({ + name = "state_change", + handler = mob_state.callback, + init = mob_state.initialize, + configcheck = function(entity) + if entity.data.states ~= nil then + return true + end + return false + end + }) + + --auto transform hook + mobf.register_on_step_callback({ + name = "transform", + handler = transform, + init = nil, + configcheck = function(entity) + if entity.data.auto_transform ~= nil then + return true + end + return false + end + }) + + --combat hook + mobf.register_on_step_callback({ + name = "combat", + handler = fighting.combat, + init = fighting.init_dynamic_data, + configcheck = function(entity) + if entity.data.combat ~= nil then + return true + end + return false + end + }) + + --attack hook + mobf.register_on_step_callback({ + name = "aggression", + handler = fighting.aggression, + init = nil, -- already done by fighting.combat + configcheck = function(entity) + if entity.data.combat ~= nil then + return true + end + return false + end + }) + + + + --workaround for shortcomings in spawn algorithm + mobf.register_on_step_callback({ + name = "check_pop_dense", + handler = spawning.check_population_density, + init = spawning.init_dynamic_data, + configcheck = function(entity) + return true + end + }) + + --random drop hook + mobf.register_on_step_callback({ + name = "random_drop", + handler = random_drop.callback, + init = random_drop.init_dynamic_data, + configcheck = function(entity) + if entity.data.random_drop ~= nil then + return true + end + return false + end + }) + + --random sound hook + mobf.register_on_step_callback({ + name = "sound", + handler = sound.play_random, + init = sound.init_dynamic_data, + configcheck = function(entity) + if entity.data.sound ~= nil and + entity.data.sound.random ~= nil then + return true + end + return false + end + }) + + --visual change hook + mobf.register_on_step_callback({ + name = "update_orientation", + handler = graphics.update_orientation, + init = nil, + configcheck = function(entity) + return true + end + }) + + + --custom hook + mobf.register_on_step_callback({ + name = "custom_hooks", + handler = function(entity,now,dtime) + if type(entity.data.generic.custom_on_step_handler) == "function" then + entity.data.generic.custom_on_step_handler(entity,now,dtime) + end + end, + configcheck = function(entity) + return true + end + }) + + + --on punch callbacks + mobf.register_on_punch_callback({ + name = "harvesting", + handler = harvesting.callback, + init = harvesting.init_dynamic_data, + configcheck = function(entity) + if (entity.data.catching ~= nil and + entity.data.catching.tool ~= "" ) or + entity.data.harvest ~= nil then + return true + end + return false + end + }) + + mobf.register_on_punch_callback({ + name = "riding", + handler = mobf_ride.on_punch_callback, + configcheck = mobf_ride.is_enabled + }) + + mobf.register_on_punch_callback({ + name = "punching", + handler = fighting.hit, + configcheck = function(entity) + return true + end + }) + + + --on rightclick callbacks + --Note debug needs to be registred FIRST! + mobf.register_on_rightclick_callback({ + name = "debugcallback", + handler = mobf_debug.rightclick_callback, + configcheck = function(entity) + return true + end + }) + + mobf.register_on_rightclick_callback({ + name = "tradercallback", + handler = mob_inventory.trader_callback, + configcheck = mob_inventory.config_check + }) + + +end + +mobf_init_framework() + +dofile (mobf_modpath .. "/compatibility.lua") diff --git a/mods/mobf/inventory.lua b/mods/mobf/inventory.lua new file mode 100644 index 0000000..950b896 --- /dev/null +++ b/mods/mobf/inventory.lua @@ -0,0 +1,534 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file inventory.lua +--! @brief component containing mob inventory related functions +--! @copyright Sapier +--! @author Sapier +--! @date 2013-01-02 +-- +--! @defgroup Inventory inventory subcomponent +--! @brief Component handling mob inventory +--! @ingroup framework_int +--! @{ +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + + +mob_inventory = {} +mob_inventory.trader_inventories = {} +mob_inventory.formspecs = {} + + +------------------------------------------------------------------------------- +-- name: allow_move(inv, from_list, from_index, to_list, to_index, count, player) +-- +--! @brief check if there is enough at payroll +--! @ingroup mob_inventory +-- +--! @param inv inventory reference +--! @param from_list name of list elements taken +--! @param from_index index at list elements taken +--! @param to_list list name of list elements being put +--! @param to_index index at list elements being put +--! @param count number of elements moved +--! @param player doing changes +-- +--! @return number of elements allowed to move +------------------------------------------------------------------------------- +function mob_inventory.allow_move(inv, from_list, from_index, to_list, to_index, count, player) + + dbg_mobf.trader_inv_lvl1("MOBF: move inv: " .. tostring(inv) .. " from:" + .. dump(from_list) .. " to: " .. dump(to_list)) + if to_list ~= "selection" or + from_list == "price_1" or + from_list == "price_2" or + from_list == "pay" or + from_list == "takeaway" or + from_list == "identifier" then + return 0 + end + + return count +end + +------------------------------------------------------------------------------- +-- name: allow_put(inv, listname, index, stack, player) +-- +--! @brief check if there is enough at payroll +--! @ingroup mob_inventory +-- +--! @param inv inventory reference +--! @param listname name of list changed +--! @param index index in list changed +--! @param stack moved +--! @param player doing changes +-- +--! @return number of elements allowed to put +------------------------------------------------------------------------------- +function mob_inventory.allow_put(inv, listname, index, stack, player) + dbg_mobf.trader_inv_lvl1("MOBF: put inv: " .. tostring(inv) .. " to:" + .. dump(listname)) + + if listname == "pay" then + return 99 + end + + return 0 +end + +------------------------------------------------------------------------------- +-- name: allow_take(inv, listname, index, stack, player) +-- +--! @brief check if there is enough at payroll +--! @ingroup mob_inventory +-- +--! @param inv inventory reference +--! @param listname name of list changed +--! @param index index in list changed +--! @param stack moved +--! @param player doing changes +-- +--! @return number of elements allowed to take +------------------------------------------------------------------------------- +function mob_inventory.allow_take(inv, listname, index, stack, player) + dbg_mobf.trader_inv_lvl1("MOBF: take inv: " .. tostring(inv) .. " to:" + .. dump(listname)) + + if listname == "takeaway" or + listname == "pay" then + return 99 + end + return 0 +end + +------------------------------------------------------------------------------- +-- name: on_move(inv, from_list, from_index, to_list, to_index, count, player) +-- +--! @brief check if there is enough at payroll +--! @ingroup mob_inventory +-- +--! @param inv inventory reference +--! @param from_list name of list elements taken +--! @param from_index index at list elements taken +--! @param to_list list name of list elements being put +--! @param to_index index at list elements being put +--! @param count number of elements moved +--! @param player doing changes +------------------------------------------------------------------------------- +function mob_inventory.on_move(inv, from_list, from_index, to_list, to_index, count, player) + dbg_mobf.trader_inv_lvl1("MOBF: inv\"" .. tostring(inv) .. "\" moving " + .. count .. " items from: " .. from_list .. ":" .. from_index .. " to: " + .. to_list .. ":" .. to_index) + + if from_list == "goods" and + to_list == "selection" then + + local moved = inv.get_stack(inv,to_list, to_index) + + local elements = moved.get_count(moved) + + --if elements > 1 then + -- moved = moved.take_item(moved,elements-1) + -- inv.set_stack(inv,from_list, from_index, moved) + -- inv.set_stack(inv,to_list, to_index, moved) + --else + -- inv.set_stack(inv,from_list, from_index, moved) + --end + + local entity = mob_inventory.get_entity(inv) + + if entity == nil then + dbg_mobf.trader_inv_lvl1("MOBF: move unable to find linked entity") + return + end + + local goodname = moved.get_name(moved) + dbg_mobf.trader_inv_lvl1("MOBF: good selected: " .. goodname) + + --get element put to selection + mob_inventory.fill_prices(entity,inv,goodname,moved.get_count(moved)) + mob_inventory.update_takeaway(inv) + end +end + +------------------------------------------------------------------------------- +-- name: on_put(inv, listname, index, stack, player) +-- +--! @brief check if there is enough at payroll +--! @ingroup mob_inventory +-- +--! @param inv inventory reference +--! @param listname name of list changed +--! @param index index in list changed +--! @param stack moved +--! @param player doing changes +------------------------------------------------------------------------------- +function mob_inventory.on_put(inv, listname, index, stack, player) + if listname == "pay" then + local now_at_pay = inv.get_stack(inv,"pay",1) + local playername = player.get_player_name(player) + local count = now_at_pay.get_count(now_at_pay) + local name = now_at_pay.get_name(now_at_pay) + dbg_mobf.trader_inv_lvl1("MOBF: putpay player: " .. playername + .. " pays now count=" .. count .. " of type=" ..name) + + mob_inventory.update_takeaway(inv) + end +end + + + +------------------------------------------------------------------------------- +-- name: on_take(inv, listname, index, stack, player) +-- +--! @brief check if there is enough at payroll +--! @ingroup mob_inventory +-- +--! @param inv inventory reference +--! @param listname name of list changed +--! @param index index in list changed +--! @param stack moved +--! @param player doing changes +------------------------------------------------------------------------------- +function mob_inventory.on_take(inv, listname, index, stack, player) + if listname == "takeaway" then + local now_at_pay = inv.get_stack(inv,"pay",index) + local playername = player.get_player_name(player) + local count = now_at_pay.get_count(now_at_pay) + local name = now_at_pay.get_name(now_at_pay) + dbg_mobf.trader_inv_lvl2("MOBF: takeaway player: " .. playername + .. " pays now count=" .. count .. " of type=" ..name) + + if not mob_inventory.check_pay(inv,true) then + dbg_mobf.trader_inv_lvl1("MOBF: error player hasn't payed enough!") + end + + mob_inventory.update_takeaway(inv) + end + + if listname == "pay" then + if mob_inventory.check_pay(inv,false) then + local selection = inv.get_stack(inv,"selection", 1) + + if selection ~= nil then + inv.set_stack(inv,"takeaway",1,selection) + else + dbg_mobf.trader_inv_lvl1("MOBF: nothing selected to buy") + end + else + inv.set_stack(inv,"takeaway",1,nil) + end + end +end + + +------------------------------------------------------------------------------- +-- name: update_takeaway(inv) +-- +--! @brief update content of takeaway +--! @ingroup mob_inventory +-- +--! @param inv to update +------------------------------------------------------------------------------- +function mob_inventory.update_takeaway(inv) + if mob_inventory.check_pay(inv,false) then + local selection = inv.get_stack(inv,"selection", 1) + + if selection ~= nil then + inv.set_stack(inv,"takeaway",1,selection) + else + dbg_mobf.trader_inv_lvl1("MOBF: nothing selected to buy") + end + else + inv.set_stack(inv,"takeaway",1,nil) + end +end + +------------------------------------------------------------------------------- +-- name: check_pay(inv) +-- +--! @brief check if there is enough at payroll +--! @ingroup mob_inventory +-- +--! @param inv inventory to do check +--! @param paynow true/false if it's called to pay or not +-- +--! @return true/false +------------------------------------------------------------------------------- +function mob_inventory.check_pay(inv,paynow) + local now_at_pay = inv.get_stack(inv,"pay",1) + local count = now_at_pay.get_count(now_at_pay) + local name = now_at_pay.get_name(now_at_pay) + + local price1 = inv.get_stack(inv,"price_1", 1) + local price2 = inv.get_stack(inv,"price_2", 1) + + dbg_mobf.trader_inv_lvl1("MOBF: p1 " .. dump(price1) .. " " .. dump(price1:get_name())) + if price1:get_name() == name then + local price = price1:get_count() + if price > 0 and + price <= count then + if paynow then + now_at_pay.take_item(now_at_pay,price) + inv.set_stack(inv,"pay",1,now_at_pay) + return true + else + return true + end + else + if paynow then + inv.set_stack(inv,"pay",1,nil) + end + end + end + + dbg_mobf.trader_inv_lvl1("MOBF: p2 " .. dump(price1) .. " " .. dump(price2:get_name())) + if price2:get_name() == name then + local price = price2:get_count() + if price > 0 and + price <= count then + if paynow then + now_at_pay.take_item(now_at_pay,price) + inv.set_stack(inv,"pay",1,now_at_pay) + return true + else + return true + end + else + if paynow then + inv.set_stack(inv,"pay",1,nil) + end + end + end + return false +end + +------------------------------------------------------------------------------- +-- name: init_detached_inventories(entity,now) +-- +--! @brief initialize dynamic data required by harvesting +--! @ingroup mob_inventory +-- +--! @param entity mob to initialize harvest dynamic data +------------------------------------------------------------------------------- +function mob_inventory.init_trader_inventory(entity) + --TODO find out why calling "tostring" is necessary?! + local tradername = tostring(entity.data.trader_inventory.random_names[math.random(1,#entity.data.trader_inventory.random_names)]) + dbg_mobf.trader_inv_lvl3("MOBF: randomly selected \"" .. tradername .. "\" as name") + local unique_entity_id = string.gsub(tostring(entity),"table: ","") + --local unique_entity_id = "testinv" + local trader_inventory = minetest.create_detached_inventory(unique_entity_id, + { + allow_move = mob_inventory.allow_move, + allow_put = mob_inventory.allow_put, + allow_take = mob_inventory.allow_take, + + on_move = mob_inventory.on_move, + on_put = mob_inventory.on_put, + on_take = mob_inventory.on_take, + }) + + trader_inventory.set_size(trader_inventory,"goods",16) + trader_inventory.set_size(trader_inventory,"takeaway",1) + trader_inventory.set_size(trader_inventory,"selection",1) + trader_inventory.set_size(trader_inventory,"price_1",1) + trader_inventory.set_size(trader_inventory,"price_2",1) + trader_inventory.set_size(trader_inventory,"pay",1) + + mob_inventory.add_goods(entity,trader_inventory) + + --register to trader inventories + table.insert(mob_inventory.trader_inventories, { + identifier = unique_entity_id, + inv_ref = trader_inventory, + ent_ref = entity, + }) + dbg_mobf.trader_inv_lvl3("MOBF: registering identifier: " .. unique_entity_id + .. " invref \"" .. tostring(trader_inventory) .. "\" for entity \"" + .. tostring(entity) .. "\"" ) + + local trader_formspec = "size[8,10;]" .. + "label[2,0;Trader " .. tradername .. " Inventory]" .. + "label[0,1;Selling:]" .. + "list[detached:" .. unique_entity_id .. ";goods;0,1.5;8,2;]" .. + "label[0,4.0;Selection]" .. + "list[detached:" .. unique_entity_id .. ";selection;0,4.5;1,1;]" .. + "label[1.25,4.75;-->]" .. + "label[2,4.0;Price]" .. + "list[detached:" .. unique_entity_id .. ";price_1;2,4.5;1,1;]" .. + "label[3,4.0;or]" .. + "list[detached:" .. unique_entity_id .. ";price_2;3,4.5;1,1;]" .. + "label[4.25,4.75;-->]" .. + "label[5,4.0;Pay]" .. + "list[detached:" .. unique_entity_id .. ";pay;5,4.5;1,1;]" .. + "label[6.25,4.75;-->]" .. + "label[6.75,4.0;Takeaway]" .. + "list[detached:" .. unique_entity_id .. ";takeaway;7,4.5;1,1;]" .. + "list[current_player;main;0,6;8,4;]" + + if mob_inventory.register_formspec("formspec_" .. unique_entity_id,trader_formspec) == false then + dbg_mobf.trader_inv_lvl1("MOBF: unable to create trader formspec") + end +end + + +------------------------------------------------------------------------------- +-- name: config_check(entity) +-- +--! @brief check if mob is configured as trader +--! @ingroup mob_inventory +-- +--! @param entity mob being checked +--! @return true/false if trader or not +------------------------------------------------------------------------------- +function mob_inventory.config_check(entity) + if entity.data.trader_inventory ~= nil then + return true + end + + return false +end + +------------------------------------------------------------------------------- +-- name: register_formspec(name,formspec) +-- +--! @brief check if mob is configured as trader +--! @ingroup mob_inventory +-- +--! @param name name of formspec to register +--! @param formspec formspec definition +-- +--! @return true/false if succesfull or not +------------------------------------------------------------------------------- +function mob_inventory.register_formspec(name,formspec) + + if mob_inventory.formspecs[name] == nil then + mob_inventory.formspecs[name] = formspec + return true + end + + return false +end + +------------------------------------------------------------------------------- +-- name: callback(entity,player,now) +-- +--! @brief callback handler for harvest by player +--! @ingroup mob_inventory +-- +--! @param entity mob being harvested +--! @param player player harvesting +-- +--! @return true/false if handled by harvesting or not +------------------------------------------------------------------------------- +function mob_inventory.trader_callback(entity,player) + local unique_entity_id = string.gsub(tostring(entity),"table: ","") + --local unique_entity_id = "testinv" + local playername = player.get_player_name(player) + + if mob_inventory.formspecs["formspec_" .. unique_entity_id] ~= nil then + --rotate mob to face player + local direction = mobf_get_direction(entity.object:getpos(), + player:getpos()) + + if entity.mode == "3d" then + entity.object:setyaw(mobf_calc_yaw(direction.x,direction.z)-math.pi/2) + else + entity.object:setyaw(mobf_calc_yaw(direction.x,direction.z)+math.pi/2) + end + + if minetest.show_formspec(playername, + "formspec_" .. unique_entity_id, + mob_inventory.formspecs["formspec_" .. unique_entity_id]) == false then + dbg_mobf.trader_inv_lvl1("MOBF: unable to show trader formspec") + end + end +end + +------------------------------------------------------------------------------- +-- name: get_entity(inv) +-- +--! @brief find entity linked to inventory +--! @ingroup mob_inventory +-- +--! @param inv name of inventory +------------------------------------------------------------------------------- +function mob_inventory.get_entity(inv) + dbg_mobf.trader_inv_lvl3("MOBF: checking " .. #mob_inventory.trader_inventories + .. " registred inventorys") + + local location = inv.get_location(inv) + + if location.type == "detached" then + for i=1,#mob_inventory.trader_inventories,1 do + dbg_mobf.trader_inv_lvl3("MOBF: comparing \"" .. location.name .. "\" to \"" + .. mob_inventory.trader_inventories[i].identifier .. "\"") + if mob_inventory.trader_inventories[i].identifier == location.name then + return mob_inventory.trader_inventories[i].ent_ref + end + end + end + + return nil +end + +------------------------------------------------------------------------------- +-- name: fill_prices(entity,inventory,goodname) +-- +--! @brief fill price fields +--! @ingroup mob_inventory +-- +--! @param entity to look for prices +--! @param inventory to set prices +--! @param goodname name of good to set prices for +--! @param count number of elements +------------------------------------------------------------------------------- +function mob_inventory.fill_prices(entity,inventory,goodname,count) + + --get price info from entity + local good = nil + + for i=1,#entity.data.trader_inventory.goods,1 do + local stackstring = goodname .." " .. count + dbg_mobf.trader_inv_lvl3("MOBF: comparing \"" .. stackstring .. "\" to \"" + .. entity.data.trader_inventory.goods[i][1] .. "\"") + if entity.data.trader_inventory.goods[i][1] == stackstring then + good = entity.data.trader_inventory.goods[i] + end + end + + if good ~= nil then + inventory.set_stack(inventory,"price_1", 1, good[2]) + inventory.set_stack(inventory,"price_2", 1, good[3]) + else + inventory.set_stack(inventory,"price_1", 1, nil) + inventory.set_stack(inventory,"price_2", 1, nil) + end +end + +------------------------------------------------------------------------------- +-- name: add_goods(entity,trader_inventory) +-- +--! @brief fill inventory with mobs goods +--! @ingroup mob_inventory +-- +--! @param entity to look for prices +--! @param trader_inventory to put goods +------------------------------------------------------------------------------- +function mob_inventory.add_goods(entity,trader_inventory) + dbg_mobf.trader_inv_lvl3("MOBF: adding " .. #entity.data.trader_inventory.goods + .. " goods for trader") + for i=1,#entity.data.trader_inventory.goods,1 do + dbg_mobf.trader_inv_lvl3("MOBF:\tadding " .. entity.data.trader_inventory.goods[i][1]) + trader_inventory.add_item(trader_inventory,"goods", + entity.data.trader_inventory.goods[i][1]) + end + +end + +--!@} \ No newline at end of file diff --git a/mods/mobf/mgen_follow/main_follow.lua b/mods/mobf/mgen_follow/main_follow.lua new file mode 100644 index 0000000..f02793d --- /dev/null +++ b/mods/mobf/mgen_follow/main_follow.lua @@ -0,0 +1,406 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file main_follow.lua +--! @brief component containing a targeted movement generator +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-09 +-- +--! @defgroup mgen_follow MGEN: follow movement generator +--! @brief A movement generator creating movement that trys to follow a moving +--! target or reach a given point on map +--! @ingroup framework_int +--! @{ +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +--! @class mgen_follow +--! @brief a movement generator trying to follow or reach a target +mgen_follow = {} + +--!@} + +--! @brief movement generator identifier +--! @memberof mgen_follow +mgen_follow.name = "follow_mov_gen" + +------------------------------------------------------------------------------- +-- name: identify_movement_state(ownpos,targetpos) +-- +--! @brief check what situation we are +--! @memberof mgen_follow +-- +--! @param ownpos position of entity +--! @param targetpos position of target +--! +--! @return "below_los" +--! "below_no_los" +--! "same_height_los" +--! "same_height_no_los" +--! "above_los" +--! "above_no_los" +--! "unknown" +------------------------------------------------------------------------------- +function mgen_follow.identify_movement_state(ownpos,targetpos) + local same_height_delta = 0.1 + + local los = mobf_line_of_sight(ownpos,targetpos) + + if ownpos.y > targetpos.y - same_height_delta and + ownpos.y < targetpos.y + same_height_delta then + + if los then + return "same_height_los" + else + return "same_height_no_los" + end + end + + if ownpos.y < targetpos.y then + if los then + return "below_los" + else + return "below_no_los" + end + end + + if ownpos.y > targetpos.y then + if los then + return "above_los" + else + return "above_no_los" + end + end + + return "unknown" +end + +------------------------------------------------------------------------------- +-- name: handleteleport(entity,now) +-- +--! @brief handle teleportsupport +--! @memberof mgen_follow +-- +--! @param entity mob to check for teleport +--! @param now current time +--! @param targetpos position of target +--! +--! @return true/false finish processing +------------------------------------------------------------------------------- +function mgen_follow.handleteleport(entity,now,targetpos) + + if (entity.dynamic_data.movement.last_next_to_target ~= nil ) then + local time_since_next_to_target = + now - entity.dynamic_data.movement.last_next_to_target + + dbg_mobf.fmovement_lvl3("MOBF: time since next to target: " .. time_since_next_to_target .. + " delay: " .. dump(entity.data.movement.teleportdelay) .. + " teleportsupport: " .. dump(entity.dynamic_data.movement.teleportsupport)) + + if (entity.dynamic_data.movement.teleportsupport) and + time_since_next_to_target > entity.data.movement.teleportdelay then + + entity.object:setvelocity({x=0,y=0,z=0}) + entity.object:setacceleration({x=0,y=0,z=0}) + entity.object:moveto(targetpos) + entity.dynamic_data.movement.last_next_to_target = now + return true + end + end + return false +end + +------------------------------------------------------------------------------- +-- name: callback(entity,now) +-- +--! @brief main callback to make a mob follow its target +--! @memberof mgen_follow +-- +--! @param entity mob to generate movement for +--! @param now current time +------------------------------------------------------------------------------- +function mgen_follow.callback(entity,now) + + dbg_mobf.fmovement_lvl3("MOBF: Follow mgen callback called") + + + + if entity == nil then + mobf_bug_warning(LOGLEVEL_ERROR,"MOBF BUG!!!: called movement gen without entity!") + return + end + + if entity.dynamic_data == nil or + entity.dynamic_data.movement == nil then + mobf_bug_warning(LOGLEVEL_ERROR,"MOBF BUG!!!: >" ..entity.data.name .. "< removed=" .. dump(entity.removed) .. " entity=" .. tostring(entity) .. " probab movement callback") + return + end + + local follow_speedup = 10 + + if entity.data.movement.follow_speedup ~= nil then + follow_speedup = entity.data.movement.follow_speedup + end + + --check max speed limit + mgen_follow.checkspeed(entity) + + + --check environment + local basepos = entity.getbasepos(entity) + local state = environment.pos_is_ok(basepos,entity) + + if state == "ok" then + local toset = { + x= basepos.x, + y= basepos.y - 0.5 - entity.collisionbox[2], + z= basepos.z } + --save known good position + entity.dynamic_data.movement.last_pos_in_env = toset + end + + if not environment.possible_pos(entity,basepos) or + state == "in_water" or + state == "above_water" or + state == "in_air" or + state == "drop_above_water" then + dbg_mobf.fmovement_lvl1("MOBF: followed to wrong place " .. state) + if entity.dynamic_data.movement.last_pos_in_env ~= nil then + entity.object:moveto(entity.dynamic_data.movement.last_pos_in_env) + basepos = entity.getbasepos(entity) + else + local newpos = environment.get_suitable_pos_same_level(basepos,1,entity,true) + + if newpos == nil then + spawning.remove(entity,"mgen_follow poscheck") + else + newpos.y = newpos.y - (entity.collisionbox[2] + 0.49) + entity.object:moveto(newpos) + basepos = entity.getbasepos(entity) + end + end + end + + if entity.dynamic_data.movement.target ~= nil or + entity.dynamic_data.movement.guardspawnpoint then + dbg_mobf.fmovement_lvl3("MOBF: Target available") + --calculate distance to target + local targetpos = entity.dynamic_data.spawning.spawnpoint + + + if entity.dynamic_data.movement.guardspawnpoint ~= true then + dbg_mobf.fmovement_lvl3("MOBF: moving target selected") + targetpos = entity.dynamic_data.movement.target:getpos() + end + + if targetpos == nil then + minetest.log(LOGLEVEL_ERROR,"MOBF: " .. entity.data.name + .. " don't have targetpos " + .. "SP: " .. dump(entity.dynamic_data.spawning.spawnpoint) + .. " TGT: " .. dump(entity.dynamic_data.movement.target)) + return + end + + local distance = mobf_calc_distance_2d(basepos,targetpos) + + local yaccel = environment.get_default_gravity(basepos, + entity.environment.media, + entity.data.movement.canfly) + dbg_mobf.fmovement_lvl3("MOBF: default gravity is " .. yaccel ) + + if mobf_line_of_sight({x=basepos.x,y=basepos.y+1,z=basepos.z}, + {x=targetpos.x,y=targetpos.y+1,z=targetpos.z}) == false then + dbg_mobf.fmovement_lvl3("MOBF: no line of sight") + --TODO teleport support? + --TODO other ways to handle this? + --return + end + dbg_mobf.fmovement_lvl3("MOBF: line of sight") + + local max_distance = entity.dynamic_data.movement.max_distance + + if max_distance == nil then + max_distance = 1 + end + + --check if mob needs to move towards target + dbg_mobf.fmovement_lvl3("MOBF: max distance is set to : " .. max_distance) + if distance > max_distance then + + if mgen_follow.handleteleport(entity,now,targetpos) then + return + end + + dbg_mobf.fmovement_lvl3("MOBF: distance:" .. distance) + + local current_state = mgen_follow.identify_movement_state(basepos,targetpos) + local handled = false + + if handled == false and + (current_state == "same_height_los" or + current_state == "above_los" or + current_state == "above_no_los" ) then + dbg_mobf.fmovement_lvl3("MOBF: \t Case 1: " .. current_state) + local accel_to_set = movement_generic.get_accel_to(targetpos,entity) + accel_to_set.y = yaccel + dbg_mobf.fmovement_lvl3("MOBF: setting acceleration to: " .. printpos(accel_to_set)); + mgen_follow.set_acceleration(entity,accel_to_set,follow_speedup) + + handled = true + end + + if handled == false and + (current_state == "below_los" or + current_state == "below_no_los" or + current_state == "same_height_no_los" ) then + dbg_mobf.fmovement_lvl3("MOBF: \t Case 2: " .. current_state) + local accel_to_set = movement_generic.get_accel_to(targetpos,entity) + accel_to_set.y = yaccel + + local current_velocity = entity.object:getvelocity() + local predicted_pos = movement_generic.predict_next_block(basepos,current_velocity,accel_to_set) + local pos_state = environment.pos_is_ok(predicted_pos,entity) + + if pos_state == "collision_jumpable" then + local pos_to_set = entity.object:getpos() + pos_to_set.y = pos_to_set.y + 1.1 + entity.object:moveto(pos_to_set) + end + dbg_mobf.fmovement_lvl3("MOBF: setting acceleration to: " + .. printpos(accel_to_set) .. " predicted_state: " + .. pos_state); + mgen_follow.set_acceleration(entity,accel_to_set,follow_speedup) + + handled = true + end + + if handled == false then + dbg_mobf.fmovement_lvl1("MOBF: \t Unexpected movement state: " .. current_state) + end + --nothing to do + else + dbg_mobf.fmovement_lvl3("MOBF: next to target") + entity.object:setvelocity({x=0,y=0,z=0}) + entity.object:setacceleration({x=0,y=0,z=0}) + entity.dynamic_data.movement.last_next_to_target = now + + + local dir = mobf_get_direction(basepos,targetpos) + --update mob orientation + if entity.mode == "3d" then + entity.object:setyaw(mobf_calc_yaw(dir.x,dir.z)) + else + entity.object:setyaw(mobf_calc_yaw(dir.x,dir.z)) + end + end + + else + --TODO evaluate if this is an error case + end +end + + +------------------------------------------------------------------------------- +-- name: initialize() +-- +--! @brief initialize movement generator +--! @memberof mgen_follow +--! @public +------------------------------------------------------------------------------- +function mgen_follow.initialize(entity,now) + --intentionally empty +end + +------------------------------------------------------------------------------- +-- name: init_dynamic_data(entity,now) +-- +--! @brief initialize dynamic data required by movement generator +--! @memberof mgen_follow +--! @public +-- +--! @param entity mob to initialize dynamic data +--! @param now current time +------------------------------------------------------------------------------- +function mgen_follow.init_dynamic_data(entity,now) + + local pos = entity.object:getpos() + + + local data = { + target = nil, + guardspawnpoint = false, + max_distance = entity.data.movement.max_distance, + orientation_fix_needed = true, + } + + if entity.data.movement.guardspawnpoint ~= nil and + entity.data.movement.guardspawnpoint then + dbg_mobf.fmovement_lvl3("MOBF: setting guard point to: " .. printpos(entity.dynamic_data.spawning.spawnpoint)) + data.guardspawnpoint = true + end + + if entity.data.movement.teleportdelay~= nil then + data.last_next_to_target = now + data.teleportsupport = true + end + + entity.dynamic_data.movement = data +end + +------------------------------------------------------------------------------- +-- name: checkspeed(entity) +-- +--! @brief check if mobs speed is within it's limits and correct if necessary +--! @memberof mgen_follow +--! @private +-- +--! @param entity mob to initialize dynamic data +------------------------------------------------------------------------------- +function mgen_follow.checkspeed(entity) + + local current_velocity = entity.object:getvelocity() + + local xzspeed = math.sqrt(math.pow(current_velocity.x,2)+ + math.pow(current_velocity.z,2)) + + if (xzspeed > entity.data.movement.max_speed) then + + --preserver orientation when correcting speed + local dir = mobf_calc_yaw(current_velocity.x,current_velocity.z) + local velocity_to_set = mobf_calc_vector_components(dir,entity.data.movement.max_speed * 0.25) + + velocity_to_set.y=current_velocity.y + + entity.object:setvelocity(velocity_to_set) + + return true + end + + return false +end + +------------------------------------------------------------------------------- +-- name: set_acceleration(entity,accel,speedup) +-- +--! @brief apply acceleration to entity +--! @memberof mgen_follow +--! @private +-- +--! @param entity mob to apply to +--! @param accel acceleration to set +--! @param speedup speedup factor +------------------------------------------------------------------------------- +function mgen_follow.set_acceleration(entity,accel,speedup) + entity.object:setacceleration({x=accel.x*speedup, + y=accel.y, + z=accel.z*speedup}) +end + + +--register this movement generator +registerMovementGen(mgen_follow.name,mgen_follow) \ No newline at end of file diff --git a/mods/mobf/mgen_jordan4ibanez/mgen_jordan4ibanez.lua b/mods/mobf/mgen_jordan4ibanez/mgen_jordan4ibanez.lua new file mode 100644 index 0000000..55b3132 --- /dev/null +++ b/mods/mobf/mgen_jordan4ibanez/mgen_jordan4ibanez.lua @@ -0,0 +1,139 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file main_follow.lua +--! @brief component containing a movement generator based uppon jordan4ibanez code +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-09 +-- +--! @defgroup mgen_jordan4ibanez MGEN: a velocity based movement generator +--! @brief A movement generator creating simple random movement +--! @ingroup framework_int +--! @{ +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +--! @class mgen_jordan4ibanez +--! @brief a movement generator trying to follow or reach a target +mgen_jordan4ibanez = {} +mgen_jordan4ibanez.chillaxin_speed = 0.1 +--!@} + +--! @brief movement generator identifier +--! @memberof mgen_jordan4ibanez +mgen_jordan4ibanez.name = "jordan4ibanez_mov_gen" + +------------------------------------------------------------------------------- +-- name: callback(entity,now) +-- +--! @brief main callback to make a mob follow its target +--! @memberof mgen_jordan4ibanez +-- +--! @param entity mob to generate movement for +--! @param now current time +------------------------------------------------------------------------------- +function mgen_jordan4ibanez.callback(entity,now) + + --update timers + entity.dynamic_data.movement.timer = entity.dynamic_data.movement.timer + 0.01 + entity.dynamic_data.movement.turn_timer = entity.dynamic_data.movement.turn_timer + 0.01 + entity.dynamic_data.movement.jump_timer = entity.dynamic_data.movement.jump_timer + 0.01 + entity.dynamic_data.movement.door_timer = entity.dynamic_data.movement.door_timer + 0.01 + + + if entity.dynamic_data.movement.direction ~= nil then + entity.object:setvelocity({x=entity.dynamic_data.movement.direction.x*mgen_jordan4ibanez.chillaxin_speed, + y=entity.object:getvelocity().y, + z=entity.dynamic_data.movement.direction.z*mgen_jordan4ibanez.chillaxin_speed}) + end + + if entity.dynamic_data.movement.turn_timer > math.random(1,4) then + entity.dynamic_data.movement.yaw = 360 * math.random() + entity.object:setyaw(entity.dynamic_data.movement.yaw) + entity.dynamic_data.movement.turn_timer = 0 + entity.dynamic_data.movement.direction = {x = math.sin(entity.dynamic_data.movement.yaw)*-1, + y = -10, + z = math.cos(entity.dynamic_data.movement.yaw)} + --entity.object:setvelocity({x=entity.dynamic_data.movement.direction.x,y=entity.object:getvelocity().y,z=entity.dynamic_data.movement.direction.z}) + --entity.object:setacceleration(entity.dynamic_data.movement.direction) + end + + --TODO update animation + + --open a door [alpha] + if entity.dynamic_data.movement.direction ~= nil then + if entity.dynamic_data.movement.door_timer > 2 then + local is_a_door = minetest.env:get_node({x=entity.object:getpos().x + entity.dynamic_data.movement.direction.x, + y=entity.object:getpos().y,z=entity.object:getpos(). + z + entity.dynamic_data.movement.direction.z}).name + if is_a_door == "doors:door_wood_t_1" then + minetest.env:punch_node({x=entity.object:getpos().x + entity.dynamic_data.movement.direction.x, + y=entity.object:getpos().y-1, + z=entity.object:getpos().z + entity.dynamic_data.movement.direction.z}) + entity.dynamic_data.movement.door_timer = 0 + end + local is_in_door = minetest.env:get_node(entity.object:getpos()).name + if is_in_door == "doors:door_wood_t_1" then + minetest.env:punch_node(entity.object:getpos()) + end + end + end + + --jump + if entity.dynamic_data.movement.direction ~= nil then + if entity.dynamic_data.movement.jump_timer > 0.3 then + if minetest.registered_nodes[minetest.env:get_node({x=entity.object:getpos().x + entity.dynamic_data.movement.direction.x, + y=entity.object:getpos().y-1, + z=entity.object:getpos().z + entity.dynamic_data.movement.direction.z}).name].walkable then + entity.object:setvelocity({x=entity.object:getvelocity().x,y=5,z=entity.object:getvelocity().z}) + entity.dynamic_data.movement.jump_timer = 0 + end + end + end + +end + +------------------------------------------------------------------------------- +-- name: initialize() +-- +--! @brief initialize movement generator +--! @memberof mgen_jordan4ibanez +--! @public +------------------------------------------------------------------------------- +function mgen_jordan4ibanez.initialize(entity,now) +--intentionaly doing nothing this function is for symmetry reasons only +end + +------------------------------------------------------------------------------- +-- name: init_dynamic_data(entity,now) +-- +--! @brief initialize dynamic data required by movement generator +--! @memberof mgen_jordan4ibanez +--! @public +-- +--! @param entity mob to initialize dynamic data +--! @param now current time +------------------------------------------------------------------------------- +function mgen_jordan4ibanez.init_dynamic_data(entity,now) + + local data = { + timer = 0, + turn_timer = 0, + jump_timer = 0, + door_timer = 0, + direction = nil, + yaw = nil, + orientation_fix_needed = false, + } + + entity.dynamic_data.movement = data +end + + +--register this movement generator +registerMovementGen(mgen_jordan4ibanez.name,mgen_jordan4ibanez) \ No newline at end of file diff --git a/mods/mobf/mgen_pathbased/path_based_movement_gen.lua b/mods/mobf/mgen_pathbased/path_based_movement_gen.lua new file mode 100644 index 0000000..6c6de94 --- /dev/null +++ b/mods/mobf/mgen_pathbased/path_based_movement_gen.lua @@ -0,0 +1,204 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file path_based_movement_gen.lua +--! @brief component containing a path based movement generator (NOT COMPLETED) +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-09 +-- +--! @defgroup mgen_path_based MGEN: Path based movement generator (NOT COMPLETED) +--! @ingroup framework_int +--! @{ +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +--! @class p_mov_gen +--! @brief a movement generator evaluating a path to a target and following it +p_mov_gen = {} + +--!@} + +--! @brief movement generator identifier +--! @memberof p_mov_gen +p_mov_gen.name = "mgen_path" + +------------------------------------------------------------------------------- +-- name: validate_position(current_pos,origin,destination) +-- +--! @brief check if current position is on movement path to destination +--! @memberof p_mov_gen +--! @private +-- +--! @param current_pos +--! @param origin of movement +--! @param destination of movement +------------------------------------------------------------------------------- +function p_mov_gen.validate_path_position(current_pos,origin,destination) + + + +end + +------------------------------------------------------------------------------- +-- name: validate_position(current_pos,origin,destination) +-- +--! @brief check if there's a direct path from pos1 to pos2 for this mob +--! @memberof p_mov_gen +--! @private +-- +-- param1: mob to check +-- param2: position1 +-- param3: position2 +-- retval: - +------------------------------------------------------------------------------- +function p_mov_gen.direct_path_available(entity,pos1,pos2) + + + +end + +------------------------------------------------------------------------------- +-- name: find_destination(entity,current_pos) +-- +--! @brief find a suitable destination for this mob +--! @memberof p_mov_gen +--! @private +-- +-- param1: mob to get destination for +-- param2: current position +-- retval: - +------------------------------------------------------------------------------- +function p_mov_gen.find_destination(entity,current_pos) + + --TODO +end + +------------------------------------------------------------------------------- +-- name: set_speed(entity,destination) +-- +--! brief set speed to destination for an mob +--! @memberof p_mov_gen +--! @private +-- +-- param1: mob to get destination for +-- param2: destination of mob +-- retval: - +------------------------------------------------------------------------------- +function p_mov_gen.set_speed(entity,destination) + + +end + +------------------------------------------------------------------------------- +-- name: fix_position(entity,current_pos) +-- +--! @brief check if mob is in a valid position and fix it if necessary +--! @memberof p_mov_gen +--! @private +-- +-- param1: mob to get destination for +-- param2: position of mob +-- retval: - +------------------------------------------------------------------------------- +function p_mov_gen.fix_position(entity,current_pos) + + +end + +------------------------------------------------------------------------------- +-- name: update_movement(entity,now) +-- +--! @brief check and update current movement state +--! @memberof p_mov_gen +--! @private +-- +-- param1: mob to move +-- param2: current time +-- retval: - +------------------------------------------------------------------------------- +function p_mov_gen.update_movement(entity,now) + + --position of base block (different from center for ground based mobs) + local pos = entity.getbasepos(entity) + local centerpos = entity.object:getpos() + + + --validate current position for mob + p_mov_gen.fix_position(entity,pos) + + --validate position is on path + if p_mov_gen.validate_path_position(pos, + entity.dynamic_data.p_movement.origin, + entity.dynamic_data.p_movement.destination) + == false then + + --validate target is reachable + if p_mov_gen.direct_path_available(entity,pos,entity.dynamic_data.p_movement.destination) then + + --set new direction to target + p_mov_gen.set_speed(entity,dynamic_data.p_movement.destination) + else -- get new destination + dynamic_data.p_movement.destination = p_mov_gen.find_destination(entity,pos) + + if dynamic_data.p_movement.destination ~= nil then + p_mov_gen.set_speed(entity,dynamic_data.p_movement.destination) + else + mobf_bug_warning(LOGLEVEL_ERROR,"MOBF: BUG !!! unable to find a destination for an mob!") + end + end + end +end + + +------------------------------------------------------------------------------- +-- name: callback(entity,now) +-- +--! @brief path based movement generator callback +--! @memberof p_mov_gen +-- +-- param1: mob to do movement +-- param2: current time +-- retval: - +------------------------------------------------------------------------------- +function p_mov_gen.callback(entity,now) + + -- mob is in movement do movement handling + if entity.dynamic_data.p_movement.in_movement then + p_mov_gen.update_movement(entity,now) + + else + -- calculate start movement chance + --TODO + end +end + + +------------------------------------------------------------------------------- +-- name: init_dynamic_data(entity,now) +-- +-- @brief initialize dynamic data required by movement generator +--! @memberof p_mov_gen +-- +-- param1: entity to initialize +-- param2: current time +-- retval: - +------------------------------------------------------------------------------- +function p_mov_gen.init_dynamic_data(entity,now) + + local pos = entity.object:getpos() + + local data = { + origin = pos, + targetlist = nil, + eta = nil, + last_move_stop = now, + in_movement = false + } + + entity.dynamic_data.p_movement = data +end \ No newline at end of file diff --git a/mods/mobf/mgen_probab/direction_control.lua b/mods/mobf/mgen_probab/direction_control.lua new file mode 100644 index 0000000..70587de --- /dev/null +++ b/mods/mobf/mgen_probab/direction_control.lua @@ -0,0 +1,359 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file direction_control.lua +--! @brief functions for direction control in probabilistic movement gen +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-09 +-- +--! @ingroup mgen_probab +--! @{ +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +--! @class direction_control +--! @brief functions for direction control in probabilistic movement gen +direction_control = {} +--!@} + +------------------------------------------------------------------------------- +-- name: changeaccel(pos,entity,velocity) +-- +--! @brief find a suitable new acceleration for mob +--! @memberof direction_control +--! @private +-- +--! @param pos current position +--! @param entity mob to get acceleration for +--! @param current_velocity current velocity +--! @return {{ x/y/z accel} + jump flag really? +------------------------------------------------------------------------------- +function direction_control.changeaccel(pos,entity,current_velocity) + + local new_accel = direction_control.get_random_acceleration(entity.data.movement.min_accel, + entity.data.movement.max_accel,entity.object:getyaw(),0) + + local pos_predicted = movement_generic.predict_next_block(pos,current_velocity,new_accel) + + local maxtries = 5 + + local state = environment.pos_is_ok(pos_predicted,entity) + + --below_limit and above_limit are ok too respective to movement handled by this component is xz only + while state ~= "ok" and + state == "above_limit" and + state == "below_limit"do + dbg_mobf.pmovement_lvl1("MOBF: predicted pos " .. printpos(pos_predicted) .. " isn't ok " .. maxtries .. " tries left, state: " .. state) + local done = false + + --don't loop forever get to save mode and try next time + if maxtries <= 0 then + dbg_mobf.pmovement_lvl1("MOBF: Aborting acceleration finding for this cycle due to max retries") + if state == "collision_jumpable" then + dbg_mobf.movement_lvl1("Returning "..printpos(new_accel).." as new accel as mob may jump") + return new_accel + end + + dbg_mobf.pmovement_lvl1("MOBF: Didn't find a suitable acceleration stopping movement: " .. entity.data.name .. printpos(pos)) + entity.object:setvelocity({x=0,y=0,z=0}) + entity.dynamic_data.movement.started = false + --don't slow down mob + return { x=0, + y=0, + z=0 } + end + + --in case mob is already at non perfect surface it's not that bad to get on it again + if not done and (state == "possible_surface") then + local current_state = environment.pos_is_ok(pos,entity) + local probab = math.random() + + if current_state == "wrong_surface" or + current_state == "possible_surface" then + if probab < 0.3 then + done = true + end + else + if probab < 0.05 then + done = true + end + end + end + + --first try to invert acceleration on collision +-- if not done and (state == "collision" or +-- state == "collision_jumpable") then +-- new_accel = { x= new_accel.x * -1, +-- y= new_accel.y, +-- z= new_accel.z * -1} + +-- pos_predicted = movement_generic.predict_next_block(pos,current_velocity,new_accel) +-- if environment.pos_is_ok(pos_predicted,entity) == "ok" then +-- done = true +-- end + +-- end + + --generic way to find new acceleration + if not done then + new_accel = direction_control.get_random_acceleration(entity.data.movement.min_accel, + entity.data.movement.max_accel,entity.object:getyaw(),1.57) + + pos_predicted = movement_generic.predict_next_block(pos,current_velocity,new_accel) + end + + state = environment.pos_is_ok(pos_predicted,entity) + maxtries = maxtries -1 + end + + return new_accel + +end + +------------------------------------------------------------------------------- +-- name: get_random_acceleration(minaccel,maxaccel,current_yaw, minrotation) +-- +--! @brief get a random x/z acceleration within a specified acceleration range +--! @memberof direction_control +--! @private +-- +--! @param minaccel minimum acceleration to use +--! @param maxaccel maximum acceleration +--! @param current_yaw current orientation of mob +--! @param minrotation minimum rotation to perform +--! @return x/y/z acceleration +------------------------------------------------------------------------------- +function direction_control.get_random_acceleration(minaccel,maxaccel,current_yaw, minrotation) + + local direction = 1 + if math.random() < 0.5 then + direction = -1 + end + + --calc random absolute value + local rand_accel = (math.random() * (maxaccel - minaccel)) + minaccel + + local orientation_delta = 0 + + --randomize direction + for i=0, 100 do + + if math.random() < 0.2 then + break + end + orientation_delta = orientation_delta +0.1 + end + + --calculate new acceleration + + + local new_direction = current_yaw + ((minrotation + orientation_delta) * direction) + + local new_accel = { + x = math.sin(new_direction) *rand_accel, + y = nil, + z = math.cos(new_direction) *rand_accel + } + + dbg_mobf.pmovement_lvl3(" new direction: " .. new_direction .. " old direction: " .. current_yaw .. " new accel: " .. printpos(new_accel)) + + return new_accel +end + + + +------------------------------------------------------------------------------- +-- name: precheck_movement(entity,movement_state) +-- +--! @brief check if x/z movement results in invalid position and change +-- movement if required +--! @memberof direction_control +-- +--! @param entity mob to generate movement +--! @param movement_state current state of movement +--! @param pos_predicted position mob will be next +--! @param pos_predicted_state suitability state of predicted position +--! @return movement_state is changed! +------------------------------------------------------------------------------- +function direction_control.precheck_movement(entity,movement_state,pos_predicted,pos_predicted_state) + + --next block mob is to be isn't a place where it can be so we need to change something + if pos_predicted_state ~= "ok" and + pos_predicted_state ~= "above_limit" and + pos_predicted_state ~= "below_limit" then + + -- mob would walk onto water + if movement_state.changed == false and + ( pos_predicted_state == "above_water" or + pos_predicted_state == "drop" or + pos_predicted_state == "drop_above_water") + then + dbg_mobf.pmovement_lvl1("MOBF: mob " .. entity.data.name .. " is going to walk on water or drop") + local new_pos = environment.get_suitable_pos_same_level(movement_state.basepos,1,entity) + + --try to find at least a possible position + if new_pos == nil then + dbg_mobf.pmovement_lvl1("MOBF: mob " .. entity.data.name .. " no prefect fitting position found") + new_pos = environment.get_suitable_pos_same_level(movement_state.basepos,1,entity,true) + end + + if new_pos ~= nil then + dbg_mobf.pmovement_lvl2("MOBF: redirecting to safe position .. " .. printpos(new_pos)) + movement_state.accel_to_set = movement_generic.get_accel_to(new_pos,entity) + pos_predicted = movement_generic.predict_next_block( movement_state.basepos, + movement_state.current_velocity, + movement_state.accel_to_set) + pos_predicted_state = environment.pos_is_ok({x=pos_predicted.x,y=pos_predicted.y+1,z=pos_predicted.z},entity) + for i=0,10,1 do + if pos_predicted_state == "ok" or + pos_predicted_state == "possible_surface" then + break + end + movement_state.accel_to_set = movement_generic.get_accel_to(new_pos,entity) + pos_predicted = movement_generic.predict_next_block( movement_state.basepos, + movement_state.current_velocity, + movement_state.accel_to_set) + pos_predicted_state = environment.pos_is_ok({x=pos_predicted.x,y=pos_predicted.y+1,z=pos_predicted.z},entity) + end + + if pos_predicted_state == "ok" or + pos_predicted_state == "possible_surface" then + dbg_mobf.pmovement_lvl1("MOBF: redirecting to safe position .. " .. printpos(new_pos) .. " failed!") + end + movement_state.changed = true + else + local current_state = environment.pos_is_ok(movement_state.basepos,entity) + + --animal is safe atm stop it to avoid doing silly things + if current_state == "ok" or + current_state == "possible_surface" then + entity.object:setvelocity({x=0,y=0,z=0}) + movement_state.accel_to_set = {x=0,y=nil,z=0} + movement_state.changed = true + dbg_mobf.pmovement_lvl2("MOBF: couldn't find acceleration but mob is safe where it is") + else + --apply random acceleration to avoid permanent stuck mobs maybe mobs should be deleted instead + movement_state.accel_to_set = direction_control.get_random_acceleration(entity.data.movement.min_accel, + entity.data.movement.max_accel,entity.object:getyaw(),0) + movement_state.changed = true + dbg_mobf.pmovement_lvl2("MOBF: couldn't find acceleration mob ain't safe either, just move on with random movement") + end + end + end + + if movement_state.changed == false and pos_predicted_state == "collision_jumpable" then + dbg_mobf.movement_lvl1("mob is about to collide") + if environment.pos_is_ok({x=pos_predicted.x,y=pos_predicted.y+1,z=pos_predicted.z},entity) == "ok" then + if math.random() < ( entity.dynamic_data.movement.mpattern.jump_up * PER_SECOND_CORRECTION_FACTOR) then + local node_at_predicted_pos = minetest.env:get_node(pos_predicted) + dbg_mobf.pmovement_lvl2("MOBF: velocity is:" .. printpos(movement_state.current_velocity) .. " position is: "..printpos(pos) ) + dbg_mobf.pmovement_lvl2("MOBF: estimated position was: "..printpos(pos_predicted)) + dbg_mobf.pmovement_lvl2("MOBF: predicted node state is: " .. environment.pos_is_ok(pos_predicted,entity)) + --if node_at_predicted_pos ~= nil then + --dbg_mobf.movement_lvl1("MOBF: jumping onto: " .. node_at_predicted_pos.name) + --end + movement_state.accel_to_set = { x=0,y=nil,z=0 } + movement_state.changed = true + + --todo check if y pos is ok?! + local jumppos = {x=pos_predicted.x,y=movement_state.centerpos.y+1,z=pos_predicted.z} + + dbg_mobf.pmovement_lvl2("MOBF: mob " ..entity.data.name .. " is jumping, moving to:" .. printpos(jumppos)) + dbg_mobf.pmovement_lvl2("MOBF: target pos node state is: " .. environment.pos_is_ok(jumppos,entity)) + + entity.object:moveto(jumppos) + --TODO set movement state positions + --movement_state.basepos= + --movement_state.centerpos= + end + end + end + + --redirect mob to block thats not above its current level + --or jump if possible + if movement_state.changed == false and pos_predicted_state == "collision" then + dbg_mobf.pmovement_lvl1("MOBF: mob is about to collide") + + local new_pos = environment.get_suitable_pos_same_level(movement_state.basepos,1,entity) + + --there is at least one direction to go + if new_pos ~= nil then + movement_state.accel_to_set = movement_generic.get_accel_to(new_pos,entity) + movement_state.changed = true + + else + local jumppos = nil + --there ain't any acceptable pos at same level try to find one above current position + new_pos = environment.get_suitable_pos_same_level({ x=movement_state.basepos.x, + y=movement_state.basepos.y+1, + z=movement_state.basepos.z}, + 1,entity) + + if new_pos ~= nil then + jumppos = {x=new_pos.x,y=movement_state.centerpos.y+1,z=new_pos.z} + end + + --there ain't any acceptable pos at same level try to find one below current position + new_pos = environment.get_suitable_pos_same_level({ x=movement_state.basepos.x, + y=movement_state.basepos.y-1, + z=movement_state.basepos.z}, + 1,entity) + + if new_pos ~= nil then + jumppos = {x=new_pos.x,y=movement_state.centerpos.y-1,z=new_pos.z} + end + + + if jumppos ~= nil then + dbg_mobf.pmovement_lvl2("MOBF: mob " ..entity.data.name .. " seems to be locked in, moving to:" .. printpos(jumppos)) + entity.object:moveto(jumppos) + + movement_state.accel_to_set = { x=0,y=nil,z=0 } + movement_state.changed = true + end + end + end + + --generic try to solve situation eg wrong surface + if movement_state.changed == false then + dbg_mobf.pmovement_lvl1("MOBF: generic try to resolve state " .. pos_predicted_state .. " for mob " .. entity.data.name .. " "..printpos(movement_state.basepos)) + movement_state.accel_to_set = direction_control.changeaccel(movement_state.basepos, + entity,movement_state.current_velocity) + if movement_state.accel_to_set ~= nil then + movement_state.changed = true + end + end + end +end + +------------------------------------------------------------------------------- +-- name: random_movement_handler(entity,movement_state) +-- +--! @brief generate a random y-movement +--! @memberof direction_control +-- +--! @param entity mob to apply random jump +--! @param movement_state current movement state +--! @return movement_state is modified! +------------------------------------------------------------------------------- +function direction_control.random_movement_handler(entity,movement_state) + dbg_mobf.pmovement_lvl1("MOBF: random movement handler called") + if movement_state.changed == false and + (math.random() < (entity.dynamic_data.movement.mpattern.random_acceleration_change * PER_SECOND_CORRECTION_FACTOR) or + movement_state.force_change) then + + movement_state.accel_to_set = direction_control.changeaccel(movement_state.basepos, + entity,movement_state.current_velocity) + if movement_state.accel_to_set ~= nil then + --retain current y acceleration + movement_state.accel_to_set.y = movement_state.current_acceleration.y + movement_state.changed = true + end + dbg_mobf.pmovement_lvl1("MOBF: randomly changing speed from "..printpos(movement_state.current_acceleration).." to "..printpos(movement_state.accel_to_set)) + end +end \ No newline at end of file diff --git a/mods/mobf/mgen_probab/height_level_control.lua b/mods/mobf/mgen_probab/height_level_control.lua new file mode 100644 index 0000000..7dad707 --- /dev/null +++ b/mods/mobf/mgen_probab/height_level_control.lua @@ -0,0 +1,291 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file height_level_control.lua +--! @brief component containing random drop features +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-09 +-- +--! @ingroup mgen_probab +--! @{ +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +--! @class height_level_control +--! @brief class containing height level functionality +height_level_control = {} + + +--!@} + +------------------------------------------------------------------------------- +-- name: calc_level_change_time(entity) +-- +--! @brief calculate time required to change one height level +--! @memberof height_level_control +--! @private +-- +--! @param entity mob to calculate change time +--! @param default_accel default accel for mob +--! @return time in seconds +------------------------------------------------------------------------------- +function height_level_control.calc_level_change_time(entity,default_accel) + local retval = 1 --default value + + --calculate a reasonable value to stop level change + if entity.data.movement.canfly == nil or + entity.data.movement.canfly == false then --case mob can't fly + return 0 + else + -- if it's a flying mob and left it's normal medium + if default_accel ~= 0 then + retval = 0 + else + retval = math.sqrt(2/entity.data.movement.min_accel) + end + end + + return retval +end + +------------------------------------------------------------------------------- +-- name: precheck_movement(entity,movement_state,pos_predicted,pos_predicted_state) +-- +--! @brief check if there is a level change in progress that may +-- need to be stopped +--! @memberof height_level_control +-- +--! @param entity mob to check for level change +--! @param movement_state current state of movement +--! @param pos_predicted position the mob will be next +--! @param pos_predicted_state state of the next position +------------------------------------------------------------------------------- +function height_level_control.precheck_movement(entity,movement_state,pos_predicted,pos_predicted_state) + + if entity.data.movement.canfly ~= nil and + entity.data.movement.canfly == true and + entity.dynamic_data.movement.changing_levels == true then + + local level_change_time = height_level_control.calc_level_change_time(entity,movement_state.default_y_accel) + + local time_completed = entity.dynamic_data.movement.ts_random_jump + level_change_time + + dbg_mobf.pmovement_lvl1("MOBF: ".. movement_state.now .. " " .. entity.data.name .. + " check complete level change " .. time_completed) + + if entity.dynamic_data.movement.changing_levels and + time_completed < movement_state.now then + + dbg_mobf.pmovement_lvl2("MOBF: ".. movement_state.now .. " " .. entity.data.name .. + " level change complete reestablishing default y acceleration " .. movement_state.default_y_accel) + entity.dynamic_data.movement.changing_levels = false + + movement_state.current_velocity.y = 0 + entity.object:setvelocity(movement_state.current_velocity) + + movement_state.accel_to_set = movement_state.current_acceleration + movement_state.accel_to_set.y = movement_state.default_y_accel + movement_state.changed = true + end + end + + --mob would fly/swim into height it shouldn't be + if movement_state.changed == false then + local invalid_pos_handled = false + + --mob would fly/swim into height it shouldn't be + if invalid_pos_handled == false and + pos_predicted_state == "above_limit" then + + local min_y,max_y = environment.get_absolute_min_max_pos(entity.environment,movement_state.basepos) + + if (pos_predicted.y - max_y) > 10 then + movement_state.override_height_change_chance = 1 + else + movement_state.override_height_change_chance = (pos_predicted.y - max_y)/10 + end + + invalid_pos_handled = true + end + + --mob would fly/swim into height it shouldn't be + if invalid_pos_handled == false and + pos_predicted_state == "below_limit" then + + local min_y,max_y = environment.get_absolute_min_max_pos(entity.environment,movement_state.basepos) + + if (min_y - pos_predicted.y) > 10 then + movement_state.override_height_change_chance = 1 + else + movement_state.override_height_change_chance = (min_y - pos_predicted.y)/10 + end + end + end +end + +------------------------------------------------------------------------------- +-- name: random_jump_fly(entity,movement_state) +-- +--! @brief apply random jump for flying mobs +--! @memberof height_level_control +--! @private +-- +--! @param entity mob to apply random jump +--! @param movement_state current movement state +--! @return movement_state is modified! +------------------------------------------------------------------------------- +function height_level_control.random_jump_fly(entity,movement_state) + + --get some information + local accel_to_set = movement_state.current_acceleration + local current_state = environment.pos_is_ok(movement_state.basepos,entity) + + --find direction + local ydirection = 1 + + if current_state == "ok" then + if math.random() <= 0.5 then + ydirection = -1 + end + end + + if current_state == "above_limit" then + ydirection = -1 + end + + --state "below_limit" is already handled by initialization value + + + --prepare basic information about what may be afterwards + local targetpos = {x=movement_state.basepos.x,y=movement_state.basepos.y+ydirection,z=movement_state.basepos.z} + local target_state = environment.pos_is_ok(targetpos,entity); + + dbg_mobf.pmovement_lvl2("MOBF: " .. entity.data.name .." flying change y accel dir="..ydirection.." ypos="..movement_state.basepos.y.. + " min="..entity.environment.min_height_above_ground.. + " max="..entity.environment.max_height_above_ground.. + " below="..target_state) + + --really do level change + if (target_state == "ok") or + target_state == current_state then + + local min_y, max_y = environment.get_absolute_min_max_pos(entity.environment,movement_state.basepos) + + dbg_mobf.pmovement_lvl2("MOBF: check level borders current=".. movement_state.basepos.y .. + " min=" .. min_y .. + " max=" .. max_y) + + movement_state.accel_to_set.y = ydirection * entity.data.movement.min_accel + entity.dynamic_data.movement.ts_random_jump = movement_state.now + entity.dynamic_data.movement.changing_levels = true + dbg_mobf.pmovement_lvl2("MOBF: " .. entity.data.name .. " " .. movement_state.now .. " " .. + " changing level within borders: " .. movement_state.accel_to_set.y) + movement_state.changed = true + end + +end + +------------------------------------------------------------------------------- +-- name: random_jump_ground(entity,movement_state) +-- +--! @brief apply random jump for ground mobs +--! @memberof height_level_control +--! @private +-- +--! @param entity mob to apply random jump +--! @param movement_state current movement state +--! @return movement_state is a modification! +------------------------------------------------------------------------------- +function height_level_control.random_jump_ground(entity,movement_state) + + if movement_state.default_y_accel == 0 then + minetest.log(LOGLEVEL_ERROR,"MOBF BUG!!! ground mob can't have zero default acceleration!!!") + end + + local random_jump_time = 2 * (entity.dynamic_data.movement.mpattern.random_jump_initial_speed / + math.abs(movement_state.default_y_accel)) + + local next_jump = entity.dynamic_data.movement.ts_random_jump + + entity.dynamic_data.movement.mpattern.random_jump_delay + + random_jump_time + + dbg_mobf.movement_lvl2("MOBF: now=" .. movement_state.now .. " time of next jump=" .. next_jump .. + " | " .. random_jump_time .. " " .. entity.dynamic_data.movement.mpattern.random_jump_delay .. " " .. + entity.dynamic_data.movement.ts_random_jump .. " " .. movement_state.default_y_accel .. " " .. + entity.dynamic_data.movement.mpattern.random_jump_initial_speed) + + if movement_state.now > next_jump then + + local ground_distance = mobf_ground_distance(movement_state.basepos) + + + --we shouldn't be moving in y direction at that time so probably we are just dropping + --we can only jump while on solid ground! + if ground_distance <= 1 then + + local current_speed = entity.object:getvelocity(); + + dbg_mobf.pmovement_lvl2("MOBF: " .. entity.data.name .." doing random jump ".. + "speed: " .. entity.dynamic_data.movement.mpattern.random_jump_initial_speed .. + ": ",entity) + + current_speed.y = entity.dynamic_data.movement.mpattern.random_jump_initial_speed + + entity.object:setvelocity(current_speed) + + entity.dynamic_data.movement.ts_random_jump = movement_state.now + else + dbg_mobf.pmovement_lvl2("MOBF: " .. entity.data.name .. " Random jump but ground distance was:" .. ground_distance .. + " " ..movement_state.current_acceleration.y .. + " " ..movement_state.default_y_accel) + + --this is a workaround for a bug + --setting y acceleration to 0 for ground born mobs shouldn't be possible + if movement_state.current_acceleration.y == 0 then + movement_state.accel_to_set.x = movement_state.current_acceleration.x + movement_state.accel_to_set.y = movement_state.default_y_accel + movement_state.accel_to_set.z = movement_state.current_acceleration.z + movement_state.changed = true + end + end + end +end + +------------------------------------------------------------------------------- +-- name: random_movement_handler(entity,movement_state) +-- +--! @brief generate a random y-movement +--! @memberof height_level_control +-- +--! @param entity mob to apply random jump +--! @param movement_state current movement state +--! @return movement_state is a modified! +------------------------------------------------------------------------------- +function height_level_control.random_movement_handler(entity,movement_state) + --generate random y movement changes + if movement_state.changed == false and + entity.dynamic_data.movement.changing_levels == false and + (math.random() < entity.dynamic_data.movement.mpattern.random_jump_chance or + math.random() < movement_state.override_height_change_chance) then + + dbg_mobf.pmovement_lvl1("MOBF: Random jump chance for mob " .. entity.data.name .. " ".. + entity.dynamic_data.movement.ts_random_jump .. " ".. + entity.dynamic_data.movement.mpattern.random_jump_delay .. " " .. movement_state.now + ) + + local to_set + --flying/swiming mobs do level change on random jump chance + if entity.data.movement.canfly then + + height_level_control.random_jump_fly(entity,movement_state) + --ground mobs + else + height_level_control.random_jump_ground(entity,movement_state) + end + end +end diff --git a/mods/mobf/mgen_probab/main_probab.lua b/mods/mobf/mgen_probab/main_probab.lua new file mode 100644 index 0000000..419cbeb --- /dev/null +++ b/mods/mobf/mgen_probab/main_probab.lua @@ -0,0 +1,572 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file main_probab.lua +--! @brief component containing a probabilistic movement generator +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-09 +-- +-- +--! @defgroup mgen_probab MGEN: probabilistic movement generator +--! @brief A movement generator trying to create a random movement +--! @ingroup framework_int +--! @{ +-- +--! @defgroup mpatterns Movement patterns +--! @brief movement patterns used for probabilistic movement gen +-- +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + + +--factor used to adjust chances defined as x/per second to on_step frequency +PER_SECOND_CORRECTION_FACTOR = 0.25 + +--! @class movement_gen +--! @brief a probabilistic movement generator +movement_gen = {} + +--! @brief movement patterns known to probabilistic movement gen +mov_patterns_defined = {} + +--!@} + +dofile (mobf_modpath .. "/mgen_probab/movement_patterns/dont_move.lua") +dofile (mobf_modpath .. "/mgen_probab/movement_patterns/run_and_jump_low.lua") +dofile (mobf_modpath .. "/mgen_probab/movement_patterns/stop_and_go.lua") +dofile (mobf_modpath .. "/mgen_probab/movement_patterns/swim_pattern1.lua") +dofile (mobf_modpath .. "/mgen_probab/movement_patterns/swim_pattern2.lua") +dofile (mobf_modpath .. "/mgen_probab/movement_patterns/flight_pattern1.lua") + +dofile (mobf_modpath .. "/mgen_probab/height_level_control.lua") +dofile (mobf_modpath .. "/mgen_probab/direction_control.lua") + +--! @brief movement generator identifier +--! @memberof movement_gen +movement_gen.name = "probab_mov_gen" + +------------------------------------------------------------------------------- +-- name: register_pattern(pattern) +-- +--! @brief initialize movement generator +--! @memberof movement_gen +-- +--! @param pattern pattern to register +--! @return true/false +------------------------------------------------------------------------------- +function movement_gen.register_pattern(pattern) + print ("\tregistering pattern "..pattern.name) + if mobf_rtd.movement_patterns[pattern.name] == nil then + mobf_rtd.movement_patterns[pattern.name] = pattern + return true + else + return false + end +end + + +------------------------------------------------------------------------------- +-- name: initialize(entity) +-- +--! @brief initialize movement generator +--! @memberof movement_gen +-- +------------------------------------------------------------------------------- +function movement_gen.initialize() + for index,value in ipairs(mov_patterns_defined) do + movement_gen.register_pattern(value) + end +end + +------------------------------------------------------------------------------- +-- name: callback(entity) +-- +--! @brief main movement generation function +--! @memberof movement_gen +--! @private +-- +--! @param entity mob to generate movement for +------------------------------------------------------------------------------- +function movement_gen.callback(entity) + + if entity == nil then + mobf_bug_warning(LOGLEVEL_ERROR,"MOBF BUG!!!: called movement gen without entity!") + return + end + + if entity.dynamic_data == nil or + entity.dynamic_data.movement == nil then + mobf_bug_warning(LOGLEVEL_ERROR,"MOBF BUG!!!: >" ..entity.data.name .. "< removed=" .. dump(entity.removed) .. " entity=" .. tostring(entity) .. " probab movement callback") + return + end + + --initialize status datastructure + local movement_state = { + basepos = entity.getbasepos(entity), + default_y_accel = nil, + centerpos = entity.object:getpos(), + current_acceleration = nil, + current_velocity = entity.object:getvelocity(), + now = nil, + + override_height_change_chance = 0, + accel_to_set = nil, + force_change = false, + changed = false, + } + + + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + -- -- + -- CHECK MOB POSITION -- + -- -- + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + dbg_mobf.pmovement_lvl1("MOBF: position check for mob ".. entity.data.name .. " "..printpos(movement_state.basepos)) + movement_state.default_y_accel = environment.get_default_gravity(movement_state.basepos, + entity.environment.media, + entity.data.movement.canfly) + mobf_assert_backtrace(movement_state.default_y_accel ~= nil) + movement_state.now = mobf_get_current_time() + + + --check current position + --movement state is modified by this function + local retval = movement_gen.fix_current_pos(entity, movement_state) + + --mob has been removed due to unfixable problems + if retval.abort_processing then + return + end + + --read additional information required for further processing + movement_state.current_acceleration = entity.object:getacceleration() + + if movement_state.changed then + minetest.log(LOGLEVEL_WARNING,"MOBF:position got fixed ".. entity.data.name) + end + + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + -- -- + -- CHECK MOB MOVEMENT ITSELF -- + -- -- + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + dbg_mobf.pmovement_lvl1("MOBF: movement hard limits check for mob ".. entity.data.name .. " "..printpos(movement_state.basepos)) + + movement_gen.fix_runaway(entity,movement_state) + movement_gen.fix_to_slow(entity,movement_state) + + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + -- -- + -- DO / PREPARE CHANGES THAT NEED TO BE DONE BECAUSE OF MOB IS -- + -- PREDICTED TO BE SOMEWHERE WHERE IT SHOULDN'T BE -- + -- -- + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + dbg_mobf.pmovement_lvl1("MOBF: movement check for mob ".. entity.data.name .. " "..printpos(movement_state.basepos)) + + --skip if movement already got changed + if movement_state.changed == false then + --predict next block mob will be + local pos_predicted = movement_generic.predict_next_block( movement_state.basepos, + movement_state.current_velocity, + movement_state.current_acceleration) + + local pos_predicted_state = environment.pos_is_ok(pos_predicted,entity) + dbg_mobf.pmovement_lvl3("MOBF: Pos predicted state ".. entity.data.name .. ": " .. pos_predicted_state) + -- Y-Movement + if movement_state.changed == false then + height_level_control.precheck_movement(entity,movement_state,pos_predicted,pos_predicted_state) + end + + -- X/Z-Movement + if movement_state.changed == false then + direction_control.precheck_movement(entity,movement_state,pos_predicted,pos_predicted_state) + end + + end + + + + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + -- -- + -- DO RANDOM CHANGES TO MOB MOVEMENT -- + -- -- + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + dbg_mobf.pmovement_lvl1("MOBF: randomized movement for mob ".. entity.data.name .. " "..printpos(movement_state.basepos)) + + --do randomized changes if not fighting + height_level_control.random_movement_handler(entity,movement_state) + direction_control.random_movement_handler(entity,movement_state) + + + + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + -- -- + -- APPLY CHANGES CALCULATED BEFORE -- + -- -- + --------------------------------------------------------------------------- + --------------------------------------------------------------------------- + movement_gen.apply_movement_changes(entity,movement_state) +end + + +------------------------------------------------------------------------------- +-- name: apply_movement_changes(entity,movement_state) +-- +--! @brief check and apply the changes from movement_state +--! @memberof movement_gen +--! @private +-- +--! @param entity mob to apply changes +--! @param movement_state changes to apply +------------------------------------------------------------------------------- +function movement_gen.apply_movement_changes(entity,movement_state) + if movement_state.changed then + + --check if there is a acceleration to set + if movement_state.accel_to_set == nil then + movement_state.accel_to_set = {x=0, + y=movement_state.default_y_accel, + z=0} + entity.object:setvelocity({x=0,y=0,z=0}) + minetest.log(LOGLEVEL_ERROR,"MOBF BUG!!!! set accel requested but no accel given!") + end + + --check if gravity is set + if movement_state.accel_to_set.y == nil then + + --print("fixing y movement: ".. printpos(movement_state.accel_to_set)) + movement_state.accel_to_set.y = movement_state.current_acceleration.y + end + + -- make sure non flying mobs have default acceleration + if entity.data.movement.canfly == false then + movement_state.accel_to_set.y = movement_state.default_y_accel + + if movement_state.default_y_accel == 0 then + minetest.log(LOGLEVEL_ERROR,"MOBF BUG!!! " .. entity.data.name .. " mob that can't fly has acceleration 0!") + end + end + + dbg_mobf.pmovement_lvl1("MOBF: setting acceleration to " ..printpos(movement_state.accel_to_set) ) + entity.dynamic_data.movement.acceleration = movement_state.accel_to_set + entity.object:setacceleration(movement_state.accel_to_set) + end +end + +------------------------------------------------------------------------------- +-- name: init_dynamic_data(entity,now) +-- +--! @brief initialize dynamic data required by movement generator +--! @memberof movement_gen +-- +--! @param entity mob to initialize +--! @param now current time +------------------------------------------------------------------------------- +function movement_gen.init_dynamic_data(entity,now) + + local accel_to_set = {x=0,y=9.81,z=0} + local pos = entity.object:getpos() + + --initialize acceleration values + accel_to_set.y = environment.get_default_gravity(pos, + entity.environment.media, + entity.data.movement.canfly) + + mobf_assert_backtrace(accel_to_set.y ~= nil) + + local data = { + started = false, + acceleration = accel_to_set, + changing_levels = false, + ts_random_jump = now, + ts_orientation_upd = now, + mpattern = mobf_rtd.movement_patterns[entity.data.movement.pattern], + orientation_fix_needed = true, + } + + entity.dynamic_data.movement = data +end + +------------------------------------------------------------------------------- +-- name: fix_runaway(entity,movement_state) +-- +--! @brief fix runaway speed mobs +--! @memberof movement_gen +--! @private +-- +--! @param entity mob to check speed limits +--! @param movement_state current state of movement +------------------------------------------------------------------------------- +function movement_gen.fix_runaway(entity,movement_state) + --avoid mobs racing away + local xzspeed = math.sqrt(math.pow(movement_state.current_velocity.x,2)+ + math.pow(movement_state.current_velocity.z,2)) + dbg_mobf.pmovement_lvl3("MOBF: checkrunaway x=" .. movement_state.current_velocity.x .. + " z=" ..movement_state.current_velocity.z .. + " xz=" .. xzspeed .. + " maximum=" .. entity.data.movement.max_speed) + + if xzspeed > entity.data.movement.max_speed then + dbg_mobf.pmovement_lvl3("MOBF: too fast! vxz=" .. xzspeed) + dbg_mobf.pmovement_lvl3("MOBF: current acceleration:" .. printpos(movement_state.current_acceleration)) + local newaccel = {x=0,y=movement_state.current_acceleration.y,z=0} + + --calculate sign of acceleration + if movement_state.current_velocity.x > 0 and + movement_state.current_acceleration.x >= 0 then + newaccel.x = entity.data.movement.max_accel * -1 + else + newaccel.x = entity.data.movement.max_accel + end + + if movement_state.current_velocity.z > 0 and + movement_state.current_acceleration.z >= 0 then + newaccel.z = entity.data.movement.max_accel * -1 + else + newaccel.z = entity.data.movement.max_accel + end + + --calculate relative partition of acceleration based on velocity + if movement_state.current_velocity.x > 0 and + movement_state.current_velocity.z > 0 then + newaccel.x = newaccel.x * movement_state.current_velocity.x / + (movement_state.current_velocity.x+movement_state.current_velocity.z) + newaccel.z = newaccel.z * movement_state.current_velocity.z / + (movement_state.current_velocity.x+movement_state.current_velocity.z) + end + + dbg_mobf.pmovement_lvl3("MOBF: fixed acceleration:" .. printpos(newaccel)) + --set acceleration based on min acceleration + movement_state.accel_to_set = newaccel + movement_state.changed = true + end +end + +------------------------------------------------------------------------------- +-- name: fix_to_slow(entity,movement_state) +-- +--! @brief check if mobs motion is below its minimal speed (e.g. flying birds) +--! @memberof movement_gen +--! @private +-- +--! @param entity mob to check speed limits +--! @param movement_state current state of movement +------------------------------------------------------------------------------- +function movement_gen.fix_to_slow(entity,movement_state) + local xzspeed = math.sqrt(math.pow(movement_state.current_velocity.x,2) + + math.pow(movement_state.current_velocity.z,2) ) + + dbg_mobf.pmovement_lvl3("MOBF: checktoslow x=" .. movement_state.current_velocity.x .. + " z=" ..movement_state.current_velocity.z .. + " xz=" .. xzspeed .. + " minimum=" .. dump(entity.data.movement.min_speed)) + + --this ain't perfect to avoid flying mobs standing in air + --but it's a quick solution to fix most of the problems + if entity.data.movement.min_speed ~= nil and + xzspeed < entity.data.movement.min_speed then + + dbg_mobf.pmovement_lvl3("MOBF: too slow! vxz=" .. xzspeed) + --use normal speed change handling + movement_state.force_change = true + end +end + +------------------------------------------------------------------------------- +-- name: fix_current_pos(entity,movement_state) +-- +--! @brief check current position for validity and try to fix +--! @memberof movement_gen +--! @private +-- +--! @param entity to fix position +--! @param movement_state movement state of mob +--! @return { speed_to_set = {x,y,z}, speed_changed = true/false, force_speed_change = true/false } +------------------------------------------------------------------------------- +function movement_gen.fix_current_pos(entity,movement_state) + + --check if current pos is ok + local current_state = environment.pos_is_ok(movement_state.basepos,entity) + local handled = false + + dbg_mobf.pmovement_lvl3("MOBF: current state ".. entity.data.name .. ": " .. current_state) + + movement_state.accel_to_set = { x=0, + y=movement_state.default_y_accel, + z=0 } + + local abort_processing = false + + if current_state == "ok" or + current_state == "possible_surface" then + entity.dynamic_data.movement.last_pos_in_env = movement_state.centerpos + handled = true + end + + --states ok drop and wrong_surface don't require an imediate action + if current_state ~= "ok" and + current_state ~= "drop" and + current_state ~= "wrong_surface" and + current_state ~= "possible_surface" and + current_state ~= "below_limit" and + current_state ~= "above_limit" then + dbg_mobf.movement_lvl1("MOBF: BUG !!! somehow your mob managed to get where it shouldn't be, trying to fix") + + --stop mob from moving at all + entity.object:setacceleration({x=0,y=movement_state.default_y_accel,z=0}) + movement_state.force_change = true + + --mob is currently in whater try to find a suitable position 1 level above current level + if current_state == "in_water" or + current_state == "above_water" then + + local targetpos = nil + + --if we don't have an old pos or old pos is to far away try to finde another good pos around + if entity.dynamic_data.movement.last_pos_in_env == nil or + entity.dynamic_data.movement.last_pos_in_env.y > movement_state.centerpos.y + 2 then + targetpos = environment.get_suitable_pos_same_level({x=movement_state.basepos.x, + y=movement_state.basepos.y+1, + z=movement_state.basepos.z}, + 1, + entity) + if targetpos ~= nil then + targetpos.y = targetpos.y - entity.collisionbox[2] + end + else + targetpos = entity.dynamic_data.movement.last_pos_in_env + end + + if targetpos ~= nil then + mobf_bug_warning(LOGLEVEL_INFO,"MOBF: BUG !!! didn't find a way out of water, for mob at: " .. printpos(movement_state.basepos) .. " using last known good position") + + if targetpos == nil then + targetpos = entity.dynamic_data.movement.last_pos_in_env + else + targetpos.y = targetpos.y+1 --TODO use collision box + end + + minetest.log(LOGLEVEL_WARNING,"MOBF: Your mob " .. tostring(entity) .. " dropt into water moving to ".. + printpos(targetpos).." state: ".. + environment.pos_is_ok(targetpos,entity)) + entity.object:moveto(targetpos) + movement_state.current_velocity.x = movement_state.current_velocity.x/10 + movement_state.current_velocity.z = movement_state.current_velocity.z/10 + entity.object:setvelocity(movement_state.current_velocity) + movement_state.centerpos = targetpos + movement_state.basepos = entity.getbasepos(entity) + movement_state.accel_to_set.y = environment.get_default_gravity(targetpos, + entity.environment.media, + entity.data.movement.canfly) + mobf_assert_backtrace(movement_state.accel_to_set.y ~= nil) + else + mobf_bug_warning(LOGLEVEL_WARNING,"MOBF: BUG !!! didn't find a way out of water, for mob at: " .. printpos(movement_state.basepos) .. " drowning " .. dump(entity.dynamic_data.movement.last_pos_in_env)) + abort_processing = true + spawning.remove(entity, "mgen probab watercheck") + end + + handled = true + end + + if current_state == "in_air" then + --TODO die? + handled = true + end + end + + local damagetime = 60 + + if entity.data.generic.wrong_surface_damage_time ~= nil then + damagetime = entity.data.generic.wrong_surface_damage_time + end + + if current_state == "wrong_surface" and + entity.dynamic_data.good_surface ~= nil then + if movement_state.now - entity.dynamic_data.good_surface > damagetime then + + entity.object:set_hp(entity.object:get_hp() - (entity.data.generic.base_health/25)) + dbg_mobf.movement_lvl1("MOBF: mob is on wrong surface it will slowly take damage") + + --reset timer for next damage interval + entity.dynamic_data.good_surface = movement_state.now + if entity.object:get_hp() <= 0 then + abort_processing = true + spawning.remove(entity, "mgen probab surfacecheck") + end + + movement_state.force_change = true + end + + handled = true + else + entity.dynamic_data.good_surface = movement_state.now + end + + if current_state == "collision" then + local current_pos = mobf_round_pos(movement_state.basepos); + local current_node = minetest.env:get_node( current_pos ); + + dbg_mobf.movement_lvl3( "MOBF: Mob collided with "..tostring( current_pos.x )..":".. + tostring( current_pos.y )..":".. + tostring( current_pos.z ).." Nodename:".. + tostring( current_node.name ).." walkable:".. + tostring( minetest.registered_nodes[current_node.name].walkable )) + + if not mobf_is_walkable(current_node) then + local targetpos = environment.get_suitable_pos_same_level({x=current_pos.x, + y=current_pos.y, + z=current_pos.z}, + 1, + entity) + if targetpos == nil then + local targetpos = environment.get_suitable_pos_same_level({x=current_pos.x, + y=current_pos.y+1, + z=current_pos.z}, + 1, + entity) + end + + if targetpos ~= nil then + minetest.log(LOGLEVEL_WARNING,"MOBF: Your mob " ..entity.data.name .. " is within solid block moving to".. + printpos(targetpos).." state: ".. + environment.pos_is_ok(targetpos,entity)) + + entity.object:moveto(targetpos) + movement_state.accel_to_set.y = environment.get_default_gravity(targetpos, + entity.environment.media, + entity.data.movement.canfly) + mobf_assert_backtrace(movement_state.default_y_accel ~= nil) + else + minetest.log(LOGLEVEL_WARNING,"MOBF: mob " .. entity.data.name .. " was within solid block, removed") + abort_processing = true + spawning.remove(entity, "mgen probab solidblockcheck") + end + end + + handled = true + end + + if not handled then + dbg_mobf.movement_lvl1("MOBF: ".. entity.data.name .. " state: ".. current_state .. " not handled!") + end + + return { abort_processing=abort_processing, } +end + + +--register this movement generator +registerMovementGen(movement_gen.name,movement_gen) \ No newline at end of file diff --git a/mods/mobf/mgen_probab/movement_patterns/dont_move.lua b/mods/mobf/mgen_probab/movement_patterns/dont_move.lua new file mode 100644 index 0000000..8a0c2e5 --- /dev/null +++ b/mods/mobf/mgen_probab/movement_patterns/dont_move.lua @@ -0,0 +1,39 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file dont_move.lua +--! @brief movementpattern for immobile mob +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-10 +-- +--! @addtogroup mpatterns +--! @{ +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + + +--! @struct dont_move_prototype +--! @brief a movement pattern resulting in a mob not moving at all +local dont_move_prototype = { + name ="dont_move", + jump_up =0, + + random_jump_chance =0, + random_jump_initial_speed =0, + random_jump_delay =0, + random_acceleration_change =0, +-- +-- --run towards player or run away? 1 <-> -1 +-- player_attraction =0, +-- --maximum distance a player has an effect +-- player_attraction_range =-1, + } + +--!@} + +table.insert(mov_patterns_defined,dont_move_prototype) \ No newline at end of file diff --git a/mods/mobf/mgen_probab/movement_patterns/flight_pattern1.lua b/mods/mobf/mgen_probab/movement_patterns/flight_pattern1.lua new file mode 100644 index 0000000..30ad0cd --- /dev/null +++ b/mods/mobf/mgen_probab/movement_patterns/flight_pattern1.lua @@ -0,0 +1,39 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file flight_pattern1.lua +--! @brief movementpattern flight 1 +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-10 +-- +--! @addtogroup mpatterns +--! @{ +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + + +--! @struct flight_pattern1_prototype +--! @brief a movement pattern used for flying mobs +local flight_pattern1_prototype = { + name ="flight_pattern1", + jump_up =0, + + random_jump_chance =0.4, + random_jump_initial_speed =0, + random_jump_delay =10, + random_acceleration_change =0.3, +-- +-- --run towards player or run away? 1 <-> -1 +-- player_attraction =0, +-- --maximum distance a player has an effect +-- player_attraction_range =-1, + } + +--!@} + +table.insert(mov_patterns_defined,flight_pattern1_prototype) \ No newline at end of file diff --git a/mods/mobf/mgen_probab/movement_patterns/run_and_jump_low.lua b/mods/mobf/mgen_probab/movement_patterns/run_and_jump_low.lua new file mode 100644 index 0000000..25aecd1 --- /dev/null +++ b/mods/mobf/mgen_probab/movement_patterns/run_and_jump_low.lua @@ -0,0 +1,41 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file run_and_jump_low.lua +--! @brief movementpattern running arround ad doing random low jumps +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-10 +-- +--! @addtogroup mpatterns +--! @{ +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + + +--! @struct run_and_jump_low_prototype +--! @brief a movement pattern used for quick moving and direction changing mobs +--! that jump every now and then +local run_and_jump_low_prototype = { + name ="run_and_jump_low", + jump_up =0.2, + + random_jump_chance =0.3, + random_jump_initial_speed =3.5, + random_jump_delay =2, + random_acceleration_change =0.6, + +-- +-- --run towards player or run away? 1 <-> -1 +-- player_attraction =0, +-- --maximum distance a player has an effect +-- player_attraction_range =-1, + } + +--!~@} + +table.insert(mov_patterns_defined,run_and_jump_low_prototype) \ No newline at end of file diff --git a/mods/mobf/mgen_probab/movement_patterns/stop_and_go.lua b/mods/mobf/mgen_probab/movement_patterns/stop_and_go.lua new file mode 100644 index 0000000..aaca5ec --- /dev/null +++ b/mods/mobf/mgen_probab/movement_patterns/stop_and_go.lua @@ -0,0 +1,39 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file stop_and_go.lua +--! @brief movementpattern creating a random stop and go movement e.g. sheep/cow +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-10 +-- +--! @addtogroup mpatterns +--! @{ +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +--! @struct stop_and_go_prototype +--! @brief movement pattern for mobs wandering around randomly +local stop_and_go_prototype = { + name ="stop_and_go", + jump_up =0.4, + + random_jump_chance =0, + random_jump_initial_speed =0, + random_jump_delay =0, + random_acceleration_change =0.01, + +-- +-- --run towards player or run away? 1 <-> -1 +-- player_attraction =0, +-- --maximum distance a player has an effect +-- player_attraction_range =-1, + } + +--!@} + +table.insert(mov_patterns_defined,stop_and_go_prototype) \ No newline at end of file diff --git a/mods/mobf/mgen_probab/movement_patterns/swim_pattern1.lua b/mods/mobf/mgen_probab/movement_patterns/swim_pattern1.lua new file mode 100644 index 0000000..9cfa87e --- /dev/null +++ b/mods/mobf/mgen_probab/movement_patterns/swim_pattern1.lua @@ -0,0 +1,39 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file swim_pattern1.lua +--! @brief movementpattern for slow swimming mobs +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-10 +-- +--! @addtogroup mpatterns +--! @{ +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +--! @struct swim_pattern1_prototype +--! @brief movement pattern for mobs swimming slow +local swim_pattern1_prototype = { + name ="swim_pattern1", + jump_up =0, + + random_jump_chance =0.2, + random_jump_initial_speed =0, + random_jump_delay =10, + random_acceleration_change =0.5, + +-- +-- --run towards player or run away? 1 <-> -1 +-- player_attraction =0, +-- --maximum distance a player has an effect +-- player_attraction_range =-1, + } + +--!@} + +table.insert(mov_patterns_defined,swim_pattern1_prototype) \ No newline at end of file diff --git a/mods/mobf/mgen_probab/movement_patterns/swim_pattern2.lua b/mods/mobf/mgen_probab/movement_patterns/swim_pattern2.lua new file mode 100644 index 0000000..7dbc342 --- /dev/null +++ b/mods/mobf/mgen_probab/movement_patterns/swim_pattern2.lua @@ -0,0 +1,39 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file swim_pattern2.lua +--! @brief movementpattern for medium swimming mobs +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-10 +-- +--! @addtogroup mpatterns +--! @{ +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +--! @struct swim_pattern1_prototype +--! @brief movement pattern for mobs swimming medium speeds +local swim_pattern2_prototype = { + name ="swim_pattern2", + jump_up =0, + + random_jump_chance =0.4, + random_jump_initial_speed =0, + random_jump_delay =15, + random_acceleration_change =0.7, + +-- +-- --run towards player or run away? 1 <-> -1 +-- player_attraction =0, +-- --maximum distance a player has an effect +-- player_attraction_range =-1, + } + +--!@} + +table.insert(mov_patterns_defined,swim_pattern2_prototype) \ No newline at end of file diff --git a/mods/mobf/mgen_probab/movement_patterns/template.lua b/mods/mobf/mgen_probab/movement_patterns/template.lua new file mode 100644 index 0000000..5141048 --- /dev/null +++ b/mods/mobf/mgen_probab/movement_patterns/template.lua @@ -0,0 +1,37 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file template.lua +--! @brief template file for movement patterns +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-11 +-- +--! @addtogroup mpatterns +--! @{ +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- +--movement pattern for movement generator +-- { +-- --patternname +-- name ="example" +-- +-- --chance to jump to higher level instead of turning +-- jump_up =0, +-- +-- --chance an mob does random jumps +-- random_jump_chance =0, +-- --mobs jump speed (controling height of jump) +-- random_jump_initial_speed =0, +-- --minimum time between random jumps +-- random_jump_delay =0, +-- +-- --chance an mob randomly changes its speed/direction +-- random_acceleration_change =0, +-- } + +--!@} \ No newline at end of file diff --git a/mods/mobf/mgen_rasterized/mgen_raster.lua b/mods/mobf/mgen_rasterized/mgen_raster.lua new file mode 100644 index 0000000..c678d2a --- /dev/null +++ b/mods/mobf/mgen_rasterized/mgen_raster.lua @@ -0,0 +1,196 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file mgen_raster.lua +--! @brief component containing a probabilistic movement generator (uses mgen follow) +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-09 +-- +--! @defgroup mgen_raster MGEN: raster based movement generator +--! @brief A movement generator creating movement that creates a rasterized +--! random movement +--! @ingroup framework_int +--! @{ +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +--! @class mgen_raster +--! @brief a movement generator creating a rasterized probabilistic movement +mgen_raster = {} + +--!@} + +--! @brief movement generator identifier +--! @memberof mgen_follow +mgen_raster.name = "probab_raster_mov_gen" + + +------------------------------------------------------------------------------- +-- name: stop(entity) +-- +--! @brief stop this entity +--! @memberof mgen_raster +-- +--! @param entity mob to stop +------------------------------------------------------------------------------- +function mgen_raster.stop(entity) + local defgrav = environment.get_default_gravity(entity.getbasepos(entity), + entity.environment, + entity.data.movement.canfly) + + entity.dynamic_data.movement.target = nil + entity.object:setvelocity({x=0,y=0,z=0}) + entity.object:setacceleration({x=0,y=defgrav,z=0}) +end + +------------------------------------------------------------------------------- +-- name: callback(entity,now) +-- +--! @brief main callback to make a mob follow its target +--! @memberof mgen_raster +-- +--! @param entity mob to generate movement for +--! @param now current time +------------------------------------------------------------------------------- +function mgen_raster.callback(entity,now) + + local basepos = entity.getbasepos(entity) + local dtime = entity.current_dtime + + entity.dynamic_data.movement.time_travelled = entity.dynamic_data.movement.time_travelled + dtime + + --check environment + local pos_state = environment.pos_is_ok(basepos,entity) + if pos_state ~= "ok" and + pos_state ~= "possible_surface" then + mgen_raster.stop(entity) + + --try to find a good position around to move mob to + local new_pos = environment.get_suitable_pos_same_level(basepos,1,entity,false) + + if (new_pos == nil ) then + new_pos = environment.get_suitable_pos_same_level({x=basepos.x, + y=basepos.y+1, + z=basepos.z} + ,1,entity,false) + end + + if (new_pos == nil ) then + new_pos = environment.get_suitable_pos_same_level({x=basepos.x, + y=basepos.y+1, + z=basepos.z} + ,1,entity,false) + end + + if (new_pos ~= nil ) then + --TODO fix position according to model information! + enity.object:moveto(new_pos) + basepos = new_pos + else + --TODO error handling + end + end + + --check on ground + if not mgen_raster.onground(entity,now,basepos) then + mgen_raster.stop(entity) + end + + --check how long we've been traveling + if ( entity.dynamic_data.movement.time_travelled > entity.dynamic_data.movement.eta ) then + mgen_raster.stop(entity) + end + + --check distance to target (target reached or missed) + local distance_to_target = mobf_calc_distance(basepos,entity.dynamic_data.movement.target) + if distance_to_target > 2.0 or + distance_to_target < 0.1 then + mgen_raster.stop(entity) + end + + --find next point + if entity.dynamic_data.nextpoint == nil then + entity.dynamic_data.nextpoint = environment.get_suitable_pos_same_level(basepos,1,entity,false) + --TODO calc maximum eta + 10% + end + + --call move to target mgen + helper_mgen.callback(entity,now) +end + +------------------------------------------------------------------------------- +-- name: initialize() +-- +--! @brief initialize movement generator +--! @memberof mgen_raster +--! @public +------------------------------------------------------------------------------- +function mgen_raster.initialize(entity,now) +--intentionaly doing nothing this function is for symmetry reasons only +end + +------------------------------------------------------------------------------- +-- name: init_dynamic_data(entity,now) +-- +--! @brief initialize dynamic data required by movement generator +--! @memberof mgen_raster +--! @public +-- +--! @param entity mob to initialize dynamic data +--! @param now current time +------------------------------------------------------------------------------- +function mgen_raster.init_dynamic_data(entity,now) + + local pos = entity.object:getpos() + + local data = { + target = nil, + guardspawnpoint = true, + orientation_fix_needed = true, + time_travelled = 0, + helper_mgen = getMovementGen(follow_mov_gen), + max_distance = 0.1, + } + + entity.dynamic_data.movement = data + +end + + +------------------------------------------------------------------------------- +-- name: onground(entity,now) +-- +--! @brief check if mob is touching ground +--! @memberof mgen_raster +--! @public +-- +--! @param entity mob to initialize dynamic data +--! @param now current time +--! @param basepos position of feet +------------------------------------------------------------------------------- +function mgen_raster.onground(entity,now,basepos) + + local posbelow = { x=basepos.x, y=basepos.y-1,z=basepos.z} + + for dx=-1,1 do + for dz=-1,1 do + local fp0 = posbelow + local fp = { x= posbelow.x + (0.5*dx), + y= posbelow.y, + z= posbelow.z + (0.5*dz) } + local n = minetest.env:get_node(fp) + if mobf_is_walkable(n) then + return true + end + end + end + +end + +--register this movement generator +registerMovementGen(mgen_raster.name,mgen_raster) \ No newline at end of file diff --git a/mods/mobf/mob_state.lua b/mods/mobf/mob_state.lua new file mode 100644 index 0000000..0462349 --- /dev/null +++ b/mods/mobf/mob_state.lua @@ -0,0 +1,534 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file mob_state.lua +--! @brief component mob state transition handling +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-09 +-- +-- +--! @defgroup mob_state State handling functions +--! @brief a component to do basic changes to mob on state change +--! @ingroup framework_int +--! @{ +-- +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +mob_state = {} +mob_state.default_state_time = 30 + +------------------------------------------------------------------------------- +-- name: initialize(entity,now) +-- +--! @brief initialize state dynamic data +--! @ingroup mob_state +-- +--! @param entity elemet to initialize state data +--! @param now current time +------------------------------------------------------------------------------- +function mob_state.initialize(entity,now) + + dbg_mobf.mob_state_lvl3("MOBF: " .. entity.data.name + .. " initializing state dynamic data") + + local state = { + current = "default", + time_to_next_change = 30, + locked = false, + enabled = false, + } + + local sum_chances = 0 + local state_count = 0 + + if entity.data.states ~= nil then + for s = 1, #entity.data.states , 1 do + sum_chances = sum_chances + entity.data.states[s].chance + + if entity.data.states[s].name ~= "combat" and + entity.data.states[s].name ~= "default" then + state_count = state_count +1 + end + end + end + + --sanity check for state chances + if sum_chances > 1 then + minetest.log(LOGLEVEL_WARNING,"MOBF: Warning sum of state chances for mob " + .. entity.data.name .. " > 1") + end + + --only enable state changeing if there is at least one state + if state_count > 0 then + state.enabled = true + end + + entity.dynamic_data.state = state +end + + +------------------------------------------------------------------------------- +-- name: get_entity_name(mob,state) +-- +--! @brief get entity name for a state +--! @ingroup mob_state +-- +--! @param mob generic data +--! @param state selected state data +--! +--! @return name to use for entity +------------------------------------------------------------------------------- +function mob_state.get_entity_name(mob,state) + return mob.modname .. ":"..mob.name .. "__" .. state.name +end + +------------------------------------------------------------------------------- +-- name: get_state_by_name(entity,name) +-- +--! @brief get a state by its name +--! @ingroup mob_state +-- +--! @param entity elemet to look for state data +--! @param name of state +--! +--! @return state data or nil +------------------------------------------------------------------------------- +function mob_state.get_state_by_name(entity,name) + mobf_assert_backtrace(entity ~= nil and entity.data ~= nil) + + for i=1, #entity.data.states, 1 do + if entity.data.states[i].name == name then + return entity.data.states[i] + end + end + + return nil +end + +------------------------------------------------------------------------------- +-- name: lock(entity,value) +-- +--! @brief disable random state changes for a mob +--! @ingroup mob_state +-- +--! @param entity elemet to lock +--! @param value to set +------------------------------------------------------------------------------- +function mob_state.lock(entity,value) + if value ~= false and value ~= true then + return + end + if entity.dynamic_data.state == nil then + dbg_mobf.mob_state_lvl1("MOBF: unable to lock state for: " + .. entity.data.name .. " no state dynamic data present") + return + end + + entity.dynamic_data.state.locked = value +end + + +------------------------------------------------------------------------------- +-- name: callback(entity,now,dstep) +-- +--! @brief callback handling state changes +--! @ingroup mob_state +-- +--! @param entity elemet to look for state data +--! @param now current time +--! @param dstep time passed since last call +------------------------------------------------------------------------------- +function mob_state.callback(entity,now,dstep) + + if entity.dynamic_data.state == nil then + minetest.log(LOGLEVEL_ERRROR,"MOBF BUG: " .. entity.data.name + .. " mob state callback without mob dynamic data!") + mob_state.initialize(entity,now) + local default_state = mob_state.get_state_by_name(self,"default") + entity.dynamic_data.current_movement_gen = getMovementGen(default_state.movgen) + entity.dynamic_data.current_movement_gen.init_dynamic_data(entity,mobf_get_current_time()) + entity = spawning.replace_entity(entity,entity.data.modname .. ":"..entity.data.name,true) + return true + end + --abort state change if current state is locked + if entity.dynamic_data.state.locked or + entity.dynamic_data.state.enabled == false then + dbg_mobf.mob_state_lvl3("MOBF: " .. entity.data.name + .. " state locked or no custom states definded ") + return true + end + + entity.dynamic_data.state.time_to_next_change = entity.dynamic_data.state.time_to_next_change -dstep + + --do only change if last state timed out + if entity.dynamic_data.state.time_to_next_change < 0 then + + dbg_mobf.mob_state_lvl2("MOBF: " .. entity.data.name + .. " time to change state: " .. entity.dynamic_data.state.time_to_next_change + .. " , " .. dstep .. " entity=" .. tostring(entity)) + + local rand = math.random() + + local maxvalue = 0 + + local state_table = {} + + --fill table with available states + for i=1, #entity.data.states, 1 do + if entity.data.states[i].custom_preconhandler == nil or + entity.data.states[i].custom_preconhandler() then + table.insert(state_table,entity.data.states[i]) + end + end + + --try to get a random state to change to + for i=1, #state_table, 1 do + + local rand_state = math.random(#state_table) + local current_chance = 0 + + if type (state_table[rand_state].chance) == "function" then + current_chance = state_table[rand_state].chance(entity,now,dstep) + else + if state_table[rand_state].chance ~= nil then + current_chance = state_table[rand_state].chance + end + end + + if math.random() < current_chance then + if mob_state.change_state(entity,state_table[rand_state]) ~= nil then + return false + else + return true + end + end + end + + --switch to default state (only reached if no change has been done + if mob_state.change_state(entity,mob_state.get_state_by_name(entity,"default")) ~= nil then + return false + end + else + dbg_mobf.mob_state_lvl3("MOBF: " .. entity.data.name + .. " is not ready for state change ") + return true + end + + return true +end + +------------------------------------------------------------------------------- +-- name: switch_entity(entity,state) +-- +--! @brief helper function to swich an entity based on new state +--! @ingroup mob_state +-- +--! @param entity to replace +--! @param state to take new entity +--! +--! @return the new entity or nil +------------------------------------------------------------------------------- +function mob_state.switch_entity(entity,state) + --switch entity + local state_has_model = false + + if minetest.setting_getbool("mobf_disable_3d_mode") then + if state.graphics ~= nil then + state_has_model = true + end + else + if state.graphics_3d ~= nil then + state_has_model = true + end + end + + local newentity = nil + + if state_has_model then + dbg_mobf.mob_state_lvl2("MOBF: " .. entity.data.name + .. " switching to state model ") + newentity = spawning.replace_entity(entity, + mob_state.get_entity_name(entity.data,state),true) + else + dbg_mobf.mob_state_lvl2("MOBF: " .. entity.data.name + .. " switching to default model ") + newentity = spawning.replace_entity(entity,entity.data.modname + .. ":"..entity.data.name .. "__default",true) + end + + if newentity ~= nil then + dbg_mobf.mob_state_lvl2("MOBF: " .. entity.data.name + .. " replaced entity=" .. tostring(entity) .. " by newentity=" + .. tostring(newentity)) + return newentity + else + return entity + end +end + +------------------------------------------------------------------------------- +-- name: switch_switch_movgenentity(entity,state) +-- +--! @brief helper function to swich a movement based on new state +--! @ingroup mob_state +-- +--! @param entity to change movement gen +--! @param state to take new entity +------------------------------------------------------------------------------- +function mob_state.switch_movgen(entity,state) + local mov_to_set = nil + + --determine new movement gen + if state.movgen ~= nil then + mov_to_set = getMovementGen(state.movgen) + else + local default_state = mob_state.get_state_by_name(entity,"default") + mov_to_set = getMovementGen(default_state.movgen) + end + + --check if new mov gen differs from old one + if mov_to_set ~= nil and + mov_to_set ~= entity.dynamic_data.current_movement_gen then + entity.dynamic_data.current_movement_gen = mov_to_set + + --TODO initialize new movement gen + entity.dynamic_data.current_movement_gen.init_dynamic_data(entity,mobf_get_current_time()) + end +end + + +------------------------------------------------------------------------------- +-- name: change_state(entity,state) +-- +--! @brief change state for an entity +--! @ingroup mob_state +-- +--! @param entity to change state +--! @param state to change to +--! +--! @return the new entity or nil +------------------------------------------------------------------------------- +function mob_state.change_state(entity,state) + + dbg_mobf.mob_state_lvl2("MOBF: " .. entity.data.name + .. " state change called entity=" .. tostring(entity) .. " state:" + .. dump(state)) + --check if time precondition handler tells us to stop state change + --if not mob_state.precon_time(state) then + -- return + --end + + --check if custom precondition handler tells us to stop state change + if state ~= nil and + type(state.custom_preconhandler) == "function" then + if not state.custom_preconhandler(entity,state) then + dbg_mobf.mob_state_lvl1("MOBF: " .. entity.data.name + .. " custom precondition handler didn't meet ") + return nil + end + end + + --switch to default state if no state given + if state == nil then + dbg_mobf.mob_state_lvl2("MOBF: " .. entity.data.name + .. " invalid state switch, switching to default instead of: " + .. dump(state)) + state = mob_state.get_state_by_name("default") + end + + local entityname = entity.data.name + local statename = state.name + + dbg_mobf.mob_state_lvl2("MOBF: " .. entityname .. " switching state to " + .. statename) + + if entity.dynamic_data.state == nil then + mobf_bug_warning(LOGLEVEL_WARNING,"MOBF BUG!!! mob_state no state dynamic data") + return nil + end + + if entity.dynamic_data.state.current ~= state.name then + dbg_mobf.mob_state_lvl2("MOBF: " .. entity.data.name + .. " different states now really changeing to " .. state.name) + local switchedentity = mob_state.switch_entity(entity,state) + mob_state.switch_movgen(switchedentity,state) + + switchedentity.dynamic_data.state.time_to_next_change = mob_state.getTimeToNextState(state.typical_state_time) + switchedentity.dynamic_data.state.current = state.name + + graphics.set_animation(switchedentity,state.animation) + dbg_mobf.mob_state_lvl2("MOBF: time to next change = " + .. switchedentity.dynamic_data.state.time_to_next_change) + + if switchedentity ~= entity then + return switchedentity + end + else + dbg_mobf.mob_state_lvl2("MOBF: " .. entity.data.name + .. " switching to same state as before") + entity.dynamic_data.state.time_to_next_change = mob_state.getTimeToNextState(state.typical_state_time) + dbg_mobf.mob_state_lvl2("MOBF: time to next change = " + .. entity.dynamic_data.state.time_to_next_change) + end + + return nil +end + + +------------------------------------------------------------------------------- +-- name: getTimeToNextState(typical_state_time) +-- +--! @brief helper function to calculate a gauss distributed random value +--! @ingroup mob_state +-- +--! @param typical_state_time center of gauss +--! +--! @return a random value around typical_state_time +------------------------------------------------------------------------------- +function mob_state.getTimeToNextState(typical_state_time) + + if typical_state_time == nil then + mobf_bug_warning(LOGLEVEL_WARNING,"MOBF MOB BUG!!! missing typical state time!") + typical_state_time = mob_state.default_state_time + end + + local u1 = 2 * math.random() -1 + local u2 = 2 * math.random() -1 + + local q = u1*u1 + u2*u2 + + local maxtries = 0 + + while (q == 0 or q >= 1) and maxtries < 10 do + u1 = math.random() + u2 = math.random() * -1 + q = u1*u1 + u2*u2 + + maxtries = maxtries +1 + end + + --abort random generation + if maxtries >= 10 then + return typical_state_time + end + + local p = math.sqrt( (-2*math.log(q))/q ) + + local retval = 2 + --calculate normalized state time with maximum error or half typical time up and down + if math.random() < 0.5 then + retval = typical_state_time + ( u1*p * (typical_state_time/2)) + else + retval = typical_state_time + ( u2*p * (typical_state_time/2)) + end + + --! ensure minimum state time of 2 seconds + if retval > 2 then + return retval + else + return 2 + end +end + +------------------------------------------------------------------------------- +-- name: prepare_states(mob) +-- +--! @brief register a mob within mob framework +--! @ingroup mob_state +-- +--! @param mob a mob declaration +------------------------------------------------------------------------------- +function mob_state.prepare_states(mob) + local custom_combat_state_defined = false + local default_state_defined = false + + --add graphics for any mob state + if mob.states ~= nil then + for s = 1, #mob.states , 1 do + graphic_to_set = graphics.prepare_info(mob.states[s].graphics, + mob.states[s].graphics_3d, + mob.modname,"_"..mob.name, mob.states[s].name) + + if graphic_to_set ~= nil then + mobf.register_entity(":" .. mob_state.get_entity_name(mob,mob.states[s]), graphic_to_set, mob) + end + + if mob.states[s].name == "combat" then + custom_combat_state_defined = true + end + + if mob.states[s].name == "default" then + default_state_defined = true + end + + + end + else + mob.states = {} + end + + --add a default combat state if no custom state is defined + if mob.combat ~= nil then + if custom_combat_state_defined == false then + table.insert(mob.states, + { + name = "combat", + custom_preconhandler = nil, + movgen = "follow_mov_gen", + typical_state_time = -1, + chance = 0, + }) + end + end + + + --legacy code to run old mobs + if not default_state_defined then + minetest.log(LOGLEVEL_WARNING,"MOBF: -----------------------------------------------------------------------------------------") + minetest.log(LOGLEVEL_WARNING,"MOBF: Automatic default state generation is legacy code subject to be removed in later version.") + minetest.log(LOGLEVEL_WARNING,"MOBF: -----------------------------------------------------------------------------------------") + + local default_state = { + name = "default", + movgen = mob.movement.default_gen, + graphics = mob.graphics, + graphics_3d = mob.graphics_3d, + chance = 0, + typical_state_time = 30, + animation = "walk", + } + + graphic_to_set = graphics.prepare_info(default_state.graphics, + default_state.graphics_3d, + mob.modname,"_"..mob.name) + + if graphic_to_set ~= nil then + mobf.register_entity(":" .. mob_state.get_entity_name(mob,default_state), + graphic_to_set, mob) + end + + --replace old mobs by new default state mobs + minetest.register_entity(":".. mob.modname .. ":"..mob.name, + { + new_name = mob_state.get_entity_name(mob,default_state), + on_activate = function(self,staticdata) + minetest.log(LOGLEVEL_INFO, "MOBF replacing " .. self.name + .. " by " .. self.new_name) + local pos = self.object:getpos() + self.object:remove() + + minetest.env:add_entity(pos,self.new_name) + end + }) + + table.insert(mob.states,default_state) + end +end + +--!@} \ No newline at end of file diff --git a/mods/mobf/mobf.lua b/mods/mobf/mobf.lua new file mode 100644 index 0000000..dad7018 --- /dev/null +++ b/mods/mobf/mobf.lua @@ -0,0 +1,681 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file mobf.lua +--! @brief class containing mob initialization functions +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-09 +-- +-- +--! @defgroup mobf Basic mob entity functions +--! @brief a component containing basic functions for mob handling and initialization +--! @ingroup framework_int +--! @{ +-- +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +mobf = {} + +mobf.on_step_callbacks = {} +mobf.on_punch_callbacks = {} +mobf.on_rightclick_callbacks = {} + + +------------------------------------------------------------------------------ +-- name: register_on_step_callback(callback) +-- +--! @brief make a new on_step callback known to mobf +--! @ingroup mobf +-- +--! @param callback to make known to mobf +------------------------------------------------------------------------------- +function mobf.register_on_step_callback(callback) + + if callback.configcheck == nil or + type(callback.configcheck) ~= "function" then + return false + end + + if callback.handler == nil or + type(callback.configcheck) ~= "function" then + return false + end + + table.insert(mobf.on_step_callbacks,callback) +end + + +------------------------------------------------------------------------------ +-- name: init_on_step_callbacks(entity,now) +-- +--! @brief initalize callbacks to be used on step +--! @ingroup mobf +-- +--! @param entity entity to initialize on_step handler +--! @param now current time +------------------------------------------------------------------------------- +function mobf.init_on_step_callbacks(entity,now) + entity.on_step_hooks = {} + + if #mobf.on_step_callbacks > 32 then + mobf_bug_warning(LOGLEVEL_ERROR,"MOBF BUG!!!: " .. #mobf.on_step_callbacks + .. " incredible high number of onstep callbacks registred!") + end + + dbg_mobf.mobf_core_lvl2("MOBF: initializing " .. #mobf.on_step_callbacks + .. " on_step callbacks for " .. entity.data.name + .. " entity=" .. tostring(entity)) + for i = 1, #mobf.on_step_callbacks , 1 do + if mobf.on_step_callbacks[i].configcheck(entity) then + dbg_mobf.mobf_core_lvl2("MOBF: (" .. i .. ") enabling callback " + .. mobf.on_step_callbacks[i].name) + table.insert(entity.on_step_hooks,mobf.on_step_callbacks[i].handler) + if type(mobf.on_step_callbacks[i].init) == "function" then + dbg_mobf.mobf_core_lvl2("MOBF: (" .. i .. ") executing init function for " + .. mobf.on_step_callbacks[i].name) + mobf.on_step_callbacks[i].init(entity,now) + else + dbg_mobf.mobf_core_lvl2("MOBF: (" .. i .. ") no init function defined") + end + else + dbg_mobf.mobf_core_lvl2("MOBF: (" .. i .. ") callback " + .. mobf.on_step_callbacks[i].name .. " disabled due to config check") + end + end + +end + +------------------------------------------------------------------------------ +-- name: register_on_rightclick_callback(callback) +-- +--! @brief make a new on_rightclick callback known to mobf +--! @ingroup mobf +-- +--! @param callback to make known to mobf +------------------------------------------------------------------------------- +function mobf.register_on_rightclick_callback(callback) + + if callback.configcheck == nil or + type(callback.configcheck) ~= "function" then + return false + end + + if callback.handler == nil or + type(callback.configcheck) ~= "function" then + return false + end + + table.insert(mobf.on_rightclick_callbacks,callback) +end + + +------------------------------------------------------------------------------ +-- name: register_on_punch_callback(callback) +-- +--! @brief make a new on_punch callback known to mobf +--! @ingroup mobf +-- +--! @param callback the callback to register in mobf +------------------------------------------------------------------------------- +function mobf.register_on_punch_callback(callback) + if callback.configcheck == nil or + type(callback.configcheck) ~= "function" then + return false + end + + if callback.handler == nil or + type(callback.configcheck) ~= "function" then + return false + end + + table.insert(mobf.on_punch_callbacks,callback) +end + + +------------------------------------------------------------------------------ +-- name: init_on_punch_callbacks(entity,now) +-- +--! @brief initalize callbacks to be used on punch +--! @ingroup mobf +-- +--! @param entity entity to initialize on_punch handler +--! @param now current time +------------------------------------------------------------------------------- +function mobf.init_on_punch_callbacks(entity,now) + entity.on_punch_hooks = {} + + dbg_mobf.mobf_core_lvl2("MOBF: initializing " .. #mobf.on_punch_callbacks + .. " on_punch callbacks for " .. entity.data.name + .. " entity=" .. tostring(entity)) + for i = 1, #mobf.on_punch_callbacks , 1 do + if mobf.on_punch_callbacks[i].configcheck(entity) and + type(mobf.on_punch_callbacks[i].handler) == "function" then + dbg_mobf.mobf_core_lvl2("MOBF: (" .. i .. ") enabling callback " + .. mobf.on_punch_callbacks[i].name) + table.insert(entity.on_punch_hooks,mobf.on_punch_callbacks[i].handler) + + if type(mobf.on_punch_callbacks[i].init) == "function" then + dbg_mobf.mobf_core_lvl2("MOBF: (" .. i .. ") executing init function for " + .. mobf.on_punch_callbacks[i].name) + mobf.on_punch_callbacks[i].init(entity,now) + else + dbg_mobf.mobf_core_lvl2("MOBF: (" .. i .. ") no init function defined") + end + else + dbg_mobf.mobf_core_lvl2("MOBF: (" .. i .. ") callback " + .. mobf.on_punch_callbacks[i].name .. " disabled due to config check") + end + end +end + +------------------------------------------------------------------------------ +-- name: init_on_rightclick_callbacks(entity,now) +-- +--! @brief initalize callbacks to be used on punch +--! @ingroup mobf +-- +--! @param entity entity to initialize on_punch handler +--! @param now current time +------------------------------------------------------------------------------- +function mobf.init_on_rightclick_callbacks(entity,now) + entity.on_rightclick_hooks = {} + + dbg_mobf.mobf_core_lvl2("MOBF: initializing " .. #mobf.on_rightclick_callbacks + .. " on_rightclick callbacks for " .. entity.data.name .. " entity=" .. tostring(entity)) + for i = 1, #mobf.on_rightclick_callbacks , 1 do + if mobf.on_rightclick_callbacks[i].configcheck(entity) and + type(mobf.on_rightclick_callbacks[i].handler) == "function" then + dbg_mobf.mobf_core_lvl2("MOBF: (" .. i .. ") enabling callback " + .. mobf.on_rightclick_callbacks[i].name) + table.insert(entity.on_rightclick_hooks,mobf.on_rightclick_callbacks[i].handler) + + if type(mobf.on_rightclick_callbacks[i].init) == "function" then + dbg_mobf.mobf_core_lvl2("MOBF: (" .. i .. ") executing init function for " + .. mobf.on_rightclick_callbacks[i].name) + mobf.on_rightclick_callbacks[i].init(entity,now) + else + dbg_mobf.mobf_core_lvl2("MOBF: (" .. i .. ") no init function defined") + end + else + dbg_mobf.mobf_core_lvl2("MOBF: (" .. i .. ") callback " + .. mobf.on_rightclick_callbacks[i].name .. " disabled due to config check") + end + end +end + +------------------------------------------------------------------------------ +-- name: get_basepos(entity) +-- +--! @brief get basepos for an entity +--! @ingroup mobf +-- +--! @param entity entity to fetch basepos +--! @return basepos of mob +------------------------------------------------------------------------------- +function mobf.get_basepos(entity) + local pos = entity.object:getpos() + local nodeatpos = minetest.env:get_node(pos) + + dbg_mobf.mobf_core_helper_lvl3("MOBF: " .. entity.data.name + .. " Center Position: " .. printpos(pos) .. " is: " .. nodeatpos.name) + + -- if visual height is more than one block the center of base block is + -- below the entities center + if (entity.collisionbox[2] < -0.5) then + pos.y = pos.y + (entity.collisionbox[2] + 0.5) + dbg_mobf.mobf_core_helper_lvl3("MOBF: collision box lower end: " + .. entity.collisionbox[2]) + end + + nodeatpos = minetest.env:get_node(pos) + dbg_mobf.mobf_core_helper_lvl3("MOBF: Base Position: " .. printpos(pos) + .. " is: " .. nodeatpos.name) + + return pos +end + +------------------------------------------------------------------------------ +-- name: mobf_activate_handler(self,staticdata) +-- +--! @brief hanlder called for basic mob initialization +--! @ingroup mobf +-- +--! @param self entity to initialize onstep handler +--! @param staticdata data to use for initialization +------------------------------------------------------------------------------- +function mobf.activate_handler(self,staticdata) + + + --do some initial checks + local pos = self.object:getpos() + + if pos == nil then + minetest.log(LOGLEVEL_ERROR,"MOBF: mob at nil pos!") + end + local current_node = minetest.env:get_node(pos) + + + if current_node == nil then + minetest.log(LOGLEVEL_ERROR,"MOBF: trying to activate mob in nil node! removing") + + spawning.remove_uninitialized(self,staticdata) + return + end + + + if environment.is_media_element(current_node.name,self.environment.media) == false then + minetest.log(LOGLEVEL_WARNING,"MOBF: trying to activate mob " + .. self.data.name .. " at invalid position") + minetest.log(LOGLEVEL_WARNING," Activation at: " + .. current_node.name .. " --> removing") + spawning.remove_uninitialized(self,staticdata) + return + end + + + + --do initialization of dynamic modules + local now = mobf_get_current_time() + + spawning.init_dynamic_data(self,now) + + mobf.init_on_step_callbacks(self,now) + mobf.init_on_punch_callbacks(self,now) + mobf.init_on_rightclick_callbacks(self,now) + + --initialize ride support + mobf_ride.init(self) + + --check if this was a replacement mob + if self.dyndata_delayed ~= nil then + minetest.log(LOGLEVEL_ERROR,"MOBF: delayed activation for replacement mob." + .."This shouldn't happen at all but if we can fix it") + self.dynamic_data = dyndata_delayed.data + self.object:set_hp(dyndata_delayed.health) + self.object:setyaw(dyndata_delayed.entity_orientation) + dyndata_delayed = nil + return + end + + --restore saved data + local retval = mobf_deserialize_permanent_entity_data(staticdata) + + if self.dynamic_data.spawning ~= nil then + if mobf_pos_is_zero(retval.spawnpoint) ~= true then + self.dynamic_data.spawning.spawnpoint = retval.spawnpoint + else + self.dynamic_data.spawning.spawnpoint = mobf_round_pos(pos) + end + self.dynamic_data.spawning.player_spawned = retval.playerspawned + + if retval.original_spawntime ~= -1 then + self.dynamic_data.spawning.original_spawntime = retval.original_spawntime + end + + if retval.spawner ~= nil then + minetest.log(LOGLEVEL_INFO,"MOBF: setting spawner to: " + .. retval.spawner) + self.dynamic_data.spawning.spawner = retval.spawner + end + + --only relevant if mob has different states + if retval.state ~= nil and + self.dynamic_data.state ~= nil then + minetest.log(LOGLEVEL_INFO,"MOBF: setting current state to: " + .. retval.state) + self.dynamic_data.state.current = retval.state + + + end + end + + + local current_state = mob_state.get_state_by_name(self,self.dynamic_data.state.current) + local default_state = mob_state.get_state_by_name(self,"default") + + if self.dynamic_data.state.current == nil then + current_state = default_state + end + + + --initialize move gen + if current_state.movgen ~= nil then + dbg_mobf.mobf_core_lvl1("MOBF: setting movegen to: " .. current_state.movgen) + self.dynamic_data.current_movement_gen = getMovementGen(current_state.movgen) + else + dbg_mobf.mobf_core_lvl1("MOBF: setting movegen to: " .. default_state.movgen) + self.dynamic_data.current_movement_gen = getMovementGen(default_state.movgen) + end + + if current_state.animation ~= nil then + dbg_mobf.mobf_core_lvl1("MOBF: setting animation to: " .. current_state.animation) + graphics.set_animation(self,current_state.animation) + else + dbg_mobf.mobf_core_lvl1("MOBF: setting animation to: " .. dump(default_state.animation)) + graphics.set_animation(self,default_state.animation) + end + + mobf_assert_backtrace(self.dynamic_data.current_movement_gen ~= nil) + + self.dynamic_data.current_movement_gen.init_dynamic_data(self,now) + + --initialize armor groups + if self.data.generic.armor_groups ~= nil then + self.object:set_armor_groups(self.data.generic.armor_groups) + end + + --initialize height level + pos = environment.fix_base_pos(self, self.collisionbox[2] * -1) + + --custom on activate handler + if (self.data.generic.custom_on_activate_handler ~= nil) then + self.data.generic.custom_on_activate_handler(self) + end + + self.dynamic_data.initialized = true +end + + + + + +------------------------------------------------------------------------------ +-- name: register_entity(entityname,graphics) +-- +--! @brief register an entity +--! @ingroup mobf +-- +--! @param name of entity to add +--! @param graphics graphics to use for entity +--! @param mob data to use +------------------------------------------------------------------------------- +function mobf.register_entity(name, graphics, mob) + dbg_mobf.mobf_core_lvl1("MOBF: registering new entity: " .. name) + minetest.register_entity(name, + { + physical = true, + collisionbox = graphics.collisionbox, + visual = graphics.visual, + textures = graphics.textures, + visual_size = graphics.visual_size, + spritediv = graphics.spritediv, + mesh = graphics.mesh, + mode = graphics.mode, + initial_sprite_basepos = {x=0, y=0}, + makes_footstep_sound = true, + automatic_rotate = true, + groups = mob.generic.groups, + hp_max = mob.generic.base_health, + + + + + -- actions to be done by mob on its own + on_step = function(self, dtime) + + local starttime = mobf_get_time_ms() + + if self.removed ~= false then + mobf_bug_warning(LOGLEVEL_ERROR,"MOBF: on_step: " + .. self.data.name .. " on_step for removed entity????") + return + end + + if self.dynamic_data == nil then + mobf_bug_warning(LOGLEVEL_ERROR,"MOBF: on_step: " + .. "no dynamic data available!") + return + end + + if (self.dynamic_data.initialized == false) then + if entity_at_loaded_pos(self.object:getpos()) then + mobf.activate_handler(self,self.dynamic_data.last_static_data) + self.dynamic_data.last_static_data = nil + else + return + end + end + + --do special ride callback + if mobf_ride.on_step_callback(self) then + return + end + + self.current_dtime = self.current_dtime + dtime + + local now = mobf_get_current_time() + + if self.current_dtime < 0.25 then + return + end + + --check lifetime + if spawning.lifecycle(self,now) == false then + return + end + + mobf_warn_long_fct(starttime,"on_step lifecycle","lifecycle") + + --movement generator + self.dynamic_data.current_movement_gen.callback(self,now) + + mobf_warn_long_fct(starttime,"on_step movement","movement") + + if #self.on_step_hooks > 32 then + mobf_bug_warning(LOGLEVEL_ERROR,"MOBF BUG!!!: " + .. tostring(self) .. " incredible high number of onstep hooks! " + .. #self.on_step_hooks .. " ohlist: " .. tostring(self.on_step_hooks)) + end + + --dynamic modules + for i = 1, #self.on_step_hooks, 1 do + --check return value if on_step hook tells us to stop any other processing + if self.on_step_hooks[i](self,now,self.current_dtime) == false then + dbg_mobf.mobf_core_lvl1("MOBF: on_step: " .. self.data.name + .. " aborting callback processing entity=" .. tostring(self)) + break + end + mobf_warn_long_fct(starttime,"callback nr " .. i,"callback_os_" + .. self.data.name .. "_" .. i) + end + + mobf_warn_long_fct(starttime,"on_step_total","on_step_total") + self.current_dtime = 0 + end, + + --player <-> mob interaction + on_punch = function(self, hitter, time_from_last_punch, tool_capabilities, dir) + local starttime = mobf_get_time_ms() + local now = mobf_get_current_time() + + for i = 1, #self.on_punch_hooks, 1 do + if self.on_punch_hooks[i](self,hitter,now, + time_from_last_punch, tool_capabilities, dir) then + return + end + mobf_warn_long_fct(starttime,"callback nr " .. i,"callback_op_" + .. self.data.name .. "_" .. i) + end + end, + + --rightclick is only used for debug reasons by now + on_rightclick = function(self, clicker) + local starttime = mobf_get_time_ms() + for i = 1, #self.on_rightclick_hooks, 1 do + if self.on_rightclick_hooks[i](self,clicker) then + break + end + mobf_warn_long_fct(starttime,"callback nr " .. i,"callback_or_" + .. self.data.name .. "_" .. i) + end + + --tesrcode only + --mobf_ride.attache_player(self,clicker) + end, + + --do basic mob initialization on activation + on_activate = function(self,staticdata) + + self.dynamic_data = {} + self.dynamic_data.initialized = false + + --make sure entity is in loaded area at initialization + local pos = self.object:getpos() + + if pos ~= nil and + entity_at_loaded_pos(pos) then + mobf.activate_handler(self,staticdata) + else + minetest.log(LOGLEVEL_INFO,"MOBF: animal activated at invalid position .. delaying activation") + self.dynamic_data.last_static_data = staticdata + end + end, + + getbasepos = mobf.get_basepos, + is_on_ground = function(entity) + + local basepos = entity.getbasepos(entity) + local posbelow = { x=basepos.x, y=basepos.y-1,z=basepos.z} + + for dx=-1,1 do + for dz=-1,1 do + local fp0 = posbelow + local fp = { x= posbelow.x + (0.5*dx), + y= posbelow.y, + z= posbelow.z + (0.5*dz) } + local n = minetest.env:get_node(fp) + if not mobf_is_walkable(n) then + return true + end + end + end + + return false + end, + + --prepare permanent data + get_staticdata = function(self) + return mobf_serialize_permanent_entity_data(self) + end, + + --custom variables for each mob + data = mob, + environment = environment_list[mob.generic.envid], + current_dtime = 0, + } + ) +end + +------------------------------------------------------------------------------- +-- name: register_mob_item(mob) +-- +--! @brief add mob item for catchable mobs +--! @ingroup mobf +-- +--! @param name name of mob +--! @param modname name of mod mob is defined in +--! @param description description to use for mob +------------------------------------------------------------------------------- +function mobf.register_mob_item(name,modname,description) + minetest.register_craftitem(modname..":"..name, { + description = description, + image = modname.."_"..name.."_item.png", + on_place = function(item, placer, pointed_thing) + if pointed_thing.type == "node" then + local pos = pointed_thing.above + + local entity = spawning.spawn_and_check(modname..":"..name,"__default",pos,"item_spawner") + + if entity ~= nil then + entity.dynamic_data.spawning.player_spawned = true + + if placer:is_player(placer) then + minetest.log(LOGLEVEL_INFO,"MOBF: mob placed by " .. placer:get_player_name(placer)) + entity.dynamic_data.spawning.spawner = placer:get_player_name(placer) + end + + if entity.data.generic.custom_on_place_handler ~= nil then + entity.data.generic.custom_on_place_handler(entity, placer, pointed_thing) + end + + item:take_item() + end + return item + end + end + }) +end + +------------------------------------------------------------------------------- +-- name: blacklist_handling(mob) +-- +--! @brief add mob item for catchable mobs +--! @ingroup mobf +-- +--! @param mob +------------------------------------------------------------------------------- +function mobf.blacklisthandling(mob) + local blacklisted = minetest.registered_entities[mob.modname.. ":"..mob.name] + + + local on_activate_fct = nil + + --remove unknown animal objects + if minetest.setting_getbool("mobf_delete_disabled_mobs") then + on_activate_fct = function(self,staticdata) + self.object:remove() + end + + + + --cleanup spawners too + if minetest.registered_entities[mob.modname.. ":"..mob.name] == nil and + environment_list[mob.generic.envid] ~= nil and + mobf_spawn_algorithms[mob.spawning.algorithm] ~= nil and + type(mobf_spawn_algorithms[mob.spawning.algorithm].register_cleanup) == "function" then + + mobf_spawn_algorithms[mob.spawning.algorithm].register_cleanup(mob.modname.. ":" .. mob.name) + + if mob.spawning.algorithm_secondary ~= nil and + type(mobf_spawn_algorithms.register_spawn[mob.spawning.algorithm_secondary].register_cleanup) == "function" then + mobf_spawn_algorithms.register_spawn[mob.spawning.algorithm_secondary].register_cleanup(mob.modname.. ":" .. mob.name) + end + end + else + on_activate_fct = function(self,staticdata) + self.object:setacceleration({x=0,y=0,z=0}) + self.object:setvelocity({x=0,y=0,z=0}) + end + end + + if minetest.registered_entities[mob.modname.. ":"..mob.name] == nil then + + --cleanup mob entities + minetest.register_entity(mob.modname.. ":"..mob.name .. "__default", + { + on_activate = on_activate_fct + }) + + if mob.states ~= nil then + for s = 1, #mob.states , 1 do + minetest.register_entity(":".. mob_state.get_entity_name(mob,mob.states[s]), + { + on_activate = on_activate_fct + }) + end + end + end + + + if blacklisted == nil then + minetest.log(LOGLEVEL_INFO,"MOBF: " .. mob.modname.. ":"..mob.name .. " was blacklisted") + else + minetest.log(LOGLEVEL_ERROR,"MOBF: " .. mob.modname.. ":"..mob.name .. " already known not registering mob with same name!") + end +end \ No newline at end of file diff --git a/mods/mobf/mov_gen_none.lua b/mods/mobf/mov_gen_none.lua new file mode 100644 index 0000000..e644caa --- /dev/null +++ b/mods/mobf/mov_gen_none.lua @@ -0,0 +1,78 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file mov_gen_none.lua +--! @brief a dummy movement gen +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-09 +-- +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +--! @class mgen_none +--! @brief a movement generator doing nothing +mgen_none = {} + +--!@} + +--! @brief movement generator identifier +--! @memberof mgen_none +mgen_none.name = "none" + +------------------------------------------------------------------------------- +-- name: callback(entity,now) +-- +--! @brief main callback to do nothing +--! @memberof mgen_none +-- +--! @param entity mob to generate movement for +--! @param now current time +------------------------------------------------------------------------------- +function mgen_none.callback(entity,now) + local pos = entity.getbasepos(entity) + local speed = entity.object:getvelocity() + local default_y_acceleration = environment.get_default_gravity(pos, + entity.environment.media, + entity.data.movement.canfly) + + entity.object:setacceleration({x=0,y=default_y_acceleration,z=0}) + entity.object:setvelocity({x=0,y=speed.y,z=0}) + +end + +------------------------------------------------------------------------------- +-- name: initialize() +-- +--! @brief initialize movement generator +--! @memberof mgen_none +--! @public +------------------------------------------------------------------------------- +function mgen_none.initialize(entity,now) +end + +------------------------------------------------------------------------------- +-- name: init_dynamic_data(entity,now) +-- +--! @brief initialize dynamic data required by movement generator +--! @memberof mgen_none +--! @public +-- +--! @param entity mob to initialize dynamic data +--! @param now current time +------------------------------------------------------------------------------- +function mgen_none.init_dynamic_data(entity,now) + + local data = { + moving = false, + } + + entity.dynamic_data.movement = data +end + +--register this movement generator +registerMovementGen(mgen_none.name,mgen_none) \ No newline at end of file diff --git a/mods/mobf/movement_gen_registry.lua b/mods/mobf/movement_gen_registry.lua new file mode 100644 index 0000000..08cc804 --- /dev/null +++ b/mods/mobf/movement_gen_registry.lua @@ -0,0 +1,74 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file movement_gen_registry.lua +--! @brief registry for movement generators +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-09 +-- +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +movement_generators = {} + + +------------------------------------------------------------------------------- +-- name: getMovementGen(id) +-- +--! @brief get movement generator specified by id +--! @ingroup framework_int +-- +--! @param id id of movementgenerator +--! @return module pointer for movementgenerator +------------------------------------------------------------------------------- +function getMovementGen(id) + if movement_generators[id] == nil then + local name = "" + if id ~= nil then + name = id + end + minetest.log(LOGLEVEL_ERROR,"MOBF: movement generator " .. dump(id) .. " not found!") + return nil + end + return movement_generators[id] +end + +------------------------------------------------------------------------------- +-- name: registerMovementGen(name,generator) +-- +--! @brief register a movement generator to mob framework +--! @ingroup framework_mob +-- +--! @param name id to use for movement generator +--! @param generator pointer to movement generator +--! @return true/false successfully added generator +------------------------------------------------------------------------------- +function registerMovementGen(name,generator) + + --some movement gen checks + + if generator.init_dynamic_data == nil then + return false + end + + if generator.callback == nil then + return false + end + if movement_generators[name] == nil then + movement_generators[name] = generator + + minetest.log(LOGLEVEL_NOTICE,"\tRegistering movement generator ".. name) + if generator.initilize ~= nil then + generator.initialize() + end + return true + else + return false + end + +end \ No newline at end of file diff --git a/mods/mobf/movement_generic.lua b/mods/mobf/movement_generic.lua new file mode 100644 index 0000000..f8dcff0 --- /dev/null +++ b/mods/mobf/movement_generic.lua @@ -0,0 +1,133 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file movement_generic.lua +--! @brief generic movement related functions +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-09 +-- +--! @defgroup generic_movement Generic movement functions +--! @brief Movement related functions used by different movement generators +--! @ingroup framework_int +--! @{ +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +movement_generic = {} + +--!@} + +------------------------------------------------------------------------------- +-- name: get_accel_to(new_pos,entity) +-- +--! @brief calculate a random speed directed to new_pos +-- +--! @param new_pos position to go to +--! @param entity mob to move +--! @return { x,y,z } random speed directed to new_pos +------------------------------------------------------------------------------- +-- +function movement_generic.get_accel_to(new_pos,entity) + + if new_pos == nil or entity == nil then + minetest.log(LOGLEVEL_CRITICAL,"MOBF: movement_generic.get_accel_to : Invalid parameters") + end + + local old_pos = entity.object:getpos() + local node = minetest.env:get_node(old_pos) + local maxaccel = entity.data.movement.max_accel + local minaccel = entity.data.movement.min_accel + + local yaccel = environment.get_default_gravity(old_pos, + entity.environment.media, + entity.data.movement.canfly) + mobf_assert_backtrace(yaccel ~= nil) + + -- calc y speed for flying mobs + local x_diff = new_pos.x - old_pos.x + local z_diff = new_pos.z - old_pos.z + + local rand_x = (math.random() * (maxaccel - minaccel)) + minaccel + local rand_z = (math.random() * (maxaccel - minaccel)) + minaccel + + if x_diff < 0 then + rand_x = rand_x * -1 + end + + if z_diff < 0 then + rand_z = rand_z * -1 + end + + return { x=rand_x,y=yaccel,z=rand_z } +end + + + +------------------------------------------------------------------------------- +-- name: calc_new_pos(pos,acceleration,prediction_time) +-- +--! @brief calc the position a mob would be after a specified time +-- this doesn't handle velocity changes due to colisions +-- +--! @param pos position +--! @param acceleration acceleration to predict pos +--! @param prediction_time time to predict pos +--! @param current_velocity current velocity of mob +--! @return { x,y,z } position after specified time +------------------------------------------------------------------------------- +function movement_generic.calc_new_pos(pos,acceleration,prediction_time,current_velocity) + + local predicted_pos = {x=pos.x,y=pos.y,z=pos.z} + + predicted_pos.x = predicted_pos.x + current_velocity.x * prediction_time + (acceleration.x/2)*math.pow(prediction_time,2) + predicted_pos.z = predicted_pos.z + current_velocity.z * prediction_time + (acceleration.z/2)*math.pow(prediction_time,2) + + + return predicted_pos +end + +------------------------------------------------------------------------------- +-- name: predict_next_block(pos,velocity,acceleration) +-- +--! @brief predict next block based on pos velocity and acceleration +-- +--! @param pos current position +--! @param velocity current velocity +--! @param acceleration current acceleration +--! @return { x,y,z } position of next block +------------------------------------------------------------------------------- +function movement_generic.predict_next_block(pos,velocity,acceleration) + + local prediction_time = 2 + + local pos_predicted = movement_generic.calc_new_pos(pos, + acceleration, + prediction_time, + velocity + ) + local count = 1 + + --check if after prediction time we would have traveled more than one block and adjust to not predict to far + while mobf_calc_distance(pos,pos_predicted) > 1 do + + pos_predicted = movement_generic.calc_new_pos(pos, + acceleration, + prediction_time - (count*0.1), + velocity + ) + + if (prediction_time - (count*0.1)) < 0 then + minetest.log(LOGLEVEL_WARNING,"MOBF: Bug!!!! didn't find a suitable prediction time. Mob will move more than one block within prediction period") + break + end + + count = count +1 + end + + return pos_predicted +end \ No newline at end of file diff --git a/mods/mobf/permanent_data.lua b/mods/mobf/permanent_data.lua new file mode 100644 index 0000000..19d4765 --- /dev/null +++ b/mods/mobf/permanent_data.lua @@ -0,0 +1,195 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file permanent_data.lua +--! @brief functions for storing required data permanently +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-09 +--! +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +--! @defgroup perm_data Permanent data handling +--! @brief functions to deal with permanent data +--! @ingroup framework_int +--! @{ + +------------------------------------------------------------------------------- +-- name: mobf_deserialize_permanent_entity_data(datastring) +-- +--! @brief parse datastring and return table of data +-- +--! @param staticdata string to deserialize +--! @return table containing data +------------------------------------------------------------------------------- + +function mobf_deserialize_permanent_entity_data(staticdata) + +-- local deserialized = minetest.deserialize(staticdata) + +-- if deserialized ~= nil and +-- deserialized.version ~= nil then +-- --print("DEBUG: deserialized -> " ..dump(deserialized)) +-- return deserialized +-- end + + --old style serialized static data + local retval = {spawnpoint={x=0,y=0,z=0},playerspawned=false,original_spawntime=-1,state="default"} + + if staticdata ~= nil and + staticdata ~= "" then + local start_pos = 1 + local end_pos = string.find(staticdata,";") + + if end_pos ~= nil then + dbg_mobf.permanent_store_lvl1("MOBF: Found: ".. string.sub(staticdata,start_pos,end_pos-1).. " as first element") + if string.sub(staticdata,start_pos,end_pos-1) == "true" then + retval.playerspawned = true + end + else + return retval + end + + start_pos = end_pos +1 + end_pos = string.find(staticdata,";",start_pos) + + if end_pos ~= nil then + dbg_mobf.permanent_store_lvl1("MOBF: Found: ".. string.sub(staticdata,start_pos,end_pos-1).. " as second element") + retval.spawnpoint.x = tonumber(string.sub(staticdata,start_pos,end_pos-1)) + else + return retval + end + + start_pos = end_pos +1 + end_pos = string.find(staticdata,";",start_pos) + + if end_pos ~= nil then + dbg_mobf.permanent_store_lvl1("MOBF: Found: ".. string.sub(staticdata,start_pos,end_pos-1).. " as third element") + retval.spawnpoint.y = tonumber(string.sub(staticdata,start_pos,end_pos-1)) + else + return retval + end + + start_pos = end_pos +1 + end_pos = string.find(staticdata,";",start_pos) + + if end_pos ~= nil then + dbg_mobf.permanent_store_lvl1("MOBF: Found: ".. string.sub(staticdata,start_pos,end_pos-1).. " as fourth element") + retval.spawnpoint.z = tonumber(string.sub(staticdata,start_pos,end_pos-1)) + else + return retval + end + + start_pos = end_pos +1 + end_pos = string.find(staticdata,";",start_pos) + + if end_pos ~= nil then + dbg_mobf.permanent_store_lvl1("MOBF: Found: ".. string.sub(staticdata,start_pos,end_pos-1).. " as fivth element") + retval.original_spawntime = tonumber(string.sub(staticdata,start_pos,end_pos-1)) + else + return retval + end + + start_pos = end_pos +1 + end_pos = string.find(staticdata,";",start_pos) + + if end_pos ~= nil then + dbg_mobf.permanent_store_lvl1("MOBF: Found: ".. string.sub(staticdata,start_pos,end_pos-1).. " as sixth element") + retval.spawner = string.sub(staticdata,start_pos,end_pos-1) + if retval.spawner == "" then + retval.spawner = nil + end + else + return retval + end + + start_pos = end_pos +1 + end_pos = string.find(staticdata,";",start_pos) + + if end_pos ~= nil then + dbg_mobf.permanent_store_lvl1("MOBF: Found: ".. string.sub(staticdata,start_pos,end_pos-1).. " as sevemth element") + retval.state = string.sub(staticdata,start_pos,end_pos-1) + if retval.state == "" then + retval.state = nil + end + else + return retval + end + end + + return retval + +end + +------------------------------------------------------------------------------- +-- name: mobf_serialize_permanent_entity_data(entity) +-- +--! @brief return string containing all entity data to be preserved +-- +--! @param entity to get data from +--! @return string containing entitys permanent data +------------------------------------------------------------------------------- +function mobf_serialize_permanent_entity_data(entity) + if entity.removed == false and + entity.dynamic_data ~= nil and + entity.dynamic_data.spawning ~= nil then + + local playerspawned = "false" + + if entity.dynamic_data.spawning.player_spawned then + playerspawned = "true" + end + + local spawner = "" + + if entity.dynamic_data.spawning.spawner ~= nil then + spawner = entity.dynamic_data.spawning.spawner + end + + local state = "default" + if entity.dynamic_data.state ~= nil and + entity.dynamic_data.state.current ~= nil then + state = entity.dynamic_data.state.current + end + + if entity.dynamic_data.spawning.original_spawntime == nil then + entity.dynamic_data.spawning.original_spawntime = mobf_get_current_time() + minetest.log(LOGLEVEL_WARNING, + "MOBF: deactivating entity without spawntime setting current time") + end + + local serialized = playerspawned .. + ";" ..entity.dynamic_data.spawning.spawnpoint.x .. + ";" ..entity.dynamic_data.spawning.spawnpoint.y .. + ";" ..entity.dynamic_data.spawning.spawnpoint.z .. + ";" ..entity.dynamic_data.spawning.original_spawntime .. + ";" ..spawner .. + ";" ..state .. + ";" + + + --local toserialize = { + -- spawnpoint = entity.dynamic_data.spawning.spawnpoint, + -- playerspawned = entity.dynamic_data.spawning.player_spawned, + -- original_spawntime = entity.dynamic_data.spawning.original_spawntime, + -- spawner = entity.dynamic_data.spawning.spawner, + -- version = 2 + -- } + --local serialized = minetest.serialize(toserialize) + --print("DEBUG: serialized -> " .. serialized) + return serialized + else + mobf_bug_warning(LOGLEVEL_ERROR,"MOBF: >" .. dump(entity.data.name) .. + "< removed=" ..dump(entity.removed) .. " entity=" .. tostring(entity) .. + " No spawning information available on saving mob or mob already deleted") + end + + return "" +end + +--!@} diff --git a/mods/mobf/random_drop.lua b/mods/mobf/random_drop.lua new file mode 100644 index 0000000..268bbb4 --- /dev/null +++ b/mods/mobf/random_drop.lua @@ -0,0 +1,190 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file random_drop.lua +--! @brief component containing random drop features +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-09 +-- +--! @defgroup randdrop Random Drop subcomponent +--! @brief Component handling all random drops +--! @ingroup framework_int +--! @{ +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +--! @class random_drop +--! @brief random drop features e.g lay eggs +random_drop = {} + +--!@} + +------------------------------------------------------------------------------- +-- name: callback(entity) +-- +--! @brief random drop periodic callback +--! @memberof random_drop +-- +--! @param entity mob calling it +--! @param now current time +------------------------------------------------------------------------------- +function random_drop.callback(entity,now) + if entity.data.random_drop ~= nil and + entity.dynamic_data.random_drop ~= nil and + entity.data.random_drop.result ~= "" then + + dbg_mobf.random_drop_lvl3("MOBF: random drop for ".. entity.data.name .." is set") + + if entity.dynamic_data.random_drop.ts_last_drop + entity.data.random_drop.min_delay < now then + + dbg_mobf.random_drop_lvl3("MOBF: enough time passed give drop a chance") + if math.random() < entity.data.random_drop.chance then + + entity.dynamic_data.random_drop.ts_last_drop = now + + local entitybasepos = entity.getbasepos(entity) + + --find pos around + local toput = environment.get_suitable_pos_same_level(entitybasepos,1,entity) + + if toput ~= nil then + minetest.env:add_entity(toput,entity.data.random_drop.result.."_ent") + dbg_mobf.random_drop_lvl3("MOBF: adding random drop for "..entity.data.name .. ": "..entity.data.random_drop.result.."_ent" .. " at " .. printpos(toput)) + if entity.data.sound ~= nil then + sound.play(entitybasepos,entity.data.sound.random_drop) + end + else + dbg_mobf.random_drop_lvl2("MOBF: didn't find a place to put random drop for ".. entity.data.name) + end + end + + end + end +end + +------------------------------------------------------------------------------- +-- name: register_random_drop(random_drop) +-- +--! @brief register random drop item and entity +--! @memberof random_drop +-- +--! @param random_drop configuration for random drop feature +------------------------------------------------------------------------------- +function random_drop.register(random_drop) + + --get basename from random drop item name + local start_pos = 1 + local end_pos = string.find(random_drop.result,":") + + if end_pos == nil then + return + end + + local drop_basename = string.sub(random_drop.result,start_pos,end_pos-1) + local drop_itemname = string.sub(random_drop.result,end_pos+1) + + + if drop_itemname == nil or + drop_basename == nil then + return + end + + minetest.log("LOGLEVEL_INFO","MOBF:\tregistering random drop entity: "..":"..random_drop.result.."_ent".. + " item="..drop_itemname .. " basename=" .. drop_basename) + + local ent_graphics = {} + local id = drop_basename .. "_" .. drop_itemname + + if minetest.setting_getbool("mobf_disable_3d_mode") or + animalmaterialsdata[id] == nil or + animalmaterialsdata[id].graphics_3d == nil then + ent_graphics.visual = "sprite" + ent_graphics.textures = {drop_basename .. "_"..drop_itemname..".png"} + ent_graphics.collisionbox = {-0.5,-0.5,-0.5, 0.5,0.5,0.5} + else + ent_graphics.visual = animalmaterialsdata[id].graphics_3d.visual + ent_graphics.mesh = animalmaterialsdata[id].graphics_3d.mesh + ent_graphics.textures = animalmaterialsdata[id].graphics_3d.textures + ent_graphics.collisionbox = animalmaterialsdata[id].graphics_3d.collisionbox + ent_graphics.visual_size = animalmaterialsdata[id].graphics_3d.visual_size + end + + + --Entity + minetest.register_entity(":"..random_drop.result.."_ent", + { + physical = true, + collisionbox = ent_graphics.collisionbox, + visual = ent_graphics.visual, + textures = ent_graphics.textures, + mesh = ent_graphics.mesh, + visual_size = ent_graphics.visual_size, + + on_activate = function(self,staticdata) + + self.object:setacceleration({x=0,y=-9.81,z=0}) + local now = mobf_get_current_time() + + if staticdata == "" then + self.dropped = now + else + + self.dropped = tonumber(staticdata) + end + + if self.dropped + self.random_drop_max_life < now then + dbg_mobf.random_drop_lvl2("MOBF: random drop entity timed out") + self.object:remove() + end + end, + + on_punch = function(self, hitter) + hitter:get_inventory():add_item("main", random_drop.result.." 1") + self.object:remove() + end, + + on_step = function(self,dtime) + if self.dropped + self.random_drop_max_life < mobf_get_current_time() then + dbg_mobf.random_drop_lvl2("MOBF: random drop entity timed out") + self.object:remove() + end + + end, + + + get_staticdata = function(self) + return self.dropped + end, + + random_drop_max_life = random_drop.min_delay/4, + dropped = 0, + + }) +end + +------------------------------------------------------------------------------- +-- name: init_dynamic_data(entity,now) +-- +--! @brief initialize dynamic data required by random drop +--! @memberof random_drop +-- +--! @param entity mob to add data +--! @param now current time +------------------------------------------------------------------------------- +function random_drop.init_dynamic_data(entity,now) + if entity.data.random_drop ~= nil and + entity.data.random_drop.min_delay > 5 then + entity.dynamic_data.random_drop = { + ts_last_drop = now + math.random(5,entity.data.random_drop.min_delay) + } + else + entity.dynamic_data.random_drop = { + ts_last_drop = now + } + end +end diff --git a/mods/mobf/removesvnfolders.sh b/mods/mobf/removesvnfolders.sh new file mode 100755 index 0000000..35af2d6 --- /dev/null +++ b/mods/mobf/removesvnfolders.sh @@ -0,0 +1,2 @@ +#cleanup via find +# find . -name .svn -exec rm -r {} \; \ No newline at end of file diff --git a/mods/mobf/ride.lua b/mods/mobf/ride.lua new file mode 100644 index 0000000..08ad6e3 --- /dev/null +++ b/mods/mobf/ride.lua @@ -0,0 +1,297 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file ride.lua +--! @brief class containing mobf functions for riding +--! @copyright Sapier +--! @author Sapier +--! @date 2013-01-06 +-- +-- +--! @defgroup mobf_ride functions required for riding mobs +--! @brief a component containing all functions required to ride a mob +--! @ingroup framework_int +--! @{ +-- +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +mobf_ride = {} + +------------------------------------------------------------------------------ +-- name: attache_player(entity,player) +-- +--! @brief make a player ride this mob +--! @ingroup mobf +-- +--! @param entity entity to be ridden +--! @param player player riding +------------------------------------------------------------------------------- +function mobf_ride.attache_player(entity,player) + + entity.dynamic_data.ride.is_attached = true + entity.dynamic_data.ride.player = player + entity.object:setacceleration({x=0,y=-9.81,z=0}) + entity.object:setvelocity({x=0,y=-9.81,z=0}) + + local attacheoffset = {x=0,y=0.5,z=0} + + if entity.data.ride ~= nil and + entity.data.ride.attacheoffset ~= nil then + attacheoffset = entity.data.ride.attacheoffset + end + + player:set_attach(entity.object,"",attacheoffset, {x=0,y=0,z=0}) + if entity.data.ride.texturemod ~= nil then + entity.object:settexturemod(entity.data.ride.texturemod); + end +end + +------------------------------------------------------------------------------ +-- name: dettache_player(entity,player) +-- +--! @brief make a player ride this mob +--! @ingroup mobf +-- +--! @param entity entity to be ridden +------------------------------------------------------------------------------- +function mobf_ride.dettache_player(entity) + + entity.dynamic_data.ride.is_attached = false + entity.dynamic_data.ride.player:set_detach() + entity.dynamic_data.ride.player = nil + entity.object:settexturemod(""); +end + + +------------------------------------------------------------------------------ +-- name: on_step_callback(entity) +-- +--! @brief make a player ride this mob +--! @ingroup mobf +-- +--! @param entity entity to be ridden +------------------------------------------------------------------------------- +function mobf_ride.on_step_callback(entity) + + if entity.dynamic_data.ride.is_attached then + dbg_mobf.ride_lvl3("MOBF: have attached player") + local walkspeed = 3 + local sneakspeed = 0.5 + local jumpspeed = 30 + + if entity.data.ride ~= nil then + if entity.data.ride.walkspeed ~= nil then + walkspeed = entity.data.ride.walkspeed + end + + if entity.data.ride.runspeed ~= nil then + runspeed = entity.data.ride.runspeed + end + + if entity.data.ride.sneakspeed ~= nil then + sneakspeed = entity.data.ride.sneakspeed + end + + if entity.data.ride.jumpspeed ~= nil then + jumpspeed = entity.data.ride.jumpspeed + end + end + + local dir = entity.dynamic_data.ride.player:get_look_yaw() + local current_speed = entity.object:getacceleration() + + local speed_to_set = {x=0,y=current_speed.y,z=0} + if dir ~= nil then + local playerctrl = entity.dynamic_data.ride.player:get_player_control() + + if playerctrl ~= nil then + + local setspeed = false + + if playerctrl.jump and + entity.is_on_ground(entity) then + speed_to_set.y = jumpspeed + setspeed = true + end + + --just set speed to playerview direction + if playerctrl.up then + setspeed = true + end + + --invert playerview direction + if playerctrl.down then + dir = dir + math.pi + setspeed = true + end + + if playerctrl.left then + if playerctrl.up then + dir = dir + math.pi/4 + elseif playerctrl.down then + dir = dir - math.pi/4 + else + dir = dir + math.pi/2 + end + setspeed = true + end + + if playerctrl.right then + if playerctrl.up then + dir = dir - math.pi/4 + elseif playerctrl.down then + dir = dir + math.pi/4 + else + dir = dir - math.pi/2 + end + setspeed = true + end + + local selected_speed = walkspeed + + if playerctrl.sneak then + selected_speed = sneakspeed + end + + + + if setspeed then + speed_to_set_xz = mobf_calc_vector_components(dir,selected_speed) + + speed_to_set.x = speed_to_set_xz.x + speed_to_set.z = speed_to_set_xz.z + + if entity.data.ride.walk_anim ~= nil then + graphics.set_animation(entity,entity.data.ride.walk_anim) + end + else + if entity.data.ride.walk_anim ~= nil then + if entity.data.ride.stand_anim ~= nil then + graphics.set_animation(entity,entity.data.ride.stand_anim) + mob_state.change_state(entity,mob_state.get_state_by_name(entity,entity.data.ride.state_stand)) + else + graphics.set_animation(entity,"stand") + end + end + end + + entity.object:setvelocity(speed_to_set) + + --fix switched model orientation + entity.object:setyaw(dir) + end + + + end + return true + else + return false + end +end + +------------------------------------------------------------------------------ +-- name: on_punch_callback(entity,player) +-- +--! @brief make a player ride this mob +--! @ingroup mobf +-- +--! @param entity entity to be ridden +--! @param player player riding +------------------------------------------------------------------------------- +function mobf_ride.on_punch_callback(entity,player) + dbg_mobf.ride_lvl2("MOBF: ride on punch callback") + print("MOBF: ride on punch callback") + --detache + if entity.dynamic_data.ride.is_attached ~= false then + dbg_mobf.ride_lvl2("MOBF: punched ridden mob") + if entity.dynamic_data.ride.player == player then + dbg_mobf.ride_lvl2("MOBF: detaching player") + mobf_ride.dettache_player(entity) + player:get_inventory():add_item("main","animalmaterials:saddle 1") + return true + end + else + --check if player has saddle + dbg_mobf.ride_lvl2("MOBF: punched free mob") + if player:get_wielded_item():get_name() == "animalmaterials:saddle" then + dbg_mobf.ride_lvl2("MOBF: punching with saddle") + if player:get_inventory():contains_item("main","animalmaterials:saddle 1") then + dbg_mobf.ride_lvl2("MOBF: have saddle") + mobf_ride.attache_player(entity,player) + player:get_inventory():remove_item("main","animalmaterials:saddle 1") + return true + end + else + dbg_mobf.ride_lvl2("MOBF: not punching with saddle but: " .. player:get_wielded_item():get_name()) + end + end + + return false +end + +------------------------------------------------------------------------------ +-- name: is_enabled(entity) +-- +--! @brief check if riding is enabled for a mob +--! @ingroup mobf +-- +--! @param entity entity to be ridden +------------------------------------------------------------------------------- +function mobf_ride.is_enabled(entity) + if entity.data.ride ~= nil then + return true + end + dbg_mobf.ride_lvl2("riding of " .. entity.data.name .. " is disabled") + return false +end + +------------------------------------------------------------------------------ +-- name: attache_player(entity,player) +-- +--! @brief make a player ride this mob +--! @ingroup mobf +-- +--! @param entity entity to be ridden +------------------------------------------------------------------------------- +function mobf_ride.init(entity) + local data = { + is_attached = false, + player = nil, + } + + entity.dynamic_data.ride = data +end + +minetest.register_on_leaveplayer( function(player) + if player ~= nil and + player.object ~= nil then + local pos = player.object:getpos() + + --print("MOBF: got player position: " ..printpos(pos) ) + + if pos ~= nil then + local objects = get_objects_inside_radius(pos, 5) + + print("MOBF: found " .. dump(#objects) .. " objects around player") + + if objects ~= nil then + for i=1,#objects,1 do + local entity = objects[i]:get_luaentity() + if entity ~= nil and + entity.dynamic_data ~= nil and + entity.dynamic_data.ride ~= nil and + entity.dynamic_data.ride.player == player then + print("MOBF: found player to be attached") + ride.dettache_player(entity) + break + end + end + end + end + end +end) \ No newline at end of file diff --git a/mods/mobf/sound.lua b/mods/mobf/sound.lua new file mode 100644 index 0000000..4010775 --- /dev/null +++ b/mods/mobf/sound.lua @@ -0,0 +1,103 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file sound.lua +--! @brief component containing sound related functions +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-09 +-- +--! @defgroup grp_sound Sound subcomponent +--! @brief Component handling all sound related actions +--! @ingroup framework_int +--! @{ +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +--! @class sound +sound = {} + +--!@} + +------------------------------------------------------------------------------- +-- name: play(entity) +-- +--! @brief play a sound at a specified position +--! @memberof sound +-- +--! @param pos position to play sound at +--! @param soundspec sound to play +------------------------------------------------------------------------------- +function sound.play(pos,soundspec) + + if (soundspec ~= nil) then + + local toplay = { + gain = soundspec.gain, + pos = pos, + max_hear_distance = soundspec.max_hear_distance, + loop = false, + } + + minetest.sound_play(soundspec.name,toplay) + else + dbg_mobf.sound_lvl2("MOBF: no soundspec") + --todo add log entry + end +end + + +------------------------------------------------------------------------------- +-- name: play_random(entity,now) +-- +--! @brief play a random sound for mob +--! @memberof sound +-- +--! @param entity mob to do action +--! @param now current time +------------------------------------------------------------------------------- +function sound.play_random(entity,now) + + if entity.dynamic_data == nil or + entity.dynamic_data.sound == nil then + mobf_bug_warning(LOGLEVEL_ERROR,"MOBF BUG!!!: >" ..entity.data.name .. "< removed=" .. dump(entity.removed) .. " entity=" .. tostring(entity) .. " sound callback without dynamic data") + return + end + + if entity.data.sound ~= nil and + entity.data.sound.random ~= nil then + + if (entity.dynamic_data.sound.random_last + entity.data.sound.random.min_delta < now) then + + if math.random() < entity.data.sound.random.chance then + sound.play(entity.object:getpos(),entity.data.sound.random) + entity.dynamic_data.sound.random_last = now + dbg_mobf.sound_lvl1("MOBF: playing sound") + else + dbg_mobf.sound_lvl1("MOBF: not playing sound") + end + end + end + +end + +------------------------------------------------------------------------------- +-- name: sound.init_dynamic_data(entity) +-- +--! @brief initialize all dynamic data for sound on activate +--! @memberof sound +-- +--! @param entity mob to do action +--! @param now current time +------------------------------------------------------------------------------- +function sound.init_dynamic_data(entity,now) + local data = { + random_last = now, + } + + entity.dynamic_data.sound = data +end \ No newline at end of file diff --git a/mods/mobf/spawn_algorithms/at_night.lua b/mods/mobf/spawn_algorithms/at_night.lua new file mode 100644 index 0000000..ee117c2 --- /dev/null +++ b/mods/mobf/spawn_algorithms/at_night.lua @@ -0,0 +1,227 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file at_night.lua +--! @brief component containing spawning features +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-09 +-- +--! @addtogroup spawn_algorithms +--! @{ +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +at_night_surfaces = { "default:stone","default:dirt_with_grass","default:dirt","default:desert_stone","default:desert_sand" } + +------------------------------------------------------------------------------- +-- name: mobf_spawn_at_night(mob_name,mob_transform,spawning_data,environment) +-- +--! @brief spawn only at night +-- +--! @param mob_name name of mob +--! @param mob_transform secondary name of mob +--! @param spawning_data spawning configuration +--! @param environment environment of mob +------------------------------------------------------------------------------- +function mobf_spawn_at_night(mob_name,mob_transform,spawning_data,environment) + + print("\tregistering night spawn abm callback for mob "..mob_name) + + local media = nil + + if environment ~= nil and + environment.media ~= nil then + media = environment.media + end + + minetest.register_abm({ + nodenames = at_night_surfaces, + neighbors = media, + interval = 20, + chance = math.floor(1/spawning_data.rate), + action = function(pos, node, active_object_count, active_object_count_wider) + + local gametime = minetest.env:get_timeofday() + + if gametime > 0.25 and + gametime < 0.75 then + return + end + + local starttime = mobf_get_time_ms() + local pos_above = { + x = pos.x, + y = pos.y + 1, + z = pos.z + } + + --never try to spawn an mob at pos (0,0,0) it's initial entity spawnpos and + --used to find bugs in initial spawnpoint setting code + if mobf_pos_is_zero(pos) then + mobf_warn_long_fct(starttime,"mobf_spawn_at_night") + return + end + + --check if there s enough space above to place mob + if mobf_air_above(pos,spawning_data.height) ~= true then + mobf_warn_long_fct(starttime,"mobf_spawn_at_night") + return + end + + local gametime = minetest.env:get_timeofday() + + if gametime > 0.25 and + gametime < 0.75 then + return + end + + + local node_above = minetest.env:get_node(pos_above) + + + if mob_name == nil then + minetest.log(LOGLEVEL_ERROR, "MOBF: Bug!!! mob name not available") + else + --print("Find mobs of same type around:"..mob_name.. " pop dens: ".. population_density) + if mobf_mob_around(mob_name,mob_transform,pos,spawning_data.density,true) == 0 then + if minetest.env:get_node_light(pos_above,0.5) == LIGHT_MAX +1 and + minetest.env:get_node_light(pos_above,0.0) < 7 and + minetest.env:get_node_light(pos_above) < 6 then + + local newobject = minetest.env:add_entity(pos_above,mob_name .. "__default") + + local newentity = mobf_find_entity(newobject) + + if newentity == nil then + minetest.log(LOGLEVEL_ERROR,"MOBF: Bug!!! no "..mob_name.." has been created!") + end + + minetest.log(LOGLEVEL_INFO,"MOBF Spawning "..mob_name.." at night at position "..printpos(pos)) + end + end + end + mobf_warn_long_fct(starttime,"mobf_spawn_at_night") + end, + }) +end + +------------------------------------------------------------------------------- +-- name: mobf_spawn_at_night_entity(mob_name,mob_transform,spawning_data,environment) +-- +--! @brief find a place on surface to spawn at night +-- +--! @param mob_name name of mob +--! @param mob_transform secondary name of mob +--! @param spawning_data spawning configuration +--! @param environment environment of mob +------------------------------------------------------------------------------- +function mobf_spawn_at_night_entity(mob_name,mob_transform,spawning_data,environment) + minetest.log(LOGLEVEL_INFO,"MOBF:\tregistering at night mapgen spawn mapgen callback for mob "..mob_name) + + spawning.register_spawner_entity(mob_name,mob_transform,spawning_data,environment, + function(self) + local gametime = minetest.env:get_timeofday() + + if gametime > 0.25 and + gametime < 0.75 then + return + end + + local pos = self.object:getpos() + local good = true + + dbg_mobf.spawning_lvl3("MOBF: " .. dump(self.spawner_mob_env)) + + --check if own position is good + local pos_below = {x=pos.x,y=pos.y-1,z=pos.z} + local node_below = minetest.env:get_node(pos_below) + + + if not mobf_contains(at_night_surfaces,node_below.name) then + good = false + end + + --check if there s enough space above to place mob + if mobf_air_above(pos_below,self.spawner_mob_spawndata.height) ~= true then + good = false + end + + --check if area is in day/night cycle + if minetest.env:get_node_light(pos,0.5) ~= LIGHT_MAX +1 or + minetest.env:get_node_light(pos,0.0) > 7 then + good = false + end + + if not good then + dbg_mobf.spawning_lvl2("MOBF: not spawning spawner for " .. self.spawner_mob_name .. " somehow got to bad place") + --TODO try to move spawner to better place + + self.spawner_time_passed = self.spawner_mob_spawndata.respawndelay + return + end + + + --check if current light is dark enough + + if minetest.env:get_node_light(pos) > 6 then + return + end + + dbg_mobf.spawning_lvl3("MOBF: at_night checking how many mobs around: " .. dump(self.spawner_mob_name)) + if mobf_mob_around(self.spawner_mob_name, + self.spawner_mob_transform, + pos, + self.spawner_mob_spawndata.density,true) < 2 then + + spawning.spawn_and_check(self.spawner_mob_name,"__default",pos,"at_night_spawner_ent") + self.spawner_time_passed = self.spawner_mob_spawndata.respawndelay + else + self.spawner_time_passed = self.spawner_mob_spawndata.respawndelay + dbg_mobf.spawning_lvl2("MOBF: not spawning " .. self.spawner_mob_name .. " there's a mob around") + end + end) + + --add mob spawner on map generation + minetest.register_on_generated(function(minp, maxp, seed) + + spawning.divide_mapgen_entity(minp,maxp,spawning_data,mob_name, + function(name,pos,min_y,max_y) + dbg_mobf.spawning_lvl3("MOBF: trying to create a spawner for " .. name .. " at " ..printpos(pos)) + local surface = mobf_get_surface(pos.x,pos.z,min_y,max_y) + + if surface then + pos.y= surface -1 + + local node = minetest.env:get_node(pos) + + if not mobf_contains(at_night_surfaces,node.name) then + dbg_mobf.spawning_lvl3("MOBF: node ain't of correct type: " .. node.name) + return false + end + + local pos_above = {x=pos.x,y=pos.y+1,z=pos.z} + local node_above = minetest.env:get_node(pos_above) + if not mobf_contains({"air"},node_above.name) then + dbg_mobf.spawning_lvl3("MOBF: node above ain't air but: " .. node_above.name) + return + end + + spawning.spawn_and_check(name,"_spawner",pos_above,"at_night_spawner") + return true + else + dbg_mobf.spawning_lvl3("MOBF: didn't find surface for " .. name .. " spawner at " ..printpos(pos)) + end + return false + end) + end) --register mapgen + end --end spawn algo + +--!@} + +spawning.register_spawn_algorithm("at_night", mobf_spawn_at_night) +spawning.register_spawn_algorithm("at_night_spawner", mobf_spawn_at_night_entity,spawning.register_cleanup_spawner) \ No newline at end of file diff --git a/mods/mobf/spawn_algorithms/big_willow.lua b/mods/mobf/spawn_algorithms/big_willow.lua new file mode 100644 index 0000000..bd5c07c --- /dev/null +++ b/mods/mobf/spawn_algorithms/big_willow.lua @@ -0,0 +1,155 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file willow.lua +--! @brief spawn algorithm willow +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-09 +-- +--! @addtogroup spawn_algorithms +--! @{ +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +------------------------------------------------------------------------------- +-- name: mobf_spawn_on_big_willow(mob_name,mob_transform,spawning_data,environment) +-- +--! @brief find a place on big willow to spawn a mob +-- +--! @param mob_name name of mob +--! @param mob_transform secondary name of mob +--! @param spawning_data spawning configuration +--! @param environment environment of mob +------------------------------------------------------------------------------- +function mobf_spawn_on_big_willow(mob_name,mob_transform,spawning_data,environment) + minetest.log(LOGLEVEL_WARNING,"MOBF: using deprecated abm based spawn algorithm \"spawn_on_willow\" most likely causing lag in server!\t Use spawn_on_willow_mapgen instead!") + minetest.log(LOGLEVEL_INFO,"MOBF:\tregistering willow spawn abm callback for mob "..mob_name) + + local media = nil + + if environment ~= nil and + environment.media ~= nil then + media = environment.media + end + + minetest.register_abm({ + nodenames = { "default:dirt_with_grass" }, + neighbors = media, + interval = 7200, + chance = math.floor(1/spawning_data.rate), + action = function(pos, node, active_object_count, active_object_count_wider) + local starttime = mobf_get_time_ms() + local pos_above = { + x = pos.x, + y = pos.y + 1, + z = pos.z + } + + --never try to spawn an mob at pos (0,0,0) it's initial entity spawnpos and + --used to find bugs in initial spawnpoint setting code + if mobf_pos_is_zero(pos) then + mobf_warn_long_fct(starttime,"mobf_spawn_on_willow") + return + end + + --check if there s enough space above to place mob + if mobf_air_above(pos,spawning_data.height) ~= true then + mobf_warn_long_fct(starttime,"mobf_spawn_on_willow") + return + end + + if mob_name == nil then + mobf_bug_warning(LOGLEVEL_ERROR,"MOBF: BUG!!! mob name not available") + else + if mobf_mob_around(mob_name,mob_transform,pos,spawning_data.density,true) == 0 then + local pos_is_big_willow = true + + for x=pos.x-2,pos.x+2,1 do + for z=pos.z-2,pos.z+2,1 do + local node_to_check = minetest.env:getnode({x=x,y=pos.y,z=z}) + + if node_to_check == nil or + node_to_check.name ~= "default:dirt_with_grass" then + break + end + + --check if there s enough space above to place mob + if not mobf_air_above({x=x,y=pos.y,z=z},spawning_data.height) then + pos_is_big_willow = false + break + end + end + end + + if pos_is_big_willow then + dbg_mobf.spawning_lvl3("willow is big enough " ..printpos(centerpos)) + local spawnpos = {x=pos.x,y=pos.y+1,z=pos.z} + spawning.spawn_and_check(name,"__default",spawnpos,"on_big_willow_mapgen") + return true + end + end + end + mobf_warn_long_fct(starttime,"mobf_spawn_on_willow") + end, + }) +end + +------------------------------------------------------------------------------- +-- name: mobf_spawn_on_big_willow_mapgen(mob_name,mob_transform,spawning_data,environment) +-- +--! @brief find a place on big willow to spawn a mob on map generation +-- +--! @param mob_name name of mob +--! @param mob_transform secondary name of mob +--! @param spawning_data spawning configuration +--! @param environment environment of mob +------------------------------------------------------------------------------- +function mobf_spawn_on_big_willow_mapgen(mob_name,mob_transform,spawning_data,environment) + minetest.log(LOGLEVEL_INFO,"MOBF:\tregistering willow mapgen spawn mapgen callback for mob "..mob_name) + + --add mob on map generation + minetest.register_on_generated(function(minp, maxp, seed) + spawning.divide_mapgen(minp,maxp,spawning_data.density,mob_name,mob_transform, + + function(name,pos,min_y,max_y) + local pos_is_big_willow = true + + for x=pos.x-2,pos.x+2,1 do + for z=pos.z-2,pos.z+2,1 do + local node_to_check = minetest.env:get_node({x=x,y=pos.y,z=z}) + if node_to_check == nil or + node_to_check.name ~= "default:dirt_with_grass" then + pos_is_big_willow = false + break + end + + --check if there s enough space above to place mob + if not mobf_air_above({x=x,y=pos.y,z=z},spawning_data.height) then + pos_is_big_willow = false + break + end + end + end + + if pos_is_big_willow then + dbg_mobf.spawning_lvl3("willow is big enough " ..printpos(centerpos)) + local spawnpos = {x=pos.x,y=pos.y+1,z=pos.z} + spawning.spawn_and_check(name,"__default",spawnpos,"on_big_willow_mapgen") + return true + end + + return false + end, + mobf_get_sunlight_surface, + 20) + end) + end --end spawn algo +--!@} + +spawning.register_spawn_algorithm("big_willow", mobf_spawn_on_big_willow) +spawning.register_spawn_algorithm("big_willow_mapgen", mobf_spawn_on_big_willow_mapgen) \ No newline at end of file diff --git a/mods/mobf/spawn_algorithms/deep_large_caves.lua b/mods/mobf/spawn_algorithms/deep_large_caves.lua new file mode 100644 index 0000000..94e8daa --- /dev/null +++ b/mods/mobf/spawn_algorithms/deep_large_caves.lua @@ -0,0 +1,196 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file deep_large_caves.lua +--! @brief spawn algorithm to spawn in deep large caves +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-09 +-- +--! @addtogroup spawn_algorithms +--! @{ +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +------------------------------------------------------------------------------- +-- name: mobf_spawn_in_deep_large_caves(mob_name,mob_transform,spawning_data,environment) +-- +--! @brief find a place with low light to spawn an mob +-- +--! @param mob_name name of mob +--! @param mob_transform secondary name of mob +--! @param spawning_data spawning configuration +--! @param environment environment of mob +------------------------------------------------------------------------------- + +function mobf_spawn_in_deep_large_caves(mob_name,mob_transform,spawning_data,environment) + + minetest.log(LOGLEVEL_INFO,"MOBF:\tregistering shadow spawn abm callback for mob "..mob_name) + + local media = nil + + if environment ~= nil and + environment.media ~= nil then + media = environment.media + end + + minetest.register_abm({ + nodenames = { "default:stone" }, + neighbors = media, + interval = 60, + chance = math.floor(1/spawning_data.rate), + action = function(pos, node, active_object_count, active_object_count_wider) + local starttime = mobf_get_time_ms() + local pos_above = { + x = pos.x, + y = pos.y + 1, + z = pos.z + } + + if pos.y > spawning_data.min_depth then + dbg_mobf.spawning_lvl3("MOBF: min depth requirement not met") + mobf_warn_long_fct(starttime,"mobf_spawn_in_deep_large_caves") + return + end + + --never try to spawn an mob at pos (0,0,0) it's initial entity spawnpos and + --used to find bugs in initial spawnpoint setting code + if mobf_pos_is_zero(pos) then + dbg_mobf.spawning_lvl1("MOBF: not spawning due to 0 pos") + mobf_warn_long_fct(starttime,"mobf_spawn_in_deep_large_caves") + return + end + + --check if there s enough space above to place mob + if mobf_air_above(pos,spawning_data.height) ~= true then + dbg_mobf.spawning_lvl3("MOBF: height requirement not met") + mobf_warn_long_fct(starttime,"mobf_spawn_in_deep_large_caves") + return + end + + local node_above = minetest.env:get_node(pos_above) + + if mob_name == nil then + minetest.log(LOGLEVEL_ERROR,"MOBF: Bug!!! mob name not available") + else + dbg_mobf.spawning_lvl3("MOBF: trying to spawn " .. mob_name) + if mobf_mob_around(mob_name,mob_transform,pos,spawning_data.density,true) == 0 then + local newobject = minetest.env:add_entity(pos_above,mob_name .. "__default") + + local newentity = mobf_find_entity(newobject) + + if newentity == nil then + minetest.log(LOGLEVEL_ERROR,"MOBF: unable to create mob " .. mob_name .. " at pos " .. printpos(pos)) + else + minetest.log(LOGLEVEL_INFO,"MOBF: Spawning "..mob_name.." in shadows at position "..printpos(pos)) + end + else + dbg_mobf.spawning_lvl3("MOBF: too many mobs next to " ..printpos(pos)) + end + end + mobf_warn_long_fct(starttime,"mobf_spawn_in_deep_large_caves") + end, + }) +end + +------------------------------------------------------------------------------- +-- name: mobf_spawn_in_deep_large_caves(mob_name,mob_transform,spawning_data,environment) +-- +--! @brief find a place in deep large caces to spawn +-- +--! @param mob_name name of mob +--! @param mob_transform secondary name of mob +--! @param spawning_data spawning configuration +--! @param environment environment of mob +------------------------------------------------------------------------------- +function mobf_spawn_in_deep_large_caves_entity(mob_name,mob_transform,spawning_data,environment) + + spawning.register_spawner_entity(mob_name,mob_transform,spawning_data,environment, + function(self) + local pos = self.object:getpos() + local good = true + + dbg_mobf.spawning_lvl3("MOBF: " .. dump(self.spawner_mob_env)) + + --check if own position is good + local pos_below = {x=pos.x,y=pos.y-1,z=pos.z} + local node_below = minetest.env:get_node(pos_below) + + + if not mobf_contains({ "default:stone","default:gravel","default:dirt" },node_below.name) then + good = false + end + + --check if there s enough space above to place mob + if mobf_air_above(pos_below,self.spawner_mob_spawndata.height) ~= true then + good = false + end + + if not good then + dbg_mobf.spawning_lvl2("MOBF: not spawning spawner for " .. self.spawner_mob_name .. " somehow got to bad place") + --TODO try to move spawner to better place + + self.spawner_time_passed = self.spawner_mob_spawndata.respawndelay + return + end + + if mobf_mob_around(self.spawner_mob_name, + self.spawner_mob_transform, + pos, + self.spawner_mob_spawndata.density,true) < 2 then + + spawning.spawn_and_check(self.spawner_mob_name,"__default",pos,"at_night_spawner_ent") + self.spawner_time_passed = self.spawner_mob_spawndata.respawndelay + else + self.spawner_time_passed = self.spawner_mob_spawndata.respawndelay + dbg_mobf.spawning_lvl2("MOBF: not spawning " .. self.spawner_mob_name .. " there's a mob around") + end + end) + + --add mob spawner on map generation + minetest.register_on_generated(function(minp, maxp, seed) + + spawning.divide_mapgen_entity(minp,maxp,spawning_data,mob_name, + function(name,pos,min_y,max_y,spawning_data) + + if max_y > spawning_data.min_depth then + return + end + + dbg_mobf.spawning_lvl3("MOBF: trying to create a spawner for " .. name .. " at " ..printpos(pos)) + local surface = mobf_get_surface(pos.x,pos.z,min_y,max_y) + + if surface then + pos.y= surface -1 + + local node = minetest.env:get_node(pos) + + if not mobf_contains({ "default:stone","default:gravel","default:dirt","default:sand" },node.name) then + dbg_mobf.spawning_lvl3("MOBF: node ain't of correct type: " .. node.name) + return false + end + + local pos_above = {x=pos.x,y=pos.y+1,z=pos.z} + local node_above = minetest.env:get_node(pos_above) + if not mobf_contains({"air"},node_above.name) then + dbg_mobf.spawning_lvl3("MOBF: node above ain't air but: " .. node_above.name) + return + end + + spawning.spawn_and_check(name,"_spawner",pos_above,"deep_large_caves_spawner") + return true + else + dbg_mobf.spawning_lvl3("MOBF: didn't find surface for " .. name .. " spawner at " ..printpos(pos)) + end + return false + end) + end) --register mapgen +end +--!@} + +spawning.register_spawn_algorithm("deep large caves", mobf_spawn_in_deep_large_caves) +spawning.register_spawn_algorithm("deep_large_caves_spawner", mobf_spawn_in_deep_large_caves_entity,spawning.register_cleanup_spawner) \ No newline at end of file diff --git a/mods/mobf/spawn_algorithms/forrest.lua b/mods/mobf/spawn_algorithms/forrest.lua new file mode 100644 index 0000000..e2fe4c4 --- /dev/null +++ b/mods/mobf/spawn_algorithms/forrest.lua @@ -0,0 +1,135 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file forrest.lua +--! @brief spawn algorithm for forrest spawning +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-09 +-- +--! @addtogroup spawn_algorithms +--! @{ +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +------------------------------------------------------------------------------- +-- name: mobf_spawn_in_forrest(mob_name,mob_transform,spawning_data,environment) +-- +--! @brief find a place in the forrest to spawn an mob +-- +--! @param mob_name name of mob +--! @param mob_transform secondary name of mob +--! @param spawning_data spawning configuration +--! @param environment environment of mob +------------------------------------------------------------------------------- +function mobf_spawn_in_forrest(mob_name,mob_transform,spawning_data,environment) + minetest.log(LOGLEVEL_WARNING,"MOBF: using deprecated abm based spawn algorithm \"spawn_in_forrest\" most likely causing lag in server!\t Use spawn_in_forrest_mapgen instead!") + minetest.log(LOGLEVEL_INFO,"MOBF:\tregistering forrest spawn abm callback for mob "..mob_name) + + local media = nil + + if environment ~= nil and + environment.media ~= nil then + media = environment.media + end + + minetest.register_abm({ + nodenames = { "default:dirt_with_grass" }, + neighbors = media, + interval = 60, + chance = math.floor(1/spawning_data.rate), + action = function(pos, node, active_object_count, active_object_count_wider) + local starttime = mobf_get_time_ms() + local pos_above = { + x = pos.x, + y = pos.y + 1, + z = pos.z + } + + --never try to spawn an mob at pos (0,0,0) it's initial entity spawnpos and + --used to find bugs in initial spawnpoint setting code + if mobf_pos_is_zero(pos) then + mobf_warn_long_fct(starttime,"mobf_spawn_in_forrest") + return + end + + --check if there s enough space above to place mob + if mobf_air_above(pos,spawning_data.height) ~= true then + mobf_warn_long_fct(starttime,"mobf_spawn_in_forrest") + return + end + + + local node_above = minetest.env:get_node(pos_above) + + if mob_name == nil then + minetest.log(LOGLEVEL_ERROR,"MOBF Bug!!!: mob name not available") + else + --print("Try to spawn mob: "..mob_name) + + if node_above.name == "air" then + --print("Find mobs of same type around:"..mob_name.. " pop dens: ".. population_density) + if mobf_mob_around(mob_name,mob_transform,pos,spawning_data.density,true) == 0 then + + if minetest.env:find_node_near(pos, 3, { "default:leaves", + "default:tree"} ) ~= nil then + + local newobject = minetest.env:add_entity(pos_above,mob_name .. "__default") + + local newentity = mobf_find_entity(newobject) + + if newentity == nil then + minetest.log(LOGLEVEL_ERROR,"MOBF Bug!!!: no "..mob_name.." has been created!") + end + + minetest.log(LOGLEVEL_INFO,"MOBF: Spawning "..mob_name.." in forrest at position "..printpos(pos)) + end + end + end + end + mobf_warn_long_fct(starttime,"mobf_spawn_in_forrest") + end, + }) +end + +function mobf_spawn_in_forrest_mapgen(mob_name,mob_transform,spawning_data,environment) + + minetest.log(LOGLEVEL_INFO,"MOBF:\tregistering forrest spawn mapgen callback for mob "..mob_name) + + --add mob on map generation + minetest.register_on_generated(function(minp, maxp, seed) + spawning.divide_mapgen(minp,maxp,spawning_data.density,mob_name,mob_transform, + + function(name,pos,min_y,max_y) + + --check if there s enough space above to place mob + if mobf_air_above(pos,spawning_data.height) then + dbg_mobf.spawning_lvl3("enough air above " ..printpos(centerpos) + .. " minimum is: " .. spawning_data.height ) + + if minetest.env:find_node_near(pos, 3, { "default:leaves", + "default:tree"} ) ~= nil or + minetest.env:find_node_near(pos, 3, growing_trees_nodes ) ~= nil then + local spawnpos = {x=pos.x,y=pos.y+1,z=pos.z} + spawning.spawn_and_check(name,"__default",spawnpos,"in_forrest_mapgen") + return true + end -- forrest nodes + else + dbg_mobf.spawning_lvl3("not enough air above " ..printpos(centerpos) + .. " for mob ".. name .. " minimum is: " .. spawning_data.height ) + end -- air_above + return false + end, + mobf_get_sunlight_surface, + 5) + end) --register mapgen +end --end spawn algo + +--!@} + +spawning.register_spawn_algorithm("forrest_mapgen", mobf_spawn_in_forrest_mapgen) +spawning.register_spawn_algorithm("forrest", mobf_spawn_in_forrest) \ No newline at end of file diff --git a/mods/mobf/spawn_algorithms/in_air1.lua b/mods/mobf/spawn_algorithms/in_air1.lua new file mode 100644 index 0000000..9865794 --- /dev/null +++ b/mods/mobf/spawn_algorithms/in_air1.lua @@ -0,0 +1,177 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file in_air1.lua +--! @brief spawn algorithm for birds +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-09 +-- +--! @addtogroup spawn_algorithms +--! @{ +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +------------------------------------------------------------------------------- +-- name: mobf_spawn_in_air1(mob_name,mob_transform,spawning_data,environment) +-- +--! @brief find a place in sky to spawn mob +-- +--! @param mob_name name of mob +--! @param mob_transform secondary name of mob +--! @param spawning_data spawning configuration +--! @param environment environment of mob +------------------------------------------------------------------------------- + +function mobf_spawn_in_air1(mob_name,mob_transform,spawning_data,environment) + + minetest.log(LOGLEVEL_INFO,"MOBF:\tregistering in air 1 spawn abm callback for mob "..mob_name) + + local media = nil + + if environment ~= nil and + environment.media ~= nil then + media = environment.media + end + + minetest.register_abm({ + nodenames = { "default:dirt", "default:dirt_with_grass" }, + neighbors = media, + interval = 60, + chance = math.floor(1/spawning_data.rate), + action = function(pos, node, active_object_count, active_object_count_wider) + local starttime = mobf_get_time_ms() + local pos_above = { + x = pos.x, + y = pos.y + 1, + z = pos.z + } + + local node_above = minetest.env:get_node(pos_above) + + if node_above.name ~= "air" then + mobf_warn_long_fct(starttime,"mobf_spawn_in_air1") + return + end + + + local pos_spawn = { + x = pos.x, + y = pos.y + 10 + math.floor(math.random(0,10)), + z = pos.z + } + + local node_spawn = minetest.env:get_node(pos_spawn) + + + + if node_spawn.name ~= "air" then + mobf_warn_long_fct(starttime,"mobf_spawn_in_air1") + return + end + + if mob_name == nil then + minetest.log(LOGLEVEL_ERROR,"MOBF: Bug!!! mob name not available") + else + --print("Try to spawn mob: "..mob_name) + + if mobf_mob_around(mob_name,mob_transform,pos,spawning_data.density,true) == 0 then + + spawning.spawn_and_check(mob_name,"__default",pos_spawn,"in_air1") + end + end + mobf_warn_long_fct(starttime,"mobf_spawn_in_air1") + end, + }) +end + +------------------------------------------------------------------------------- +-- name: mobf_spawn_in_air1_spawner(mob_name,mob_transform,spawning_data,environment) +-- +--! @brief a spawner based spawn spawn algorithm +-- +--! @param mob_name name of mob +--! @param mob_transform secondary name of mob +--! @param spawning_data spawning configuration +--! @param environment environment of mob +------------------------------------------------------------------------------- +function mobf_spawn_in_air1_spawner(mob_name,mob_transform,spawning_data,environment) + + spawning.register_spawner_entity(mob_name,mob_transform,spawning_data,environment, + function(self) + local pos = self.object:getpos() + local good = true + + dbg_mobf.spawning_lvl3("MOBF: " .. dump(self.spawner_mob_env)) + + --check if own position is good + for x=pos.x-1,pos.x+1,1 do + for y=pos.y-1,pos.y+1,1 do + for z=pos.z-1,pos.z+1,1 do + + local node_to_check = minetest.env:get_node({x=x,y=y,z=z}) + + if node_to_check == nil then + good = false + else + dbg_mobf.spawning_lvl3("MOBF: checking " .. node_to_check.name) + if not mobf_contains(self.spawner_mob_env.media,node_to_check.name) then + good = false + end + end + end + end + end + + if not good then + dbg_mobf.spawning_lvl2("MOBF: not spawning, spawner for " .. self.spawner_mob_name .. " somehow got to bad place") + --TODO try to move spawner to better place + + self.spawner_time_passed = self.spawner_mob_spawndata.respawndelay + return + end + + + if mobf_mob_around(self.spawner_mob_name, + self.spawner_mob_transform, + pos, + self.spawner_mob_spawndata.density,true) == 0 then + + spawning.spawn_and_check(self.spawner_mob_name,"__default",pos,"in_air1_spawner_ent") + self.spawner_time_passed = self.spawner_mob_spawndata.respawndelay + else + self.spawner_time_passed = self.spawner_mob_spawndata.respawndelay + dbg_mobf.spawning_lvl2("MOBF: not spawning " .. self.spawner_mob_name .. " there's a mob around") + end + end) + + --add mob spawner on map generation + minetest.register_on_generated(function(minp, maxp, seed) + + spawning.divide_mapgen_entity(minp,maxp,spawning_data,mob_name, + function(name,pos,min_y,max_y) + dbg_mobf.spawning_lvl3("MOBF: trying to create a spawner for " .. name .. " at " ..printpos(pos)) + local surface = mobf_get_surface(pos.x,pos.z,min_y,max_y) + + if surface then + pos.y=surface + 8 + math.random(0,5) + + if mobf_air_above(pos,10) then + spawning.spawn_and_check(name,"_spawner",pos,"in_air1_spawner") + return true + end + end + return false + end) + end) --register mapgen + +end + +--!@} + +spawning.register_spawn_algorithm("in_air1", mobf_spawn_in_air1) +spawning.register_spawn_algorithm("in_air1_spawner", mobf_spawn_in_air1_spawner,spawning.register_cleanup_spawner) \ No newline at end of file diff --git a/mods/mobf/spawn_algorithms/in_shallow_water.lua b/mods/mobf/spawn_algorithms/in_shallow_water.lua new file mode 100644 index 0000000..caa6f83 --- /dev/null +++ b/mods/mobf/spawn_algorithms/in_shallow_water.lua @@ -0,0 +1,203 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file in_shallow_water.lua +--! @brief spawn algorithm for shallow water spawning +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-09 +-- +--! @addtogroup spawn_algorithms +--! @{ +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +------------------------------------------------------------------------------- +-- name: mobf_spawn_in_shallow_water(mob_name,mob_transform,spawning_data,environment) +-- +--! @brief find a place in water to spawn mob +-- +--! @param mob_name name of mob +--! @param mob_transform secondary name of mob +--! @param spawning_data spawning configuration +--! @param environment environment of mob +------------------------------------------------------------------------------- + +function mobf_spawn_in_shallow_water(mob_name,mob_transform,spawning_data,environment) + + minetest.log(LOGLEVEL_INFO,"MOBF: \tregistering shallow water spawn abm callback for mob "..mob_name) + + local media = nil + + if environment ~= nil and + environment.media ~= nil then + media = environment.media + end + + minetest.register_abm({ + nodenames = { "default:water_source" }, + neighbors = media, + interval = 60, + chance = math.floor(1/spawning_data.rate), + action = function(pos, node, active_object_count, active_object_count_wider) + local starttime = mobf_get_time_ms() + local pos_above = { + x = pos.x, + y = pos.y + 1, + z = pos.z + } + + --never try to spawn an mob at pos (0,0,0) it's initial entity spawnpos and + --used to find bugs in initial spawnpoint setting code + if mobf_pos_is_zero(pos) then + mobf_warn_long_fct(starttime,"mobf_spawn_in_shallow_water") + return + end + + --check if water is to deep + if mobf_air_distance(pos) < 10 then + mobf_warn_long_fct(starttime,"mobf_spawn_in_shallow_water") + return + end + + if mob_name == nil then + minetest.log(LOGLEVEL_ERROR,"MOBF: Bug!!! mob name not available") + else + --print("Try to spawn mob: "..mob_name) + + if mobf_mob_around(mob_name,mob_transform,pos,spawning_data.density,true) == 0 then + + if minetest.env:find_node_near(pos, 10, {"default:dirt", + "default:dirt_with_grass"}) ~= nil then + + local newobject = minetest.env:add_entity(pos,mob_name .. "__default") + + local newentity = mobf_find_entity(newobject) + + if newentity == nil then + minetest.log(LOGLEVEL_ERROR,"MOBF: Bug!!! no "..mob_name.." has been created!") + end + + minetest.log(LOGLEVEL_INFO,"MOBF: Spawning "..mob_name.." in shallow water "..printpos(pos)) + --else + --print(printpos(pos).." not next to ground") + end + end + end + mobf_warn_long_fct(starttime,"mobf_spawn_in_shallow_water") + end, + }) +end + +------------------------------------------------------------------------------- +-- name: mobf_spawn_in_shallow_water_entity(mob_name,mob_transform,spawning_data,environment) +-- +--! @brief find a place in shallow water +-- +--! @param mob_name name of mob +--! @param mob_transform secondary name of mob +--! @param spawning_data spawning configuration +--! @param environment environment of mob +------------------------------------------------------------------------------- +function mobf_spawn_in_shallow_water_entity(mob_name,mob_transform,spawning_data,environment) + minetest.log(LOGLEVEL_INFO,"MOBF:\tregistering in shallow water mapgen spawn mapgen callback for mob "..mob_name) + + spawning.register_spawner_entity(mob_name,mob_transform,spawning_data,environment, + function(self) + + local pos = self.object:getpos() + local good = true + + dbg_mobf.spawning_lvl3("MOBF: " .. dump(self.spawner_mob_env)) + + --check if own position is good + local node_to_check = minetest.env:get_node(pos) + + if node_to_check ~= nil and + node_to_check.name ~= "default:water_flowing" and + node_to_check.name ~= "default:water_source" then + dbg_mobf.spawning_lvl2("MOBF: spawner " .. printpos(pos) .. " not in water but:" .. dump(node_to_check)) + good = false + end + + local found_nodes = minetest.env:find_nodes_in_area({x=pos.x-1,y=pos.y-1,z=pos.z-1}, + {x=pos.x+1,y=pos.y+1,z=pos.z+1}, + { "default:water_flowing","default:water_source"} ) + if #found_nodes < 4 then + dbg_mobf.spawning_lvl2("MOBF: spawner " .. printpos(pos) .. " not enough water around: " .. #found_nodes) + good = false + end + + --check if water is to deep + if mobf_air_distance(pos) > 10 then + dbg_mobf.spawning_lvl2("MOBF: spawner " .. printpos(pos) .. " air distance to far no dirt around") + good = false + end + + --make sure we're near green coast + if minetest.env:find_node_near(pos, 10, + {"default:dirt","default:dirt_with_grass"}) == nil then + dbg_mobf.spawning_lvl2("MOBF: spawner " .. printpos(pos) .. " no dirt around") + good = false + end + + if not good then + dbg_mobf.spawning_lvl2("MOBF: not spawning, spawner for " .. self.spawner_mob_name .. " somehow got to bad place " .. printpos(pos)) + --TODO try to move spawner to better place + + self.spawner_time_passed = self.spawner_mob_spawndata.respawndelay + return + end + + + if mobf_mob_around(self.spawner_mob_name, + self.spawner_mob_transform, + pos, + self.spawner_mob_spawndata.density,true) == 0 then + + spawning.spawn_and_check(self.spawner_mob_name,"__default",pos,"in_shallow_water_spawner_ent") + self.spawner_time_passed = self.spawner_mob_spawndata.respawndelay + else + self.spawner_time_passed = self.spawner_mob_spawndata.respawndelay + dbg_mobf.spawning_lvl2("MOBF: not spawning " .. self.spawner_mob_name .. " there's a mob around") + end + end) + + --add mob spawner on map generation + minetest.register_on_generated(function(minp, maxp, seed) + + spawning.divide_mapgen_entity(minp,maxp,spawning_data,mob_name, + function(name,pos,min_y,max_y) + dbg_mobf.spawning_lvl3("MOBF: trying to create a spawner for " .. name .. " at " ..printpos(pos)) + local surface = mobf_get_surface(pos.x,pos.z,min_y,max_y) + + if surface then + pos.y=surface - math.random(2,10) + + local node_to_check = minetest.env:get_node(pos) + + if node_to_check ~= nil and + node_to_check.name == "default:water_source" or + node_to_check.name == "default:water_flowing" then + spawning.spawn_and_check(name,"_spawner",pos,"in_shallow_water_spawner") + return true + else + dbg_mobf.spawning_lvl3("MOBF: pos to add spawner is not water but: " .. dump(node_to_check)) + end + else + dbg_mobf.spawning_lvl3("MOBF: unable to find surface") + end + return false + end, + 15 + ) + end) --register mapgen + end --end spawn algo +--!@} + +spawning.register_spawn_algorithm("in_shallow_water", mobf_spawn_in_shallow_water) +spawning.register_spawn_algorithm("in_shallow_water_spawner", mobf_spawn_in_shallow_water_entity,spawning.register_cleanup_spawner) \ No newline at end of file diff --git a/mods/mobf/spawn_algorithms/none.lua b/mods/mobf/spawn_algorithms/none.lua new file mode 100644 index 0000000..c564f4a --- /dev/null +++ b/mods/mobf/spawn_algorithms/none.lua @@ -0,0 +1,34 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file none.lua +--! @brief dummy for mobs that don't spawn by themselfs at all +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-09 +-- +--! @addtogroup spawn_algorithms +--! @{ +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +------------------------------------------------------------------------------- +-- name: mobf_spawn_none(mob_name,mob_transform,spawning_data) +-- +--! @brief don't spawn at all +-- +--! @param mob_name name of mob +--! @param mob_transform secondary name of mob +--! @param spawning_data spawning configuration +------------------------------------------------------------------------------- +function mobf_spawn_none(mob_name,mob_transform,spawning_data) + --intended to do nothing! +end + +--!@} + +spawning.register_spawn_algorithm("none", mobf_spawn_none) \ No newline at end of file diff --git a/mods/mobf/spawn_algorithms/shadows.lua b/mods/mobf/spawn_algorithms/shadows.lua new file mode 100644 index 0000000..dfa80cf --- /dev/null +++ b/mods/mobf/spawn_algorithms/shadows.lua @@ -0,0 +1,207 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file shadows.lua +--! @brief spawn algorithm for in shadow spawning +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-09 +-- +--! @addtogroup spawn_algorithms +--! @{ +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +------------------------------------------------------------------------------- +-- name: mobf_spawn_in_shadows(mob_name,mob_transform,spawning_data,environment) +-- +--! @brief find a place with low light to spawn an mob +-- +--! @param mob_name name of mob +--! @param mob_transform secondary name of mob +--! @param spawning_data spawning configuration +--! @param environment environment of mob +------------------------------------------------------------------------------- + +function mobf_spawn_in_shadows(mob_name,mob_transform,spawning_data,environment) + + minetest.log(LOGLEVEL_INFO,"MOBF:\tregistering shadow spawn abm callback for mob "..mob_name) + + local media = nil + + if environment ~= nil and + environment.media ~= nil then + media = environment.media + end + + minetest.register_abm({ + nodenames = { "default:stone" }, + neighbors = media, + interval = 60, + chance = math.floor(1/spawning_data.rate), + action = function(pos, node, active_object_count, active_object_count_wider) + local starttime = mobf_get_time_ms() + local pos_above = { + x = pos.x, + y = pos.y + spawning_data.height/2, + z = pos.z + } + + --never try to spawn an mob at pos (0,0,0) it's initial entity spawnpos and + --used to find bugs in initial spawnpoint setting code + if mobf_pos_is_zero(pos) then + dbg_mobf.spawning_lvl1("MOBF: not spawning due to 0 pos") + mobf_warn_long_fct(starttime,"mobf_spawn_in_shadows") + return + end + + --check if there s enough space above to place mob + if mobf_air_above(pos,spawning_data.height) ~= true then + dbg_mobf.spawning_lvl3("MOBF: height requirement not met") + mobf_warn_long_fct(starttime,"mobf_spawn_in_shadows") + return + end + + local node_above = minetest.env:get_node(pos_above) + + if mob_name == nil then + minetest.log(LOGLEVEL_ERROR,"MOBF: Bug!!! mob name not available") + else + dbg_mobf.spawning_lvl3("MOBF: trying to spawn " .. mob_name) + if mobf_mob_around(mob_name,mob_transform,pos,spawning_data.density,true) == 0 then + + local maxlight = mobf_max_light_around(pos,3,0.5) + if maxlight < 3 then + + local newobject = minetest.env:add_entity(pos_above,mob_name .. "__default") + + local newentity = mobf_find_entity(newobject) + + if newentity == nil then + minetest.log(LOGLEVEL_ERROR,"MOBF: unable to create mob " .. mob_name .. " at pos " .. printpos(pos)) + else + minetest.log(LOGLEVEL_INFO,"MOBF: Spawning "..mob_name.." in shadows at position "..printpos(pos) .. " maxlight was: " .. maxlight) + end + else + dbg_mobf.spawning_lvl3("MOBF: too much light next to " ..printpos(pos) .. " light: " .. maxlight ) + end + else + dbg_mobf.spawning_lvl3("MOBF: too many mobs next to " ..printpos(pos)) + end + end + mobf_warn_long_fct(starttime,"mobf_spawn_in_shadows") + end, + }) +end + +------------------------------------------------------------------------------- +-- name: mobf_spawn_in_deep_large_caves(mob_name,mob_transform,spawning_data,environment) +-- +--! @brief find a place in deep large caces to spawn +-- +--! @param mob_name name of mob +--! @param mob_transform secondary name of mob +--! @param spawning_data spawning configuration +--! @param environment environment of mob +------------------------------------------------------------------------------- +function mobf_spawn_in_shadows_entity(mob_name,mob_transform,spawning_data,environment) + + spawning.register_spawner_entity(mob_name,mob_transform,spawning_data,environment, + function(self) + local pos = self.object:getpos() + local good = true + + dbg_mobf.spawning_lvl3("MOBF: " .. dump(self.spawner_mob_env)) + + --check if own position is good + local pos_below = {x=pos.x,y=pos.y-1,z=pos.z} + local node_below = minetest.env:get_node(pos_below) + + + if not mobf_contains({ "default:stone","default:gravel","default:dirt" },node_below.name) then + good = false + end + + --check if there s enough space above to place mob + if mobf_air_above(pos_below,self.spawner_mob_spawndata.height) ~= true then + good = false + end + + for i=0.0,1,0.1 do + if minetest.env:get_node_light(pos,i) > 6 then + good = false + end + end + + if not good then + dbg_mobf.spawning_lvl2("MOBF: not spawning spawner for " .. self.spawner_mob_name .. " somehow got to bad place") + --TODO try to move spawner to better place + + self.spawner_time_passed = self.spawner_mob_spawndata.respawndelay + return + end + + if mobf_mob_around(self.spawner_mob_name, + self.spawner_mob_transform, + pos, + self.spawner_mob_spawndata.density,true) == 0 then + + spawning.spawn_and_check(self.spawner_mob_name,"__default",pos,"shadows_spawner_ent") + self.spawner_time_passed = self.spawner_mob_spawndata.respawndelay + else + self.spawner_time_passed = self.spawner_mob_spawndata.respawndelay + dbg_mobf.spawning_lvl2("MOBF: not spawning " .. self.spawner_mob_name .. " there's a mob around") + end + end) + + --add mob spawner on map generation + minetest.register_on_generated(function(minp, maxp, seed) + + spawning.divide_mapgen_entity(minp,maxp,spawning_data,mob_name, + function(name,pos,min_y,max_y,spawning_data) + + dbg_mobf.spawning_lvl3("MOBF: trying to create a spawner for " .. name .. " at " ..printpos(pos)) + local surface = mobf_get_surface(pos.x,pos.z,min_y,max_y) + + if surface then + pos.y= surface -1 + + local node = minetest.env:get_node(pos) + + if not mobf_contains({ "default:stone","default:gravel","default:dirt","default:sand" },node.name) then + dbg_mobf.spawning_lvl3("MOBF: node ain't of correct type: " .. node.name) + return false + end + + local pos_above = {x=pos.x,y=pos.y+1,z=pos.z} + local node_above = minetest.env:get_node(pos_above) + if not mobf_contains({"air"},node_above.name) then + dbg_mobf.spawning_lvl3("MOBF: node above ain't air but: " .. node_above.name) + return false + end + + --check if its always in shadows + for i=0.0,1,0.1 do + if minetest.env:get_node_light(pos_above,i) > 6 then + return false + end + end + + spawning.spawn_and_check(name,"_spawner",pos_above,"shadows_spawner") + return true + else + dbg_mobf.spawning_lvl3("MOBF: didn't find surface for " .. name .. " spawner at " ..printpos(pos)) + end + return false + end) + end) --register mapgen +end + +--!@} + +spawning.register_spawn_algorithm("shadows", mobf_spawn_in_shadows) +spawning.register_spawn_algorithm("shadows_spawner", mobf_spawn_in_shadows_entity,spawning.register_cleanup_spawner) \ No newline at end of file diff --git a/mods/mobf/spawn_algorithms/willow.lua b/mods/mobf/spawn_algorithms/willow.lua new file mode 100644 index 0000000..26483ff --- /dev/null +++ b/mods/mobf/spawn_algorithms/willow.lua @@ -0,0 +1,126 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file willow.lua +--! @brief spawn algorithm willow +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-09 +-- +--! @addtogroup spawn_algorithms +--! @{ +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +------------------------------------------------------------------------------- +-- name: mobf_spawn_on_willow(mob_name,mob_transform,spawning_data,environment) +-- +--! @brief find a place on willow to spawn a mob +-- +--! @param mob_name name of mob +--! @param mob_transform secondary name of mob +--! @param spawning_data spawning configuration +--! @param environment environment of mob +------------------------------------------------------------------------------- +function mobf_spawn_on_willow(mob_name,mob_transform,spawning_data,environment) + minetest.log(LOGLEVEL_WARNING,"MOBF: using deprecated abm based spawn algorithm \"spawn_on_willow\" most likely causing lag in server!\t Use spawn_on_willow_mapgen instead!") + minetest.log(LOGLEVEL_INFO,"MOBF:\tregistering willow spawn abm callback for mob "..mob_name) + + local media = nil + + if environment ~= nil and + environment.media ~= nil then + media = environment.media + end + + minetest.register_abm({ + nodenames = { "default:dirt_with_grass" }, + neighbors = media, + interval = 7200, + chance = math.floor(1/spawning_data.rate), + action = function(pos, node, active_object_count, active_object_count_wider) + local starttime = mobf_get_time_ms() + local pos_above = { + x = pos.x, + y = pos.y + 1, + z = pos.z + } + + --never try to spawn an mob at pos (0,0,0) it's initial entity spawnpos and + --used to find bugs in initial spawnpoint setting code + if mobf_pos_is_zero(pos) then + mobf_warn_long_fct(starttime,"mobf_spawn_on_willow") + return + end + + --check if there s enough space above to place mob + if mobf_air_above(pos,spawning_data.height) ~= true then + mobf_warn_long_fct(starttime,"mobf_spawn_on_willow") + return + end + + local node_above = minetest.env:get_node(pos_above) + + if mob_name == nil then + mobf_bug_warning(LOGLEVEL_ERROR,"MOBF: BUG!!! mob name not available") + else + --print("Try to spawn mob: "..mob_name) + if node_above.name == "air" then + --print("Find mobs of same type around:"..mob_name.. " pop dens: ".. population_density) + if mobf_mob_around(mob_name,mob_transform,pos,spawning_data.density,true) == 0 then + local newobject = minetest.env:add_entity(pos_above,mob_name .. "__default") + + local newentity = mobf_find_entity(newobject) + + if newentity == nil then + mobf_bug_warning(LOGLEVEL_ERROR,"MOBF: BUG!!! no "..mob_name.." has been created!") + end + minetest.log(LOGLEVEL_INFO,"MOBF: Spawning "..mob_name.." on willow at position "..printpos(pos)) + end + end + end + mobf_warn_long_fct(starttime,"mobf_spawn_on_willow") + end, + }) +end + +------------------------------------------------------------------------------- +-- name: mobf_spawn_on_willow_mapgen(mob_name,mob_transform,spawning_data,environment) +-- +--! @brief find a place on willow to spawn a mob on map generation +-- +--! @param mob_name name of mob +--! @param mob_transform secondary name of mob +--! @param spawning_data spawning configuration +--! @param environment environment of mob +------------------------------------------------------------------------------- +function mobf_spawn_on_willow_mapgen(mob_name,mob_transform,spawning_data,environment) + minetest.log(LOGLEVEL_INFO,"MOBF:\tregistering willow mapgen spawn mapgen callback for mob "..mob_name) + + --add mob on map generation + minetest.register_on_generated(function(minp, maxp, seed) + spawning.divide_mapgen(minp,maxp,spawning_data.density,mob_name,mob_transform, + + function(name,pos,min_y,max_y) + + --check if there s enough space above to place mob + if mobf_air_above(pos,spawning_data.height) then + dbg_mobf.spawning_lvl3("enough air above " ..printpos(centerpos) .. " minimum is: " .. spawning_data.height ) + local spawnpos = {x=pos.x,y=pos.y+1,z=pos.z} + spawning.spawn_and_check(name,"__default",spawnpos,"on_willow_mapgen") + return true + end -- air_above + return false + end, + mobf_get_sunlight_surface, + 5) + end) + end --end spawn algo +--!@} + +spawning.register_spawn_algorithm("willow", mobf_spawn_on_willow) +spawning.register_spawn_algorithm("willow_mapgen", mobf_spawn_on_willow_mapgen) \ No newline at end of file diff --git a/mods/mobf/spawning.lua b/mods/mobf/spawning.lua new file mode 100644 index 0000000..17246b7 --- /dev/null +++ b/mods/mobf/spawning.lua @@ -0,0 +1,648 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file spawning.lua +--! @brief component containing spawning features +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-09 +-- + +--! @defgroup spawning Spawn mechanisms +--! @brief all functions and variables required for automatic mob spawning +--! @ingroup framework_int +--! @{ +-- +--! @defgroup spawn_algorithms Spawn algorithms +--! @brief spawn algorithms provided by mob framework (can be extended by mods) +-- +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- +--! @class spawning +--! @brief spawning features +spawning = {} + +--!@} + +--! @brief registry for spawn algorithms +--! @memberof spawning +--! @private +mobf_spawn_algorithms = {} + + +------------------------------------------------------------------------------- +-- name: remove_uninitialized(entity,staticdata) +-- @function [parent=#spawning] remove_uninitialized +-- +--! @brief remove a spawn point based uppon staticdata supplied +--! @memberof spawning +-- +--! @param entity to remove +--! @param staticdata of mob +------------------------------------------------------------------------------- +function spawning.remove_uninitialized(entity, staticdata) + --entity may be known in spawnlist + if staticdata ~= nil then + local permanent_data = mobf_deserialize_permanent_entity_data(staticdata) + if (permanent_data.spawnpoint ~= nil) then + + --prepare information required to remove entity + entity.dynamic_data = {} + entity.dynamic_data.spawning = {} + entity.dynamic_data.spawning.spawnpoint = permanent_data.spawnpoint + + spawning.remove(entity,"remove uninitialized") + end + else + dbg_mobf.spawning_lvl1("MOBF: remove uninitialized entity=" .. tostring(entity)) + --directly remove it can't be known to spawnlist + entity.object:remove() + end +end + +------------------------------------------------------------------------------- +-- name: remove(entity) +-- @function [parent=#spawning] remove +-- +--! @brief remove a mob +--! @memberof spawning +-- +--! @param entity mob to remove +--! @param reason text to log as reason for removal +------------------------------------------------------------------------------- +function spawning.remove(entity,reason) + local pos = entity.object:getpos() + dbg_mobf.spawning_lvl3("MOBF: --> remove " .. printpos(pos)) + if entity ~= nil then + entity.removed = true + dbg_mobf.spawning_lvl1("MOBF: remove entity=" .. tostring(entity)) + if minetest.setting_getbool("mobf_log_removed_entities") then + if reason == nil then + reason = "unknown" + end + minetest.log(LOGLEVEL_NOTICE,"MOBF: removing " .. entity.data.name .. + " at " .. printpos(pos) .. " due to: " .. reason) + end + entity.object:remove() + else + minetest.log(LOGLEVEL_ERROR,"Trying to delete an an non existant mob") + end + + dbg_mobf.spawning_lvl3("MOBF: <-- remove") +end + +------------------------------------------------------------------------------- +-- name: init_dynamic_data(entity) +-- @function [parent=#spawning] init_dynamic_data +-- +--! @brief initialize dynamic data required for spawning +--! @memberof spawning +-- +--! @param entity mob to initialize dynamic data +--! @param now current time +------------------------------------------------------------------------------- +function spawning.init_dynamic_data(entity,now) + + local data = { + player_spawned = false, + ts_dense_check = now, + spawnpoint = entity.object:getpos(), + original_spawntime = now, + } + + entity.removed = false + entity.dynamic_data.spawning = data +end + + + +------------------------------------------------------------------------------- +-- name: check_population_density(mob) +-- @function [parent=#spawning] check_population_density +-- +--! @brief check and fix if there are too many mobs within a specific range +--! @memberof spawning +-- +--! @param entity mob to check +--! @param now current time +------------------------------------------------------------------------------- +function spawning.check_population_density(entity,now) + + if entity == nil or + entity.dynamic_data == nil or + entity.dynamic_data.spawning == nil then + mobf_bug_warning(LOGLEVEL_ERROR,"MOBF BUG!!! " .. entity.data.name .. + " pop dense check called for entity with missing spawn data entity=" .. + tostring(entity)) + return + end + + + -- don't check if mob is player spawned + if entity.dynamic_data.spawning.player_spawned == true then + dbg_mobf.spawning_lvl1("MOBF: mob is player spawned skipping pop dense check") + return + end + + + --don't do population check while fighting + if entity.dynamic_data.combat ~= nil and + entity.dynamic_data.combat.target ~= "" then + return + end + + + --only check every 15 seconds + if entity.dynamic_data.spawning.ts_dense_check + 15 > now then + return + end + + entity.dynamic_data.spawning.ts_dense_check = now + + local entitypos = mobf_round_pos(entity.object:getpos()) + + --mob either not initialized completely or a bug + if mobf_pos_is_zero(entitypos) then + return + end + + local secondary_name = "" + if entity.data.harvest ~= nil then + secondary_name = entity.data.harvest.transform_to + end + + local mob_count = mobf_mob_around(entity.data.modname..":"..entity.data.name, + secondary_name, + entitypos, + entity.data.spawning.density, + true) + if mob_count > 5 then + entity.removed = true + minetest.log(LOGLEVEL_WARNING,"MOBF: Too many ".. mob_count .. " ".. + entity.data.name.." at one place dying: " .. + tostring(entity.dynamic_data.spawning.player_spawned)) + spawning.remove(entity, "population density check") + else + dbg_mobf.spawning_lvl3("Density ok only "..mob_count.." mobs around") + end +end + + +------------------------------------------------------------------------------- +-- name: replace_entity(pos,name,spawnpos,health) +-- @function [parent=#spawning] replace_entity +-- +--! @brief replace mob at a specific position by a new one +--! @memberof spawning +-- +--! @param entity mob to replace +--! @param name of the mob to add +--! @param preserve preserve original spawntime +--! @return entity added or nil on error +------------------------------------------------------------------------------- +function spawning.replace_entity(entity,name,preserve) + dbg_mobf.spawning_lvl3("MOBF: --> replace_entity(" + .. entity.data.name .. "|" .. name .. ")") + + if minetest.registered_entities[name] == nil then + minetest.log(LOGLEVEL_ERROR,"MOBF: replace_entity: Bug no " + ..name.." is registred") + return nil + end + + -- avoid switching to same entity + if entity.name == name then + minetest.log(LOGLEVEL_INFO,"MOBF: not replacing " .. name .. + " by entity of same type!") + return nil + end + + + -- get data to be transfered to new entity + local pos = mobf.get_basepos(entity) + local health = entity.object:get_hp() + local temporary_dynamic_data = entity.dynamic_data + local entity_orientation = entity.object:getyaw() + + if preserve == nil or preserve == false then + temporary_dynamic_data.spawning.original_spawntime = mobf_get_current_time() + end + + --calculate new y pos + if minetest.registered_entities[name].collisionbox ~= nil then + pos.y = pos.y - minetest.registered_entities[name].collisionbox[2] + end + + + --delete current mob + dbg_mobf.spawning_lvl2("MOBF: replace_entity: removing " .. entity.data.name) + + --unlink dynamic data (this should work but doesn't due to other bugs) + entity.dynamic_data = nil + + --removing is done after exiting lua! + spawning.remove(entity,"replaced") + + local newobject = minetest.env:add_entity(pos,name) + local newentity = mobf_find_entity(newobject) + + if newentity ~= nil then + if newentity.dynamic_data ~= nil then + dbg_mobf.spawning_lvl2("MOBF: replace_entity: " .. name .. + " added at " .. + printpos(newentity.dynamic_data.spawning.spawnpoint)) + newentity.dynamic_data = temporary_dynamic_data + newentity.object:set_hp(health) + newentity.object:setyaw(entity_orientation) + else + minetest.log(LOGLEVEL_ERROR, + "MOBF: replace_entity: dynamic data not set for "..name.. + " maybe delayed activation?") + newentity.dyndata_delayed = { + data = temporary_dynamic_data, + health = health, + orientation = entity_orientation + } + end + else + minetest.log(LOGLEVEL_ERROR, + "MOBF: replace_entity 4 : Bug no "..name.." has been created") + end + dbg_mobf.spawning_lvl3("MOBF: <-- replace_entity") + return newentity +end + +------------------------------------------------------------------------------ +-- name: lifecycle() +-- @function [parent=#spawning] lifecycle +-- +--! @brief check mob lifecycle +--! @memberof spawning +-- +--! @return true/false still alive dead +------------------------------------------------------------------------------- +function spawning.lifecycle(entity,now) + + if entity.dynamic_data.spawning.original_spawntime ~= nil and + entity.data.spawning.lifetime ~= nil then + + local lifetime = entity.data.spawning.lifetime + + local current_age = now - entity.dynamic_data.spawning.original_spawntime + + if current_age > 0 and + current_age > lifetime then + dbg_mobf.spawning_lvl1("MOBF: removing animal due to limited lifetime") + spawning.remove(entity," limited mob lifetime") + return false + end + else + entity.dynamic_data.spawning.original_spawntime = now + end + + return true +end + +------------------------------------------------------------------------------ +-- name: register_spawn_algorithm() +-- @function [parent=#spawning] register_spawn_algorithm +-- +--! @brief print current spawn statistics +--! @memberof spawning +-- +--! @return true/false successfully added spawn algorithm +------------------------------------------------------------------------------- +function spawning.register_spawn_algorithm(name, spawnfunc, cleanupfunc) + + if (mobf_spawn_algorithms[name] ~= nil) then + return false + end + + local new_algorithm = {} + + new_algorithm.register_spawn = spawnfunc + new_algorithm.register_cleanup = cleanupfunc + + mobf_spawn_algorithms[name] = new_algorithm + + return true +end + +------------------------------------------------------------------------------ +-- name: spawn_and_check(name,suffix,pos) +-- @function [parent=#spawning] spawn_and_check +-- +--! @brief spawn an entity and check for presence +--! @memberof spawning +-- +--! @return spawned mob entity +------------------------------------------------------------------------------- +function spawning.spawn_and_check(name,suffix,pos,text) + local newobject = minetest.env:add_entity(pos,name .. suffix) + + if newobject then + local newentity = mobf_find_entity(newobject) + + if newentity == nil then + dbg_mobf.spawning_lvl3("MOBF BUG!!! no " .. name.. + " entity has been created by " .. text .. "!") + mobf_bug_warning(LOGLEVEL_ERROR,"BUG!!! no " .. name.. + " entity has been created by " .. text .. "!") + else + dbg_mobf.spawning_lvl2("MOBF: spawning "..name.." entity by " .. + text .. " at position ".. printpos(pos)) + minetest.log(LOGLEVEL_INFO,"MOBF: spawning "..name.." entity by " .. + text .. " at position ".. printpos(pos)) + return newentity + end + else + dbg_mobf.spawning_lvl3("MOBF BUG!!! no "..name.. + " object has been created by " .. text .. "!") + mobf_bug_warning(LOGLEVEL_ERROR,"MOBF BUG!!! no "..name.. + " object has been created by " .. text .. "!") + end + + return nil +end + + +------------------------------------------------------------------------------ +-- name: get_center(min,max,current_step,interval) +-- @function [parent=#spawning] get_center +-- +--! @brief calculate center and deltas +--! @memberof spawning +-- +--! @return center,delta +------------------------------------------------------------------------------- +function spawning.get_center(min,max,current_step,interval) + + dbg_mobf.spawning_lvl3("MOBF: get_center params: " .. min .. " " .. max .. + " " .. current_step .. " " .. interval ) + local abs_min = min + interval * (current_step-1) + local abs_max = abs_min + interval + + if abs_max > max then + abs_max = max + end + + local delta = (abs_max - abs_min) / 2 + + return (abs_min + delta),delta +end + +------------------------------------------------------------------------------ +-- name: divide_mapgen_entity(minp,maxp,density,name,spawnfunc) +-- @function [parent=#spawning] divide_mapgen_entity +-- +--! @brief divide mapblock into 2d chunks and call spawnfunc with randomized parameters for each +--! @memberof spawning +--! @param minp minimum 3d point of map block +--! @param maxp maximum 3d point of map block +--! @param spawndata spawndata +--! @param name name of entity to spawn +--! @param spawnfunc function to use for spawning +--! @param maxtries maximum number of tries to place a spawner +-- +------------------------------------------------------------------------------- +function spawning.divide_mapgen_entity(minp,maxp,spawndata,name,spawnfunc,maxtries) + + local density = spawndata.density + + dbg_mobf.spawning_lvl3("MOBF: divide_mapgen params: ") + dbg_mobf.spawning_lvl3("MOBF: " .. dump(spawndata.density)) + dbg_mobf.spawning_lvl3("MOBF: " .. dump(name)) + dbg_mobf.spawning_lvl3("MOBF: " .. dump(spawnfunc)) + + if maxtries == nil then + maxtries = 5 + end + + local starttime = mobf_get_time_ms() + + local min_x = MIN(minp.x,maxp.x) + local min_y = MIN(minp.y,maxp.x) + local min_z = MIN(minp.z,maxp.z) + + local max_x = MAX(minp.x,maxp.x) + local max_y = MAX(minp.y,maxp.y) + local max_z = MAX(minp.z,maxp.z) + + + local xdivs = math.floor(((max_x - min_x) / spawndata.density) +1) + local zdivs = math.floor(((max_z - min_z) / spawndata.density) +1) + + dbg_mobf.spawning_lvl3("MOBF: X: " .. min_x .. "-->" .. max_x) + dbg_mobf.spawning_lvl3("MOBF: Z: " .. min_z .. "-->" .. max_z) + dbg_mobf.spawning_lvl3("MOBF: Y: " .. min_y .. "-->" .. max_y) + dbg_mobf.spawning_lvl3("MOBF: generating in " .. xdivs .. " | " .. zdivs .. " chunks") + + for i = 1, xdivs,1 do + for j = 1, zdivs,1 do + + local x_center,x_delta = spawning.get_center(min_x,max_x,i,spawndata.density) + local z_center,z_delta = spawning.get_center(min_z,max_z,j,spawndata.density) + + local surface_center = mobf_get_surface(x_center,z_center,min_y,max_y) + + local centerpos = {x=x_center,y=surface_center,z=z_center} + + dbg_mobf.spawning_lvl3("MOBF: center is (" .. x_center .. "," .. z_center .. ")" + .." --> (".. x_delta .."," .. z_delta .. ")") + + --check if there is already a mob of same type within area + if surface_center then + local mobs_around = mobf_spawner_around(name,centerpos,spawndata.density) + if mobs_around == 0 then + dbg_mobf.spawning_lvl3("no " .. name .. " within range of " .. + spawndata.density .. " around " ..printpos(centerpos)) + for i= 0, maxtries do + local x_try = math.random(-x_delta,x_delta) + local z_try = math.random(-z_delta,z_delta) + + local pos = { x= x_center + x_try, + z= z_center + z_try } + + --do place spawners in center of block + pos.x = math.floor(pos.x + 0.5) + pos.z = math.floor(pos.z + 0.5) + + if spawnfunc(name,pos,min_y,max_y,spawndata) then + break + end + end --for -> 5 + end --mob around + else + dbg_mobf.spawning_lvl3("MOBF: didn't find surface for " ..printpos(centerpos)) + end --surface_center + end -- for z divs + end -- for x divs + dbg_mobf.spawning_lvl3("magen ended") +end + +------------------------------------------------------------------------------ +-- name: divide_mapgen(minp,maxp,density,name,spawnfunc) +-- @function [parent=#spawning] divide_mapgen +-- +--! @brief divide mapblock into 2d chunks and call spawnfunc with randomized parameters for each +--! @memberof spawning +--! @param minp minimum 3d point of map block +--! @param maxp maximum 3d point of map block +--! @param density chunk size +--! @param name name of entity to spawn +--! @param secondary_name secondary name of entity +--! @param spawnfunc function to use for spawning +--! @param surfacefunc use this function to detect surface +--! @param maxtries maximum number of tries to place a entity +-- +------------------------------------------------------------------------------- +function spawning.divide_mapgen(minp,maxp,density,name,secondary_name,spawnfunc,surfacefunc,maxtries) + local starttime = mobf_get_time_ms() + dbg_mobf.spawning_lvl3("MOBF: divide_mapgen params: ") + dbg_mobf.spawning_lvl3("MOBF: " .. dump(density)) + dbg_mobf.spawning_lvl3("MOBF: " .. dump(name)) + dbg_mobf.spawning_lvl3("MOBF: " .. dump(spawnfunc)) + + if maxtries == nil then + maxtries = 5 + end + + local starttime = mobf_get_time_ms() + + local min_x = MIN(minp.x,maxp.x) + local min_y = MIN(minp.y,maxp.x) + local min_z = MIN(minp.z,maxp.z) + + local max_x = MAX(minp.x,maxp.x) + local max_y = MAX(minp.y,maxp.y) + local max_z = MAX(minp.z,maxp.z) + + + local xdivs = math.floor(((max_x - min_x) / density) +1) + local zdivs = math.floor(((max_z - min_z) / density) +1) + + dbg_mobf.spawning_lvl3("MOBF: X: " .. min_x .. "-->" .. max_x) + dbg_mobf.spawning_lvl3("MOBF: Z: " .. min_z .. "-->" .. max_z) + dbg_mobf.spawning_lvl3("MOBF: Y: " .. min_y .. "-->" .. max_y) + dbg_mobf.spawning_lvl3("MOBF: generating in " .. xdivs .. " | " .. zdivs .. " chunks") + + for i = 1, xdivs,1 do + for j = 1, zdivs,1 do + + local x_center,x_delta = spawning.get_center(min_x,max_x,i,density) + local z_center,z_delta = spawning.get_center(min_z,max_z,j,density) + + local surface_center = surfacefunc(x_center,z_center,min_y,max_y) + + local centerpos = {x=x_center,y=surface_center,z=z_center} + + dbg_mobf.spawning_lvl3("MOBF: center is (" .. x_center .. "," .. z_center .. ") --> (".. x_delta .."," .. z_delta .. ")") + + --check if there is already a mob of same type within area + if surface_center then + local mobs_around = mobf_mob_around(name,secondary_name,centerpos,density,true) + if mobs_around == 0 then + dbg_mobf.spawning_lvl3("no " .. name .. " within range of " .. density .. " around " ..printpos(centerpos)) + i= 0, maxtries, 1 do + local x_try = math.random(-x_delta,x_delta) + local z_try = math.random(-z_delta,z_delta) + + local pos = { x= x_center + x_try, + z= z_center + z_try } + + pos.y = surfacefunc(pos.x,pos.z,min_y,max_y) + + if pos.y and spawnfunc(name,pos,min_y,max_y) then + break + end + end --for -> 5 + end --mob around + else + dbg_mobf.spawning_lvl3("MOBF: didn't find surface for " ..printpos(centerpos)) + end --surface_center + end -- for z divs + end -- for x divs + mobf_warn_long_fct(starttime,"on_mapgen" .. name,"mapgen") + dbg_mobf.spawning_lvl3("magen ended") +end + +------------------------------------------------------------------------------ +-- name: register_spawner_entity(mobname,secondary_mobname,spawndata,environment,spawnfunc) +-- @function [parent=#spawning] register_spawner_entity +-- +--! @brief register a spawner entity +--! @memberof spawning +-- +--! @param mobname name of mob +--! @param secondary_mobname secondary name of mob +--! @param spawndata spawning information to use +--! @param environment what environment is good for mob +--! @param spawnfunc function to call for spawning +-- +--! @return +------------------------------------------------------------------------------- +function spawning.register_spawner_entity(mobname,secondary_mobname,spawndata,environment,spawnfunc) + minetest.register_entity(mobname .. "_spawner", + { + physical = false, + collisionbox = { 0.0,0.0,0.0,0.0,0.0,0.0}, + visual = "sprite", + textures = { "invisible.png^[makealpha:128,0,0^[makealpha:128,128,0" }, + + + on_step = function(self,dtime) + self.spawner_time_passed = self.spawner_time_passed -dtime + + + if self.spawner_time_passed < 0 then + local starttime = mobf_get_time_ms() + spawnfunc(self) + mobf_warn_long_fct(starttime,"spawnfunc " .. self.spawner_mob_name,"spawnfunc") + end + end, + + on_activate = function(self,staticdata) + if self.spawner_mob_transform == nil then + self.spawner_mob_transform = "" + end + end, + + spawner_mob_name = mobname, + spawner_mob_transform = secondary_mobname, + spawner_time_passed = 1, + spawner_mob_env = environment, + spawner_mob_spawndata = spawndata, + }) + +end + +------------------------------------------------------------------------------ +-- name: register_cleanup_spawner(mobname) +-- @function [parent=#spawning] register_cleanup_spawner +-- +--! @brief register an entity to cleanup spawners +--! @memberof spawning +------------------------------------------------------------------------------- +function spawning.register_cleanup_spawner(mobname) + minetest.register_entity(mobname .. "_spawner", + { + on_activate = function(self,staticdata) + self.object:remove() + end + }) +end + +--include spawn algorithms +dofile (mobf_modpath .. "/spawn_algorithms/at_night.lua") +dofile (mobf_modpath .. "/spawn_algorithms/forrest.lua") +dofile (mobf_modpath .. "/spawn_algorithms/in_shallow_water.lua") +dofile (mobf_modpath .. "/spawn_algorithms/shadows.lua") +dofile (mobf_modpath .. "/spawn_algorithms/willow.lua") +dofile (mobf_modpath .. "/spawn_algorithms/big_willow.lua") +dofile (mobf_modpath .. "/spawn_algorithms/in_air1.lua") +dofile (mobf_modpath .. "/spawn_algorithms/none.lua") +dofile (mobf_modpath .. "/spawn_algorithms/deep_large_caves.lua") \ No newline at end of file diff --git a/mods/mobf/textures/animals_egg.png b/mods/mobf/textures/animals_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..610ea0e83e0d10ae386221b413ed7ad65f30170a GIT binary patch literal 660 zcmV;F0&D$=P)Px#24YJ`L;(K){{YM%ZN`NF000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyS# z4hJGLDOFzp000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}0005+Nkl~73tc4ofcYY|w8*+g%B&*A>ci%-`%E}pZZVe>P=1zuiWmw7qnICwQbQ-I>! z1$zA+Pru&K{}!w^k5x{chor==!B6*a`(qw{xT60QtbDtvGFXJBChSdcyCd3ZP1m%z zc6vlo{4LP_5cQtawsfOy+T9&|GbKbtRq;WNui(j-YZ{%$?~Z7GZPAW@(pA54O-txH zybJiQ0T6nO2Q9U){BQb$% zr?|!uT1U!CHYFHAB$L%pSNn%&P)#Nbhb2ind`JZ62rd#sBxBIRAS#FvRPzj-30z2k zCniTqiud6Fj+rb4A{ir!Maelcspo9Lg+z*(Bt4Q^QjR195djg912}{X#vUHxtNUI; zGK6dn1jQl@&VntFULRvEfL(0NZ6o$eI)*6hls401W?}wat u$^dU}ZOHPwtE#?1LnLP9?efOlcm4xklp-CX*+Z%T0000 literal 0 HcmV?d00001 diff --git a/mods/mobf/textures/animals_fireball.png b/mods/mobf/textures/animals_fireball.png new file mode 100644 index 0000000000000000000000000000000000000000..ad4130fab19900faad064cf6570ff7d5200b588d GIT binary patch literal 846 zcmV-U1F`&xP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyS$ z4IC*QK34hw000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}00081NklvrtgbtAzo`@1~{EJZGnevnw zf8&8*IoMO6jiZlYz-9S>akWi15msS`GuJ{m;>sP;)_t1w*Syqg>daU$vp~jzbv$=i zxn0iv4@}J(uUudrm8A%YU!$Q9nDaH)5 zY#@3M$2&^XwancH=c{j->3~uUrN28b4j44|soR1h7V=@HZJzs* zj2~I~U5?6>j_p!}4Kz9$@|J;)Xy{{t?qlQ$ITIROS>AI(TP*YND;@imp>)Xjf<-(> zIHt~Xy7nPWH5kr-5nugM!27-cOS-1XD*i>!RLo+Ai+|8gw@A!Oa!#qqQw%G>eGq{E Y0Xr@w$P4guc>n+a07*qoM6N<$f;L}jBLDyZ literal 0 HcmV?d00001 diff --git a/mods/mobf/textures/animals_plasmaball.png b/mods/mobf/textures/animals_plasmaball.png new file mode 100644 index 0000000000000000000000000000000000000000..a768bf209fb253bfbb12d167ef6ddc65de13d8e7 GIT binary patch literal 975 zcmV;=12FuFP)Px#24YJ`L;wH)0002_L%V+f000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyS$ z6D>5Z-LvZe000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}0009jNkluz3aO@a?XLqV*(%m1OSF`?jeX0IG4j(2gWR# z=2sADSi8n#lH=;C0bn_e#~y$fO)~(|J*?NCV6%CQC?aV61k2?PfZws*{(>kvMG)Lz zvDiS$97^Sc^Yai&9iV9*p{_s0YV|dWqRW)BOev3PO+tvmO37-*E^X8N=&I@z#$3SK zoJ(UyK4TB`di|NV*?d9P_LNe@=W}mBA?$`Cb zzO_%K)?XEA+OM*V+N%}bi6VE@?E;+R?)Eka0JmVQy@}(!N~x!4niY)c@FU<|%Ja_$ zjP-P@#VF5duh+vtlAs^Qa8cy`TCXv#YbuSAD9eX1=C~vx=lkFC*qC_7+T$+3xRi+Y z_uU~8jgrK5qlgxDjn_({-|gZc2ymU}bh%uLs;YKfRlUcvvg`$(mucsA**>Z`}_wlITcNfm#s%aeMInp>b z&hyR@hTlQ!Ifs;QjC1ejNwS;-!4q^khi7>nluEHxmU$CvZRYz;Iv9}k{h1SDY=*-h z5CjT0HwC?&=`m)rnuPeqGv--qK9^d`#40r;A&iyspC*oPY!IBmxl=H90pDLC2r`cU zc!MzHPO0xrt94hj+a1UGhmNr!i2i`@U%7VsIa)0S#%=*j-N}gpfd2y}c6Qp(`X%C6 xH&rFkG%pZ_AAs`-e18The*?yC9;q!^2X+?^QKos)S9QIDsKV@Sl|w=)iMH5l+XTYo(K`FWL4 zSwZNHU8b|x=ee9ZGs%ZLq5Ug^@w4aE$G>lyIe|gw!KTN}@{JYQ)yDVExj$Ycuwbjl z`#86Eadw-yKcs5NC_LM|ebKVM**8B58*=L~E$QGsBEytnwcy^zoTsaW!Z^JdUI~3W uRdHn9;Uw{t-x}J#B$spiG8IZNRIhN=S$u!imLouSF?hQAxvXwc6x=<11Hv2m#DR)rJY5_^EKVo?`TyUZS+$|F(a9j|zzW92Y&>Gj49T;YW#8C- Rb_A+p@O1TaS?83{1OTLdF~a}= literal 0 HcmV?d00001 diff --git a/mods/mobf/textures/old/templates/animals_template_128_4.png b/mods/mobf/textures/old/templates/animals_template_128_4.png new file mode 100644 index 0000000000000000000000000000000000000000..8b399c3f7a38ef1085daf0649e957506e29227cc GIT binary patch literal 812 zcmeAS@N?(olHy`uVBq!ia0y~yUage(c!@6@aFM%AkByV>Y zh6W&u!DA`+TOh?*;1OBOz`!jG!i)^F=12eq*-JcqUD@w2GKp)cGP_%a0)-??Tq8=H z^K)}k^GX<;i&7IyQd1PlGfOfQ+&z5*!W;R-85o$_JzX3_DsH{Kb&<1~L4fsOu+AT= z>+;nBHzYk6pEnz$qlp^yAIrL#gKW>zwYJ_;e!3Y@4m15zFXdbp=IBn zzYMpaF~Q&RgDSRQ_pSmkK)@kFYFNSIoPe>gz;U?4%=kyDeX=>*0icBpp00i_>zopr E0Ajpz?EnA( literal 0 HcmV?d00001 diff --git a/mods/mobf/textures/old/templates/animals_template_128_4_2levels.png b/mods/mobf/textures/old/templates/animals_template_128_4_2levels.png new file mode 100644 index 0000000000000000000000000000000000000000..48b00c4a68c2f5206af9754209b173bf0308492f GIT binary patch literal 1429 zcmeAS@N?(olHy`uVBq!ia0y~yU1uH#{6fW z`imwkSbczT4O>mtx$Ecd1aCdRJm>ND+xP!{+rIzr+x+_9$NvD`D*&{l0f-q`fLH;< zU<6_gAa(#^1|}dzQG#1W0i+&7Gm*x^HDg!^m%(l`hJ`4u#jY8JBcGe^UP>HF;)U@^h0NF7`7`@Mky z2(bGdtN$E8>aogTMl;A}f%3G&*WZ7h`NMbvB!Pj`T7BDppj-nG)6#AQkohE}1^gj} z>1*tX4}V}{cT>grj~omN8K7jq&A@PgJK$-V{(*1&pM`Q4Fg25q#6X%GcG#aVHW5tC;oAu0F?hQAxvXage(c!@6@aFM%AkByV>Y zh6W&HSUEu;7bwD6;1OBOz`!jG!i)^F=12eq*-JcqUD@w2GBap09NL}l2o#bmag8W( z&d<$F%`0JWE=o--Nlj5G&n(GMaQE~L2yf&QXJBCJ^mK6yskrs_t|OPTqJYc6K${5sSHw(tM@HoyM&?fd@{(-?uefwl+$aRU%D zumG_Fhyj#f-~eI=AVyV!TL!D<29N<*Wl)WUDRBU)C&5h$AoWyn(}U?xbr~8Q-qwBJ z9S<~9t|2JzJ44R@ggPdm+lX{gMdUxO+kfAc@Be-GeH{bigwGG(b6@xe4RVE!`9PO8 zfE*0-EfFqv0I4U^dQdznfYg%^Af&`S$l2Ia1xV(@QO4eUsrHyA`!0|hJYD@<);T3K F0RXzqc_IJ+ literal 0 HcmV?d00001 diff --git a/mods/mobf/textures/old/templates/animals_template_32.png b/mods/mobf/textures/old/templates/animals_template_32.png new file mode 100644 index 0000000000000000000000000000000000000000..05ec25a5527140b17a0604761628fae7771f1ecc GIT binary patch literal 232 zcmeAS@N?(olHy`uVBq!ia0vp^2Y^_Cg9%8U{`KGzkYX$ja(7}_cTVOdki%Kv5n0T@ zz%2~Ij105pNB{-dOFVsD+3zrNFi6Y1IsKpxC?r|p8d2h$pPQSSSHj?2l$uzQnxasi zS(2gP?&%v4-pD5oR21sz;uunK>+K~&K?VknBL)sXz1>;4r*pix;wRhv@A*Fw2@d8& z1s)c*Lk>VzW21opkd>go(*k5cq*@vefTR)?z)}(%JVzQ?A1`8dXy@#>&j19Tu6{1- HoD!M<9#}uG literal 0 HcmV?d00001 diff --git a/mods/mobf/weapons.lua b/mods/mobf/weapons.lua new file mode 100644 index 0000000..cbd8eed --- /dev/null +++ b/mods/mobf/weapons.lua @@ -0,0 +1,327 @@ +------------------------------------------------------------------------------- +-- Mob Framework Mod by Sapier +-- +-- You may copy, use, modify or do nearly anything except removing this +-- copyright notice. +-- And of course you are NOT allow to pretend you have written it. +-- +--! @file weapons.lua +--! @brief weapon related functions +--! @copyright Sapier +--! @author Sapier +--! @date 2012-08-09 +-- +--! @defgroup weapons Weapons +--! @brief weapon entitys predefined by mob framework (can be extended by mod) +-- +-- Contact sapier a t gmx net +------------------------------------------------------------------------------- + +local weapons_spacer = {} --unused to fix lua doxygen bug only + +------------------------------------------------------------------------------- +-- name: mobf_init_weapons = function(self, dtime) +-- +--! @brief initialize weapons handled by mobf mod +-- +------------------------------------------------------------------------------- +function mobf_init_weapons() + minetest.register_entity(":mobf:fireball_entity", MOBF_FIREBALL_ENTITY) + minetest.register_entity(":mobf:plasmaball_entity", MOBF_PLASMABALL_ENTITY) +end + +------------------------------------------------------------------------------- +-- name: mobf_do_area_damage(pos,immune,damage,range) +-- +--! @brief damage all objects within a certain range +-- +--! @param pos cennter of damage area +--! @param immune object immune to damage +--! @param damage damage to be done +--! @param range range around pos +------------------------------------------------------------------------------- +function mobf_do_area_damage(pos,immune,damage,range) + --damage objects within inner blast radius + objs = minetest.env:get_objects_inside_radius(pos, range) + for k, obj in pairs(objs) do + + --don't do damage to issuer + if obj ~= immune then + obj:set_hp(obj:get_hp()-damage) + end + end +end + + +------------------------------------------------------------------------------- +-- name: mobf_do_node_damage(pos,immune_list,range,chance) +-- +--! @brief damage all nodes within a certain range +-- +--! @param pos center of area +--! @param immune_list list of nodes immune to damage +--! @param range range to do damage +--! @param chance chance damage is done to a node +------------------------------------------------------------------------------- +function mobf_do_node_damage(pos,immune_list,range,chance) + --do node damage + for i=pos.x-range, pos.x+range, 1 do + for j=pos.y-range, pos.y+range, 1 do + for k=pos.z-range,pos.z+range,1 do + --TODO create a little bit more sophisticated blast resistance + if math.random() < chance then + local toremove = minetest.env:get_node({x=i,y=j,z=k}) + + if toremove ~= nil then + local immune = false + + if immune_list ~= nil then + for i,v in ipairs(immune_list) do + if (torremove.name == v) then + immune = true + end + end + end + + + if immune ~= true then + minetest.env:remove_node({x=i,y=j,z=k}) + end + end + end + end + end + end +end + +--! @class MOBF_FIREBALL_ENTITY +--! @ingroup weapons +--! @brief a fireball weapon entity +MOBF_FIREBALL_ENTITY = { + physical = false, + textures = {"animals_fireball.png"}, + collisionbox = {0,0,0,0,0,0}, + + damage_range = 4, + velocity = 3, + gravity = -0.01, + + damage = 15, + + owner = 0, + lifetime = 30, + created = -1, +} + + +------------------------------------------------------------------------------- +-- name: MOBF_FIREBALL_ENTITY.on_activate = function(self, staticdata) +-- +--! @brief onactivate callback for fireball +--! @memberof MOBF_FIREBALL_ENTITY +--! @private +-- +--! @param self fireball itself +--! @param staticdata +------------------------------------------------------------------------------- +function MOBF_FIREBALL_ENTITY.on_activate(self,staticdata) + self.created = mobf_get_current_time() +end + +------------------------------------------------------------------------------- +-- name: MOBF_FIREBALL_ENTITY.surfacefire = function(self, staticdata) +-- +--! @brief place fire on surfaces around pos +--! @memberof MOBF_FIREBALL_ENTITY +--! @private +-- +--! @param pos position to place fire around +--! @param range square around pos to set on fire +------------------------------------------------------------------------------- +function MOBF_FIREBALL_ENTITY.surfacefire(pos,range) + + if mobf_rtd.fire_enabled then + --start fire on any surface within inner damage range + for i=pos.x-range/2, pos.x+range/2, 1 do + for j=pos.y-range/2, pos.y+range/2, 1 do + for k=pos.z-range/2, pos.z+range/2, 1 do + + local current = minetest.env:get_node({x=i,y=j,z=k}) + local ontop = minetest.env:get_node({x=i,y=j+1,z=k}) + + --print("put fire? " .. printpos({x=i,y=j,z=k}) .. " " .. current.name .. " " ..ontop.name) + + if (current.name ~= "air") and + (current.name ~= "fire:basic_flame") and + (ontop.name == "air") then + minetest.env:set_node({x=i,y=j+1,z=k}, {name="fire:basic_flame"}) + end + + end + end + end + else + minetest.log(LOGLEVEL_ERROR,"MOBF: A fireball without fire mod??!? You're kidding!!") + end +end + +------------------------------------------------------------------------------- +-- name: MOBF_FIREBALL_ENTITY.on_step = function(self, dtime) +-- +--! @brief onstep callback for fireball +--! @memberof MOBF_FIREBALL_ENTITY +--! @private +-- +--! @param self fireball itself +--! @param dtime time since last callback +------------------------------------------------------------------------------- +function MOBF_FIREBALL_ENTITY.on_step(self, dtime) + local pos = self.object:getpos() + local node = minetest.env:get_node(pos) + + + --detect hit + local objs=minetest.env:get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 1) + + local hit = false + + for k, obj in pairs(objs) do + if obj:get_entity_name() ~= "mobf:fireball_entity" and + obj ~= self.owner then + hit=true + end + end + + + if hit then + --damage objects within inner blast radius + mobf_do_area_damage(pos,self.owner,self.damage_range/4,self.damage/4) + + --damage all objects within blast radius + mobf_do_area_damage(pos,self.owner,self.damage_range/2,self.damage/2) + + MOBF_FIREBALL_ENTITY.surfacefire(pos,self.damage_range) + + self.object:remove() + end + + -- vanish when hitting a node + if node.name ~= "air" then + MOBF_FIREBALL_ENTITY.surfacefire(pos,self.damage_range) + self.object:remove() + end + + --remove after lifetime has passed + if self.created > 0 and + self.created + self.lifetime < mobf_get_current_time() then + self.object:remove() + end +end + + +--! @class MOBF_PLASMABALL_ENTITY +--! @ingroup weapons +--! @brief a plasmaball weapon entity +MOBF_PLASMABALL_ENTITY = { + physical = false, + textures = {"animals_plasmaball.png"}, + lastpos={}, + collisionbox = {0,0,0,0,0,0}, + + damage_range = 2, + velocity = 4, + gravity = -0.001, + + damage = 8, + + owner = 0, + lifetime = 30, + created = -1, +} + +------------------------------------------------------------------------------- +-- name: MOBF_PLASMABALL_ENTITY.on_activate = function(self, staticdata) +-- +--! @brief onactivate callback for plasmaball +--! @memberof MOBF_PLASMABALL_ENTITY +--! @private +-- +--! @param self fireball itself +--! @param staticdata +------------------------------------------------------------------------------- +function MOBF_PLASMABALL_ENTITY.on_activate(self,staticdata) + self.created = mobf_get_current_time() +end + + +------------------------------------------------------------------------------- +-- name: MOBF_PLASMABALL_ENTITY.on_step = function(self, dtime) +-- +--! @brief onstep callback for plasmaball +--! @memberof MOBF_PLASMABALL_ENTITY +--! @private +-- +--! @param self plasmaball itself +--! @param dtime time since last callback +------------------------------------------------------------------------------- +function MOBF_PLASMABALL_ENTITY.on_step(self, dtime) + local pos = self.object:getpos() + local node = minetest.env:get_node(pos) + + + --detect hit + local objs=minetest.env:get_objects_inside_radius({x=pos.x,y=pos.y,z=pos.z}, 1) + + local hit = false + + for k, obj in pairs(objs) do + if obj:get_entity_name() ~= "mobf:plasmaball_entity" and + obj ~= self.owner then + hit=true + end + end + + --damage all objects not hit but at least passed + mobf_do_area_damage(pos,self.owner,2,1) + + if hit then + --damage objects within inner blast radius + mobf_do_area_damage(pos,self.owner,self.damage_range/4,self.damage/2) + + --damage all objects within blast radius + mobf_do_area_damage(pos,self.owner,self.damage_range/2,self.damage/2) + end + + -- vanish when hitting a node + if node.name ~= "air" or + hit then + + --replace this loop by minetest.env:find_node_near? + --do node damage + for i=pos.x-1, pos.x+1, 1 do + for j=pos.y-1, pos.y+1, 1 do + for k=pos.z-1,pos.z+1,1 do + --TODO create a little bit more sophisticated blast resistance + if math.random() < 0.5 then + local toremove = minetest.env:get_node({x=i,y=j,z=k}) + + if toremove ~= nil and + toremove.name ~= "default:stone" and + toremove.name ~= "default:cobble" then + + minetest.env:remove_node({x=i,y=j,z=k}) + end + end + end + end + end + + self.object:remove() + end + + --remove after lifetime has passed + if self.created > 0 and + self.created + self.lifetime < mobf_get_current_time() then + self.object:remove() + end +end diff --git a/mods/walking_light/init.lua b/mods/walking_light/init.lua new file mode 100644 index 0000000..e51805a --- /dev/null +++ b/mods/walking_light/init.lua @@ -0,0 +1,144 @@ +local players = {} +local player_positions = {} +local last_wielded = {} + +function round(num) + return math.floor(num + 0.5) +end + +minetest.register_on_joinplayer(function(player) + local player_name = player:get_player_name() + table.insert(players, player_name) + last_wielded[player_name] = player:get_wielded_item():get_name() + local pos = player:getpos() + local rounded_pos = {x=round(pos.x),y=round(pos.y)+1,z=round(pos.z)} + local wielded_item = player:get_wielded_item():get_name() + if wielded_item ~= "default:torch" and wielded_item ~= "walking_light:pick_mese" then + -- Neuberechnung des Lichts erzwingen + minetest.env:add_node(rounded_pos,{type="node",name="default:cobble"}) + minetest.env:add_node(rounded_pos,{type="node",name="air"}) + end + player_positions[player_name] = {} + player_positions[player_name]["x"] = rounded_pos.x; + player_positions[player_name]["y"] = rounded_pos.y; + player_positions[player_name]["z"] = rounded_pos.z; +end) + +minetest.register_on_leaveplayer(function(player) + local player_name = player:get_player_name() + for i,v in ipairs(players) do + if v == player_name then + table.remove(players, i) + last_wielded[player_name] = nil + -- Neuberechnung des Lichts erzwingen + local pos = player:getpos() + local rounded_pos = {x=round(pos.x),y=round(pos.y)+1,z=round(pos.z)} + minetest.env:add_node(rounded_pos,{type="node",name="default:cobble"}) + minetest.env:add_node(rounded_pos,{type="node",name="air"}) + player_positions[player_name]["x"] = nil + player_positions[player_name]["y"] = nil + player_positions[player_name]["z"] = nil + player_positions[player_name]["m"] = nil + player_positions[player_name] = nil + end + end +end) + +minetest.register_globalstep(function(dtime) + for i,player_name in ipairs(players) do + local player = minetest.env:get_player_by_name(player_name) + local wielded_item = player:get_wielded_item():get_name() + if wielded_item == "default:torch" or wielded_item == "walking_light:pick_mese" then + -- Fackel ist in der Hand + local pos = player:getpos() + local rounded_pos = {x=round(pos.x),y=round(pos.y)+1,z=round(pos.z)} + if (last_wielded[player_name] ~= "default:torch" and last_wielded[player_name] ~= "walking_light:pick_mese") or (player_positions[player_name]["x"] ~= rounded_pos.x or player_positions[player_name]["y"] ~= rounded_pos.y or player_positions[player_name]["z"] ~= rounded_pos.z) then + -- Fackel gerade in die Hand genommen oder zu neuem Node bewegt + local is_air = minetest.env:get_node_or_nil(rounded_pos) + if is_air == nil or (is_air ~= nil and (is_air.name == "air" or is_air.name == "walking_light:light")) then + -- wenn an aktueller Position "air" ist, Fackellicht setzen + minetest.env:add_node(rounded_pos,{type="node",name="walking_light:light"}) + end + if (player_positions[player_name]["x"] ~= rounded_pos.x or player_positions[player_name]["y"] ~= rounded_pos.y or player_positions[player_name]["z"] ~= rounded_pos.z) then + -- wenn Position geänder, dann altes Licht löschen + local old_pos = {x=player_positions[player_name]["x"], y=player_positions[player_name]["y"], z=player_positions[player_name]["z"]} + -- Neuberechnung des Lichts erzwingen + local is_light = minetest.env:get_node_or_nil(old_pos) + if is_light ~= nil and is_light.name == "walking_light:light" then + minetest.env:add_node(old_pos,{type="node",name="default:cobble"}) + minetest.env:add_node(old_pos,{type="node",name="air"}) + end + end + -- gemerkte Position ist nun die gerundete neue Position + player_positions[player_name]["x"] = rounded_pos.x + player_positions[player_name]["y"] = rounded_pos.y + player_positions[player_name]["z"] = rounded_pos.z + end + + last_wielded[player_name] = wielded_item; + elseif last_wielded[player_name] == "default:torch" or last_wielded[player_name] == "walking_light:pick_mese" then + -- Fackel nicht in der Hand, aber beim letzten Durchgang war die Fackel noch in der Hand + local pos = player:getpos() + local rounded_pos = {x=round(pos.x),y=round(pos.y)+1,z=round(pos.z)} + repeat + local is_light = minetest.env:get_node_or_nil(rounded_pos) + if is_light ~= nil and is_light.name == "walking_light:light" then + -- minetest.env:remove_node(rounded_pos) + -- Erzwinge Neuberechnung des Lichts + minetest.env:add_node(rounded_pos,{type="node",name="default:cobble"}) + minetest.env:add_node(rounded_pos,{type="node",name="air"}) + end + until minetest.env:get_node_or_nil(rounded_pos) ~= "walking_light:light" + local old_pos = {x=player_positions[player_name]["x"], y=player_positions[player_name]["y"], z=player_positions[player_name]["z"]} + repeat + is_light = minetest.env:get_node_or_nil(old_pos) + if is_light ~= nil and is_light.name == "walking_light:light" then + -- minetest.env:remove_node(old_pos) + -- Erzwinge Neuberechnung des Lichts + minetest.env:add_node(old_pos,{type="node",name="default:cobble"}) + minetest.env:add_node(old_pos,{type="node",name="air"}) + end + until minetest.env:get_node_or_nil(old_pos) ~= "walking_light:light" + last_wielded[player_name] = wielded_item + end + end +end) + +minetest.register_node("walking_light:light", { + drawtype = "glasslike", + tile_images = {"walking_light.png"}, + -- tile_images = {"walking_light_debug.png"}, + inventory_image = minetest.inventorycube("walking_light.png"), + paramtype = "light", + walkable = false, + is_ground_content = true, + light_propagates = true, + sunlight_propagates = true, + light_source = 13, + selection_box = { + type = "fixed", + fixed = {0, 0, 0, 0, 0, 0}, + }, +}) +minetest.register_tool("walking_light:pick_mese", { + description = "Mese Pickaxe with light", + inventory_image = "walking_light_mesepick.png", + wield_image = "default_tool_mesepick.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=3, + groupcaps={ + cracky={times={[1]=2.0, [2]=1.0, [3]=0.5}, uses=20, maxlevel=3}, + crumbly={times={[1]=2.0, [2]=1.0, [3]=0.5}, uses=20, maxlevel=3}, + snappy={times={[1]=2.0, [2]=1.0, [3]=0.5}, uses=20, maxlevel=3} + } + }, +}) + +minetest.register_craft({ + output = 'walking_light:pick_mese', + recipe = { + {'default:torch'}, + {'default:pick_mese'}, + } +}) \ No newline at end of file diff --git a/mods/walking_light/textures/walking_light.png b/mods/walking_light/textures/walking_light.png new file mode 100644 index 0000000000000000000000000000000000000000..334cb078a9a03b0d90342ac9418482494231ae71 GIT binary patch literal 246 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=G^tAk28_ZrvZCAbW|YuPgf<7GV}`=5HlBUO*wK64!{5;QX|b^2DN4hJeJ(yb?V> z*ARs=V?9$nLj!{^MGJwd;yqm)LoEE0f7H89W@P^V|NMvf9z552_&Tog1i5eV-N7Sk z+Hl0-NQZ6!&m@u547G;I44P~Qt{ghEa1vvNrrzopr0Oz_*WB>pF literal 0 HcmV?d00001 diff --git a/mods/walking_light/textures/walking_light_debug.png b/mods/walking_light/textures/walking_light_debug.png new file mode 100644 index 0000000000000000000000000000000000000000..43e41bd4b77d915d804d9744ff958da9597c062a GIT binary patch literal 219 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`>?NMQuIzU>IJv}B_eD?p2^8Wi z@Q5sCVBi)6VaEED_=!M4mUKs7M+SzC{oH>NS%Lg4PZ!6Kid#!3H*y_N;Be9X^*_E$ zr(@b~W8==IGv!&TMVU|MZs`vx==W!I^KqV?n99Au&wnP<9v=Z2rVEK|Yv(f?OpcA$ zDt1}FwDMf6v$(_0)vL}r**b(oN;*8R`l2;mNF~6SHO2nQR$KF4IYk#1nTtSM89ZJ6 KT-G@yGywofenX}J literal 0 HcmV?d00001 diff --git a/mods/walking_light/textures/walking_light_mesepick.png b/mods/walking_light/textures/walking_light_mesepick.png new file mode 100644 index 0000000000000000000000000000000000000000..9f98229997bd4b62fa816e9d54b79b79bb8cb1e0 GIT binary patch literal 402 zcmV;D0d4+?P)b_YUEk>d000SaNLh0L01m_e01m_fl`9S#00004XF*Lt006O%3;baP0003YNkly5=;+%+)2=xG8g07Vrx&FEo+6M*6wpFAN003uAUbq!@GF#rGn07*qoM6N<$g2UIEY5)KL literal 0 HcmV?d00001