summaryrefslogtreecommitdiffstats
path: root/src/Mobs/Monster.cpp (unfollow)
Commit message (Collapse)AuthorFilesLines
2023-09-26adding endermite (#5460)Debucquoy Anthony tonitch1-0/+7
* First Draft of adding endermite * Update src/Mobs/Endermite.h Co-authored-by: x12xx12x <44411062+12xx12@users.noreply.github.com> * Adding Protocols + SpawnEgg TODO: don't forget to put the endermite in core plugin for the summon command * Adding endermite to monster.ini * Adding 5% change of spawning endermite when throwing enderpearl * Spawn endermite at last position instead of Hit Position + .cache to .gitignore * fixup! Spawn endermite at last position instead of Hit Position + .cache to .gitignore * destroy endermite if 2 min, not if name is set * Syntax * Adding Enderman targeting endermite + fixing syntax * Fixing compile error + return error [but crash on enderman spawn] * Fix crash but enderman doesn't target * Enderman targeting endermite finished * checking style because i'm a noob at git... * fixup! checking style because i'm a noob at git... * Added endermite egg meta to docs * Final touches Removed unnecesary imports fixed callback to run only in sight distance and actually check sigtlines * Fixed error after not pulling branch --------- Co-authored-by: x12xx12x <44411062+12xx12@users.noreply.github.com> Co-authored-by: Debucquoy <debucqquoy.anthony@gmail.com>
2022-01-14syntaxTiger Wang1-2/+2
2022-01-14eblockfaceTiger Wang1-1/+1
2022-01-14Fixed Compiler Warningsx12xx12x1-3/+3
2021-12-02ItemHandler initialisation is a constant expression (#5344)x12xx12x1-1/+1
* Transition to non-pointer item handler * That is my destructor - I decide when I leave this world * I declare your destruction private and you final
2021-10-02Only nether-native mobs can see through lavaRorkh1-0/+9
2021-06-19Death messages for tamed pets and ocelots are now tamable. (#5243)TheHyper451-0/+9
* Fixing bugs regarding wolfs and ocelots * Death messages appear after killing tamed ocelots and wolfs * Style fix * Added myself to the CONTRIBUTORS file * Removed redundant string initialization * Removed an unsafe cast. * Changed the order of initialization of fields in constuctor of class cOcelot
2021-06-15Migrate off CircleCI to Jenkins (#5230)Alexander Harkness1-1/+1
* Add Jenkinsfile * cd src * Escape wildcards * Refactor stages * Remove CircleCI junk * Make clang-tidy do something * updated regex to include only the files in the base src directory * fixed errors displayed by new clang tidy version * adjust clang core count to actual count * Update README with new Jenkins build Co-authored-by: 12xx12 <44411062+12xx12@users.noreply.github.com>
2021-05-03Add player statistics to API (#5193)nshah251-2/+2
* Fixed issue #5166 Co-authored-by: 12xx12 <44411062+12xx12@users.noreply.github.com> Co-authored-by: Tiger Wang <ziwei.tiger@outlook.com>
2021-04-12Unify multiprotocol entity animationsTiger Wang1-1/+1
2021-04-12Update entity sizesTiger Wang1-1/+1
2021-04-12Fix sending incorrect date values on world changeTiger Wang1-18/+10
Yak shave: make more things use cTickTime. Fix a couple of incorrect modulo-on-millisecond-value by making them use WorldTickAge.
2021-03-15Properly deprecate more XYZ parameter'd functions (#5147)Tiger Wang1-9/+9
* Fixes #5144
2021-03-07Some emplace_back replacements (#5149)12xx121-1/+1
* replace push_back with emplace_back when a new object was created in the function call
2021-01-12Clarify cClientHandle, cPlayer ownership semanticsTiger Wang1-14/+0
+ A cPlayer, once created, has a strong pointer to the cClientHandle. The player ticks the clienthandle. If he finds the handle destroyed, he destroys himself in turn. Nothing else can kill the player. * The client handle has a pointer to the player. Once a player is created, the client handle never outlasts the player, nor does it manage the player's lifetime. The pointer is always safe to use after FinishAuthenticate, which is also the point where cProtocol is put into the Game state that allows player manipulation. + Entities are once again never lost by constructing a chunk when they try to move into one that doesn't exist. * Fixed a forgotten Super invocation in cPlayer::OnRemoveFromWorld. * Fix SaveToDisk usage in destructor by only saving things cPlayer owns, instead of accessing cWorld.
2021-01-11Convert most calls to blocking GetHeight/GetBiomeAt to direct chunk accessesTiger Wang1-4/+4
* Hopefully fixes #5094
2021-01-02Fix potential destruction crashes (#5095)Tiger Wang1-34/+10
* Fix potential destruction crashes * Fix destructors accessing destroyted objects * Fix cPlayer not destroying windows (Destroyed never called) * Tentatively fixes #4608, fixes #3236, fixes #3262 - Remove cEntity::Destroyed() and replace with cEntity::OnRemoveFromWorld() * Add missing call to OnRemoveFromWorld
2020-12-21Monsters: improve targetingTiger Wang1-21/+76
* Replace DoWithNearestPlayer with bounding box search (avoid iterating through all players in world). * Do line-of-sight checks from eye-to-eye. + Added LOS and LOS lost timer to target lost checks, in addition to distance.
2020-12-20Enable LOS checks for Hostile Mobs.the1robert1-1/+1
2020-11-23Adding new monster types to enum and saving/loading for easier future implementation (#4941)12xx121-33/+69
* added new monster types to enum added string <-> enum conversion in namespace serializer added loading functions added to saving * renamed zombie pigman to zombified piglins in enum Co-authored-by: 12xx12 <12xx12100@gmail.com> Co-authored-by: Tiger Wang <ziwei.tiger@outlook.com>
2020-10-09Adding wolf breading and moving breeding functionality to cMonster (#4951)12xx121-4/+201
* added wolf breading * mpoved breeding to monster * checkstyle * fixed my IDE "helping" * removed magic number and fixed faster aging * added flooring to age manipulation * fixed copiler error * fixed typo * moved tps to Defines.h * removed the TPS constant from the lua API exposure * added inline constexpr added explanation * fixed broken build * "fixed" build Co-authored-by: 12xx12 <12xx12100@gmail.com>
2020-08-01Replaced cpp14::make_unique<> with std::make_unique<>.Mattes D1-33/+33
2020-07-06Reduced packet spam when entities idleTiger Wang1-1/+9
* Try not to send look packets when nothing's changed.
2020-05-15Enable some more clang-tidy linter checks (#4738)peterbell101-1/+1
* 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-04-16Using Super.Mattes D1-9/+9
2020-04-10Fix compilation, for real this time.Alexander Harkness1-1/+1
I should go to sleep now...
2020-04-10Add Zombie VillagersBond-0091-12/+8
2020-04-09Wolves and mooshrooms are passive mobsMat1-2/+2
2020-04-04Implement wither skeletons (#4563)Mat1-93/+93
2020-04-03Pulled the BlockID and BlockInfo headers from Globals.h. (#4591)Mattes D1-0/+1
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-03-26Decrease attack cooldown for monsters (#4542)Mat1-1/+1
* Decrease attack cooldown for monsters * Nerf some mobs * Decimal points
2020-03-26Improvements to blaze and ghast (#4547)Mat1-1/+1
2020-03-22Add ambient mob sounds (#4521)Mat1-1/+18
2020-03-05Stabilise MoveToWorld (#4004)Mat1-4/+18
* 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
2018-08-29Force all headers other than "Globals.h" to be included with relative paths (#4269)peterbell101-1/+1
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-02Experience orb (#4259)changyong guo1-7/+5
* 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-07-26CheckBasicStyle: Check number of empty lines between functions (#4267)peterbell101-1/+1
Add check for number of empty lines between functions and fix the corresponding failures
2018-01-17New movement system for leashed entities (#4147)peterbell101-34/+46
* 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-15Don't burn mobs in daylight when swimming (#4145)Bond-0091-1/+2
2018-01-14Rename cEntity swim states (#3996)Alexander Harkness1-2/+2
* 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
2017-09-19Changed BroadcastSoundEffect, SendSoundEffect, and CastThunderbolt parameters to vectors (#3959)Lane Kolbly1-2/+2
* 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-14Fix switch warnings (#4013)peterbell101-6/+10
* 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-01Remove double-checking below world for burningAlexander Harkness1-5/+0
2017-08-25Fix mobs not burning in daylight when on snow (#3961)Alexander Harkness1-3/+3
* Fix mobs not burning in daylight when on snow or other non-transparent partial blocks. Fixes #3945 * Change from floor to ceil
2017-08-24Use ref instead of pointerLukas Pioch1-6/+6
2017-08-21Fully implemented leashes (#3798)Pablo Beltrán1-1/+172
2017-08-18Changed type of FastRandom in monster drop calculation. (#3920)Lane Kolbly1-1/+8
* Fixed type of FastRandom in monster drop calculation. * Distribute dropped items into stacks. * Moved while loop outside if statement.
2017-08-07Changed entity ownership model to use smart pointersTiger Wang1-40/+34
2017-06-13FastRandom rewrite (#3754)peterbell101-31/+31
2017-05-28Fixed tracer usage in Entity physics handling. (#3720)Mattes D1-7/+8
2017-05-22Spawn eggs works againLukas Pioch1-31/+60
2017-05-21Don't destroy monster when last target type is a player (#3721)Pablo Beltrán1-0/+2
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.
2016-10-12Spectators added (#2852)bibo381-5/+10
2016-09-03Entities now bail out of ticks if destroyed (#3363)LogicParrot1-0/+5
2016-08-19Fixed implicit rounding warnings.Mattes D1-1/+1
2016-04-18Fix issues below y = 0LogicParrot1-3/+7
2016-04-06Manual mob burn codeLogicParrot1-7/+34
2016-02-19Proper entity destruction in non-ticking chunksLogicParrot1-3/+3
2016-02-03cMonster::m_Target safety across worldsLogicParrot1-27/+94
2016-01-21Spiders now friendly at daylight, new cChunk functionsLogicParrot1-3/+3
2016-01-12Fix mob attack intervalLogicParrot1-1/+15
2015-12-30Fixed the monster burn code.Mattes D1-3/+15
The old code failed when the monster was out of Y range.
2015-12-24PF - "Special blocks" handlingSafwat Halaby1-14/+28
2015-12-13blockheight mechanismGargaj1-16/+2
2015-12-13Remove stray "return"Safwat Halaby1-1/+0
2015-12-13Fixed mobs attacking Creative Mode playersSafwat Halaby1-2/+14
2015-12-13Decoupled cMonster and path recalc logic, re-implemented recalcSafwat Halaby1-272/+82
2015-11-29implement breedingGargaj1-0/+11
2015-11-24Add enum for Sound and Particle EffectsDave Tucker1-1/+2
Fixes #2603 Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2015-11-03Fixed failed assertationbibo381-20/+23
This was caused by a monster with a negative Y-axis. Fixes #2336
2015-10-08StyleCheck: Check spaces around ==, <=, >=Mattes D1-3/+3
2015-09-28Partial revert of #2446Safwat Halaby1-5/+40
2015-09-25Compile.sh namechange to cuberiteSafwat Halaby1-1/+1
2015-09-25Namechange to CuberiteMattes D1-1/+1
2015-08-22Fixed a position bug in the pathfinderTiger Wang1-44/+14
2015-07-29Silenced and fixed many warning messages across multiple files.Samuel Barney1-13/+13
2015-07-14Support ageable mobsHallucino1-0/+1
Move ageable stuff in Monster directly
2015-06-26Now Horses spawn with correct data values.bibo381-3/+3
The max-value of style is 4, of color is 6. See http://wiki.vg/Entities#Horse Also based on the if, the max value of HorseType is 7. Bugfix #2259
2015-05-28AI - Sane SkeletonSafwatHalaby1-2/+9
2015-05-27AI - Saner LivestockSafwatHalaby1-2/+11
2015-05-23Pathfinder - Bounding boxes and some tweaksSafwatHalaby1-3/+3
2015-05-20Path recalculation improvementsSafwatHalaby1-2/+3
2015-05-19Make -Werror disabling file onlytycho1-4/+4
Ad fix a load of warnings
2015-05-19Manual merge of #2066Alexander Harkness1-1/+1
2015-05-17Pathfinder - approximated paths when original destination unreachableSafwatHalaby1-27/+94
2015-05-10Fixed some warnings and logic errors in Monster.cppTiger Wang1-5/+7
2015-05-09Fixed some Visual Studio warningsTiger Wang1-5/+5
2015-05-09Move chunk position accesses after the chunk validity checksworktycho1-2/+4
2015-05-07Big Magma Cube can now spawnTri1251-1/+1
Following the same method as the Slime, Magma Cube can now spawn with the size of 1, 2 or 4.
2015-05-06AI - Safer WouldBurnAt()wiseoldman951-3/+8
2015-05-06AI - Better shade coverwiseoldman951-1/+9
2015-05-06(duplicate) AI - Livestock escape fixed, water jumping fixedwiseoldman951-9/+69
2015-05-06PF - Fixed mobs not reaching leaning playerwiseoldman951-2/+3
2015-05-05AI - More conservative use of ResetPathFinding, fixed minor swimming / jumping bugwiseoldman951-20/+37
2015-05-04Entity improvementsTiger Wang1-169/+110
•Pathfinder improvements •Fixes #1217 •Fixes #1933 Merge remote-tracking branch 'SafwatHalaby/water2' into fixes
2015-05-03AI - Improved Mob Jumpingwiseoldman951-5/+15
2015-05-03PathFinder - Crash fix, chunks in parameters are now referenceswiseoldman951-2/+2
2015-05-02AI - Better daylight handlingwiseoldman951-9/+15
2015-05-02PathFinding - Chunk querying optimization and improve cPath::IsSolidwiseoldman951-4/+4
2015-05-01A* Pathfinding and better monster AIwiseoldman951-126/+142
2015-04-17Added MobTypeName for Giantmathias-gh1-0/+1
2015-03-20Correct world height validations.Tommy Santerre1-1/+1
Unify the way we test block above the current one (Height - 1 instead of a_RelY + 1). Allow generation of world of flat height = 255
2015-01-16Converted Monster to std::chronoTycho1-11/+11
2015-01-11Initial convertion of a_Dt to std::chronoTycho1-7/+5
also refactored cWorld::m_WorldAge and cWorld::m_TimeOfDay
2014-12-25Fixed basic style.Mattes D1-1/+1
2014-12-20Added RabbitsMasy981-0/+4
2014-12-18Guardian can now spawn if wanted!?Masy981-1/+1
2014-12-18Added Entity GuardianMasy981-0/+4
2014-12-05BasicStyle: Added missing braces to control statements.Mattes D1-5/+22
2014-12-01MobSpawner fixes.Howaner1-0/+1
2014-11-30Removed old StringToMobType() function from Monster.cppHowaner1-10/+0
2014-11-29Many api fixes, add vanilla names to mob type -> string functions and mob spawner fixes.Howaner1-52/+61
2014-11-26Merge remote-tracking branch 'origin-master' into c++11Tiger Wang1-2/+2
2014-11-15Mobs: Fixed crash with terrain too high.Mattes D1-2/+2
2014-10-23En masse NULL -> nullptr replaceTiger Wang1-14/+14
2014-10-20En masse NULL -> nullptr replaceTiger Wang1-14/+14
2014-10-19Migrated random generators to std::randomTiger Wang1-1/+0
2014-10-05Fixed a missed value.madmaxoft1-1/+1
2014-10-05Fixed eMonsterType Lua API mismatch.madmaxoft1-0/+10
2014-09-17Added first test to show the object can be createdTycho1-58/+58
2014-09-13Improved cBlockHandler::DropBlockTiger Wang1-1/+1
2014-09-02Renamed SetWalkSpeed() to SetRelativeWalkSpeed()Howaner1-2/+2
2014-09-02Added CustomName saving.Howaner1-2/+8
2014-09-01Added name tagHowaner1-0/+19
2014-09-01Added CustomName to cMonster.Howaner1-0/+29
2014-08-30Added SetWalkSpeed() to cMonster.Howaner1-0/+4
2014-08-28Fixed mob burning.reiter1-1/+1
Fixes #1298
2014-08-04Refactored case-conversion functions.madmaxoft1-2/+1
StrToLower() returns a modified copy of the string, InPlaceLowercase() modifies the string in-place.
2014-08-04Changed /** to /*Howaner1-3/+5
2014-08-04Fixed warningsHowaner1-3/+3
2014-08-04Attempt to fix knockback and swimming.Howaner1-3/+9
2014-08-01Improved endermen code a littleTiger Wang1-1/+3
2014-07-21Style: Normalized spaces after if, for and while.madmaxoft1-1/+1
2014-07-19Monsters: Made IsUndead overridable by the respective mob classesarchshift1-10/+0
2014-07-19Fixed style: spaces after commas.madmaxoft1-1/+1
2014-07-19Fixed clamping issuesarchshift1-5/+1
2014-07-18Fixed slime-related comments.madmaxoft1-2/+2
2014-07-18Slime sizes are 1, 2 or 4 and not 1, 2 or 3.Howaner1-1/+1
2014-07-18Monster fixesTiger Wang1-26/+1
* Fixes #1203 * Fixes #627
2014-07-17Fixed tabs used for alignment.madmaxoft1-1/+1
2014-07-17Basic style fixes.madmaxoft1-3/+3
2014-07-17Normalized comments.madmaxoft1-12/+12
This was mostly done automatically and then visually inspected for obvious errors. All //-style comments should have a 2-space separation from the code, and 1 space after the comment sign.
2014-07-13Changed BroadcastSoundEffect function to take floating pos.Howaner1-2/+2
2014-07-06Fixed slime handling in cMonster::StringToMobType().madmaxoft1-1/+1
2014-07-04Tailored death messagesTiger Wang1-3/+3
2014-06-28Fix sheep color's, add shear sound.Howaner1-1/+1
2014-06-21More suggestionsTiger Wang1-1/+1
2014-06-19EntityEffects.x -> EntityEffect.x, Object-Oriented effectsarchshift1-45/+0
Changed effect map to take a pointer of the effect as a result.
2014-06-17Entity effects: changed User to Creator, removed pawn pass-by-valuearchshift1-1/+1
2014-06-17Fixed MSVC compilation.madmaxoft1-3/+3
2014-06-17Pawn: renamed HandleEntityEffects to HandleEntityEffectarchshift1-2/+2
Exported entity effect functions for ToLua and documented them in APIDesc.lua
2014-06-17Monster: added IsUndead(), undead-specific entity effectsarchshift1-0/+65
2014-06-05Fixed decision failureTiger Wang1-1/+1
2014-06-04Added checks for no downfall biomesTiger Wang1-1/+1
2014-06-02Small tweak for mobsSTRWarrior1-4/+14
Mobs move a bit smoother and aren't able to move allot when in air.
2014-05-29Very minor code changesTiger Wang1-1/+1
2014-05-13Fixesandrew1-1/+1
2014-05-12Movement Statisticsandrew1-1/+3
2014-05-12Fixed a few more switch warnings.archshift1-0/+2
2014-05-02Fixed MagmaCube spawning.madmaxoft1-0/+4
Fixes #928.
2014-04-26Fixed mobs that don't naturally spawn.archshift1-2/+5
2014-04-26Add entity invulnerableHowaner1-2/+6
2014-04-25Giants!archshift1-6/+11
Changed mfMaxplusone to mfUnhandled for readability, and fixed a default case warning.
2014-04-24Fixed class capitalization for the cave spider.archshift1-1/+1
2014-04-18Compilation fixTiger Wang1-1/+1
2014-04-18Fixed #906Tiger Wang1-1/+2
2014-04-18Fixed #904Tiger Wang1-1/+1
2014-04-17Added new AI rulesTiger Wang1-12/+26
+ Added new AI rules handling cacti and large heights * Fixed cIniFile not recognising comments in cIniFile::ReadFile() * Fixed users.ini not being properly generated * Changed all instances of (int)floor(GetPosXXX()) to POSXXX_TOINT
2014-04-10Fixed GitHuB WebEdit fail.Alexander Harkness1-0/+1
2014-04-10Update Monster.cppAlexander Harkness1-2/+4
2014-03-31Final realisation of suggestionsTiger Wang1-5/+7
2014-03-31Fixed a few Y too high/low assertsTiger Wang1-5/+5
2014-03-24Wither invulnerabilityandrew1-0/+1
2014-03-16Fixed double to float conversions.madmaxoft1-5/+5
2014-03-01g_BlockXXX => cBlockInfo::XXXandrew1-5/+5
2014-02-24Fixed Formatting, added compiler warning suppressing methods, fixed commentsTheJumper1-1/+1
2014-02-23Fixed Formatting, Added DropChances and CanPickUpLoot attributes to MonstersTheJumper1-0/+76
2014-02-23Fixed Formatting, Added DropChances and CanPickUpLoot attributes to MonstersTheJumper1-1/+48
2014-02-23Fixed Formatting, Added DropChances and CanPickUpLoot attributes to MonstersTheJumper1-0/+1
2014-02-23Fixed Formatting, Added DropChance attributes to MonstersTheJumper1-4/+22
2014-02-22Changed formatting, encapsuled armor drop, introduced better static Enchantment IDsTheJumper1-0/+28
2014-02-22Monster.cpp: Fixed Formatting in AddRandomUncommonDropItemTheJumper1-1/+1
2014-02-21Fixed Mob Drops, Add Rare and Uncommon Drops, Looting inflicts DropsTheJumper1-0/+29
2014-02-17Improved formattingtonibm191-2/+2
2014-02-16Now mobs can't escape from fences.tonibm191-2/+2
2014-02-11Fixed #627Tiger Wang1-14/+0
- Attack() is now called from cAggressive instead of cMonster * Monsters can no longer attack through walls * Should fix last remnants of player damage after teleporting (that both STR and bearbin contributed fixes to :P)
2014-02-05Fixed most of the reordering warningsTycho1-4/+4
2014-02-05Fixed a bunch of MSVS warningsTiger Wang1-1/+1
* Possibly also fixed some bugs with pathfinding and TNT, though unlikely
2014-02-04Blank lines and indentation.tonibm191-0/+4
Also removed GetClosestPlayer documentation
2014-02-03Exporded World:FindClosestPlayer, Item:IsEnchantable and Monster:MoveToPosition to Lua APItonibm191-0/+8
2014-02-01Monster's nominal speed was increased.Kirill Kirilenko1-1/+1
2014-01-25Implemented fall damage for mobsTiger Wang1-4/+27
+ Implemented mobile fall damage * Formatting fixes + Defined new Position->Integer macros
2014-01-25Mob bugfixesTiger Wang1-20/+29
* Mobs no longer require constant line-of-sight to a player to remain aggravated * Fixed an ASSERT * Fixed mobs jumping * Fixed Idle state not properly using AI + Added FILE_IO_PREFIX to favicon loading + Implemented #563
2014-01-25Fixed a generator bugTiger Wang1-0/+3
2014-01-24Miscellaneous improvementsTiger Wang1-5/+4
2014-01-24Monsters no longer check for direct line of sightTiger Wang1-10/+2
2014-01-24Large reworking of mob code [SEE DESC]Tiger Wang1-162/+238
+ Implemented better pathfinding - Removed lots of unused variables, functions, etc. * Changed some variable types * Other miscellaneous fixes, and also completes the previous PRs
2014-01-16Removed obsoleted functionsTiger Wang1-1/+1
2013-12-25Preliminary mobile entity savingTiger Wang1-1/+2
* Fixes #252 * Alleviates #380 + Adds mob saving * Fixed some debug !ASSERTs
2013-12-23Some fixes (SEE DESC)tonibm191-0/+6
-Added missing mobs (wither, enderdragon and iron golem) to type to string list. -Wither and iron golem can now spawn
2013-12-22EnderDragons and SnowGolems are able to spawn.STRWarrior1-0/+2
2013-12-20Sorted a few constructors to remove warnings.madmaxoft1-7/+7
2013-12-20Fixed compiler warning when iterating over a fixed array of items (ARRAYCOUNT).madmaxoft1-1/+1
2013-12-14Fixed not getting XP from mobs.STRWarrior1-0/+6
2013-11-24Moved source to srcAlexander Harkness1-0/+0
2013-11-10Bundled fixes [SEE DESC]Tiger Wang1-1/+6
* Fixed compiler warning in Monster.cpp * Future proofed particle effects * Improved pickups, made less jittery
2013-11-10Bundled fixes [SEE DESC]Tiger Wang1-30/+26
* Fixed pickups spawning in an incorrect position from a JukeBox * Pickups make a popping sound in Prtcl1.7 * Arrows make a *what sort of sound does an arrow make anyway‽* when hitting a block, and a popping sound when fired * Mobs again have metadata * Fixed Prtcl1.7 not using valid JSON to kick a client * Minecarts and arrows again have metadata
2013-11-04Skeleton, Ghast and Blaze's projectile code is now in their respective class.STRWarrior1-64/+6
2013-11-02Skeletons, Blazes and Ghasts now shoot their projectile to the target.STRWarrior1-5/+63
2013-10-29Update to allow the light map to remain the same, but allow alteration of sky light values based on time.Samuel Barney1-3/+3
2013-10-24Renamed cMonster::GetSpawnRate() to GetSpawnDelay().madmaxoft1-1/+1
2013-10-22Fixed an assert in cMonstermadmaxoft1-2/+2
2013-10-20Reimplemented cMonster::FamilyFromType() as a simple switch (duh!)madmaxoft1-38/+27
2013-10-20Fixed memory leaks in cMobCensus, moved GetSpawnRate() to cMonster.madmaxoft1-0/+17
2013-10-20Fixed binary search in StringToMobType().madmaxoft1-3/+3
2013-10-20Moved all MobTypesManager functions to cMonster.madmaxoft1-5/+222
This removes some of the memory leaks and is more logical in structure. Also the functions are exported to Lua.
2013-10-20Fixed loading allowed mobs in world.madmaxoft1-3/+7
2013-10-13Eight round of fixesTiger Wang1-1/+1
* Changed IsA() to *long if statement* - Removed deprecated values in Entity.h - to blazes with the plugins! * Renamed villager type enumerations to be LESS SHOUTY and more vt-y + Use vtMax for World.cpp testificate spawning
2013-09-13Added an extra line.tonibm191-0/+1
In first commit it says I removed first line
2013-09-13Fixed mobs attack range being too longtonibm191-2/+1
It was set to 5, I think 2 is better because now mobs can kill you when there is a block (or 2) between you and monster.
2013-09-10Inside cMonster::getMobFamily() : replacing Polymorphism by Map, in order to remove redundancymgueydan1-0/+6
2013-09-07Fixed a missing initialization in cMonster.madmaxoft1-2/+3
This should fix commit ff762a7ece6400eaeb5e21f3fea7cad00786a8d9 's all-mobs burning.
2013-09-06Moved daylight burning directly into cMonster.madmaxoft1-0/+36
2013-09-05Moved daylight burning directly into cMonster.madmaxoft1-0/+36
2013-08-19Moved entities into the Entities subfolder.madmaxoft1-1/+1
2013-07-01Rewritten entity-on-fire management ("forever on fire" bugs)madmaxoft@gmail.com1-4/+7
Fixes FS #297 and part of FS #403. Added sizes to all entities. Moved all damage-related functions from cPawn to cEntity API change: renamed cPawn:TeleportTo() to cEntity:TeleportToCoords() git-svn-id: http://mc-server.googlecode.com/svn/trunk@1635 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-06-25Unified the way mobs are spawned (egg vs natural). Fixed deadlocks in mob moving. Fixed mob destroying code.madmaxoft@gmail.com1-2/+7
Should fix FS #400 and partially fix FS #381 git-svn-id: http://mc-server.googlecode.com/svn/trunk@1626 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-04-22Moved physics to the cEntity class from the derivative classes (cMonster, cPickup). Added physics override to cPlayer to disable physics calculations. Fixed bug with pitch calculations on mobs.keyboard.osh@gmail.com1-121/+5
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1400 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-04-13Rewritten entities so that they are owned by individual chunks and ticked within their chunk's Tick()madmaxoft@gmail.com1-28/+23
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1385 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-04-02Added support for head yaw tracking and packet sending and fixed bug in BroadcastMovementUpdatekeyboard.osh@gmail.com1-0/+1
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1350 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-03-23Added helper functions AddSpeed, AddSpeedX, AddSpeedY, AddSpeedZ, AddPosition, AddPosX, AddPosY, AddPosZ. Made sure that all entites use these helper functions.keyboard.osh@gmail.com1-5/+5
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1299 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-03-22Implemented BroadcastMovementUpdate function. Moved m_Pos,m_Rot,m_Speed to private members and made sure that all classes uses the public functions to access these members.keyboard.osh@gmail.com1-42/+44
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1294 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-03-09Pickups are now being saved into Anvil.madmaxoft@gmail.com1-2/+2
Also changed cEntity rotation datatype to double git-svn-id: http://mc-server.googlecode.com/svn/trunk@1262 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-12-22MTRand reference is now passed as a Tick() parameter so that it isn't created and destroyed over and over again. All entities will handle physics (empty callback for now)madmaxoft@gmail.com1-42/+54
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1096 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-12-22Reduced most mobs' constructors to oneliners by passing parameters to superclassesmadmaxoft@gmail.com1-18/+11
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1095 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-12-21Added sounds to levers and mobsluksor111@gmail.com1-0/+4
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1093 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-12-21Added more constants into eEntityType; made them a compulsory parameter to the constructor, so that all entities have proper type.madmaxoft@gmail.com1-1/+2
Also added a few utility functions to cEntity for distinguishing the types (IsPlayer(), IsPickup() etc.) git-svn-id: http://mc-server.googlecode.com/svn/trunk@1092 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-12-21Reworked the IsA() / GetClass() framework to actually be useful. Added GetParentClass().madmaxoft@gmail.com1-19/+0
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1090 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-12-21Refactored the TakeDamage API to take equipped weapon and armor into consideration (PvP untested)madmaxoft@gmail.com1-9/+12
http://forum.mc-server.org/showthread.php?tid=625 git-svn-id: http://mc-server.googlecode.com/svn/trunk@1087 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-11-01Refactored the world time.madmaxoft@gmail.com1-2/+2
Now it is stored in two values - WorldAge (only incremented, plugins cannot change) and TimeOfDay (plugins can change). Since sub-tick precision is needed in Tick(), we store it both as number of seconds (double) and number of ticks (Int64) is calculated off of that. git-svn-id: http://mc-server.googlecode.com/svn/trunk@1022 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-10-06Removed a few debugging messages from the release builds.madmaxoft@gmail.com1-4/+5
( http://forum.mc-server.org/showthread.php?tid=571 ) git-svn-id: http://mc-server.googlecode.com/svn/trunk@936 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-09-24Source files cleanup: The rest of the files renamed.madmaxoft@gmail.com1-7/+7
git-svn-id: http://mc-server.googlecode.com/svn/trunk@887 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-09-23Source files cleanup: Mobs-related files in a separate subfolder, renamed.madmaxoft@gmail.com1-18/+19
git-svn-id: http://mc-server.googlecode.com/svn/trunk@883 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-08-29Gotten completely rid of all cPackets. The cProtocol125 class now does all the parsing and writing by itself.madmaxoft@gmail.com1-2/+2
git-svn-id: http://mc-server.googlecode.com/svn/trunk@802 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-08-24Monster classes don't use cPackets. Chat messages are sent / broadcast without cPackets. BlockEntities don't use cPackets.madmaxoft@gmail.com1-13/+2
git-svn-id: http://mc-server.googlecode.com/svn/trunk@783 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-08-19Almost all packets' handling is now rewritten not to use cPacket descendants elsewhere than in cClientHandle.madmaxoft@gmail.com1-106/+146
git-svn-id: http://mc-server.googlecode.com/svn/trunk@761 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-06-14Attempt to bring sanity to newlines across systems.cedeel@gmail.com1-560/+560
git-svn-id: http://mc-server.googlecode.com/svn/trunk@606 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-06-06Item-dropping code rewritten and centralized - now there's only one place to modify if we want to split or merge same-item drops: cWorld:SpawnItemPickups(). Also, mined blocks can now drop more items, and they recognize if they're being mined by the correct tool.madmaxoft@gmail.com1-13/+5
git-svn-id: http://mc-server.googlecode.com/svn/trunk@561 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-03-19Fixed player heads always pointing north (new EntityHeadLook packet)madmaxoft@gmail.com1-1/+1
git-svn-id: http://mc-server.googlecode.com/svn/trunk@424 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-03-14Split chunk data into separate arrays; decoupled most sources from cChunk.h dependencymadmaxoft@gmail.com1-1/+0
git-svn-id: http://mc-server.googlecode.com/svn/trunk@411 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-03-12Fixing compilation on Drawin 9 / MacOS Xmadmaxoft@gmail.com1-1/+1
git-svn-id: http://mc-server.googlecode.com/svn/trunk@402 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-03-10Fixed a few obsoleted functionsmadmaxoft@gmail.com1-1/+1
git-svn-id: http://mc-server.googlecode.com/svn/trunk@397 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-02-20Removed some more cChunkPtr usagemadmaxoft@gmail.com1-20/+16
git-svn-id: http://mc-server.googlecode.com/svn/trunk@298 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-02-15No longer using pointers for Vector3(f/d/i) in cEntity's and cTracerfaketruth1-44/+40
git-svn-id: http://mc-server.googlecode.com/svn/trunk@268 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-02-13Rewritten most of the code for multithreading; still not 100%, but getting there. If this commit proves to be too problematic, we can always undo it.madmaxoft@gmail.com1-51/+82
git-svn-id: http://mc-server.googlecode.com/svn/trunk@251 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-02-01Rewritten cAuthenticator to make use of the new cIsThread architecture - now authentication runs in a single separate thread for all clients;madmaxoft@gmail.com1-1/+1
Global player-kicking function (cServer, cRoot); More char * -> AString conversion git-svn-id: http://mc-server.googlecode.com/svn/trunk@221 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-01-31Slight code cleanup, no big changesmadmaxoft@gmail.com1-3/+3
git-svn-id: http://mc-server.googlecode.com/svn/trunk@202 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-01-29VC2008 / VC2010: Enabled precompiled header through Globals.h; the header included in every module in the project. Compilation optimization.madmaxoft@gmail.com1-5/+7
git-svn-id: http://mc-server.googlecode.com/svn/trunk@188 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-12-28- Implemented Drops from Burning animalslapayo94@gmail.com1-68/+7
- added right monster health and attack strength - refactored the Pawn/Monster/Player class a little bit - changed some namings to fit the style git-svn-id: http://mc-server.googlecode.com/svn/trunk@140 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-12-26- improved ClosestPlayerDetection (Really the closest now ;))lapayo94@gmail.com1-29/+45
- renamed function because the old one wasn´t listing - improved some time vars so no move gets dropped when the server laggs for a few seconds git-svn-id: http://mc-server.googlecode.com/svn/trunk@124 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-12-26 - Linux compatible fixes including updated makefilemtilden@gmail.com1-5/+9
- Mersenne Twister still says uint32 but it's now signed for compatibility with random uses needing negative values - Server seed is sent to clients, but needs to be able to be signed long long later on for authentic reasons - Protocol Version is required to match to ensure client compatibility, this should probably have a settings.ini check as well as store the value there git-svn-id: http://mc-server.googlecode.com/svn/trunk@121 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-12-25- Fixed Bug #99 -> Mobs no longer bother you in creative modelapayo94@gmail.com1-76/+35
- refactored many things in the Monster system git-svn-id: http://mc-server.googlecode.com/svn/trunk@112 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-12-22Fixes:lapayo94@gmail.com1-1/+1
- Pickups fall through water now (Server-side they stayed in the water surface) - Suppressed some warnings (int to short etc.) - Water is now passable for cTracer git-svn-id: http://mc-server.googlecode.com/svn/trunk@96 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-12-21- Crafting fixed in 1.0.0lapayo94@gmail.com1-0/+17
- Server compatible with the weapons and equip again. (Some Packets were incompatible) - fixed bucket bugs (not all) - Fixed clients getting crashed by wrong Pickups - fixed nearly all mob drops. (Check wheather they are burning is missing Big Grin) - maybe some other things I can´t recall atm Big Grin git-svn-id: http://mc-server.googlecode.com/svn/trunk@94 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-11-06Patch with diff file created by Sebi (implemented some stuff like lava physics, drops are deleted when in lava, water is now slower, lava gives actual damage etc.). Pistons now work mostly as they should. They do not yet show the motion animation and do not emit sound. They do extend, push, and retract as they should though. Right now the only way to activate a piston is to light redstone wire adjacent to it with a redstone torch.admin@omencraft.com1-9/+9
git-svn-id: http://mc-server.googlecode.com/svn/trunk@67 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-10-31Prepared some parts of the code for multi world support, I created lots of TODO'sfaketruth1-13/+13
git-svn-id: http://mc-server.googlecode.com/svn/trunk@29 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-10-03MCServer c++ source filesfaketruth1-0/+609
git-svn-id: http://mc-server.googlecode.com/svn/trunk@3 0a769ca7-a7f5-676a-18bf-c427514a06d6