1
0
Commit Graph

207 Commits

Author SHA1 Message Date
peterbell10
13144a08e4
Enable some more clang-tidy linter checks (#4738)
* Avoid inefficient AString -> c_str() -> AString round trip

* Avoid redundant string init expressions

* Avoid unnecessary return, continue, etc.

* Add .clang-format to help with clang-tidy fix-its

* Avoid unnecessary passing by value

* Avoid unnecessary local copying

* Avoid copying in range-for loops

* Avoid over-complicated boolean expressions

* Some violations missed by my local clang-tidy

* Allow unnecessary continue statements

* Add brackets

* Another expression missed locally

* Move BindingsProcessor call into clang-tidy.sh and add space

* Fix pushd not found error

* Different grouping of CheckBlockInteractionRate
2020-05-14 22:15:35 +00:00
Mattes D
9ee47e5999 Using Super. 2020-04-16 20:07:48 +00:00
Alexander Harkness
4b3043f627
Fix compilation, for real this time.
I should go to sleep now...
2020-04-10 01:01:07 +01:00
Bond-009
8438def87e
Add Zombie Villagers 2020-04-10 00:50:45 +01:00
Mat
23219c4738 Wolves and mooshrooms are passive mobs 2020-04-09 12:39:45 +01:00
Mat
60bcc06f43
Implement wither skeletons (#4563) 2020-04-04 13:44:17 +02:00
Mattes D
01b8ed5295
Pulled the BlockID and BlockInfo headers from Globals.h. (#4591)
The BlockID.h file was removed from Globals.h and renamed to BlockType.h (main change)
The BlockInfo.h file was removed from Globals.h (main change)
The ENUM_BLOCK_ID and ENUM_ITEM_ID enum names were replaced with ENUM_BLOCK_TYPE and ENUM_ITEM_TYPE (cosmetics)
The various enums, such as eDimension, eDamageType and eExplosionSource were moved from BlockType.h to Defines.h, together with the helper functions for converting between them and strings (StringToDimension et al.) (minor)
Many inline functions were moved from headers to their respective cpp files, so that BlockType.h could be included only into the cpp file, rather than the header.
That broke our tests a bit, since they pick bits and pieces out of the main code and provide stubs for the rest; they had to be re-stubbed and re-verified.
eMonsterType values are no longer tied to E_ITEM_SPAWN_EGG_META_* values
2020-04-03 08:57:01 +02:00
Mat
2b32bb0b19
Decrease attack cooldown for monsters (#4542)
* Decrease attack cooldown for monsters

* Nerf some mobs

* Decimal points
2020-03-26 20:11:43 +02:00
Mat
84f86a467e
Improvements to blaze and ghast (#4547) 2020-03-26 18:54:40 +01:00
Mat
9ddf433ae7
Add ambient mob sounds (#4521) 2020-03-22 15:50:34 +00:00
Mat
7d4934534e
Stabilise MoveToWorld (#4004)
* Stabilise MoveToWorld

* Fix comments and deprecate ScheduleMoveToWorld

* Enhanced thread safety for m_WorldChangeInfo

* Return unique_ptr from cAtomicUniquePtr::exchange

* cWorld now calls entity cEntity::OnAddToWorld and cEntity::OnRemoveFromWorld.

Allows broadcasting entities added to the world from the world's tick thread.
This also factors out some common code from cEntity::DoMoveToWorld and cEntity::Initialize.

As a consequence, cEntity::Destroy(false) (i.e. Destroying the entity without broadcasting) is impossible.
This isn't used anywhere in Cuberite so it's now deprecated.

* Update entity position after removing it from the world.
Fixes broadcasts being sent to the wrong chunk.

* Fix style

* cEntity: Update LastSentPosition when sending spawn packet

* Add Wno-deprecated-declarations to the lua bindings

* Kill uses of ScheduleMoveToWorld
2020-03-05 12:52:34 +02:00
peterbell10
ee84197014
Force all headers other than "Globals.h" to be included with relative paths (#4269)
Closes #4236

CMake now creates a header file in the build directory under the path "include/Globals.h" which just includes "src/Globals.h" with an absolute path. Then instead of adding "src/" to the include directories, it adds "include/".

#include "Globals.h" still works by including the build generated file and any other src-relative path will not work.
2018-08-29 01:51:25 +01:00
changyong guo
57690b81a2 Experience orb (#4259)
* Replace cWorld::FindClosesPlayer with cWorld::DoWithClosestPlayer
* Implement experience reward splitting into the orb sizes used in vanilla
* Modified speed calculation in cExpOrb::Tick to make the orbs fly towards the player

Fixes #4216
2018-08-02 15:59:10 +01:00
peterbell10
950aeffff8
CheckBasicStyle: Check number of empty lines between functions (#4267)
Add check for number of empty lines between functions and fix the corresponding failures
2018-07-26 22:24:36 +01:00
peterbell10
e88b3fa2fe New movement system for leashed entities (#4147)
* New movement system for leashed entities
Entities are accelerated towards the leashed to entity as if by a spring.
 * Mobs now pathfind close to but not directly to the leashing entity.
* Also minor comment changes
2018-01-17 21:40:58 +00:00
Bond-009
3065a101a5 Don't burn mobs in daylight when swimming (#4145) 2018-01-15 22:44:48 +00:00
Alexander Harkness
ad22922393 Rename cEntity swim states (#3996)
* Replace cEntity:m_IsSubmerged with m_IsHeadInWater
* Replace cEntity:m_IsSwimming with m_IsInWater
* Add API documentation for new symbols
* Apply SetSwimState to all entities, not just mobs and players
* Pickups now use IsOnFire to check if they are on fire before destruction

Fixes #3987
2018-01-14 18:44:45 +00:00
Lane Kolbly
30c8470a52 Changed BroadcastSoundEffect, SendSoundEffect, and CastThunderbolt parameters to vectors (#3959)
* Made BroadcastSoundEffect take vector parameters.

* Added docs for new vectored methods

* Removed old code

* Fixed lua warnings

* Made old BroadcastSoundEffect not an override.

* m_Block to m_BlockPos, used Vector3d constructor where prettier.

* a_Block to a_BlockPos

* Changed thunderbolt a_Block to a_BlockPos
2017-09-19 15:12:54 +01:00
peterbell10
307e7aaff5 Fix switch warnings (#4013)
* Fix switch warnings
  * Fix a variety of -Wswitch and -Wswitch-enum warnings
  * Remove unneeded -Wno-error flags

* Reorganise some eMonsterType switches
  * Alpha sort eMonsterType cases in WriteMobMetadata
    and in cNBTChunkSerializer::AddMonsterEntity
  * List all mob types in protocol 1.12 and NBTChunkSerializer

* cStructGenTrees::GetNumTrees: remove switch default

* cWSSAnvil::LoadOldMinecartFromNBT: Log unhandled minecart type
2017-09-14 09:48:57 +01:00
Alexander Harkness
765db880f9 Remove double-checking below world for burning 2017-09-01 14:50:02 +01:00
Alexander Harkness
0140923c35 Fix mobs not burning in daylight when on snow (#3961)
* Fix mobs not burning in daylight when on snow

or other non-transparent partial blocks.

Fixes #3945

* Change from floor to ceil
2017-08-25 16:26:45 +01:00
Lukas Pioch
b55e5f5ad1 Use ref instead of pointer 2017-08-24 14:36:29 +02:00
Pablo Beltrán
b18f6637b6 Fully implemented leashes (#3798) 2017-08-21 10:46:41 +02:00
Lane Kolbly
8f1ddfa6c3 Changed type of FastRandom in monster drop calculation. (#3920)
* Fixed type of FastRandom in monster drop calculation.

* Distribute dropped items into stacks.

* Moved while loop outside if statement.
2017-08-18 11:23:08 +01:00
Tiger Wang
4ef47aed62 Changed entity ownership model to use smart pointers 2017-08-07 19:24:16 +01:00
peterbell10
360d8eade0 FastRandom rewrite (#3754) 2017-06-13 21:35:30 +02:00
Mattes D
0551d78dff Fixed tracer usage in Entity physics handling. (#3720) 2017-05-28 20:56:17 +02:00
Lukas Pioch
fc49ace897 Spawn eggs works again 2017-05-22 18:10:12 +02:00
Pablo Beltrán
2359611c57 Don't destroy monster when last target type is a player (#3721)
In current Cuberite version if you are pursued by monsters you just have to disconnect and connect again to get rid of them. If no other player is in your chunk monsters will get destroyed.
2017-05-21 10:29:06 +02:00
bibo38
cb640ffea4 Spectators added (#2852) 2016-10-12 14:38:45 +02:00
LogicParrot
90be4e7efd Entities now bail out of ticks if destroyed (#3363) 2016-09-03 14:31:27 +03:00
Mattes D
7549f468b3 Fixed implicit rounding warnings. 2016-08-19 14:09:10 +02:00
LogicParrot
250e50c01e Fix issues below y = 0 2016-04-18 21:58:57 +03:00
LogicParrot
56a855d599 Manual mob burn code 2016-04-06 09:18:33 +03:00
LogicParrot
83459d0d89 Proper entity destruction in non-ticking chunks 2016-02-19 07:05:22 +02:00
LogicParrot
4aade202e0 cMonster::m_Target safety across worlds 2016-02-03 22:50:17 +02:00
LogicParrot
d344e574de Spiders now friendly at daylight, new cChunk functions 2016-01-21 08:21:29 +02:00
LogicParrot
21df3cb0d8 Fix mob attack interval 2016-01-12 14:20:17 +02:00
Mattes D
902f428342 Fixed the monster burn code.
The old code failed when the monster was out of Y range.
2015-12-30 01:15:13 +01:00
Safwat Halaby
dfeced18b2 PF - "Special blocks" handling 2015-12-24 06:20:16 +02:00
Gargaj
66e6589883 blockheight mechanism 2015-12-13 15:16:15 +01:00
Safwat Halaby
4851f5e2c9 Remove stray "return" 2015-12-13 08:04:41 +02:00
Safwat Halaby
91aec448eb Fixed mobs attacking Creative Mode players 2015-12-13 07:52:11 +02:00
Safwat Halaby
8a5df43e6c Decoupled cMonster and path recalc logic, re-implemented recalc 2015-12-13 07:13:34 +02:00
Gargaj
4ae3b64b07 implement breeding 2015-11-29 20:14:28 +01:00
Dave Tucker
83870f9fc0 Add enum for Sound and Particle Effects
Fixes #2603

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2015-11-24 13:21:40 +00:00
bibo38
19b65ce357 Fixed failed assertation
This was caused by a monster with a negative Y-axis.
Fixes #2336
2015-11-03 08:39:18 +01:00
Mattes D
66e8190ca8 StyleCheck: Check spaces around ==, <=, >= 2015-10-08 17:43:26 +02:00
Safwat Halaby
db40172b64 Partial revert of #2446 2015-09-28 08:52:08 +03:00
Mattes D
82d9ac1e1c Namechange to Cuberite 2015-09-25 10:14:17 +02:00