summaryrefslogtreecommitdiffstats
path: root/src/Mobs (unfollow)
Commit message (Collapse)AuthorFilesLines
2021-04-12Unify multiprotocol entity animationsTiger Wang5-11/+7
2021-04-12Update entity sizesTiger Wang43-55/+67
2021-04-12Fix sending incorrect date values on world changeTiger Wang3-24/+15
Yak shave: make more things use cTickTime. Fix a couple of incorrect modulo-on-millisecond-value by making them use WorldTickAge.
2021-03-28Unify DoWithBlockEntity (#5168)Tiger Wang2-0/+2
+ DoWith calls now broadcast the block entity and mark the chunk dirty + Add block entity change queue to synchronise BE updates with block updates * Fixed a few incorrect assertions about BE type - Remove manual overloads
2021-03-15Properly deprecate more XYZ parameter'd functions (#5147)Tiger Wang3-17/+17
* Fixes #5144
2021-03-07Some emplace_back replacements (#5149)12xx125-5/+5
* replace push_back with emplace_back when a new object was created in the function call
2021-03-05Adding Boss bar (#5025)12xx124-43/+78
+ Add boss bar Co-authored-by: Tiger Wang <ziwei.tiger@outlook.com>
2021-01-12Clarify cClientHandle, cPlayer ownership semanticsTiger Wang2-16/+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 Wang3-15/+25
* Hopefully fixes #5094
2021-01-02Fix potential destruction crashes (#5095)Tiger Wang6-72/+27
* 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-26Silverfish: correct search cubeTiger Wang1-1/+1
2020-12-21Improve Enderman targetingTiger Wang2-15/+17
* Fix look angle checks * Do LOS trace from eye-height
2020-12-21Monsters: improve targetingTiger Wang8-63/+92
* 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-21Improve Silverfish searchTiger Wang2-33/+71
* Start from the inside out, don't always look at the entire search space by bailing out randomly
2020-12-20Enable LOS checks for Hostile Mobs.the1robert1-1/+1
2020-12-18Horsies: don't always broadcast metadataTiger Wang1-1/+10
2020-11-23Adding new monster types to enum and saving/loading for easier future implementation (#4941)12xx122-34/+109
* 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-11Adding Silverfish Spawning Blocks (#4946)12xx123-1/+63
* added breaking, spawning, animation * checkstyle * added undocumented API symbols * added changes suggested by @peterbell10 * added natural ore like generation * fixed spawning two silverfishes * fixed clang * fixed clang try 2 * updated comment unified offset * final clang fix * added spawning for more silverfishes if one was damaged * fixed spawning on one hit kill * fixed spawning on one hit kill fixed spawning by potion damage * fixed clang * fixed broken build * fixed broken build * I should read the error message properly fixed build now? * added small changes suggested by @peterbell10 Co-authored-by: 12xx12 <12xx12100@gmail.com>
2020-10-09Adding wolf breading and moving breeding functionality to cMonster (#4951)12xx128-232/+337
* 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-09-25Deleted BiomeDef.h and ChunkDef.h from Globals.h (#4885)KingCol131-0/+2
* Removed BiomeDef.h * Removed ChunkDef.h from Globals.h * Added to CONTRIBUTORS. * Re-added empty last line to Globals.h * Included stddef and StringUtils in BiomeDef.h * Fixed build tools compiling. It compiles, but at what cost? * Added include to src/Generating/Trees.h * Include added in ChunkGeneratorThread.h * Moved rearranged includes in LineBlockTracer.cpp * Re-arrange headers in ChunkInterface.cpp * Included ChunkDef.h in Path.h * Included ChunkDef.h in NBTChunkSerializer.h * Rearranged included and added required includes to headers. * Removed unnecessary included in StringUtils.h.
2020-09-17Fixed snow golems and added documentation to damage type and added damage type for damage from environment to mobs (#4877)12xx122-3/+3
* made snow golems not crashing the server anymore * changed damage type to environment * updated damage in API dopcumentation and changed enderman damage type * removed incidental d in the code Co-authored-by: 12xx12 <12xx12100@gmail.com>
2020-09-05Add more statistic tracking (#4837)12xx122-0/+16
+ Added possible 1.8 stats + Added stat tracking for 1.8.2 + Added stat tracking for 1.9 + Added the breed cow achievement Co-authored-by: 12xx12 <12xx12100@gmail.com>
2020-08-19Add Statistics and Achievements for newer Network standards12xx121-1/+1
2020-08-01Replaced cpp14::make_unique<> with std::make_unique<>.Mattes D5-37/+37
2020-07-19Precompile unordered_map/setTiger Wang1-1/+0
+ Add inclusions to Globals.h * Sort Globals.h - Remove sys/stat.h from Globals.h
2020-07-06Reduced packet spam when entities idleTiger Wang1-1/+9
* Try not to send look packets when nothing's changed.
2020-05-16Upgrade to C++17 [CMake] (#4717)Tiger Wang1-9/+5
* Make our CMake slightly less insane
2020-05-15Enable some more clang-tidy linter checks (#4738)peterbell106-22/+11
* 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-09Update submodules (#4727)peterbell101-1/+1
Closes #4708 This updates jsoncpp, mbedtls, TCLAP and SQLiteCpp to their latest stable release. A few additional changes were needed: * jsoncpp deprecated Reader, FastWriter and StyledWriter which I've replaced with some helper functions in JsonUtils.cpp * SQLiteCpp changed how it builds with external sqlite libraries, now expecting them to be installed. The simplest path was to remove sqlite from cuberite's submodule and just use SQLiteCpp's internal version.
2020-04-16Using Super.Mattes D73-199/+261
2020-04-16Prevent crash when breedingMat1-2/+0
2020-04-10Fix compilation, for real this time.Alexander Harkness1-1/+1
I should go to sleep now...
2020-04-10Oops, remember to save your files!Alexander Harkness1-36/+1
2020-04-10Add Zombie VillagersBond-00910-28/+207
2020-04-09Wolves and mooshrooms are passive mobsMat1-2/+2
2020-04-04Implement wither skeletons (#4563)Mat8-114/+191
2020-04-03Pulled the BlockID and BlockInfo headers from Globals.h. (#4591)Mattes D5-37/+36
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-02Replace buckets to the selected hotbar slot, rather than the first available. (#4580)Alexander Harkness2-6/+6
* Replace buckets to the selected hotbar slot, rather than the first available. Replicates vanilla behaviour, as well as being more logical. * Refactor cInventory::AddItem. Behaviour is now documented * Add new cInventory::ReplaceOneEquippedItem and ::SetEquippedItem methods * Return empty potion to the same slot after drinking * Replace buckets correctly in other situations, not simply water and lava Uses the new ReplaceOneEquippedItem method * Correct collecting water from source block with bottle * Add cPlayer::ReplaceOneEquippedItemTossRest method * Handle stacked filled buckets (in theory) Use new cPlayer::ReplaceOneEquippedItemTossRest method
2020-04-02Tweak attack rangesmathiascode1-5/+5
2020-03-27Fix typo in block break particle coordinate (#4555)Mat1-1/+1
* Use Vector3d for block break particle * Fix typo
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)Mat5-25/+140
2020-03-22Add ambient mob sounds (#4521)Mat39-41/+62
2020-03-22Don't remove items twice (#4524)Mat2-3/+3
* Don't remove items twice
2020-03-22Allow enderman to attack during day (#4522)Mat1-36/+1
2020-03-19Improvements to knockback (#4504)Mat1-1/+3
* Improvements to knockback * SetSpeed for explosions * Improve code consistency
2020-03-05Stabilise MoveToWorld (#4004)Mat2-5/+21
* 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
2019-10-16Refactored block-to-pickup conversion. (#4417)Mattes D1-5/+1
2019-09-29Refactored more of Entities and BlockEntities to use Vector3. (#4403)Mattes D3-3/+3
2019-09-27Fixed MSVC warnings (#4400)Mattes D1-1/+1
2018-09-24Add BurnsInDaylight to Lua API and Monsters.ini (#4295)Muhammad Kaisar Arkhan3-4/+2
* Monster.h: Export SetBurnsInDaylight This commit also adds BurnsInDaylight to check if the Monster burns in daylight or not. Closes https://github.com/cuberite/cuberite/issues/4294 * MonsterConfig.cpp: Add BurnsInDaylight Closes https://github.com/cuberite/cuberite/issues/4294
2018-08-29Force all headers other than "Globals.h" to be included with relative paths (#4269)peterbell1011-14/+11
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 guo4-23/+23
* 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-30Ocelots no longer multiply exponentially (#4272)peterbell102-15/+9
Along with a call to `destroyentities`, this fixes #4271 I'm guessing the intention of this code was to modify the normal spawning of ocelots. However, `cEntity::SpawnOn` is actually called to send the entity to an individual client. That means this code was run for every single player, every time they were sent a chunk with ocelots in it. Thus, the ocelots population would grow exponentially as players log in and move around.
2018-07-27cWorld: Manually bind deprecated broadcast functions (#4265)peterbell102-5/+5
Ref: https://github.com/cuberite/cuberite/pull/4264#discussion_r204769193
2018-07-26CheckBasicStyle: Check number of empty lines between functions (#4267)peterbell1010-11/+18
Add check for number of empty lines between functions and fix the corresponding failures
2018-07-24Broadcast refactor (#4264)peterbell103-8/+5
* Move Broadcast functions from cChunkMap to cBroadcaster - Remove cBroadcastInterface in favour of cBroadcaster. - cChunk: Remove broadcast functions. * resurect broadcast interface * Absorb cBroadcaster into cWorld. Removes the need for forwarding the function calls. * Improve const-correctness * Use Int8 instead of char + Comment `ForClients` functions * Improve comments * Broadcaster: Rename ForClients functions
2018-05-06Use clang-tidy to check more code conventions (#4214)Bond-0092-6/+6
* Create clang-tidy.sh * Add clang-tidy to circle.yml * Fixed some naming violations Fixes #4164
2018-05-02Prefer static_cast to reinterpret_cast (#4223)peterbell101-1/+1
* Change reinterpret_cast -> static_cast wherever possible * Remove more unnecessary `const_cast`s. reinterpret_casts should be avoided for the same reason as c-style casts - they don't do any type-checking. reinterpret_cast was mainly being used for down-casting in inheritance hierarchies but static_cast works just as well while also making sure that there is actually an inheritance relationship there.
2018-02-05Deal with covered switches consistently (#4161)peterbell101-7/+1
* Fixes a number of "<function>: not all control paths return a value" warnings on MSVC. * Introduces the UNREACHABLE global macro and uses it instead of conditionally compiled switch defaults. * Move cNBTParseErrorCategory from FastNBT.h into FastNBT.cpp to prevent bad calls to message()
2018-02-04Ocelots don't take fall damage (#4171)Bond-0094-6/+19
2018-01-17New movement system for leashed entities (#4147)peterbell102-35/+47
* 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 Harkness3-8/+5
* 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-05Item durability loss now depends on the item used. (#4123)Alexander Harkness3-3/+0
Armour durability also no longer changes when it is used to break blocks or attack mobs. Fixes #4119
2018-01-03Add the fmt library (#4065)peterbell101-0/+1
* Replaces AppendVPrintf with fmt::sprintf * fmt::ArgList now used as a type safe alternative to varargs. * Removed SIZE_T_FMT compatibility macros. fmt::sprintf is fully portable and supports %zu. * Adds FLOG functions to log with fmt's native formatting style.
2017-12-26improve rain simulation (#4017)Alexander Harkness2-34/+4
* Uses vanilla logic to decide which blocks rain falls through. * Rain falls infinitely above the world, and stops at y=0. * Entities will now be extinguished if they are under rain-blocking blocks, and fire will now be extinguished by rain similarly. * Create IsWeatherWetAtXYZ to identify wetness at a particular location. * Use new code for enderman rain detection. * Fixes issue #916 * Disable warnings for global constructors in the fire simulator.
2017-10-21Implement horse inventory (#4053)peterbell102-25/+137
* Implement horse inventory * Fix sign conversions * Add API doc for ItemCategory::IsHorseArmor * Improve HandleOpenHorseInventory comment and style fixes.
2017-10-21Fixed some small passive mob issues (#4057)Bond-0099-10/+44
* Chickens can be bred with seeds, beetroot seeds, melon seeds, or pumpkin seeds Ref: https://minecraft.gamepedia.com/Chicken#Baby_chicken * Baby passive mobs don't drop items * Fixed the size of some mobs
2017-09-19Changed BroadcastSoundEffect, SendSoundEffect, and CastThunderbolt parameters to vectors (#3959)Lane Kolbly4-7/+7
* 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)peterbell102-10/+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-11Replace ItemCallbacks with lambdas (#3993)peterbell106-131/+75
2017-09-02Revert "Replace ItemCallbacks with lambdas (#3948)"LogicParrot6-75/+131
This reverts commit 496c337cdfa593654018c171f6a74c28272265b5.
2017-09-01SetSwimState now takes into account head heightAlexander Harkness1-1/+0
This affects m_IsSubmerged and IsSubmerged() for entities of all types. Also prevent squids from suffocating in water.
2017-09-01Remove double-checking below world for burningAlexander Harkness1-5/+0
2017-09-01Replace ItemCallbacks with lambdas (#3948)peterbell106-131/+75
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-25Gives all entities the default airlevel on creation (#3942)Bond-0092-15/+28
* Guardians don't take damage on land * Squids suffocate on land
2017-08-25Add cUUID class (#3871)peterbell103-11/+13
2017-08-24Use ref instead of pointerLukas Pioch2-7/+7
2017-08-24Minor changes (#3909)mathiascode1-1/+1
2017-08-23Removed outdated pathfinder comment (#3955)Safwat Halaby1-2/+1
2017-08-21Fully implemented leashes (#3798)Pablo Beltrán5-14/+239
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-17Sitting cats block enderchests from opening (#3906)Bond-0092-0/+31
2017-08-13Replaced includes with forward declarationsLukas Pioch2-2/+2
2017-08-07Changed entity ownership model to use smart pointersTiger Wang8-84/+63
2017-08-06Removed unneeded includes (#3902)Lukas Pioch2-3/+0
2017-08-03Remove double includes part 2 (#3890)peterbell106-7/+0
2017-08-03Removed unused forward declarations (#3888)Lukas Pioch1-1/+1
2017-07-30Consolidated food effects into EatItem, added all fish type FoodInfos. (#3875)Lane Kolbly1-4/+7
* Consolidated food effects into EatItem, added all fish types. * Changed type of NumFishInfos to satisfy clang. * Removed unused call for a_Item in EatItem
2017-07-22Creepers explode when burned by flint and steel (#3865)Bond-0091-1/+1
Fixed an issue where creepers didn't explode when they were burned with flint and steel
2017-07-12Added basic ocelot behavior (#3829)Bond-0094-5/+252
2017-07-10Sound effect horse rejects player when tamingPablo Beltrán1-0/+1
2017-07-02Fix horse taming (#3820)Bond-0091-14/+26
* Horses rear when untamed and right-clicked with an item
2017-07-02When right-clicking on a passive mob with 'his' spawn egg spawn a babyBond_0091-2/+20
2017-06-30Endermen take damage from rainBond-0092-3/+29
2017-06-30Spider should attack only when the light level is lower than 11 (#3815)Bond-0091-1/+4
2017-06-13FastRandom rewrite (#3754)peterbell1013-62/+60
2017-05-28Fixed tracer usage in Entity physics handling. (#3720)Mattes D2-10/+11
2017-05-22Spawn eggs works againLukas Pioch2-31/+63
2017-05-21Clang 5.0 fixesLukas Pioch3-4/+4
- Added override keyword - Removed inherited member variables
2017-05-21Don't destroy monster when last target type is a player (#3721)Pablo Beltrán2-0/+7
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-11Tracer replacement (#3704)Mattes D2-19/+18
* Replaced cTracer usage with cLineBlockTracer. * Exported new cLineBlockTracer utility functions to Lua API.
2017-02-25Fixed cactus detection and zombie pigman sword (#3584)Bond-0092-0/+12
Fixes for issues #902 and #2917
2017-02-15Updated sounds and effect IDs (#3422)mathiascode31-47/+41
2017-02-14Added some blocks and items (#3503)mathiascode1-0/+1
2017-02-05Fixed bindings for cBlockArea:Read and Write. (#3568)Mattes D1-1/+1
The original bindings accepted nil as the World param, causing a crash.
2016-11-22cWolf: Fixed targetting a nullptr.Mattes D1-3/+3
2016-10-12Spectators added (#2852)bibo389-25/+38
2016-09-12APIDump: Reformatted the docs to include type information.Mattes D1-1/+1
Also fixed a bit of documentation in the CPP source.
2016-09-03Entities now bail out of ticks if destroyed (#3363)LogicParrot14-0/+71
2016-08-24Fixed type-casting-related warnings.Mattes D2-2/+1
2016-08-19Fixed implicit rounding warnings.Mattes D1-1/+1
2016-07-18CMake: Remove needless minimum version specifications.Mattes D1-2/+0
2016-05-141.9 / 1.9.2 / 1.9.3 / 1.9.4 protocol support (#3135)Pokechu221-0/+1
* Semistable update to 15w31a I'm going through snapshots in a sequential order since it should make things easier, and since protocol version history is written. * Update to 15w34b protocol Also, fix an issue with the Entity Equipment packet from the past version. Clients are able to connect and do stuff! * Partially update to 15w35e Chunk data doesn't work, but the client joins. I'm waiting to do chunk data because chunk data has an incomplete format until 15w36d. * Add '/blk' debug command This command lets one see what block they are looking at, and makes figuring out what's supposed to be where in a highly broken chunk possible. * Fix CRLF normalization in CheckBasicStyle.lua Normally, this doesn't cause an issue, but when running from cygwin, it detects the CR as whitespace and creates thousands of violations for every single line. Lua, when run on windows, will normalize automatically, but when run via cygwin, it won't. The bug was simply that gsub was returning a replaced version, but not changing the parameter, so the replaced version was ignored. * Update to 15w40b This includes chunk serialization. Fully functional chunk serialization for 1.9. I'm not completely happy with the chunk serialization as-is (correct use of palettes would be great), but cuberite also doesn't skip sending empty chunks so this performance optimization should probably come later. The creation of a full buffer is suboptimal, but it's the easiest way to implement this code. * Write long-by-long rather than creating a buffer This is a bit faster and should be equivalent. However, the code still doesn't look too good. * Update to 15w41a protocol This includes the new set passengers packet, which works off of the ridden entity, not the rider. That means, among other things, that information about the previously ridden vehicle is needed when detaching. So a new method with that info was added. * Update to 15w45a * 15w51b protocol * Update to 1.9.0 protocol Closes #3067. There are still a few things that need to be worked out (picking up items, effects, particles, and most importantly inventory), but in general this should work. I'll make a few more changes tomorrow to get the rest of the protocol set up, along with 1.9.1/1.9.2 (which did make a few changes). Chunks, however, _are_ working, along with most other parts of the game (placing/breaking blocks). * Fix item pickup packet not working That was a silly mistake, but at least it was an easy one. * 1.9.2 protocol support * Fix version info found in server list ping Thus, the client reports that it can connect rather than saying that the server is out of date. This required creating separate classes for 1.9.1 and 1.9.2, unfortunately. * Fix build errors generated by clang These didn't happen in MSVC. * Add protocol19x.cpp and protocol19x.h to CMakeLists * Ignore warnings in protocol19x that are ignored in protocol18x * Document BLOCK_FACE and DIG_STATUS constants * Fix BLOCK_FACE links and add separate section for DIG_STATUS * Fix bat animation and object spawning The causes of both of these are explained in #3135, but the gist is that both were typos. * Implement Use Item packet This means that buckets, bows, fishing rods, and several other similar items now work when not looking at a block. * Handle DIG_STATUS_SWAP_ITEM_IN_HAND * Add support for spawn eggs and potions The items are transformed from the 1.9 version to the 1.8 version when reading and transformed back when sending. * Remove spammy potion debug logging * Fix wolf collar color metadata The wrong type was being used, causing several clientside issues (including the screen going black). * Fix 1.9 chunk sending in the nether The nether and the end don't send skylight. * Fix clang build errors * Fix water bottles becoming mundane potions This happened because the can become splash potion bit got set incorrectly. Water bottles and mundane potions are only differentiated by the fact that water bottles have a metadata of 0, so setting that bit made it a mundane potion. Also add missing break statements to the read item NBT switch, which would otherwise break items with custom names and also cause incorrect "Unimplemented NBT data when parsing!" logging. * Copy Protocol18x as Protocol19x Aditionally, method and class names have been swapped to clean up other diffs. This commit is only added to make the following diffs more readable; it doesn't make any other changes (beyond class names). * Make thrown potions use the correct appearence This was caused by potions now using metadata. * Add missing api doc for cSplashPotionEntity::GetItem * Fix compile error in SplashPotionEntity.cpp * Fix fix of cSplashPotionEntity API doc * Temporarilly disable fall damage particles These were causing issues in 1.9 due to the changed effect ID. * Properly send a kick packet when connecting with an invalid version This means that the client no longer waits on the server screen with no indication whatsoever. However, right now the server list ping isn't implemented for unknown versions, so it'll only load "Old" on the ping. I also added a GetVarIntSize method to cByteBuffer. This helps clean up part of the code here (and I think it could clean up other parts), but it may make sense for it to be moved elsewhere (or declared in a different way). * Handle server list pings from unrecognized versions This isn't the cleanest way of writing it (it feels odd to use ProtocolRecognizer to send packets, and the addition of m_InPingForUnrecognizedVersion feels like the wrong technique), but it works and I can't think of a better way (apart from creating a full separate protocol class to handle only the ping... which would be worse). * Use cPacketizer for the disconnect packet This also should fix clang build errors. * Add 1.9.3 / 1.9.4 support * Fix incorrect indentation in APIDesc
2016-04-23Out of world blocks are now always considered air blocksLogicParrot1-1/+1
2016-04-18Fix issues below y = 0LogicParrot2-5/+15
2016-04-06Manual mob burn codeLogicParrot1-7/+34
2016-03-28Fix passive mob destruction crashesLogicParrot1-0/+1
2016-03-01fixed horse bugtonibm191-1/+4
horse could be "controlled" without a saddle or being tamed
2016-02-19Stop Wolf from following player when he is flyingTyler Encke1-4/+12
Check to make sure player is not flying before allowing wolf to move to player. Fixed isFlying to IsFlying
2016-02-19Proper entity destruction in non-ticking chunksLogicParrot3-7/+17
2016-02-05Bulk clearing of whitespaceLogicParrot27-41/+41
2016-02-05Correct typo in documentation.Alexander Harkness1-1/+1
2016-02-04Prevent interspecies breedingLogicParrot1-11/+25
2016-02-04Pathfinder now properly treats nonsolids above fenceLogicParrot1-11/+15
2016-02-03cMonster::m_Target safety across worldsLogicParrot11-64/+145
2016-01-31Updated old forum linksMathias1-1/+1
2016-01-22Improved tamed wolf pack cooperation and projectile reactionsLogicParrot2-36/+109
2016-01-21Spiders now friendly at daylight, new cChunk functionsLogicParrot10-33/+38
2016-01-17Use IsBlockWater in cPathLogicParrot1-1/+1
2016-01-17No second spawn broadcast necessaryWinfieldSteve3-3/+0
2016-01-16Fix crash when tamed wolf is hit by arrowsLogicParrot2-2/+6
2016-01-12Fixed creeper calling TargetIsInRange with null m_TargetLogicParrot1-2/+2
2016-01-12Fix mob attack intervalLogicParrot7-24/+28
2016-01-12Friendly wolf attack safety checksLogicParrot1-1/+14
2016-01-12Tamed wolf assists owner (attack / defence)LogicParrot3-32/+100
2016-01-01Renamed leftover strings to Cuberite / Server, as needed.Mattes D1-1/+1
Also upgraded the user setting file for MSVC to 2013.
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-27Deleted cPath::BlockTypeIsFenceLogicParrot2-30/+2
2015-12-25Update fences and gates listSafwat Halaby1-2/+9
Update fences and gates list
2015-12-24PF - "Special blocks" handlingSafwat Halaby10-215/+396
2015-12-23Chicken egg code early bailoutSafwat Halaby1-19/+21
2015-12-23Baby chickens don't lay eggsGargaj1-16/+19
2015-12-21PF - Improved mob jumpingSafwat Halaby3-81/+151
2015-12-21Revert "Changed cPath to have a reset method".Safwat Halaby4-103/+38
2015-12-16Changed cPath to have a reset method.tycho4-38/+103
Also reverts "Changed raw cPath to an unique_ptr, fixes memory leak" This reverts commit 1515d37684b469f212bb9858cca6128d74e591b6.
2015-12-15allow horse control (still quite buggy)Gargaj2-1/+24
2015-12-15Delete copy and move constructors from cPathtycho1-0/+7
cPath is not safe to copy or move due to pointers into the std::map m_Map.
2015-12-15Changed raw cPath to an unique_ptr, fixes memory leakLukas Pioch2-9/+9
2015-12-13blockheight mechanismGargaj2-18/+4
2015-12-13snow golems are "neutral"Gargaj1-5/+5
2015-12-13sheep color inheritanceGargaj4-1/+64
2015-12-13Remove stray "return"Safwat Halaby1-1/+0
2015-12-13Fixed mobs attacking Creative Mode playersSafwat Halaby2-11/+15
2015-12-13Decoupled cMonster and path recalc logic, re-implemented recalcSafwat Halaby8-335/+486
2015-12-13Stop pathfinding over cobble wallsGargaj1-0/+1
Also 1.5 blocks high, shouldn't pathfind over it.
2015-12-08stop creepers from exploding even if they just diedGargaj1-1/+1
2015-12-03fix wolf collarsGargaj1-2/+2
I don't know why this had an inversion but it consistently made the wrong collar color (i.e. yellow dye made the collar blue)
2015-11-30Added documentation for breeding codeSafwat Halaby2-5/+25
2015-11-29implement breedingGargaj9-14/+186
2015-11-24Add enum for Sound and Particle EffectsDave Tucker3-6/+9
Fixes #2603 Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2015-11-23change from single followable item to multipleGargaj8-12/+33
2015-11-16changed mob age from char to intJulian Laubstein1-3/+3
2015-11-13Blocks outside the world are never solidworktycho1-0/+4
Fixes #2539
2015-11-09Add comment to Attack() return valuesGargaj1-0/+4
2015-11-08neutral mobs shouldn't chase the player unless aggro'dGargaj3-1/+8
code style neutral mobs shouldn't chase the player unless aggro'd neutral mobs shouldn't chase the player unless aggro'd Merge branch 'chilloutyo' of github.com:Gargaj/cuberite into chilloutyo Conflicts: src/Mobs/PassiveAggressiveMonster.h code style Merge branch 'chilloutyo' of github.com:Gargaj/cuberite into chilloutyo
2015-11-08Fix chicken flyingGargaj1-0/+2
The gravity might not be correct but my rough timing (with a stopwatch) seems to be close. Merge branch 'master' into patch-1 Merge branch 'master' into patch-1 Merge branch 'master' into patch-1
2015-11-08fix cavespider poisoning even if attack is in cooldownGargaj16-27/+48
make attack function more responsive fix cavespider poisoning even if attack is in cooldown make attack function more responsive Merge branch 'cavespider-attack' of github.com:Gargaj/cuberite into cavespider-attack code style fix cavespider poisoning even if attack is in cooldown make attack function more responsive fix cavespider poisoning even if attack is in cooldown make attack function more responsive Merge branch 'cavespider-attack' of github.com:Gargaj/cuberite into cavespider-attack code style Merge branch 'cavespider-attack' of github.com:Gargaj/cuberite into cavespider-attack Merge branch 'master' into cavespider-attack Merge branch 'master' into cavespider-attack fix cavespider poisoning even if attack is in cooldown make attack function more responsive fix cavespider poisoning even if attack is in cooldown make attack function more responsive Merge branch 'cavespider-attack' of github.com:Gargaj/cuberite into cavespider-attack code style fix cavespider poisoning even if attack is in cooldown make attack function more responsive fix cavespider poisoning even if attack is in cooldown make attack function more responsive Merge branch 'cavespider-attack' of github.com:Gargaj/cuberite into cavespider-attack code style Merge branch 'cavespider-attack' of github.com:Gargaj/cuberite into cavespider-attack Merge branch 'master' into cavespider-attack Merge branch 'master' into cavespider-attack Merge branch 'cavespider-attack' of github.com:Gargaj/cuberite into cavespider-attack
2015-11-07Only send creeper updates when there is a changeGargaj1-3/+6
Otherwise this keeps spamming the metadata packet for all the creepers on the server.
2015-11-07don't attack if deadGargaj1-1/+1
2015-11-06chickens don't take fall damageGargaj2-0/+6
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 Halaby2-7/+53
2015-09-27Disabled squids and Guardians pathfinding, #2460Safwat Halaby2-2/+2
2015-09-25Compile.sh namechange to cuberiteSafwat Halaby2-2/+2
2015-09-25Namechange to CuberiteMattes D2-2/+2
2015-08-22Removed unused functionTiger Wang2-23/+0
* Fixes #2444
2015-08-22Fixed a position bug in the pathfinderTiger Wang4-101/+25
2015-07-31Unified the doxy-comment format.Mattes D8-27/+44
2015-07-29Silenced and fixed many warning messages across multiple files.Samuel Barney4-28/+26
2015-07-17 Added Rabbit Metadata values.bibo382-2/+38
Added the Rabbit Types and the MoreCarrotTicks value. Types are selected randomly on creation. Fixes #1867
2015-07-16Spawn baby mobshallucino4-3/+5
2015-07-16Improved spider AIscribblemaniac2-1/+43
Fixes #2335
2015-07-14Improved mapsTiger Wang1-1/+1
2015-07-14Support ageable mobsHallucino2-1/+8
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-06-07Vector hasher is now a separate classTiger Wang1-1/+1
2015-06-06Changed appropriate containers to unordered_mapTiger Wang1-16/+1
Thanks to @worktycho for guidance! * Potential speed improvements
2015-05-30Fixed wrong indent.Alexander Harkness1-1/+1
2015-05-30PF - Handle all fencetypesSafwatHalaby1-1/+7
2015-05-30PF - Fixed diagonal cuttingSafwatHalaby1-5/+12
2015-05-30Disabled squid and Guardian PathfindingSafwatHalaby2-2/+4
2015-05-30Fixed creeper explosionsSafwatHalaby1-1/+1
2015-05-28AI - Sane SkeletonSafwatHalaby4-9/+21
2015-05-28Fix commentstycho4-19/+19
2015-05-28AI - Tweaked wolf speed and teleport thresholdSafwatHalaby1-1/+2
2015-05-27AI - Saner LivestockSafwatHalaby1-2/+11
2015-05-24Fix warnings in cPathtycho1-9/+9
2015-05-24Made -Weverything an error.tycho12-27/+29
2015-05-23Pathfinder - Bounding boxes and some tweaksSafwatHalaby3-26/+114
2015-05-23Fixed missing overrides and added a ignore flag for reserved macro for clang version 3.6 and higher.Lukas Pioch2-3/+3
2015-05-23Fixed creeper not exploding when 1 block higher than playerSafwatHalaby1-2/+4
2015-05-20Path recalculation improvementsSafwatHalaby3-10/+17
2015-05-19newlinesSafwatHalaby1-0/+9
2015-05-19Make -Werror disabling file onlytycho24-30/+34
Ad fix a load of warnings
2015-05-19Removed UniquePTR from PathFinderSafwatHalaby2-19/+17
2015-05-19Manual merge of #2066Alexander Harkness1-1/+1
2015-05-17Pathfinder - approximated paths when original destination unreachableSafwatHalaby5-55/+193
2015-05-16PathFinder uses UniquePtr for cell map.SafwatHalaby2-8/+3
2015-05-15Revert "PathFinder - smart pointers"worktycho2-3/+8
2015-05-15uniquePTRSafwatHalaby2-8/+3
2015-05-10Fixed some warnings and logic errors in Monster.cppTiger Wang1-5/+7
2015-05-10PF - Less calcs per tickwiseoldman951-1/+1
2015-05-09More style checking.Mattes D2-2/+2
Spaces around some operators are checked.
2015-05-09GetSizeName of cSlime and cMagmaCube is now staticTristan4-4/+4
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-08Spaces in cPathwiseoldman952-0/+2
2015-05-07Big Magma Cube can now spawnTri1252-2/+2
Following the same method as the Slime, Magma Cube can now spawn with the size of 1, 2 or 4.
2015-05-07Fixed the sound issue with the MagmaCubeTri1252-2/+16
-Name of the sound is correctly capitalized -Get the appropriate sound depending on its size
2015-05-07Added support for additional data in the ParticleEffect Packettycho1-2/+3
Also started refactoring how broadcasts are handled
2015-05-06AI - Safer WouldBurnAt()wiseoldman951-3/+8
2015-05-06AI - Better shade coverwiseoldman951-1/+9
2015-05-06Actually empty the open listworktycho1-1/+1
2015-05-06(duplicate) AI - Livestock escape fixed, water jumping fixedwiseoldman953-34/+79
2015-05-06PF - Swimming bugfixwiseoldman951-3/+3
2015-05-06PF - Fixed mobs not reaching leaning playerwiseoldman952-3/+10
2015-05-05AI - More conservative use of ResetPathFinding, fixed minor swimming / jumping bugwiseoldman952-26/+47
2015-05-04Entity improvementsTiger Wang5-262/+222
•Pathfinder improvements •Fixes #1217 •Fixes #1933 Merge remote-tracking branch 'SafwatHalaby/water2' into fixes
2015-05-03PathFinder - Fixed nullptr chunk bugwiseoldman951-1/+1
2015-05-03AI - Improved Mob Jumpingwiseoldman952-5/+16
2015-05-03PathFinder - Crash fix, chunks in parameters are now referenceswiseoldman953-10/+8
2015-05-02AI - Better daylight handlingwiseoldman956-63/+22
2015-05-02PathFinding - Chunk querying optimization and improve cPath::IsSolidwiseoldman954-66/+38
2015-05-01A* Pathfinding and better monster AIwiseoldman9511-156/+716
2015-04-17Update IronGolem.cppmathias-gh1-1/+1
2015-04-17Added MobTypeName for Giantmathias-gh1-0/+1
2015-03-31Changed air drag units to 'interpolated ticks' per secondDevToaster2-1/+3
2015-03-31Modified physics for more vanilla-like behaviorDevToaster1-0/+2
2015-03-21Creeper: Fixed skeleton check.Mattes D1-11/+10
2015-03-20Correct world height validations.Tommy Santerre2-2/+2
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-03-13Monsters will now attack. Additional checks have been added when generating spawn.tumultenrx4-7/+5
Monsters will now attack. Additional checks have been added when generating spawn.
2015-01-16Converted Monster to std::chronoTycho4-18/+18
2015-01-11Initial convertion of a_Dt to std::chronoTycho40-58/+56
also refactored cWorld::m_WorldAge and cWorld::m_TimeOfDay
2014-12-25Fixed basic style.Mattes D2-2/+2
2014-12-20Fixed damn empty line with no useMasy982-5/+1
2014-12-20Added Rabbit.h and Rabbit.cpp to the CMakeListMasy981-0/+2
2014-12-20Fixed Rabbit sizeMasy981-1/+1
2014-12-20Added RabbitsMasy985-0/+68
2014-12-19Fixed Guardians size and healthMasy981-1/+1
2014-12-18Guardian can now spawn if wanted!?Masy981-1/+1
2014-12-18Added Entity GuardianMasy987-1/+105
2014-12-17derpHowaner1-1/+1
2014-12-17Added comment.Howaner1-1/+1
2014-12-17Fixed eMonsterType lua bugs.Howaner1-0/+1
2014-12-05BasicStyle: Added missing braces to control statements.Mattes D2-5/+24
2014-12-05Fixed reported parentheses around comparisons.Mattes D4-4/+4
2014-12-03clearing CheckBasicStyle.lua messagesp-mcgowan1-4/+4
2014-12-01MobSpawner fixes.Howaner2-1/+2
2014-11-30Removed old StringToMobType() function from Monster.cppHowaner1-10/+0
2014-11-29Mark StringToMobType() as deprecated. Use cMonster:StringToMobType() insteadHowaner1-9/+1
2014-11-29Many api fixes, add vanilla names to mob type -> string functions and mob spawner fixes.Howaner2-56/+68
2014-11-26Merge remote-tracking branch 'origin-master' into c++11Tiger Wang2-5/+7
2014-11-23formatting - newline at EOF inserted: Pig.cppp-mcgowan1-1/+5
2014-11-23pigs turn into pigmen on lightningp-mcgowan2-0/+19
2014-11-22formatter errorp-mcgowan1-3/+3
2014-11-22villagers turn into witches on lightningp-mcgowan1-2/+4
2014-11-22villagers turn into witches when struck by lightningp-mcgowan1-0/+5
2014-11-15Mobs: Fixed crash with terrain too high.Mattes D2-5/+7
2014-10-23En masse NULL -> nullptr replaceTiger Wang48-86/+86
2014-10-20En masse NULL -> nullptr replaceTiger Wang48-86/+86
2014-10-19Migrated random generators to std::randomTiger Wang3-2/+1
2014-10-12convert old style casts to fix warningsSteven Riehl1-32/+28
2014-10-05Fixed a missed value.madmaxoft1-1/+1
2014-10-05Removed obsolete cMonster::eType.madmaxoft1-3/+0
Has been replaced with global eMonsterType.
2014-10-05Fixed eMonsterType Lua API mismatch.madmaxoft3-0/+24
2014-09-29DerpJonathan Frederick1-1/+1
2014-09-29Fix commentsJonathan Frederick1-2/+2
2014-09-28Make endermen take damage in waterJonathan Frederick2-0/+21
2014-09-27Fixed minor style issues.madmaxoft1-1/+1
2014-09-26Removed more unessicary includesTycho1-1/+1
2014-09-25Fixed wrong Surrounding sizeHowaner1-3/+3
2014-09-25Fixed styleTycho1-0/+3
2014-09-19Implemented mob spawner.Howaner1-1/+1
2014-09-17Added first test to show the object can be createdTycho10-110/+115
2014-09-13Improved cBlockHandler::DropBlockTiger Wang1-1/+1
2014-09-11Fixed mutton name in Sheep.cppMasy981-1/+1
2014-09-04Revert "Globals.h: Added Floor and Ciel casting, C++ cast cleanups, etc"archshift1-7/+5
This reverts commit 472efa8174626a00ffdf5b39e1a44ac419cd3698. Apparently we don't support some of these features quite yet (darn you C++98!)
2014-09-04Globals.h: Added Floor and Ciel casting, C++ cast cleanups, etcarchshift1-5/+7
Snow Golems must also be above 64Y to spawn snow (as of 1.8).
2014-09-03Fixed style and alpha-sorting.madmaxoft1-7/+7
2014-09-03Added mutton, which sheep now drop when killedarchshift1-0/+7
2014-09-02Renamed SetWalkSpeed() to SetRelativeWalkSpeed()Howaner2-5/+5
2014-09-02Added CustomName saving.Howaner1-2/+8
2014-09-02Added the new functions to APIDump.Howaner1-2/+2
2014-09-02Added SetCustomName() to players.Howaner1-1/+2
2014-09-01Added name tagHowaner3-0/+23
2014-09-01Added CustomName to cMonster.Howaner2-1/+48
2014-08-30Added SetWalkSpeed() to cMonster.Howaner2-0/+9
2014-08-28Fixed mob burning.reiter1-1/+1
Fixes #1298
2014-08-04BasicStyleCheck: Dividers are exactly 80 slashes.madmaxoft1-1/+1
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-03Wolf uses UUID for owner.madmaxoft2-3/+13
Fixes #1277.
2014-08-03Trailing whitespace fix.madmaxoft1-1/+1
2014-08-01Improved endermen code a littleTiger Wang3-20/+56
2014-07-31Comment suggestionsTiger Wang1-9/+8
2014-07-30Added lighting code and added commentsSTRWarrior1-0/+17
2014-07-30Removed lighting code in cEnderman::CheckEventSeePlayerSTRWarrior1-9/+1
2014-07-24Removed redundant semicolons and re-added warningarchshift30-31/+31
2014-07-23Fix item durability.Howaner1-5/+1
Fixes #1181
2014-07-21Style: Normalized to no spaces before closing parenthesis.madmaxoft1-1/+1
2014-07-21Style: Normalized spaces after if, for and while.madmaxoft1-1/+1
2014-07-19Monsters: Made IsUndead overridable by the respective mob classesarchshift6-13/+11
2014-07-19Fixed style: spaces after commas.madmaxoft2-2/+2
2014-07-19Fixed clamping issuesarchshift1-5/+1
2014-07-19Subdirs: Only add_library if not using MSVCarchshift1-1/+3
2014-07-19Mobs/CMakeLists.txt: Replaced glob with list of filesarchshift1-5/+69
2014-07-18Fixed slime-related comments.madmaxoft3-5/+10
2014-07-18Slime sizes are 1, 2 or 4 and not 1, 2 or 3.Howaner3-4/+4
2014-07-18Monster fixesTiger Wang6-31/+5
* Fixes #1203 * Fixes #627
2014-07-18Fixed spaces before commas.madmaxoft1-3/+3
2014-07-18Skeletons should spawn with a bow in the hand.Howaner2-0/+17
Fixes #1184
2014-07-17Split into more lines.Howaner2-6/+10
2014-07-17Fixed tabs used for alignment.madmaxoft1-1/+1
2014-07-17More trailing whitespace fixes.madmaxoft2-2/+2
2014-07-17Basic style fixes.madmaxoft4-9/+9
2014-07-17Fixed many slime bugs.Howaner2-3/+73
- Fixed slime hurt/death sound - Added slime spawning on death. - Fixed the max health. - Fixed the attack damage. - Little slimes should not attack players.
2014-07-17Normalized comments.madmaxoft7-31/+30
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-16Resolved backwards compatibility issuesTiger Wang1-1/+1
2014-07-13Update.Howaner1-1/+1
2014-07-13Changed BroadcastSoundEffect function to take floating pos.Howaner2-4/+4
2014-07-13Changed comments.Howaner1-3/+5
2014-07-12For now, removed creator member from Entity Effect for pointer safetyarchshift1-1/+1
2014-07-06Fixed slime handling in cMonster::StringToMobType().madmaxoft1-1/+1
2014-07-05Changed everything to callbacksTiger Wang1-2/+20
2014-07-04Tailored death messagesTiger Wang6-11/+11
2014-07-01Add doxy-comments.Howaner1-1/+4
2014-06-30Changed commentworktycho1-1/+1
2014-06-30Moved the random code to a function (cSheep::GenerateNaturalRandomColor())Howaner2-36/+47
2014-06-28Save IsSheared from Sheep.Howaner1-0/+3
2014-06-28Fix sheep color's, add shear sound.Howaner3-3/+42
2014-06-22Bettered zombie and skeleton AITiger Wang2-6/+4
* Fixed potential issues with skylight detection
2014-06-21More suggestionsTiger Wang1-1/+1
2014-06-20Added pig riding.tonibm192-0/+14
Now you can ride a pig using a carrot on a stick.
2014-06-19Nullify deleted pointers.archshift3-0/+3
2014-06-19EntityEffects.x -> EntityEffect.x, Object-Oriented effectsarchshift2-47/+0
Changed effect map to take a pointer of the effect as a result.
2014-06-18Replaced strange algebra with dot product.worktycho1-4/+6
10 degrees is a completely arbitary constant I pulled from nowhere. Feel free to adjust this value.
2014-06-18Improved Enderman codeTiger Wang2-14/+34
2014-06-18Swapped m_Player and m_EndermanPosSTRWarrior1-2/+2
2014-06-18Enderman attacks a player if he's looking at him.STRWarrior2-0/+91
2014-06-17Entity effects: changed User to Creator, removed pawn pass-by-valuearchshift1-1/+1
2014-06-17Entity Effects: Clarified user, added it to AddEntityEffectarchshift1-1/+1
Added second AddEntityEffect with a pass-by-value of the class.
2014-06-17Changed the AddEntityEffect() params for easier calls.madmaxoft1-1/+1
2014-06-17Fixed MSVC compilation.madmaxoft1-3/+3
2014-06-17Pawn: renamed HandleEntityEffects to HandleEntityEffectarchshift2-3/+3
Exported entity effect functions for ToLua and documented them in APIDesc.lua
2014-06-17Cave spider now poisons its victim, added IsPawn function to Entityarchshift3-4/+22
2014-06-17Monster: added IsUndead(), undead-specific entity effectsarchshift2-0/+71
2014-06-08Fixed deadlock when moving players to other worlds.Mattes D5-5/+5
Fixes #1039, fixes #851
2014-06-07Fixed mob hitbox sizes, removed TODOsarchshift3-5/+2
Measured bat and blaze in vanilla, updated values. Cavespiders are, in fact, passive in the day.
2014-06-05Fixed decision failureTiger Wang1-1/+1
2014-06-04Added checks for no downfall biomesTiger Wang1-1/+1
2014-06-04Exploded creepers drop nothing, part of #1058Tiger Wang1-2/+8
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-21Fixed cWither::KilledByandrew1-1/+2
2014-05-20Cleaned up cPlayer::UpdateMovementStats; Wither achievementsandrew2-0/+34
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-28Revert "Withers now use the new invulnerable."Howaner2-10/+26
This reverts commit 619592b5a0ab651e714d55932bc7909e4204cee9.
2014-04-28Revert "Changed the old invulnerable methods from the wither to the new."Howaner1-3/+0
This reverts commit d50f8f6f11f69e7e1e56be92fb2d72a5014a3e34.
2014-04-28Fixed projectile source filenames, indentationsarchshift3-3/+3
2014-04-27Fixed warnings.madmaxoft1-2/+2
2014-04-27Redstone simulator now directly accesses cChunkTiger Wang1-3/+2
* Redstone simulator performance improvements * Added return values to some functions * Minor fixes
2014-04-27Moved cGhastFireballEntity out of ProjectileEntity.harchshift1-0/+1
2014-04-27Moved cFireChargeEntity out of ProjectileEntity.harchshift1-0/+1
2014-04-27Moved cArrowEntity out of ProjectileEntity.harchshift1-0/+1
2014-04-27Added static const, initialized fields.archshift1-1/+1
2014-04-26Further refactored, Reverted Minecart changearchshift2-3/+3
Other small changes.
2014-04-26Changed the old invulnerable methods from the wither to the new.Howaner1-0/+3
2014-04-26Withers now use the new invulnerable.Howaner2-26/+10
2014-04-26FixesHowaner2-8/+8
2014-04-26Fixed mobs that don't naturally spawn.archshift2-2/+6
2014-04-26Moved huge conditional out of InStateChasing(), improving readabilityarchshift2-1/+20
Squashed a warning.
2014-04-26Add entity invulnerableHowaner14-24/+50
2014-04-25Cmake generated projects for IDEs include headers in project files.archshift1-0/+1
2014-04-25Giants!archshift2-7/+12
Changed mfMaxplusone to mfUnhandled for readability, and fixed a default case warning.
2014-04-24Fixed class capitalization for the cave spider.archshift3-6/+6
2014-04-24Fixed references to renamed files.archshift4-7/+7
2014-04-24Rename mob source files to fit CamelCase.archshift6-6/+0
Rename Cavespider.cpp to CaveSpider.cpp Rename Cavespider.h to CaveSpider.h Rename Magmacube.cpp to MagmaCube.cpp Rename Magmacube.h to MagmaCube.h Rename Zombiepigman.cpp to ZombiePigman.cpp Rename Zombiepigman.h to ZombiePigman.h
2014-04-18Compilation fixTiger Wang1-1/+1
2014-04-18Did some static analysis, fixed some bugs and optimized a lot of codejfhumann2-4/+5
2014-04-18Fixed #906Tiger Wang1-1/+2
2014-04-18Fixed #904Tiger Wang1-1/+1
2014-04-17Added new AI rulesTiger Wang2-14/+28
+ 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-12Entities handle chunks properly againTiger Wang3-4/+4
* Entities properly handle chunks * Changed EntityStatus enums to be less shouty
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-25More fixes to get it to compile for me on Mac 10.9. Mostly just newline additions, but some of the unused variables were causing errors, so I wrapped them in #ifndef __APPLE__ calls, since I didn't know if they were going to be used in the future.Samuel Barney3-6/+2
Also had to undefine TOLUA_TEMPLATE_BIND a couple of times.
2014-03-25Fixed clang compilationandrew1-1/+1
2014-03-25Fixed wither summoningandrew2-2/+13
2014-03-25Protocol: Wither metadataandrew2-0/+19
2014-03-25Minor fixesandrew2-4/+3
2014-03-24Wither invulnerabilityandrew3-1/+66
2014-03-16Fixed double to float conversions.madmaxoft1-5/+5
2014-03-11Unified Vector classesandrew2-2/+2
2014-03-02cBlockInfo now manages the respective cBlockHandlerandrew1-1/+1
2014-03-02Creeper fixestonibm192-10/+34
- Fixed explosion time (1.5s, according to minecraftwiki) - Creeper explodes if right clicked with flint and steel
2014-03-01g_BlockXXX => cBlockInfo::XXXandrew2-6/+6
2014-02-27added mooshroom to cow conversiontonibm191-0/+2
2014-02-27Fixed sheep ASSERTing sometimesTiger Wang1-8/+18
2014-02-24Fixed Formatting, added compiler warning suppressing methods, fixed commentsTheJumper5-3/+6
2014-02-23Fixed Formatting, Added DropChances and CanPickUpLoot attributes to MonstersTheJumper24-38/+316
2014-02-23Fixed Formatting, Added DropChances and CanPickUpLoot attributes to MonstersTheJumper20-48/+219
2014-02-23Fixed Formatting, Added DropChances and CanPickUpLoot attributes to MonstersTheJumper2-10/+14
2014-02-23Fixed Formatting, Added DropChance attributes to MonstersTheJumper7-35/+74
2014-02-23Finally corrected the Enchantment constants.TheJumper17-17/+17
2014-02-22Changed formatting againTheJumper1-1/+1
2014-02-22Changed formatting, encapsuled armor drop, introduced better static Enchantment IDsTheJumper8-24/+48
2014-02-22Fixed Looting segment fault - a_Killer can be NULLTheJumper17-19/+83
2014-02-22Mooshroom.cpp: Added right click interactionTheJumper2-1/+38
2014-02-22Monster.h: Added doxy-comments for drop methodsTheJumper1-0/+3
2014-02-22Monster.cpp: Fixed Formatting in AddRandomUncommonDropItemTheJumper1-1/+1
2014-02-22Changed killer detection by using cEntity methodsTheJumper3-3/+3
2014-02-22Added static Enchantment Constants, Replaced cryptic Looting IDTheJumper17-17/+17
2014-02-21Fixed Mob Drops, Add Rare and Uncommon Drops, Looting inflicts DropsTheJumper23-37/+144
2014-02-20Add Wolf Heal with FoodHowaner1-10/+34
2014-02-17Improved formattingtonibm191-2/+2
2014-02-16Now mobs can't escape from fences.tonibm191-2/+2
2014-02-16Fixes to previous commitTiger Wang1-9/+10
2014-02-16Slight cleanup of wolf codeTiger Wang1-23/+7
2014-02-15Fixed TNT fizzing everywhereTiger Wang1-1/+1
2014-02-12Simplified Attack() tracingTiger Wang1-1/+6
2014-02-11Fixed #627Tiger Wang4-19/+10
- 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 warningsTycho2-6/+6
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-03Increased Type safety of BiomesTycho1-1/+1
Changed a number of funcictions from using integers to store biomes to using EMCSBiome Note that switching from an int to an Enum is a non-breaking chang to the lua bindings
2014-02-03Exporded World:FindClosestPlayer, Item:IsEnchantable and Monster:MoveToPosition to Lua APItonibm192-0/+9
2014-02-02Changed Signiture of OnUpdateTycho1-1/+4
2014-02-01Monster's nominal speed was increased.Kirill Kirilenko1-1/+1
2014-02-01Fixed teleport to air, if owner is flying.Kirill Kirilenko1-0/+1
2014-01-29Did what xoft saidtonibm194-5/+3
2014-01-29Rewritten code.tonibm1912-152/+25
Implemented xoft suggestion. Using MoveToPosition as tigerw suggested.
2014-01-29Fixed sheeptonibm191-18/+17
2014-01-29Fixed a copypasta error...tonibm194-1/+5
2014-01-29Now mobs follow you when holding their breed itemtonibm1910-5/+153
2014-01-28Renamed Farmer functions and added doxycommentsSTRWarrior2-17/+20
2014-01-28Villager: NoCountDown and Action function don't check VillagersShouldHarvestCrops anymore because it shoudn't even be activated anywhere.STRWarrior1-10/+0
2014-01-27Villager doesn't check the environment for crops if it doesn't need to.STRWarrior1-0/+5
2014-01-27The world can now be configured wether farmers should be able to harvest crops.STRWarrior1-0/+10
2014-01-27Villager: Few more comments.STRWarrior2-4/+9
2014-01-27CleanupSTRWarrior2-31/+65
Most code in Tick is now split up in different functions.
2014-01-27Villagers: Harvesting is more rare.STRWarrior1-1/+1
2014-01-27Villager: Farmers can't place crops on blocks other then farmland.STRWarrior1-1/+7
2014-01-27Fixed compiler error.STRWarrior1-1/+1
2014-01-27Villager: Farmer: Crops finding is more random.STRWarrior1-18/+19
2014-01-27Added GetCropsPos and DidFindCrops functions.STRWarrior1-0/+6
2014-01-27Villagers: Farmers now replant the crops.STRWarrior2-1/+17
2014-01-27Villagers: Fixed only gettings the crops block when farming.STRWarrior1-2/+2
2014-01-27Villagers don't look for new crops when they already found one.STRWarrior1-11/+9
Slight cleanup.
2014-01-27Villagers: Farmers can also harvest carrots and potatoes.STRWarrior2-9/+38
2014-01-27Makes farmers farm crops.STRWarrior2-1/+76
2014-01-26Fixed bug where wolfs would teleport while they were sitting.STRWarrior1-1/+4
2014-01-26Small fix since the new AI and a new small feature.STRWarrior1-6/+27
You get particles when trying to tame wolfs. They don't walk anymore when they are sitting.
2014-01-26Fixed segmentation fault on villager damageTiger Wang1-1/+1
It occurred when attack was environmental.
2014-01-25Did what xoft recommendedTiger Wang1-1/+5
2014-01-25Implemented sheeps eating grass.STRWarrior2-1/+41
2014-01-25Implemented fall damage for mobsTiger Wang2-6/+33
+ Implemented mobile fall damage * Formatting fixes + Defined new Position->Integer macros
2014-01-25Attack() is no longer always calledTiger Wang1-1/+1
2014-01-25Mob bugfixesTiger Wang2-22/+39
* 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-25All mobs now drown (fixes #54)Tiger Wang2-0/+7
* Implemented mob drowning * Iron Golems and squids are excluded
2014-01-25Fixed a generator bugTiger Wang1-0/+3
2014-01-25Zombies and skeletons use AITiger Wang2-9/+15
2014-01-24Miscellaneous improvementsTiger Wang2-18/+13
2014-01-24Changed a condition to IsGameModeTiger Wang1-2/+1
2014-01-24Fixed a failure in cSquid.madmaxoft1-1/+2
Probably due to rounding errors the squid was querying out-of-chunk coords.
2014-01-24Made wolves compatible with new AI codeTiger Wang2-11/+26
2014-01-24Monsters no longer check for direct line of sightTiger Wang1-10/+2
2014-01-24Large reworking of mob code [SEE DESC]Tiger Wang6-232/+324
+ 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-24Implemented creeper abilitiesTiger Wang2-2/+50
* Creepers now explode with a sound effect * Creepers drop a music disc on the unlikely event of being killed by a skeleton's arrow Inspired by @maniak89's PR #132.
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-22Fixed bug where snowgolems could replace non-solid blocks to snow blocks.STRWarrior1-1/+3
2013-12-22Snow golems die in hot biomes and leave a snow trail.STRWarrior2-0/+18
2013-12-22EnderDragons and SnowGolems are able to spawn.STRWarrior1-0/+2
2013-12-20Fixed the rest of constructor reorders.madmaxoft1-2/+2
2013-12-20Sorted a few constructors to remove warnings.madmaxoft5-17/+21
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-12-11moved mobs to globsTycho Bickerstaff1-1/+5
2013-12-10more cmakeTycho Bickerstaff1-0/+7
2013-11-24Moved source to srcAlexander Harkness65-0/+3488