VoxeLibre/mods/ENTITIES/mcl_mobs/api/spawning.lua
kay27 a6ac6f5c76 Merge NEW MOBS by @jordan4ibanez from mineclone5 branch
commit cd47233798
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sun Apr 25 22:02:20 2021 -0400

    Fix rabbit rotation

commit 0f4628db09
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sun Apr 25 20:48:42 2021 -0400

    Bring mob spawning variable to the top of the spawning.lua file so it's easier to find

commit ddb33acf0d
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sun Apr 25 20:46:45 2021 -0400

    Add in unused head code elements

commit e52aab45c0
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sun Apr 25 20:23:46 2021 -0400

    Implement no-op head operations for enderman

commit ac85230938
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sun Apr 25 20:08:45 2021 -0400

    Add in chicken head code with additional pitch modifier

commit f57c4709ac
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sun Apr 25 19:54:11 2021 -0400

    Comment out code that causes mobs to glitch push players in mcl_playerplus

commit b6c9a1c423
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sun Apr 25 19:51:11 2021 -0400

    Fix creeper head

commit a8152760b9
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sun Apr 25 19:44:15 2021 -0400

    Integrate more switches into internal api elements of head code

commit 6a38198e97
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sun Apr 25 18:24:10 2021 -0400

    Add in swap_y_with_x and reverse_head_yaw to flesh out head code api element

commit d28e81bc9f
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sun Apr 25 17:54:14 2021 -0400

    Add in mobs look pitch

commit 5a2773ea1a
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sun Apr 25 17:48:41 2021 -0400

    Add in basics of head code yaw

commit 555935ff3d
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sun Apr 25 16:43:23 2021 -0400

    Implement basic fall damage

commit 7e3b69348e
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sun Apr 25 16:11:45 2021 -0400

    Add secondary existence check after main logic has been executed to prevent future crashes

commit c898e1e4db
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sun Apr 25 15:59:00 2021 -0400

    Update sheep.lua

commit 9b5c9dc8ae
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sun Apr 25 04:31:48 2021 -0400

    Make farmable mobs/food mobs a lot less rare

commit 5e6653ff65
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sun Apr 25 04:19:02 2021 -0400

    Implement mob cramming

commit 1616cb7538
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sun Apr 25 04:09:35 2021 -0400

    Fix nametags

commit a3ff108cd4
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sun Apr 25 04:03:06 2021 -0400

    Make mobs walk up stairs/slabs properly, yet not glitch out when jumping over solid nodes

commit df364eed28
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sun Apr 25 01:45:35 2021 -0400

    Implement basics of head movement and fix walking mobs flying away after floating

commit bac191293b
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sun Apr 25 01:45:03 2021 -0400

    Fix clientside guessing making floating go crazy client side

commit b7c7c2627b
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sun Apr 25 01:44:46 2021 -0400

    Fix parrots not drowning

commit 38c22f277d
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sun Apr 25 01:24:19 2021 -0400

    Add pop sound when baby mob is born

commit f83ccdb2ed
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sun Apr 25 01:22:43 2021 -0400

    Add in breeding and feeding baby mob sounds

commit 7733e05a12
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sun Apr 25 01:14:48 2021 -0400

    Add in random sounds/hurt/death sounds and stop mobs from reviving on server restart again

commit 0a380265c8
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sun Apr 25 00:16:54 2021 -0400

    Fix dead-alive mobs and add in hurt/die sound

commit 8d3eff0c16
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sun Apr 25 00:06:12 2021 -0400

    Enable mob drowning

commit 56086bf02b
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sat Apr 24 23:33:46 2021 -0400

    Fix villager

commit 079811984c
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sat Apr 24 23:29:56 2021 -0400

    Make every mob besides spiders get slowed down by cobwebs like players

commit 7e8e63b0e3
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sat Apr 24 23:15:40 2021 -0400

    If mob is in daylight and ignites_in_daylight = true, make mob burn

commit 49b01dca4f
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sat Apr 24 22:28:26 2021 -0400

    Make mobs drop xp on death

commit 3d5cceab76
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sat Apr 24 22:21:58 2021 -0400

    Fix ghast strange behavior in the nether

commit a73e5b57c0
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sat Apr 24 22:14:25 2021 -0400

    Make pitch movement for fly/swim mobs more dynamic and make ghasts randomly fly around when attacking

commit b401b50c04
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sat Apr 24 21:15:42 2021 -0400

    Give mobs 6 seconds of memory to prevent strange behavior when player hides behind something

commit 807fb6966d
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sat Apr 24 20:27:37 2021 -0400

    Make spiders climb up walls, fix problems with mob following freaking out when under, fix spider collisionbox

commit 11b5684a90
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sat Apr 24 20:05:14 2021 -0400

    Remove wolf-dog shift click breeding, and implement better logic

commit 41bfaae370
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sat Apr 24 20:02:59 2021 -0400

    Allow putting chest on carpeted llama by owner, enable swapping carpets

commit 8c855f5b09
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sat Apr 24 19:29:37 2021 -0400

    Add in llama carpets

commit e0185a9311
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sat Apr 24 18:43:17 2021 -0400

    Fix pig logic issue

commit c2cb15a47f
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sat Apr 24 18:36:22 2021 -0400

    Fix horse breeding

commit 39f7d0cf3c
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sat Apr 24 18:18:53 2021 -0400

    Update api.txt

commit 3e9bbca914
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sat Apr 24 18:06:24 2021 -0400

    Fix enderman crashing

commit 81713a342d
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sat Apr 24 00:38:50 2021 -0400

    Allow tamed wolves to be shift click bred

commit a27e6731cd
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sat Apr 24 00:29:30 2021 -0400

    Make sheep breedable

commit efce97c172
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sat Apr 24 00:27:17 2021 -0400

    Make llamas shift click breedable

commit 53c96cae2d
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sat Apr 24 00:26:45 2021 -0400

    Make pigs shift click breedable

commit dbe712bc17
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sat Apr 24 00:23:33 2021 -0400

    Make llama breedable

commit 0d4d85bac6
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sat Apr 24 00:19:41 2021 -0400

    Fix horse literally blinding you following you

commit 6f2e2ab4c5
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sat Apr 24 00:17:22 2021 -0400

    Make chicken breedable

commit 3649e5f6f5
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sat Apr 24 00:17:09 2021 -0400

    Make horse breedable

commit 2dab0773df
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sat Apr 24 00:00:21 2021 -0400

    Remove unused breedable api call

commit 0568c14a43
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 23 23:59:35 2021 -0400

    Fix timer and make mooshroom breedable

commit 531253008a
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 23 23:56:59 2021 -0400

    Complete mob breeding, make cows breedable

commit 79cb6ddc49
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 23 22:35:35 2021 -0400

    Fix lua locals in environment.lua

commit 6eb3eef215
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 23 22:34:40 2021 -0400

    Fix typo in function

commit c37a82d4a2
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 23 22:03:29 2021 -0400

    Add comments

commit ed9d629b99
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 23 21:59:42 2021 -0400

    Add in mob following for cows

commit fcfd6b9d19
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 23 21:14:23 2021 -0400

    Set up basics for breeding mechanics

commit 5ee6cf6c9b
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 23 19:49:35 2021 -0400

    Implement mob despawner/mob limiter

commit 19c8dd1dd4
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 23 18:41:41 2021 -0400

    Stop hostile mobs from falling through water when stunned

commit 31ded5e40f
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 23 18:34:20 2021 -0400

    Re-implement neutral mob switch

commit 13c321e8f2
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 23 18:03:01 2021 -0400

    Re-enable mob spawning

commit ea6912c980
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 23 17:44:49 2021 -0400

    Don't do knockback effect for mobs when hurt by a rider

commit 8dafac50a8
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 23 17:37:20 2021 -0400

    Make mobs run away slightly faster

commit 3560bda4a5
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 23 17:29:23 2021 -0400

    Remove unused code and variables from mob punch

commit 9720986c4d
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 23 17:27:08 2021 -0400

    Fix punching a mob breaking it's velocity

commit dc7592528c
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 23 17:23:00 2021 -0400

    Add red tint hurt effect

commit 304cbed447
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 23 17:12:02 2021 -0400

    Make mobs that should be skittish, skittish

commit af4c42fea7
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 23 17:10:44 2021 -0400

    Add skittish behavior (runaway from punch) and fix ocelot

commit 8daf197fb8
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 23 16:52:07 2021 -0400

    Fix iron golem rotation

commit c138050e0b
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 23 16:45:12 2021 -0400

    Make iron golem neutral and protective, fix rotation

commit 36d5af1d15
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 23 16:35:16 2021 -0400

    Stop dead mobs from getting in the way of fighting other mobs

commit 73b4d3c1d2
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 23 16:31:13 2021 -0400

    stop projectile mobs from being completely disabled while stunned

commit eb7ae5e10e
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 23 16:28:30 2021 -0400

    Fix random crash

commit c831da2c02
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 23 16:22:34 2021 -0400

    Fix mobs not making hit sound when hit by node

commit d5a38fef58
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 23 16:19:37 2021 -0400

    Add in new mob punched sounds

commit 8e7ce5a72a
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 23 16:04:01 2021 -0400

    Add in a visual for horse taming (hearts)

commit 189c0ad157
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 23 15:53:01 2021 -0400

    Half finish horse (riding logic, etc)

commit f64f8e31e3
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 23 14:50:38 2021 -0400

    Fix llama blaze and ghast projectile sprites

commit 58bee2a2dd
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 23 14:43:00 2021 -0400

    Fix projectile tails clipping through sprite

commit 16cc7e37d2
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 23 14:34:59 2021 -0400

    Randomize projectile cooldown timer

commit 8eb9ba12ce
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 23 14:33:40 2021 -0400

    Fix crash when mob collides with nil entity

commit 5d59583583
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 23 14:10:12 2021 -0400

    Massive overhaul to projectile mobs with custom projectile function, make llamas spit

commit f6fa90096d
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 23 13:35:30 2021 -0400

    Fix enderman teleport attack

commit 4fb9e69e41
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 23 13:27:17 2021 -0400

    Make enderman become hostile when stared at, freeze when attacking when stared at

commit 99f13f84b5
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 23 13:13:23 2021 -0400

    Half-fix enderman

commit dd76b15c50
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 23 13:06:57 2021 -0400

    Make ghasts not insta-kill

commit b6f19699e9
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 23 13:06:17 2021 -0400

    Make enderdragon half work

commit 4efec1ef58
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 23 12:55:11 2021 -0400

    Add in chicken slow falling

commit 0895666407
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 22 23:36:58 2021 -0400

    Fix random crash with mixed mob ally data types

commit 408296140a
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 22 23:30:32 2021 -0400

    Fix and overhaul wolves

commit aac1e19336
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 22 23:18:33 2021 -0400

    Implement rotation locking when standing, fix rotation unlock/lock for fly/swim mobs

commit fa059b5df2
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 22 22:59:03 2021 -0400

    Fix ghast's eyeheight

commit 2e3e92e393
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 22 22:58:32 2021 -0400

    Fix ghast's insane difficulty

commit 11bcf3aa34
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 22 22:51:13 2021 -0400

    Add attributes to epCode

commit 2099be43ea
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 22 22:50:14 2021 -0400

    Update to epCode's fixed version of ghast model

commit 5037ec3736
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 22 22:40:16 2021 -0400

    Fix ghasts horrible collisionbox

commit 0a8fff6524
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 22 22:08:54 2021 -0400

    Add in mob criticals when falling

commit afdcada1fd
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 22 21:46:13 2021 -0400

    Fix endermite

commit 5d876725c5
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 22 21:45:00 2021 -0400

    Fix bats

commit ef0d52a2df
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 22 21:41:54 2021 -0400

    Update backup_code_api.lua

commit 8142f7e512
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 22 21:36:42 2021 -0400

    Add in mob death

commit ebf27866ca
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 22 21:12:08 2021 -0400

    Fix typo and error in animation.lua

commit 3fe8d2d3c5
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 22 20:30:50 2021 -0400

    Add file death_logic.lua

commit b73ab976a1
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 22 20:25:58 2021 -0400

    Implement framework for mob death

commit 8530e6ee36
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 22 20:20:56 2021 -0400

    Make mob punching time based

commit e1812b2cdb
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 22 20:12:02 2021 -0400

    Reset pause timer to 0

commit 991bba0a1d
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 22 20:10:01 2021 -0400

    Add comments into ai.lua

commit f9a7144b65
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 22 20:07:30 2021 -0400

    Implement ability to hurt mobs

commit 45790c0be0
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 22 19:12:02 2021 -0400

    Re-enable mob punching (broken)

commit 31a791c33b
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 22 18:20:58 2021 -0400

    Undo debug.txt spam from mob spawning

commit d0d128c1d8
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 22 18:18:57 2021 -0400

    Break infinite loop if unable to find any mob to spawn

commit ee905642c2
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 22 17:56:38 2021 -0400

    Add temporary warning debug to spawning algorithm output

commit 2cef9e7cca
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 22 00:39:32 2021 -0400

    Optimize mob spawning even further with additional lua locals

commit edb1939649
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 22 00:27:35 2021 -0400

    Fix mob_counter in mob spawning limiter

commit 7c1adeab45
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 22 00:20:57 2021 -0400

    Hyper-optimize mob spawning

commit fbe3ccc5c0
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Wed Apr 21 23:28:38 2021 -0400

    Delete current state of things comment

commit 5e15af260b
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Wed Apr 21 23:25:19 2021 -0400

    Fix pig rotation

commit 6aa6364492
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Wed Apr 21 23:25:10 2021 -0400

    Fix sheep rotation

commit 29305f548d
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Wed Apr 21 15:08:35 2021 -0400

    Overhaul arrow register, implement basic blaze, break parts of arrow register for now, remove fallback for detecting players

commit 08c90c34e8
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Wed Apr 21 13:05:46 2021 -0400

    Make parrots and squids work with tilt fly/swim

commit 91099c3be9
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Wed Apr 21 13:01:14 2021 -0400

    Fix auto-true statement for tilt fly/swim

commit 71c34823bc
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Wed Apr 21 12:56:36 2021 -0400

    Make tilt flying/swimming dynamic

commit 20886f54bb
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Wed Apr 21 12:48:23 2021 -0400

    Make shooty mobs jump

commit ebd995fbd2
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Wed Apr 21 12:45:02 2021 -0400

    Simplify skeleton arrow damage calculation

commit c9f71d66f5
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Wed Apr 21 12:42:34 2021 -0400

    Implement skeletons/strays

commit 99e808296b
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Wed Apr 21 12:17:51 2021 -0400

    Add missing skeleton/stray run animation

commit 74094938bb
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Wed Apr 21 12:10:29 2021 -0400

    Fix crash with non-punch attack mobs in collision

commit 6bd279255c
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Wed Apr 21 11:50:22 2021 -0400

    Fully implement zombie pigmen

commit 964ce9ccf7
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Wed Apr 21 11:42:01 2021 -0400

    Temporarily disable spawn eggs from setting owner

commit 5062d56a5d
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Wed Apr 21 11:00:02 2021 -0400

    Implement neutral mob mechanics and partial implement of zombie pigmen

commit b0b1ec9436
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Wed Apr 21 10:53:20 2021 -0400

    Implement zombie pigmen and make them turn hostile when punched

commit f1dc286442
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Wed Apr 21 10:23:51 2021 -0400

    Dump mob_punch from backup_code_api.lua back into interaction.lua

commit cc2a0ae52c
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Wed Apr 21 10:21:11 2021 -0400

    Complete charged creeper

commit 486959515c
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Wed Apr 21 10:20:31 2021 -0400

    Make creepers even more dangerous

commit 576621169b
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Tue Apr 20 23:26:18 2021 -0400

    Make creepers and zombies even harder

commit 2c87bd19f3
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Tue Apr 20 23:14:53 2021 -0400

    Overhaul zombie villager

commit 1ed3377559
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Tue Apr 20 23:11:18 2021 -0400

    Add punch mobs knockback to players when hit

commit 8c9356a18c
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Tue Apr 20 22:58:39 2021 -0400

    Implement eye_height and viewing range for hostile mobs, along with making punchy mobs jump over nodes

commit a05ebd7cc2
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Tue Apr 20 22:44:34 2021 -0400

    Add informative text art

commit 60ac3058ce
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Tue Apr 20 22:42:51 2021 -0400

    Make zombies more difficult

commit 751c4c2d99
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Tue Apr 20 22:41:13 2021 -0400

    Integrate mob punching into collision detection

commit 6b52b94516
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Tue Apr 20 22:30:34 2021 -0400

    Start setting up hostile punch attack type

commit d371d6fdc9
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Tue Apr 20 22:04:54 2021 -0400

    Adjust creeper explosion settings

commit fabd4d64e6
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Tue Apr 20 21:35:19 2021 -0400

    Slow down creeper type mobs explosion buildup

commit bf367fffd0
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Tue Apr 20 21:34:18 2021 -0400

    Add in sound_handling and make explosion type mobs make their attack sound before explosion animation

commit 0b763f54b5
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Tue Apr 20 21:00:36 2021 -0400

    Finish creeper movement ai and move jump_check into environment

commit cd6f07537f
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Tue Apr 20 20:43:45 2021 -0400

    Make creepers even more deadly

commit 9678b556e1
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Tue Apr 20 20:33:30 2021 -0400

    Fix crashes when trying to collision detect a removed mob

commit cdb840609d
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Tue Apr 20 20:19:55 2021 -0400

    Add in creeper basic prototype

commit 008d670ed9
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Tue Apr 20 17:10:51 2021 -0400

    Remove wandering from ai

commit 491ef6c8f8
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Tue Apr 20 16:48:20 2021 -0400

    Add in auto mob removal if something goes horribly wrong

commit 348df0fcec
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Tue Apr 20 16:46:10 2021 -0400

    Rename detect_players_in_area to detect_closest_player_within_radius

commit ac08c6991c
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Tue Apr 20 16:39:05 2021 -0400

    Add in detect_players_in_area

commit 3d776138e9
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Tue Apr 20 14:55:22 2021 -0400

    Start implementing creeper ai

commit 85e531bf10
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sun Apr 18 21:24:31 2021 -0400

    Remove unneeded mobs:protect from code

commit 4d589dfb2a
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sun Apr 18 21:22:39 2021 -0400

    Remove literally unneeded mobs:capture_mob

commit 39985aa558
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sun Apr 18 21:22:21 2021 -0400

    Up fallback max xp to 3

commit 1920ddf915
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sun Apr 18 21:02:03 2021 -0400

    Change all enemy attack info to more workable and understandable attacks

commit 719bb2a3c9
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sat Apr 17 18:21:33 2021 -0400

    Add in prototype jump-only mobs api

commit db87b8e0a3
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sat Apr 17 17:09:57 2021 -0400

    fix chicken rotation

commit e2987245fd
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sat Apr 17 17:00:34 2021 -0400

    Balance out collision forces for mobs

commit 3cf263d292
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sat Apr 17 16:23:38 2021 -0400

    Add in dynamic pitch in flying/swimming mobs

commit 5ade34115c
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sat Apr 17 13:17:29 2021 -0400

    Remove random state initialization in set_up.lua

commit d9729fc865
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sat Apr 17 13:13:45 2021 -0400

    Fix parrot's rotation

commit 58d9670e77
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sat Apr 17 13:11:39 2021 -0400

    Remove collisionbox addition for y position for fly mobs

commit a20f272e08
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sat Apr 17 13:05:53 2021 -0400

    re-adjust logic gate for mobs floating in water and lava

commit 0794bc5437
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sat Apr 17 13:04:55 2021 -0400

    Make flying mobs float in water and lava

commit 8783912938
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sat Apr 17 12:48:57 2021 -0400

    Add in mobs api swimming animation

commit f2e909ab8d
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sat Apr 17 12:41:14 2021 -0400

    Add in fly logic gate

commit 07841c8963
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sat Apr 17 12:38:48 2021 -0400

    Swap name of quick_rotate_45 to quick_rotate

commit 240d6ea211
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sat Apr 17 12:37:04 2021 -0400

    Add note about quick_rotate_45 actually rotating 11.25 degrees

commit e8148f81ab
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sat Apr 17 12:36:19 2021 -0400

    Make underwater mobs try to continuously swim around with quick_rotate_45

commit 061602d9d4
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sat Apr 17 12:28:07 2021 -0400

    Overhaul separation of swimming and flying for ease of use with writing mobs api

commit 5365dec19a
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sat Apr 17 12:01:27 2021 -0400

    Adjust "flying" vector checks for mobs

commit dda7839d8c
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 16 21:43:02 2021 -0400

    Add in prototype swimming

commit f1141aed9f
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 16 21:08:54 2021 -0400

    Make mobs flop when outside of flying node

commit 84ca7681fc
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 16 20:47:16 2021 -0400

    Make squids fly in water flowing and water source

commit 52c3db041e
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 16 20:32:05 2021 -0400

    Add in fly state prep for mobs

commit 6db4511dd5
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 16 20:06:55 2021 -0400

    Add notes

commit 15ea9c1c71
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 16 19:59:20 2021 -0400

    Implement self walking velocity for walking state

commit 9d6d042ee3
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 16 19:37:01 2021 -0400

    Fix formatting in ai.lua

commit ce7f4918b0
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 16 19:35:19 2021 -0400

    Re-organize comments

commit 05d06a4c8f
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 16 18:36:23 2021 -0400

    Add comment to state_execution

commit c761db86c7
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 16 18:29:42 2021 -0400

    re-arrange mob logic for random wandering

commit ed456ecb47
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 16 18:17:51 2021 -0400

    Make mobs not fear cliffs if fear_height is 0

commit 8ca5f221ec
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 16 18:13:54 2021 -0400

    clean up ai.lua

commit cadd53c103
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 16 16:39:03 2021 -0400

    Adjust mob jumping default to account for higher gravity

commit 57b293de2b
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 16 16:37:15 2021 -0400

    Make mobs gravity equal to player's

commit fb9a55e562
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 16 15:55:11 2021 -0400

    Make jump_check more modular and allow mobs to turn if at a wall

commit a6a54b3414
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 16 15:49:03 2021 -0400

    Make mobs not jump if against a wall

commit 6c5393427f
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 16 15:39:39 2021 -0400

    Smooth out mob cliff check and check if falling before cliff check

commit 2486ffef11
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 16 15:30:44 2021 -0400

    Make wandering mobs avoid cliffs

commit adc683c6a7
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 16 14:19:22 2021 -0400

    Clear mob animation on activate

commit d0695e7929
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 16 13:58:08 2021 -0400

    Fix mob animation "memory leak"

commit 024cf46307
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 16 11:52:29 2021 -0400

    Adjust spacing in animation.lua

commit f38492bcb0
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 16 11:50:29 2021 -0400

    Re-implement animation check gate for mobs

commit a934a59f3b
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 16 11:50:13 2021 -0400

    Implement mob random walk directions

commit 94ca7e8b89
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 16 11:31:18 2021 -0400

    Add in state switch and state execution for mobs

commit 626c30de6d
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 16 11:30:55 2021 -0400

    Create todo.txt

commit c2bac87a6d
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 15 21:46:33 2021 -0400

    Update set_up.lua

commit 375d683d08
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 15 16:18:42 2021 -0400

    Fix forgotten localization in collision.lua

commit 246bdf9707
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 15 15:55:10 2021 -0400

    Implement basic mob walking animation test

commit d07d0ae31c
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 15 15:34:07 2021 -0400

    Make mobs jump properly

commit 6cb6d714c9
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 15 15:04:55 2021 -0400

    Reorganize all mob sections into multiple files

commit 5155d12d05
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 15 14:09:54 2021 -0400

    Reformat mobs_mcl to api folder for ease of use

commit bbcfb3fdb1
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 15 11:33:09 2021 -0400

    Randomize walking or standing on spawn in

commit 9e4bf6e130
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 15 11:29:18 2021 -0400

    Move old set_yaw and add node on set_velocity

commit e53a193c4f
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 15 11:25:55 2021 -0400

    Fix get_velocity (mobs internal)

commit 14207dd96a
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 15 11:23:52 2021 -0400

    Smooth out mob movement set_velocity more

commit a0ed1a0b20
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 15 10:05:24 2021 -0400

    Add automatic rotation lock

commit ba46e7fa42
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 15 09:28:58 2021 -0400

    Remove old debug of colliding with objects

commit 61124905f3
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 15 09:28:22 2021 -0400

    Add in mob auto rotation (implementation 1)

commit 8b200c7352
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Wed Apr 14 19:38:14 2021 -0400

    Add in basic movement rotation testing

commit 67259891a8
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Wed Apr 14 18:01:29 2021 -0400

    Remove unneeded comments

commit d063db751c
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Wed Apr 14 17:26:20 2021 -0400

    Disable mcl_playerplus random check that moves players randomly

commit d4db27f0e1
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Wed Apr 14 17:25:39 2021 -0400

    Update backup_code_api.lua

commit 755533beeb
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Wed Apr 14 11:50:22 2021 -0400

    Disable literally everything in mobs api

commit 3f6312a631
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Tue Apr 13 20:24:46 2021 -0400

    Make mobs magnetic collision more jello-y

commit aa4d34c10e
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Tue Apr 13 20:00:38 2021 -0400

    Improve mob to mob collision

commit 1210bc463a
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Tue Apr 13 19:44:24 2021 -0400

    prevent mob collision detection shootout

commit ed60266713
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Tue Apr 13 19:17:48 2021 -0400

    Gut even more elements of the api

commit 220d30df5f
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Tue Apr 13 19:13:29 2021 -0400

    Completely gut do_states

commit 9758bbf2e7
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Tue Apr 13 08:21:04 2021 -0400

    Finish gutting mob api

commit f29ad4b8b7
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Tue Apr 13 08:20:11 2021 -0400

    Reorganize more settings to the top of file

commit 54f5bee8a3
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Tue Apr 13 08:08:29 2021 -0400

    reorganize load settings

commit 02515f0778
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Tue Apr 13 08:07:32 2021 -0400

    Move a large chunk of code to backup_code_api.lua

commit 3fc0184182
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Tue Apr 13 07:39:57 2021 -0400

    Disable entire mob ai to work on vanilla walking

commit 6fff719322
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Mon Apr 12 08:47:07 2021 -0400

    Localize minetest library

commit adaf74fc5c
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Mon Apr 12 08:13:11 2021 -0400

    Remove spacing and delete old collision comments

commit a564009e4a
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Mon Apr 12 08:11:55 2021 -0400

    Change HORNY_TIMER to BREED_TIMER

commit 00759da39d
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sun Apr 11 18:29:32 2021 -0400

    Unlimit mob ai

commit 9aafc28a20
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sun Apr 11 14:47:56 2021 -0400

    Fix mobs nil check during mob_step

commit 67c40885ef
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sun Apr 11 14:21:19 2021 -0400

    Fix mobs collision system only running during movement - major overhaul with ai disabled

commit 2456e3cd1e
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sun Apr 11 12:52:31 2021 -0400

    Adjust math localizations in api.lua

commit 725dc731dd
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Sun Apr 11 11:58:33 2021 -0400

    Adjust mob collision detection - this breaks a lot of things and will be fixed later

commit e15fd2f4b6
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Fri Apr 9 01:38:34 2021 -0400

    Add lua locals into mcl_dungeons for performance

commit c937b2a973
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 8 14:19:42 2021 -0400

    test

commit 8c10fe4057
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 8 12:48:02 2021 -0400

    Adjust spawning to be closer and more frequent

commit bd7866d798
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 8 12:07:20 2021 -0400

    Finish mob limiter

commit 9369c9cab8
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 8 10:01:15 2021 -0400

    Fix spawn timer reset debug

commit 28823298e1
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 8 10:00:04 2021 -0400

    Fix forgotten biome check

commit 9d48549ec5
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 8 09:52:50 2021 -0400

    Complete prototype of biome generated mobs

commit 518252679f
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 8 08:42:57 2021 -0400

    Fix a lot of things

commit bb078b0c4c
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 8 08:33:50 2021 -0400

    Fix silverfish typo

commit adab48ff0c
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 8 08:29:16 2021 -0400

    Readjust mobs internal settings to not cause insane memory usage

commit 47c59edb51
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 8 08:13:46 2021 -0400

    Fix typo

commit 5ca30fa8ee
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 8 08:12:43 2021 -0400

    Combine air and ground type spawning into ground

commit aacb8fc7b9
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 8 08:09:43 2021 -0400

    Add in extra_mobs information

commit f900b24b53
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 8 07:39:18 2021 -0400

    Add in all biome information to mobs

commit 0ad833c046
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 8 06:57:24 2021 -0400

    Add bats, chicken, and blaze spawn info

commit f4a6bdc6b8
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 8 06:48:25 2021 -0400

    Make reference list copy-pastable

commit bf4bf9a0cc
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 8 06:10:07 2021 -0400

    Ignore default or void dimensions

commit 8e1e02d1fb
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 8 06:04:36 2021 -0400

    Add biome list

commit da045c207d
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 8 02:07:15 2021 -0400

    Refactor spawning into it's own file

commit 6ec66ef6f6
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Wed Apr 7 23:16:03 2021 -0400

    Fix mobs colliding with other mobs/players

commit 6bd249547a
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Wed Apr 7 23:07:04 2021 -0400

    Fix mobs colliding with objects

commit c4d030d111
Author: jordan4ibanez <jordan4ibanez@users.noreply.github.com>
Date:   Thu Apr 1 23:48:00 2021 -0400

    Fix item drop on laggy servers
2021-04-29 04:11:33 +04:00

707 lines
19 KiB
Lua

--lua locals
local get_node = minetest.get_node
local get_item_group = minetest.get_item_group
local get_node_light = minetest.get_node_light
local find_nodes_in_area_under_air = minetest.find_nodes_in_area_under_air
local get_biome_name = minetest.get_biome_name
local get_objects_inside_radius = minetest.get_objects_inside_radius
local math_random = math.random
local math_floor = math.floor
local max = math.max
local vector_distance = vector.distance
local vector_new = vector.new
local vector_floor = vector.floor
local table_copy = table.copy
local table_remove = table.remove
-- range for mob count
local aoc_range = 48
--do mobs spawn?
local mobs_spawn = minetest.settings:get_bool("mobs_spawn", true) ~= false
--[[
THIS IS THE BIG LIST OF ALL BIOMES - used for programming/updating mobs
underground:
"FlowerForest_underground",
"JungleEdge_underground",local spawning_position = spawning_position_list[math.random(1,#spawning_position_list)]
"ColdTaiga_underground",
"IcePlains_underground",
"IcePlainsSpikes_underground",
"MegaTaiga_underground",
"Taiga_underground",
"ExtremeHills+_underground",
"JungleM_underground",
"ExtremeHillsM_underground",
"JungleEdgeM_underground",
ocean:
"RoofedForest_ocean",
"JungleEdgeM_ocean",
"BirchForestM_ocean",
"BirchForest_ocean",
"IcePlains_deep_ocean",
"Jungle_deep_ocean",
"Savanna_ocean",
"MesaPlateauF_ocean",
"ExtremeHillsM_deep_ocean",
"Savanna_deep_ocean",
"SunflowerPlains_ocean",
"Swampland_deep_ocean",
"Swampland_ocean",
"MegaSpruceTaiga_deep_ocean",
"ExtremeHillsM_ocean",
"JungleEdgeM_deep_ocean",
"SunflowerPlains_deep_ocean",
"BirchForest_deep_ocean",
"IcePlainsSpikes_ocean",
"Mesa_ocean",
"StoneBeach_ocean",
"Plains_deep_ocean",
"JungleEdge_deep_ocean",
"SavannaM_deep_ocean",
"Desert_deep_ocean",
"Mesa_deep_ocean",
"ColdTaiga_deep_ocean",
"Plains_ocean",
"MesaPlateauFM_ocean",
"Forest_deep_ocean",
"JungleM_deep_ocean",
"FlowerForest_deep_ocean",
"MushroomIsland_ocean",
"MegaTaiga_ocean",
"StoneBeach_deep_ocean",
"IcePlainsSpikes_deep_ocean",
"ColdTaiga_ocean",
"SavannaM_ocean",
"MesaPlateauF_deep_ocean",
"MesaBryce_deep_ocean",
"ExtremeHills+_deep_ocean",
"ExtremeHills_ocean",
"MushroomIsland_deep_ocean",
"Forest_ocean",
"MegaTaiga_deep_ocean",
"JungleEdge_ocean",
"MesaBryce_ocean",
"MegaSpruceTaiga_ocean",
"ExtremeHills+_ocean",
"Jungle_ocean",
"RoofedForest_deep_ocean",
"IcePlains_ocean",
"FlowerForest_ocean",
"ExtremeHills_deep_ocean",
"MesaPlateauFM_deep_ocean",
"Desert_ocean",
"Taiga_ocean",
"BirchForestM_deep_ocean",
"Taiga_deep_ocean",
"JungleM_ocean",
water or beach?
"MesaPlateauFM_sandlevel",
"MesaPlateauF_sandlevel",
"MesaBryce_sandlevel",
"Mesa_sandlevel",
beach:
"FlowerForest_beach",
"Forest_beach",
"StoneBeach",
"ColdTaiga_beach_water",
"Taiga_beach",
"Savanna_beach",
"Plains_beach",
"ExtremeHills_beach",
"ColdTaiga_beach",
"Swampland_shore",
"MushroomIslandShore",
"JungleM_shore",
"Jungle_shore",
dimension biome:
"Nether",
"End",
Overworld regular:
"Mesa",
"FlowerForest",
"Swampland",
"Taiga",
"ExtremeHills",
"Jungle",
"Savanna",
"BirchForest",
"MegaSpruceTaiga",
"MegaTaiga",
"ExtremeHills+",
"Forest",
"Plains",
"Desert",
"ColdTaiga",
"MushroomIsland",
"IcePlainsSpikes",
"SunflowerPlains",
"IcePlains",
"RoofedForest",
"ExtremeHills+_snowtop",
"MesaPlateauFM_grasstop",
"JungleEdgeM",
"ExtremeHillsM",
"JungleM",
"BirchForestM",
"MesaPlateauF",
"MesaPlateauFM",
"MesaPlateauF_grasstop",
"MesaBryce",
"JungleEdge",
"SavannaM",
]]--
-- count how many mobs are in an area
local count_mobs = function(pos)
local num = 0
for _,object in pairs(get_objects_inside_radius(pos, aoc_range)) do
if object and object:get_luaentity() and object:get_luaentity()._cmi_is_mob then
num = num + 1
end
end
return num
end
-- global functions
function mobs:spawn_abm_check(pos, node, name)
-- global function to add additional spawn checks
-- return true to stop spawning mob
end
--[[
Custom elements changed:
name:
the mobs name
dimension:
"overworld"
"nether"
"end"
types of spawning:
"water"
"ground"
"lava"
biomes: tells the spawner to allow certain mobs to spawn in certain biomes
{"this", "that", "grasslands", "whatever"}
what is aoc??? objects in area
WARNING: BIOME INTEGRATION NEEDED -> How to get biome through lua??
]]--
--this is where all of the spawning information is kept
local spawn_dictionary = {}
function mobs:spawn_specific(name, dimension, type_of_spawning, biomes, min_light, max_light, interval, chance, aoc, min_height, max_height, day_toggle, on_spawn)
--print(dump(biomes))
-- Do mobs spawn at all?
if not mobs_spawn then
return
end
-- chance/spawn number override in minetest.conf for registered mob
local numbers = minetest.settings:get(name)
if numbers then
numbers = numbers:split(",")
chance = tonumber(numbers[1]) or chance
aoc = tonumber(numbers[2]) or aoc
if chance == 0 then
minetest.log("warning", string.format("[mobs] %s has spawning disabled", name))
return
end
minetest.log("action",
string.format("[mobs] Chance setting for %s changed to %s (total: %s)", name, chance, aoc))
end
--[[
local spawn_action
spawn_action = function(pos, node, active_object_count, active_object_count_wider, name)
local orig_pos = table.copy(pos)
-- is mob actually registered?
if not mobs.spawning_mobs[name]
or not minetest.registered_entities[name] then
minetest.log("warning", "Mob spawn of "..name.." failed, unknown entity or mob is not registered for spawning!")
return
end
-- additional custom checks for spawning mob
if mobs:spawn_abm_check(pos, node, name) == true then
minetest.log("info", "Mob spawn of "..name.." at "..minetest.pos_to_string(pos).." failed, ABM check rejected!")
return
end
-- count nearby mobs in same spawn class
local entdef = minetest.registered_entities[name]
local spawn_class = entdef and entdef.spawn_class
if not spawn_class then
if entdef.type == "monster" then
spawn_class = "hostile"
else
spawn_class = "passive"
end
end
local in_class_cap = count_mobs(pos, "!"..spawn_class) < MOB_CAP[spawn_class]
-- do not spawn if too many of same mob in area
if active_object_count_wider >= max_per_block -- large-range mob cap
or (not in_class_cap) -- spawn class mob cap
or count_mobs(pos, name) >= aoc then -- per-mob mob cap
-- too many entities
minetest.log("info", "Mob spawn of "..name.." at "..minetest.pos_to_string(pos).." failed, too crowded!")
return
end
-- if toggle set to nil then ignore day/night check
if day_toggle ~= nil then
local tod = (minetest.get_timeofday() or 0) * 24000
if tod > 4500 and tod < 19500 then
-- daylight, but mob wants night
if day_toggle == false then
-- mob needs night
minetest.log("info", "Mob spawn of "..name.." at "..minetest.pos_to_string(pos).." failed, mob needs light!")
return
end
else
-- night time but mob wants day
if day_toggle == true then
-- mob needs day
minetest.log("info", "Mob spawn of "..name.." at "..minetest.pos_to_string(pos).." failed, mob needs daylight!")
return
end
end
end
-- spawn above node
pos.y = pos.y + 1
-- only spawn away from player
local objs = minetest.get_objects_inside_radius(pos, 24)
for n = 1, #objs do
if objs[n]:is_player() then
-- player too close
minetest.log("info", "Mob spawn of "..name.." at "..minetest.pos_to_string(pos).." failed, player too close!")
return
end
end
-- mobs cannot spawn in protected areas when enabled
if not spawn_protected
and minetest.is_protected(pos, "") then
minetest.log("info", "Mob spawn of "..name.." at "..minetest.pos_to_string(pos).." failed, position is protected!")
return
end
-- are we spawning within height limits?
if pos.y > max_height
or pos.y < min_height then
minetest.log("info", "Mob spawn of "..name.." at "..minetest.pos_to_string(pos).." failed, out of height limit!")
return
end
-- are light levels ok?
local light = minetest.get_node_light(pos)
if not light
or light > max_light
or light < min_light then
minetest.log("info", "Mob spawn of "..name.." at "..minetest.pos_to_string(pos).." failed, bad light!")
return
end
-- do we have enough space to spawn mob?
local ent = minetest.registered_entities[name]
local width_x = max(1, math.ceil(ent.collisionbox[4] - ent.collisionbox[1]))
local min_x, max_x
if width_x % 2 == 0 then
max_x = math.floor(width_x/2)
min_x = -(max_x-1)
else
max_x = math.floor(width_x/2)
min_x = -max_x
end
local width_z = max(1, math.ceil(ent.collisionbox[6] - ent.collisionbox[3]))
local min_z, max_z
if width_z % 2 == 0 then
max_z = math.floor(width_z/2)
min_z = -(max_z-1)
else
max_z = math.floor(width_z/2)
min_z = -max_z
end
local max_y = max(0, math.ceil(ent.collisionbox[5] - ent.collisionbox[2]) - 1)
for y = 0, max_y do
for x = min_x, max_x do
for z = min_z, max_z do
local pos2 = {x = pos.x+x, y = pos.y+y, z = pos.z+z}
if minetest.registered_nodes[node_ok(pos2).name].walkable == true then
-- inside block
minetest.log("info", "Mob spawn of "..name.." at "..minetest.pos_to_string(pos).." failed, too little space!")
if ent.spawn_small_alternative ~= nil and (not minetest.registered_nodes[node_ok(pos).name].walkable) then
minetest.log("info", "Trying to spawn smaller alternative mob: "..ent.spawn_small_alternative)
spawn_action(orig_pos, node, active_object_count, active_object_count_wider, ent.spawn_small_alternative)
end
return
end
end
end
end
-- tweak X/Y/Z spawn pos
if width_x % 2 == 0 then
pos.x = pos.x + 0.5
end
if width_z % 2 == 0 then
pos.z = pos.z + 0.5
end
pos.y = pos.y - 0.5
local mob = minetest.add_entity(pos, name)
minetest.log("action", "Mob spawned: "..name.." at "..minetest.pos_to_string(pos))
if on_spawn then
local ent = mob:get_luaentity()
on_spawn(ent, pos)
end
end
local function spawn_abm_action(pos, node, active_object_count, active_object_count_wider)
spawn_action(pos, node, active_object_count, active_object_count_wider, name)
end
]]--
local entdef = minetest.registered_entities[name]
local spawn_class
if entdef.type == "monster" then
spawn_class = "hostile"
else
spawn_class = "passive"
end
--load information into the spawn dictionary
local key = #spawn_dictionary + 1
spawn_dictionary[key] = {}
spawn_dictionary[key]["name"] = name
spawn_dictionary[key]["dimension"] = dimension
spawn_dictionary[key]["type_of_spawning"] = type_of_spawning
spawn_dictionary[key]["biomes"] = biomes
spawn_dictionary[key]["min_light"] = min_light
spawn_dictionary[key]["max_light"] = max_light
spawn_dictionary[key]["interval"] = interval
spawn_dictionary[key]["chance"] = chance
spawn_dictionary[key]["aoc"] = aoc
spawn_dictionary[key]["min_height"] = min_height
spawn_dictionary[key]["max_height"] = max_height
spawn_dictionary[key]["day_toggle"] = day_toggle
--spawn_dictionary[key]["on_spawn"] = spawn_abm_action
spawn_dictionary[key]["spawn_class"] = spawn_class
--[[
minetest.register_abm({
label = name .. " spawning",
nodenames = nodes,
neighbors = neighbors,
interval = interval,
chance = floor(max(1, chance * mobs_spawn_chance)),
catch_up = false,
action = spawn_abm_action,
})
]]--
end
-- compatibility with older mob registration
-- we're going to forget about this for now -j4i
--[[
function mobs:register_spawn(name, nodes, max_light, min_light, chance, active_object_count, max_height, day_toggle)
mobs:spawn_specific(name, nodes, {"air"}, min_light, max_light, 30,
chance, active_object_count, -31000, max_height, day_toggle)
end
]]--
--Don't disable this yet-j4i
-- MarkBu's spawn function
function mobs:spawn(def)
--does nothing for now
--[[
local name = def.name
local nodes = def.nodes or {"group:soil", "group:stone"}
local neighbors = def.neighbors or {"air"}
local min_light = def.min_light or 0
local max_light = def.max_light or 15
local interval = def.interval or 30
local chance = def.chance or 5000
local active_object_count = def.active_object_count or 1
local min_height = def.min_height or -31000
local max_height = def.max_height or 31000
local day_toggle = def.day_toggle
local on_spawn = def.on_spawn
mobs:spawn_specific(name, nodes, neighbors, min_light, max_light, interval,
chance, active_object_count, min_height, max_height, day_toggle, on_spawn)
]]--
end
local axis
--inner and outer part of square donut radius
local inner = 15
local outer = 64
local int = {-1,1}
local position_calculation = function(pos)
pos = vector_floor(pos)
--this is used to determine the axis buffer from the player
axis = math_random(0,1)
--cast towards the direction
if axis == 0 then --x
pos.x = pos.x + math_random(inner,outer)*int[math_random(1,2)]
pos.z = pos.z + math_random(-outer,outer)
else --z
pos.z = pos.z + math_random(inner,outer)*int[math_random(1,2)]
pos.x = pos.x + math_random(-outer,outer)
end
return(pos)
end
--[[
local decypher_limits_dictionary = {
["overworld"] = {mcl_vars.mg_overworld_min,mcl_vars.mg_overworld_max},
["nether"] = {mcl_vars.mg_nether_min, mcl_vars.mg_nether_max},
["end"] = {mcl_vars.mg_end_min, mcl_vars.mg_end_max}
}
]]--
local function decypher_limits(posy)
--local min_max_table = decypher_limits_dictionary[dimension]
--return min_max_table[1],min_max_table[2]
posy = math_floor(posy)
return posy - 32, posy + 32
end
--a simple helper function for mob_spawn
local function biome_check(biome_list, biome_goal)
for _,data in ipairs(biome_list) do
if data == biome_goal then
return true
end
end
return false
end
--todo mob limiting
--MAIN LOOP
if mobs_spawn then
local timer = 0
minetest.register_globalstep(function(dtime)
timer = timer + dtime
if timer >= 10 then
timer = 0
for _,player in pairs(minetest.get_connected_players()) do
-- after this line each "break" means "continue"
local do_mob_spawning = true
repeat
--don't need to get these variables more than once
--they happen in a single server step
local player_pos = player:get_pos()
local _,dimension = mcl_worlds.y_to_layer(player_pos.y)
if dimension == "void" or dimension == "default" then
break -- ignore void and unloaded area
end
local min,max = decypher_limits(player_pos.y)
for i = 1,math_random(1,4) do
-- after this line each "break" means "continue"
local do_mob_algorithm = true
repeat
local goal_pos = position_calculation(player_pos)
local spawning_position_list = find_nodes_in_area_under_air(vector_new(goal_pos.x,min,goal_pos.z), vector_new(goal_pos.x,max,goal_pos.z), {"group:solid", "group:water", "group:lava"})
--couldn't find node
if #spawning_position_list <= 0 then
break
end
local spawning_position = spawning_position_list[math_random(1,#spawning_position_list)]
--Prevent strange behavior --- this is commented out: /too close to player --fixed with inner circle
if not spawning_position then -- or vector_distance(player_pos, spawning_position) < 15
break
end
--hard code mob limit in area to 5 for now
if count_mobs(spawning_position) >= 5 then
break
end
local gotten_node = get_node(spawning_position).name
if not gotten_node or gotten_node == "air" then --skip air nodes
break
end
local gotten_biome = minetest.get_biome_data(spawning_position)
if not gotten_biome then
break --skip if in unloaded area
end
gotten_biome = get_biome_name(gotten_biome.biome) --makes it easier to work with
--add this so mobs don't spawn inside nodes
spawning_position.y = spawning_position.y + 1
--only need to poll for node light if everything else worked
local gotten_light = get_node_light(spawning_position)
local is_water = get_item_group(gotten_node, "water") ~= 0
local is_lava = get_item_group(gotten_node, "lava") ~= 0
local mob_def = nil
--create a disconnected clone of the spawn dictionary
--prevents memory leak
local mob_library_worker_table = table_copy(spawn_dictionary)
--grab mob that fits into the spawning location
--randomly grab a mob, don't exclude any possibilities
local repeat_mob_search = true
repeat
--do not infinite loop
if #mob_library_worker_table <= 0 then
--print("breaking infinite loop")
break
end
local skip = false
--use this for removing table elements of mobs that do not match
local temp_index = math_random(1,#mob_library_worker_table)
local temp_def = mob_library_worker_table[temp_index]
--skip if something ridiculous happens (nil mob def)
--something truly horrible has happened if skip gets
--activated at this point
if not temp_def then
skip = true
end
if not skip and (spawning_position.y < temp_def.min_height or spawning_position.y > temp_def.max_height) then
skip = true
end
--skip if not correct dimension
if not skip and (temp_def.dimension ~= dimension) then
skip = true
end
--skip if not in correct biome
if not skip and (not biome_check(temp_def.biomes, gotten_biome)) then
skip = true
end
--don't spawn if not in light limits
if not skip and (gotten_light < temp_def.min_light or gotten_light > temp_def.max_light) then
skip = true
end
--skip if not in correct spawning type
if not skip and (temp_def.type_of_spawning == "ground" and is_water) then
skip = true
end
if not skip and (temp_def.type_of_spawning == "ground" and is_lava) then
skip = true
end
--found a mob, exit out of loop
if not skip then
--minetest.log("warning", "found mob:"..temp_def.name)
--print("found mob:"..temp_def.name)
mob_def = table_copy(temp_def)
break
else
--minetest.log("warning", "deleting temp index "..temp_index)
--print("deleting temp index")
table_remove(mob_library_worker_table, temp_index)
end
until repeat_mob_search == false --this is needed to sort through mobs randomly
--catch if went through all mobs and something went horribly wrong
--could not find a valid mob to spawn that fits the environment
if not mob_def then
break
end
--adjust the position for water and lava mobs
if mob_def.type_of_spawning == "water" or mob_def.type_of_spawning == "lava" then
spawning_position.y = spawning_position.y - 1
end
--print("spawning: " .. mob_def.name)
--everything is correct, spawn mob
minetest.add_entity(spawning_position, mob_def.name)
break
until do_mob_algorithm == false --this is a safety catch
end
break
until do_mob_spawning == false --this is a performance catch
end
end
end)
end