Dylan K. Taylor
0658c0851b
Entity: Remove some unused properties
2018-01-24 11:37:01 +00:00
Dylan K. Taylor
0df2064802
Implement armor damage protection enchantments ( #1839 )
2018-01-24 10:13:24 +00:00
Dylan K. Taylor
6543d96910
Inventory: Split up armor and player inventory ( #1957 )
...
* Inventory: Split up PlayerInventory and armour handling
* Fixed other players don't see armour changes. This bug also exists on master.
2018-01-23 20:01:26 +00:00
Dylan K. Taylor
2eb6e075ae
Refactored entity metadata handling into its own class, with type-safe methods ( #1876 )
...
This includes several other changes, including:
- SLOT data properties now accept items directly
- POS data properties now accept floored Vector3s (in future this will be block positions) or null for 0,0,0
- VECTOR3F data properties now accept Vector3s or null for 0,0,0
2018-01-20 10:52:14 +00:00
Dylan K. Taylor
71d11c73f0
Math: Kill BlockIterator, added a VoxelRayTrace class with level-independent generator functions ( #1885 )
...
This is a rather larger commit than I'm happy with, but oh well.
This kills off the enormously overcomplicated BlockIterator and replaces it with a VoxelRayTrace class containing ray tracing generator functions. These functions are independent of any Level. They yield Vector3 objects with current ray trace positions to allow implementations to handle the intercepted blocks in their own ways.
Living->getLineOfSight() now uses VoxelRayTrace instead of BlockIterator.
2018-01-10 20:14:36 +00:00
Dylan K. Taylor
0410df77aa
Drop experience on death
2018-01-04 19:33:37 +00:00
Dylan K. Taylor
6e1df36188
Consumables refactor ( #1796 )
...
* Removed broken EntityEatEvents - these don't fit the pattern since they only apply to Human entities anyway. PlayerItemConsumeEvent and PlayerInteractEvent can be used for cancellation purposes, and plugins can do custom stuff without mess.
* Restrict item consuming to Living entities only
* Added FoodSource->requiresHunger()
* Only items implementing the Consumable interface can now be consumed.
* The effects from consuming items are now generic-ized by way of the Living->consume() function. This is overridden in Human to allow applying food and hunger.
* Fixed the hardcoded mess for buckets
2017-12-23 13:03:41 +00:00
Dylan K. Taylor
8d08840ea4
Effect: Better fix for duration bug seen in 3614711a027c55df1723eefae36b4a79397e6e95
2017-12-23 10:45:59 +00:00
Dylan K. Taylor
7f0d0c9d63
Revert "fixed negative effect durations when level tick rate is > 1"
...
This reverts commit 3614711a027c55df1723eefae36b4a79397e6e95.
2017-12-23 10:44:21 +00:00
Dylan K. Taylor
953f45c50f
Altered armour handling, now works for damage other than PvP
2017-12-14 12:37:28 +00:00
Dylan K. Taylor
1822abc862
Living: Apply absorption after effect damage reduction is checked
2017-12-14 12:03:12 +00:00
Dylan K. Taylor
92e966686e
Refactor Living->attack() into several methods
2017-12-14 11:39:05 +00:00
Dylan K. Taylor
e75fbd7fb4
Changed Effect colours to use Color objects instead of arrays ( #1814 )
2017-12-14 10:21:07 +00:00
Dylan K. Taylor
06f605879a
Effect: Save and restore ambiency properly
2017-12-14 10:10:26 +00:00
Dylan K. Taylor
bf4076766e
Living: Fixed passing FloatTag to setHealth() when HealF tag is present, close #1784
2017-12-09 20:31:14 +00:00
Dylan K. Taylor
49dbd8b2c8
Living: Remove superfluous fire resistance check from dealFireDamage()
...
This is already checked in Living->attack(). It's preferable to allow it to be cancelled there since plugins can then un-cancel EntityDamageEvent to bypass the effect.
2017-12-07 17:32:50 +00:00
Dylan K. Taylor
74239eec69
Living: Remove nonsensical >0 condition on boolean
...
Maybe this once returned integers, but it doesn't anymore.
2017-12-07 16:49:16 +00:00
Dylan K. Taylor
b06ca6eb0b
Rename Living->callDeathEvent() to Living->onDeath()
2017-12-07 12:26:49 +00:00
Dylan K. Taylor
5a0afa9f88
Fixed broken logic in EntityEffectEvents, close #1767 ( #1768 )
2017-12-03 16:14:20 +00:00
Muqsit
92a1f45175
Make Living::addEffect() return bool ( #1755 )
2017-12-01 16:56:37 +00:00
Dylan K. Taylor
0badaeb8f4
bump max dead ticks to 25 so death smoke cloud works properly
...
I wish this wasn't client sided... it's a pain to get it synced properly.
2017-11-22 19:55:25 +00:00
Dylan K. Taylor
c5ac6a7606
Remove redundant count() for effects ticking
2017-11-22 19:44:22 +00:00
Dylan K. Taylor
e9951b1b1f
Remove redundant condition for setBreathing()
2017-11-22 19:43:09 +00:00
Dylan K. Taylor
47f94eebd1
Use maxDeadTicks instead of hardcoded 20
2017-11-22 18:58:58 +00:00
Dylan K. Taylor
e9e22db1e7
Cleaned up death animation handling, removed dead ticking from non-Living entities
2017-11-22 17:17:47 +00:00
DaPigGuy
96348e0e44
Fix setMaxAirSupplyTicks() ( #1555 )
2017-11-19 01:40:46 +00:00
Dylan K. Taylor
460d540dbc
Further cleanup on ListTag and CompoundTag usage
2017-11-17 11:43:32 +00:00
Dylan K. Taylor
aa399a1109
migrate to new CompoundTag API ( #1515 )
2017-11-10 15:38:21 +00:00
Dylan K. Taylor
a66a757f56
Cleaned up EntityEventPacket handling
2017-11-04 18:31:35 +00:00
Dylan K. Taylor
3614711a02
fixed negative effect durations when level tick rate is > 1
...
thank you @Sandertv
2017-11-01 09:09:17 +00:00
Dylan K. Taylor
bddd7e0eee
Fixed no fall damage when falling 3-4 blocks, close #891
2017-10-26 23:23:08 +01:00
Dylan K. Taylor
8daa8deae9
Added Living->lookAt()
2017-10-23 17:29:20 +01:00
Dylan K. Taylor
a245615531
fixed non-living entities lingering for a second after being kill()ed
...
only living entities should have death animation time
2017-10-19 20:51:50 +01:00
Dylan K. Taylor
2601e35990
Cleaned up and added API for entity air supply, fixed oxygen being used in creative/spectator
...
this commit also includes respiration checks because it's cherry-picked
from api3/blocks, but respiration won't work until it's registered.
2017-10-09 11:28:40 +01:00
Dylan K. Taylor
38fad4b963
Implement difficulty per-world ( #878 )
...
* Moved Server::getDifficultyFromString() to Level
* Added ability to set difficulty in worlds section of pocketmine.yml for generation
2017-09-26 11:16:51 +01:00
Dylan K. Taylor
cb7911ee9c
Improved Absorption, now only applies to living entities, now controllable by plugins
2017-09-03 12:37:34 +01:00
Dylan K. Taylor
21f09d5fdb
Cleaned up Effect handling and replacement
2017-08-30 12:53:41 +01:00
Dylan K. Taylor
fd52022065
Refactor of health int -> float and fixed armor being useless when
...
computed damage reduction is less than 1
2017-08-30 11:03:07 +01:00
Dylan K. Taylor
456ddd3fb3
Removed obsolete parameters from Entity->attack() and Entity->heal()
2017-08-21 13:25:11 +01:00
Dylan K. Taylor
e825ebd8fa
Added some wrapper methods to make data flags less of a pain in the ass to work with
2017-08-17 16:52:17 +01:00
Dylan K. Taylor
741394dab1
Typehinted up entity API
...
Did you guys think ALPHA7 changes were done?!
Sone stuff still needs some work, most notably data-properties can't be typed yet because they are just mushed into a couple of methods.
2017-08-16 19:04:30 +01:00
Dylan K. Taylor
2d8395f70e
Absorption should be a float. Fixed #1071
2017-08-07 16:09:10 +01:00
Dylan K. Taylor
6b5c0af161
Separation of effect handling from Entity, fixes #886
2017-08-07 16:03:54 +01:00
Dylan K. Taylor
c3b8be3f60
and more typehints
2017-07-14 10:56:51 +01:00
Dylan K. Taylor
394f420059
Fixed chunks not loading when respawning and some minor spawn sequence cleanup ( #1153 )
...
* Fixed chunks not loading when respawning and some minor spawn sequence cleanup
* This causes too much unexpected behaviour to be useful
Revert "Make use of Mojang's pitch hack, close #821 "
This reverts commit c2dfef700feaf7235ece2fc140e93d02ae3f4af4.
* Removed delayed-teleport system and cleaned up movement reset for dead players
* Fixed health resetting to max when quitting and rejoining
2017-07-05 10:31:16 +01:00
Dylan K. Taylor
a365c831a8
Fixed some doc problems
2017-06-25 12:07:28 +01:00
Dylan K. Taylor
eac756470a
Fixed trying to save health as a ShortTag, close #1039
2017-06-09 09:11:02 +01:00
Dylan K. Taylor
890f72dbf2
Type-hinted NBT tag constructors, made getValue() and setValue() more strict, fix dozens of assorted related bugs
2017-06-08 19:17:52 +01:00
Dylan K. Taylor
51b0673b4b
Bite the bullet and enable strict types on everything
2017-06-07 12:53:16 +01:00
Dylan K. Taylor
54453d0b0a
Refactored entity IDs in packets for consistency and to clarify on types
2017-06-05 15:41:27 +01:00