summaryrefslogtreecommitdiffstats
path: root/src/World.cpp (unfollow)
Commit message (Collapse)AuthorFilesLines
2021-05-05Move item placement into item handlers (#5184)Tiger Wang1-5/+10
* Move item placement into item handlers + Add appropriate CanBeAt checks in cPlayer::PlaceBlocks, into which all placement handlers call. * Partly addresses #5157 * Fixes #4878 * Fixes #2919 * Fixes #4629 * Fixes #4239 * Fixes #4849 Co-authored-by: changyong guo <guo1487@163.com> Co-authored-by: Xotheus <shady3300@outlook.com> Co-authored-by: Krist Pregracke <krist@tiger-scm.com> * Review fixes * Update APIDesc.lua * Rename Co-authored-by: changyong guo <guo1487@163.com> Co-authored-by: Xotheus <shady3300@outlook.com> Co-authored-by: Krist Pregracke <krist@tiger-scm.com>
2021-04-12Fix sending incorrect date values on world changeTiger Wang1-38/+53
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 Wang1-179/+38
+ 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-28Fix Windows XP to 7 compatibility (#5167)Tiger Wang1-1/+1
* Partially reverts 01a4e696b * Unify thread names - Remove use of GetThreadId API
2021-03-20Change TimeOfDay to WorldDate (#5160)Tiger Wang1-17/+42
* Change TimeOfDay to WorldDate * Do not wrap at 20 minutes, continue incrementing * Fixes #4737 * Fixes #5159
2021-03-19Don't send ping updates one packet at a timeTiger Wang1-11/+25
* Use the batch update feature of the packet. * Lengthen interval between time and ping update packets (ref. http://github.com/cuberite/cuberite/issues/4082#issuecomment-348675321).
2021-03-15Properly deprecate more XYZ parameter'd functions (#5147)Tiger Wang1-22/+12
* Fixes #5144
2021-03-05Prepare ChunkData for BlockState storage (#5105)Tiger Wang1-78/+58
* Rename ChunkData Creatable test * Add missing Y-check in RedstoneWireHandler * Remove ChunkDef.h dependency in Scoreboard * Prepare ChunkData for BlockState storage + Split chunk block, meta, block & sky light storage + Load the height map from disk - Reduce duplicated code in ChunkData - Remove saving MCSBiomes, there aren't any - Remove the allocation pool, ref #4315, #3864 * fixed build * fixed test * fixed the debug compile Co-authored-by: 12xx12 <44411062+12xx12@users.noreply.github.com>
2021-02-07Explodinator: fix divide by zeroTiger Wang1-1/+1
2021-01-26Fix debug macro situation (#5114)Tiger Wang1-2/+2
Use the standard NDEBUG.
2021-01-12Clarify cClientHandle, cPlayer ownership semanticsTiger Wang1-304/+63
+ 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-18/+17
* Hopefully fixes #5094
2020-12-26Don't prematurely exit "downloading terrain" screen on joinTiger Wang1-1/+0
- Remove leftover SendPlayerMoveLook from #1500
2020-12-26Avoid a gratuitous dirty when loading chunks with entitiesTiger Wang1-15/+0
Loaded entities are directly moved into the chunk data, instead of having to go through cWorld, as if they were just spawned. This avoid dirtying the chunk.
2020-12-26ViewDistance: unsigned -> signedTiger Wang1-3/+2
2020-12-22unique_ptr<cChunkMap> to plain memberTiger Wang1-120/+91
2020-12-18Warnings improvementsTiger Wang1-2/+3
* Turn off global-constructors warning. These are needed to implement cRoot signal handler functionality * Add Clang flags based on version lookup instead of a compile test. The CMake config process is single threaded and slow enough already * Reduced GetStackValue verbosity + Clarify EnchantmentLevel, StayCount, AlwaysTicked, ViewDistance signedness + Give SettingsRepositoryInterface a move constructor to simplify main.cpp code - Remove do {} while (false) construction in redstone handler
2020-11-13Some const and inheritance correctness (#5014)12xx121-1/+1
* Some const and inheritance correctness * Devirtualise SendBlockTo(Vector3i) Co-authored-by: 12xx12 <12xx12100@gmail.com> Co-authored-by: Tiger Wang <ziwei.tiger@outlook.com>
2020-11-06Add correct implementation of crops (#4802)0ddlyoko1-30/+0
* [FIX] Add correct implementation of seed drops. > Official percentage of drops has been implemented * Fix C++ conventions * Change "Vals" variable to "m_Vals" * [FIX] Add correct implementation of Carrots, Potatoes, Wheat & Beetroots seed * Add Fortune support with crops Add fortune support with Wheat, Carrots, Potatoes & Beetroots seeds * [FIX] Right-clicking on a grown Beetroot in survival consume 2 bone meals Fix #4805 * Add documentation for "cWorld::IsFullGrownPlantAt" method * Fix dispenser that full grown a plant > Change methods cItemDyeHandler::FertilizePlant & cItemDyeHandler::growPlantsAround to static * Display particle even if tree doesn't grow * When right-clicking on a full grown melon / pumpkin seed, no longer produce a melon / pumpkin Before this commit, when you right-click on a melon or a pumpkin seed, a melon / pumpkin block spawned. With this commit, it no longer spawns * [FIX] Do not create melon / pumpkin block when right-clicking with a bone meal This fix will prevent the creation of a melon / pumpkin block when you right-click with a bone meal on a melon / pumpkin plant - It just detect if the plant is full grown. if yes, the method "Grow" is not called - Remove IsFullGrownPlant Co-authored-by: 12xx12 <12xx12100@gmail.com> Co-authored-by: Tiger Wang <ziwei.tiger@outlook.com>
2020-10-29Add beam target, configurable base visibility to Ender Crystals (#5010)12xx121-0/+16
* Fixes #4990 Co-authored-by: 12xx12 <12xx12100@gmail.com>
2020-10-24TNT Changes (#4970)KingCol131-2/+1
+ Make TNT drop pickups, change a few comments. + Give each ray random intensity, instead of each explosion. * Use direction instead of destination, rewrite for pairs of edges.
2020-10-08Merged OnBreak with OnPlayerBreak (#4967)12xx121-4/+24
Co-authored-by: 12xx12 <12xx12100@gmail.com> Co-authored-by: Tiger Wang <ziwei.tiger@outlook.com>
2020-10-05Fix cmake not adding Werror on clang, and _lots_ of warnings (#4963)peterbell101-1/+1
* Fix cmake not adding Werror on clang, and _lots_ of warnings * WIP: Build fixes * Cannot make intermediate blockhandler instance * Tiger's changes * Fix BitIndex check * Handle invalid NextState values in cMultiVersionProtocol Co-authored-by: Tiger Wang <ziwei.tiger@outlook.com>
2020-09-25Do not call into things we don't own in destructorsTiger Wang1-5/+1
- Remove improper accesses in cChunk destructor * Fixes #4894
2020-09-20BlockHandler initialisation is a constant expression (#4891)Tiger Wang1-2/+2
* BlockHandler initialisation is a constant expression If we can't make it all namespaces, this is the next best I guess. + Tag handlers constexpr, const as needed + Inherit constructors * Privatise handler functions * More constexpr Co-authored-by: Alexander Harkness <me@bearbin.net>
2020-09-12Reverse order of ChunkSender priorities (#4858)Tiger Wang1-3/+3
* Reduces confusion when using overloaded operator< and priority_queue Co-authored-by: peterbell10 <peterbell10@live.co.uk>
2020-09-12Use tracing for explosions (#4845)Tiger Wang1-38/+5
* TNT: Implement tracing algorithm + Add intensity tracing * Fix iterating over all players to SendExplosion, even those not in range * Implemented TNT entity interaction * Fixed misaligned destruction tracing * Finalise TNT algorithm - Remove BlockArea and just use chunks Using SetBlock makes it so that we can update everything properly, and does appear to be faster. * BlockInfo learns about explosion attentuation * Rename Explodinator parameters * TNT: pull block destruction into common function Co-authored-by: Alexander Harkness <me@bearbin.net>
2020-09-03Rename AddEntityIfNotPresent to AddPlayerTiger Wang1-1/+1
+ Always make a chunk for the player to go into * Fixes #4847
2020-08-29Entities can fail to add into a chunkTiger Wang1-6/+0
- MoveEntityToNewChunk, AddEntity can fail. Ensure we handle these cases correctly
2020-08-28Clean up GenerateChunk/TouchChunkTiger Wang1-10/+0
- Remove TouchChunk - Remove unused bool return value in GenerateChunk - Remove ShouldGenerateIfLoadFailed
2020-08-28Remove unneeded MarkDirty, SendToClients parameters of SetMetaTiger Wang1-2/+2
Partially reverts #3129, whose addition of these parameters was superseded by #3149 that fixed generated leaves' metas. References: https://github.com/cuberite/cuberite/pull/4417#discussion_r334950513 e0bcd754009f16480437b2c1fa5e7fbedab31496
2020-08-27Changed tree-growing functions in cWorld to use Vector3i coords.Mattes D1-30/+32
2020-08-05large conifers sapplings growmBornand1-1/+6
2020-08-04Corrected wakeup sequencesTiger Wang1-4/+3
* Pistons/Ice no longer need to FastSetBlock first (#4600), and the former don't drop items when broken in creative - Begin migration away from stationary fluids * Tick the chunk after applying a client's changed * Broadcast pending blocks at the end of a tick
2020-08-04OnBroken/OnPlaced are for entity actionsTiger Wang1-17/+12
* Call OnPlaced/OnBroken in PlaceBlock/DigBlock - Remove unused Placing/Breaking handlers * Have the blockhandler's Check handle neighbour updating, instead of QueueTickBlockNeighbors
2020-08-02Add WakeUp/AddBlock distinctionTiger Wang1-1/+1
* WakeUp is for singular changes (block breaking for example). The simulator should check blocks around the position and discover other affected blocks as it sees fit * AddBlock is for when you know a whole area is to be updated; chunk loading, or area wakeups for example + Prepares for correct handling of destroyed blocks after removal of SolidBlockHandler in the redstone simulator
2020-08-01Replaced cpp14::make_unique<> with std::make_unique<>.Mattes D1-18/+18
2020-07-14cWorld * -> cWorld (#4771)Tiger Wang1-16/+15
* cWorld * -> cWorld
2020-05-15Enable some more clang-tidy linter checks (#4738)peterbell101-7/+4
* 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-07Remove old Android leftovers (#4722)Mat1-1/+1
2020-05-03Assert if world is incorrectMat1-0/+1
2020-05-03Set entity world earlymathiascode1-1/+0
2020-04-21Vector3 in Handlers (#4680)Mattes D1-1/+1
Refactored all cBlockHandler and cItemHandler descendants to use Vector3.
2020-04-17More Vector3 in cBlockHandler (#4644)Mattes D1-3/+3
* cBlockHandler.OnUpdate uses Vector3 params. Also slightly changed how block ticking works.
2020-04-16Using Super.Mattes D1-2/+2
2020-04-13Acquire chunk map CS when accessing player entitiesPeter Bell1-27/+23
2020-04-09Don't set entity world twice (#4606)Mat1-1/+1
* Don't set entity world twice * Call HookSpawnedEntity when the entity actually spawned
2020-04-09Falling blocks can now be spawned at any position. (#4620)Mattes D1-1/+1
* Falling blocks can now be spawned at any position. * Added a /cake command to Debuggers that throws a cake in a nice slow arc. * Fixed regular falling blocks.
2020-04-07Initial resource pack support (#4622)Mat1-0/+7
2020-04-04Implement wither skeletons (#4563)Mat1-1/+1
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-04-02Fix explosion knockback issues and tweak knockback strength (#4590)peterbell101-3/+6
2020-03-29Fix client disconnect assert (#4579)peterbell101-2/+6
2020-03-27 Lock hopper when powered by redstone (#4347)Bond-0091-0/+9
* Lock hopper when powered by redstone * Add to manual bindings * Add hopper API documentation Co-authored-by: Mat <mail@mathias.is>
2020-03-26Disable bonemealable settings for now (#4551)Mat1-0/+4
2020-03-25Fix nether mob spawning (#4546)Mat1-1/+1
* Fix nether mob spawning * Remove zombie from nether mobs
2020-03-23Pickup spawn improvements (#4525)Mat1-4/+4
Pickups are now thrown around when spawned, like in vanilla. Pickups also bail out of the collision detection checks while being created, to prevent them from blasting too far off in e.g. cobblestone generators.
2020-03-22TNT position fixes (#4519)Mat1-3/+8
* TNT position fixes * Don't add offset to explosion spawn coords * Don't make other entities push TNT * Correct initial TNT speed * Fix typo * Improvements * Revert unwanted change * Style fixes * Update format
2020-03-21Improve explosion visuals (#4511)Mat1-1/+17
2020-03-05Stabilise MoveToWorld (#4004)Mat1-11/+25
* 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-12-22Improved large jungle and acacia tree generation (#4413)NiLSPACE1-7/+7
2019-10-28Moved growing from cWorld / cChunk to cBlockHandler descendants.Mattes D1-338/+35
2019-10-16Refactored block-to-pickup conversion. (#4417)Mattes D1-13/+57
2019-09-29Refactored more of Entities and BlockEntities to use Vector3. (#4403)Mattes D1-37/+40
2019-09-27Fixed MSVC warnings (#4400)Mattes D1-1/+1
2019-09-24NBTChunkSerializer: Cleaned up interface.Mattes D1-2/+2
Removed dependency on cChunkDataCallback. Moved all the serializing code into a worker class. Changed the serialization into a single-call action.
2019-09-06Moved the generator defaults to ComposableGenerator.Mattes D1-50/+5
2019-09-06Separated chunk generator from world / plugin interfaces.Mattes D1-10/+96
The generator now only takes care of servicing synchronous "GetChunk(X, Y)" and "GetBiomes(X, Y)" requests.
2018-09-24Add a formatting function for Vector3 (#4282)peterbell101-4/+4
* Vector3: Add custom fmt compatible formatter. * cLuaState: Add fmt version of ApiParamError * Use vector formatting in manual bindings * Always log vectors with FLOG
2018-08-02Experience orb (#4259)changyong guo1-3/+60
* 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-27cWorld: Manually bind deprecated broadcast functions (#4265)peterbell101-15/+16
Ref: https://github.com/cuberite/cuberite/pull/4264#discussion_r204769193
2018-07-26CheckBasicStyle: Check number of empty lines between functions (#4267)peterbell101-13/+3
Add check for number of empty lines between functions and fix the corresponding failures
2018-07-24Broadcast refactor (#4264)peterbell101-487/+18
* 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-07-23Rewrite explosion knock back (#4251)changyong guo1-14/+1
1. Base knockback on an entity's bounding box intersection with the explosion 2. Armor blast protection reduces knockback 3. Don't apply knockback to players flying in creative mode Fixes #4139
2018-04-11Removed duplicate code (#4198)Bond-0091-1/+1
Should also fix dogs not despawning
2018-02-05Deal with covered switches consistently (#4161)peterbell101-12/+6
* 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-01-16Add world name in logs from cWorld (#4148)Bond-0091-3/+3
2017-12-26improve rain simulation (#4017)Alexander Harkness1-0/+28
* 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-21cWorld Threads: Seperate initialization and thread start.peterbell101-2/+4
Prevents nullptr dereferences before Start has been called.
2017-10-21cWorld: Move Initialization from Start to the constructor.peterbell101-218/+224
Start now does nothing more than launch the world's threads.
2017-09-25BroadcastBlockBreakAnimation and BroadcastBlockEntity use vectors (#4038)Bond-0091-4/+4
2017-09-19Changed BroadcastSoundEffect, SendSoundEffect, and CastThunderbolt parameters to vectors (#3959)Lane Kolbly1-9/+39
* 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-19Removed UTF-8 BOM (#4033)Lukas Pioch1-1/+1
2017-09-11Replace ItemCallbacks with lambdas (#3993)peterbell101-131/+61
2017-09-07Made world data paths adjustable, and added API to temporarily disable saving chunks to disk. (#3912)Lane Kolbly1-11/+21
2017-09-07Changed some int parameters to vector parameters (#3937)Bond-0091-4/+4
2017-09-05Add cWorld::RemoveEntity and use in cEntity (#4003)peterbell101-0/+30
* Add cWorld::RemoveEntity and use in cEntity * cEntity: Remove uneeded asserts from Destroy and DoMoveToWorld
2017-09-02Revert "Replace ItemCallbacks with lambdas (#3948)"LogicParrot1-63/+133
This reverts commit 496c337cdfa593654018c171f6a74c28272265b5.
2017-09-01Replace ItemCallbacks with lambdas (#3948)peterbell101-133/+63
2017-08-29cWorld: Add entities without holding of m_CSEntitiesToAddpeterbell101-9/+12
* Fixes deadlock when cWorld::AddEntity is called while holding chunk map CS.
2017-08-25Add cUUID class (#3871)peterbell101-2/+3
2017-08-21Fully implemented leashes (#3798)Pablo Beltrán1-0/+18
2017-08-17Changed int parameters to vector parameters in cCuboid and simulators (#3874)Lane Kolbly1-4/+14
2017-08-07Changed entity ownership model to use smart pointersTiger Wang1-106/+148
2017-08-03Remove double includes part 2 (#3890)peterbell101-1/+0
2017-08-02Removed double includes (#3885)Lukas Pioch1-5/+0
2017-08-01cWorld::SendBlockTo take player by refpeterbell101-1/+1
2017-07-21Remove smart pointer macrospeterbell101-3/+3
2017-07-16Simulators: Added area-based wakeup.Mattes D1-1/+1
2017-07-12Changing pickup lifetime and combining semantics, making these adjustable in the lua api. (#3843)Lane Kolbly1-0/+16
2017-07-07Added bed entity (#3823)Lukas Pioch1-0/+9
* Added bed entity * Export cBedEntity to lua * Set color of bed through item damage value * Added bed entity to APIDoc * NBT: Added loading and saving * Crafting recipes for the colored beds
2017-06-20Let water vaporise in the Nether by defaultBond-0091-5/+6
2017-06-16Remove sign conversionpeterbell101-5/+5
2017-06-13FastRandom rewrite (#3754)peterbell101-28/+36
2017-05-24Exported boatLukas Pioch1-2/+2
- NBT: Added saving / loading of material - Added the material in the item handler of the boat - Drop the correct boat if destroyed - APIDoc: Added desc and functions
2017-05-21Don't destroy monster when last target type is a player (#3721)Pablo Beltrán1-2/+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.
2017-05-11Tracer replacement (#3704)Mattes D1-22/+16
* Replaced cTracer usage with cLineBlockTracer. * Exported new cLineBlockTracer utility functions to Lua API.
2017-05-08Added missing checks for Initialize function and updated APIDocLukas Pioch1-7/+40
2017-02-24Changed world_end to world_the_end #3531 (#3538)Bond-0091-2/+7
2017-02-15Updated sounds and effect IDs (#3422)mathiascode1-3/+3
2017-02-14Added some blocks and items (#3503)mathiascode1-0/+22
2017-02-07Made survival the default gamemode (#3563)Lawton Mizell1-1/+1
2017-01-19World: Remember the age persistently. (#3556)Mattes D1-0/+3
2017-01-19World: Removed LineBlockTracer test code. (#3555)Mattes D1-53/+0
The test for LineBlockTracer is already in the Debuggers plugin (/spidey and testtracer commands).
2017-01-19Removed asserts about chunk queued.Mattes D1-2/+0
The assumption is not needed and was invalid under a stress-test.
2017-01-18DeadlockDetect now lists some tracked CS's stats.Mattes D1-2/+14
2016-12-29World: Add check for unknown RedstoneSimulator (#3496)Fabian Stein1-0/+5
2016-12-16Initial support for the 1.11 protocol.Mattes D1-2/+2
2016-12-12Use CMake's Android generators to crosscompileTiger Wang1-3/+3
2016-11-18Removed ClientHandle.h dependencies from common headers.Mattes D1-0/+9
2016-10-12Spectators added (#2852)bibo381-2/+20
2016-09-03Configurable dirty unused chunk cap to avoid RAM overuse (#3359)LogicParrot1-10/+32
Configurable dirty unused chunk cap to avoid RAM overuse
2016-08-22Delay EntityChangedWorld players' callback until Entity fully linked to world (#3330)ElNounch1-10/+25
Otherwise, some API calls just don't seem to happen .gitignore tweak for test executables
2016-08-15Added cWorld:SetSpawn() API and Lua binding (#3316)ElNounch1-12/+29
2016-07-31Fix tab list sometimes not updating after a player leaves. (#3280)Alexander Harkness1-1/+1
When a player leaves the game, their client handle has its state changed to csDestroyed. This should fix issue #3138
2016-07-18Updated API documentation.Mattes D1-2/+2
2016-06-03Makes tall grass and large flowers bonemealableQUSpilPrgm1-12/+75
Adds the bonemeal particle effect to some more places
2016-06-03Update Dispensers and let them act more like in VanillaQUSpilPrgm1-61/+70
- Added code to make bonemeal, potions, minecarts, XP bottles and boats work inside dispensers - Dispensers are now able to place TNT if the block is transparent but not air - Added return value that indicates the success of pumpkin, melon, sugarcane and cactus growing functions - Changed return value of "GrowRipePlant" so that it actually indicates if the block was able to grow - Fixed "GrowSugarcane" and "GrowCactus" in "GrowRipePlant" so that it only grows them a single block
2016-05-141.9 / 1.9.2 / 1.9.3 / 1.9.4 protocol support (#3135)Pokechu221-2/+11
* 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-05-01Fix Crash on stopping the server (#3176)LogicParrot1-2/+0
2016-04-30Disable Enderman Spawn (Issue #3108) (#3170)benf5161-2/+2
Temporarily disabled enderman spawning until the glitches can be fixed
2016-04-22Reduced unnecessary block updatesLogicParrot1-11/+2
2016-04-19Auto clean bad world linkagesLogicParrot1-16/+14
2016-04-16Updated cChunk::SetMeta, fixed grass growth, reduced markDirty/setMeta usageLogicParrot1-2/+4
2016-04-06Revert "Move mob tick code to cChunk"LogicParrot1-0/+46
2016-04-06Move mob tick code to cChunkLogicParrot1-46/+0
2016-03-31Fix adding players to worldLogicParrot1-1/+1
2016-03-30Entities are never lostLogicParrot1-19/+13
2016-03-23Rewrite mob tick codeLogicParrot1-18/+41
2016-02-21Add check if entity is in chunk before changing tick statusMarvin Kopf1-2/+8
2016-02-19Proper entity destruction in non-ticking chunksLogicParrot1-10/+21
2016-02-09Add forum link to linkage error messageLogicParrot1-1/+1
2016-02-08Improve world linkage error messageLogicParrot1-2/+2
2016-02-06Proper world linkages and dimension types for newly created world.ini'sLogicParrot1-2/+12
2016-02-05Tab completion for player names now case insensitive.Marvin Kopf1-1/+1
2016-02-05Prevent server from starting if there's bad world linkageLogicParrot1-0/+34
2016-02-03cMonster::m_Target safety across worldsLogicParrot1-0/+20
2016-01-16Fixed non-natural spawning near player (egg, breeding, etc.)LogicParrot1-9/+0
2016-01-12Do not spawn mobs too close to playerLogicParrot1-54/+63
2015-12-30Fixed default Nether generator params.Mattes D1-1/+1
The prefab file is "NetherFort"
2015-12-20Fixed spawn point. Wrong number for divisions and wrong highest spawn point.Lukas Pioch1-3/+4
2015-12-18Reorganised the redstone simulatorTiger Wang1-4/+2
-> Many thanks to @worktycho for the idea, and @Haxi52 for the implementation plan! * Uses classes and inheritance now * Speed should be improved
2015-12-01Changed Nether defaults to use PieceStructures.Mattes D1-1/+1
2015-11-24Add enum for Sound and Particle EffectsDave Tucker1-10/+10
Fixes #2603 Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2015-11-13Improved spawn location calculations.samoatesgames1-69/+168
- Supports Overworld and Nether spawns. - Supports spawning under objects, but still above ground (e.g. under the leaves of a tree). - Protects against spawning in oceans. - Protects against spawning in water. - Uses a radial search about the origin, rather than a linear. - Correctly calculates Nether spawn on spawn world generation (fixes: cuberite#2548) - Fixes a bug in CheckPlayerSpawnPoint() where the X offset was used in both the X and Z coords (BLOCKTYPE BlockType = GetBlock(a_PosX + Coords[i].x, a_PosY, a_PosZ + Coords[i].x);)
2015-11-03Implemented brewingLukas Pioch1-0/+18
2015-10-01The bottom layer cannot hold a valid spawn pointworktycho1-0/+6
Fixes #2510
2015-09-28Added weather intervals to world.ini settings.Mattes D1-4/+46
2015-09-25Prepared ScheduleTask for threading refactorTiger Wang1-131/+35
* Llama-ified and condensed Schedule/QueueTask - Removed hackery done with piston animations
2015-09-24Add new "ForEach" function: ForEachLoadedChunk.tycho1-0/+9
2015-09-15Increase robustness of the logging subsystemtycho1-6/+0
2015-07-31Unified the doxy-comment format.Mattes D1-1/+0
2015-07-29Silenced and fixed many warning messages across multiple files.Samuel Barney1-26/+28
2015-07-16Spawn baby mobshallucino1-1/+6
2015-07-14Improved mapsTiger Wang1-1/+2
2015-07-13Sapling Growth UpdateSamuel Barney1-2/+16
* Growth has been slowed down * Saplings do not grow if they do not have enough space to grow * Saplings do not grow unless the light level is 9 or above * Dark Oak doesn't grow unless it is in a 2x2 Jungle Trees now will grow into a large tree when 2x2 saplings are used.
2015-07-06Squashed Bonemeal Plant Growth UpdateSamuel Barney1-13/+85
* Fixed Crops growing to maturity with only 1 bonemeal * Trees now go through growth stages with bonemeal, as they do in Vanilla Minecraft
2015-06-28Added a size check for portals.STRWarrior1-0/+4
Made the portal size configurable Alpha-sorted SetXYZNetherPortalXYZ functions
2015-06-24Buttons no longer click on when already on. Buttons now play sound when clicking off.Hax521-3/+9
2015-06-22Fixed minor errors in Tycho's codeTiger Wang1-1/+1
Everything should work now :)
2015-06-10Reinstate "Chunk queue collapsing"Tiger Wang1-14/+43
This reinstates commit f36acb683594daff5af3971dcbe3c3a171628b78 and reverts commit adfbc42c021e1bcfcb355933c0fd784306ce0e18.
2015-06-07Revert "Chunk queue collapsing"worktycho1-43/+14
2015-06-06Redstone wire and trapdoor fixesTiger Wang1-1/+1
* Fixes #1887 * Fixes #1763 * Fixes #1083
2015-06-05Made the list of chunks to stream an unordered_settycho1-2/+2
This should increase performance of chunk streaming
2015-06-05Moved Chunk Broadcasts over to the regular queuetycho1-14/+43
2015-05-30Made cLightingThread own its callbackstycho1-4/+4
2015-05-30Clean up Spawn Preparetycho1-136/+2
Made cSpawnPrepare execute on the same thread since it is a syncronous operation, and most of the code happens on the lighting thread. Also moved cSpawnPrepare into its own file
2015-05-23Fixed missing overrides and added a ignore flag for reserved macro for clang version 3.6 and higher.Lukas Pioch1-1/+1
2015-05-21Added thunder sound effect to CastThunderbolt()b33duck1-0/+1
2015-05-19Fixed compile and a few more warningstycho1-1/+1
2015-05-17Updated the defaults for the overworld world generatorSTRWarrior1-1/+1
2015-05-16Move make_unique into a namespace to avoid ADL issuestycho1-5/+5
this prevents VS finding std::make_unique for constructors that take types from std
2015-05-14Update World.cppMartin Fahy1-2/+2
Fixed minor typos in comments, simply trying to understand the code base to fix issue regarding no sound when lighting is produced, no change to actual code.
2015-05-09CheckBasicStyle: checks spaces around * and &.Mattes D1-1/+1
2015-05-09More style checking.Mattes D1-2/+2
Spaces around some operators are checked.
2015-05-07Added support for additional data in the ParticleEffect Packettycho1-9/+15
Also started refactoring how broadcasts are handled
2015-04-29Added Guardian and Rabbit to DefaultMonsters in OverworldMathias1-1/+1
2015-04-27cSetChunkData constructor explicitly requires std::move() instead ofWoazboat1-1/+1
unsafely stealing data
2015-04-19Added GlowStone finisherSTRWarrior1-1/+1
2015-03-21Changed linked world name variables and setters / getters.Mattes D1-10/+10
Ref.: #1792 Ref.: https://github.com/mc-server/MCServer/pull/1792#discussion_r25946707
2015-03-21Changed cEntity::m_UniqueID to UInt32.Mattes D1-23/+22
2015-03-20Added cPluginLua::cResettable interface, used for scheduled tasks.Mattes D1-5/+5
This allows plugins to register objects that can "survive" the plugin unloading - they will simply bail out if the plugin is already unloaded, instead of referencing bad plugin data. Fixes #1556.
2015-03-19Fixed a clang warning, improved comments.Mattes D1-7/+4
2015-03-18World:DoWithEntityByID() checks the entities-to-add as well.Mattes D1-0/+14
This allows plugins to create entities and immediately act on them using that call. This will most likely need to be added to most of the DoWith<> and ForEach<> calls.
2015-03-14Fixed a small bugtumultenrx1-1/+1
2015-03-13Monsters will now attack. Additional checks have been added when generating spawn.tumultenrx1-4/+64
Monsters will now attack. Additional checks have been added when generating spawn.
2015-03-05Reverted non-functional changesTiger Wang1-25/+0
2015-02-08Handle client 'leave bed' requestTiger Wang1-1/+26
* Fixes #1728
2015-01-27Converted cServer to use the cNetwork API.Mattes D1-14/+17
2015-01-23Fixed defect #71781 in Coverity list.Kirill Kirilenko1-0/+5
2015-01-18Fixed type conversion warnings.Mattes D1-3/+3
2015-01-17correct comment to say millisecondsworktycho1-1/+1
2015-01-11Initial convertion of a_Dt to std::chronoTycho1-42/+37
also refactored cWorld::m_WorldAge and cWorld::m_TimeOfDay
2015-01-11Created new type cTickTime and rewrote cWorld::TickThread to use itTycho1-6/+5
2014-12-24Refactored all player block placing to go through hooks.Mattes D1-2/+11
Fixes #1618.
2014-12-22Fix compile error on OS X introduced by commit ecf778bbec2794562bf5e5b8645e2171f7cd081cJonathan Fabian1-1/+1
The following error occurs on OS X with the order reversed: `MCServer/src/World.cpp:282:2: error: field 'm_LastSave' will be initialized after field 'm_LastUnload' [-Werror,-Wreorder] m_LastSave(0),`. Reversing the order of initialization fixes this.
2014-12-21cWorld: Moved initialization into constructor.Mattes D1-3/+2
Fixes CID 71781.
2014-12-18Guardian can now spawn if wanted!?Masy981-1/+1
2014-12-18Added Entity GuardianMasy981-1/+1
2014-12-14Fixed mob invisibilityHowaner1-1/+0
2014-12-14"& 0x0f" isn't neededHowaner1-1/+1
2014-12-13FixesHowaner1-1/+15
2014-12-10Added a cWorld:PrepareChunk function.Mattes D1-2/+11
It prepares the chunk - loads or generates it and lights it. The spawn prepare process uses this function.
2014-12-10Moved NetherOreNeststonibm191-1/+1
2014-12-08Moved NaturalPatches in front of PreSimulator and Animals.Mattes D1-1/+1
2014-12-08Added NetherOreNests to nether default generator.tonibm191-1/+1
Now there's quartz in the nether
2014-12-08Added NaturalPatches to finisherstonibm191-1/+1
2014-12-07Fixed crash on server stop.Mattes D1-0/+9
The entity destructors called through chunkmap destructor and chunk destructor were accessing the world which was in an already invalid state (half-destroyed). Fixed by destroying chunkmap explicitly and providing a nullptr check in the HasEntity() function.
2014-12-07Fixed c++11 branch issues.Mattes D1-1/+3
2014-12-05Fixed reported parentheses around comparisons.Mattes D1-2/+2
2014-12-03Allow Spectator Gamemode as a world default.Jonathan Fabian1-1/+1
2014-12-03forgot generation defaul initp-mcgowan1-1/+1
2014-12-01Added better soulsand rimsSTRWarrior1-1/+1
As a finisher called SoulsandRims
2014-11-30Fixed a crash in cSpawnPrepare.Mattes D1-0/+2
2014-11-30Improved comments for cWorld::DoWithPlayer().Mattes D1-1/+1
2014-11-30removed GetUsernames() from WorldVincent1-15/+0
2014-11-29fixed naming of strings and changed from i to IVincent1-3/+7
2014-11-29issue 1253 - prevent multiple logins with same usernameVincent1-0/+12
2014-11-26Merge remote-tracking branch 'origin-master' into c++11Tiger Wang1-132/+123
2014-11-24Changed back capitalization.Mattes D1-3/+3
2014-11-22cWorld: Rewritten spawn preparation.Mattes D1-120/+111
It now supports pregeneration distance of any size and runs in two threads in parallel (generator / lighting). Fixes #1597.
2014-11-20cWorld: Changed generator defaults.Mattes D1-13/+17
2014-11-15Fixed a security problem with signs.Howaner1-9/+3
2014-11-06Fixed an extra space.Mattes D1-1/+1
2014-11-05renamed FindAndDoWithUUID to DoWithPlayerByUUID, fixed style and comments, added description to APIDumpLukas Pioch1-2/+3
2014-11-02Simplified FindAndDoWithUUID, formatted lineLukas Pioch1-7/+1
2014-11-02Added FindAndDoWithUUIDLukas Pioch1-0/+22
2014-10-30Added a MaxViewDistance option.Howaner1-0/+3
2014-10-25Cleaned up simulatorsTiger Wang1-3/+3
2014-10-23Merged IniFile into main MCS sources.Mattes D1-1/+1
2014-10-23En masse NULL -> nullptr replaceTiger Wang1-35/+35
2014-10-21Missing space fix.Alexander Harkness1-1/+1
2014-10-20En masse NULL -> nullptr replaceTiger Wang1-35/+35
2014-10-20Migrated cSleep and cTimer to std::chronoTiger Wang1-16/+11
2014-10-19Migrated random generators to std::randomTiger Wang1-1/+0
2014-10-15Functions in cPluginManager get references instead of pointers.Mattes D1-5/+5
2014-10-13cWorld: Fixed scheduler.Mattes D1-9/+18
Fixes #1534. Added a test case into the Debuggers plugin.
2014-10-13Fixed style.Mattes D1-2/+4
2014-10-12Fix styleworktycho1-2/+2
2014-10-12Update World.cppworktycho1-1/+1
2014-10-11Fix lambda captureworktycho1-1/+2
2014-10-10Moved a few objects to unique_ptrtycho1-29/+24
2014-10-06Stream 4 chunks per tick. Added priority.Howaner1-4/+4
2014-10-02Optimized chunk loaderHowaner1-1/+0
2014-09-30Fixed iron trapdoorsHowaner1-2/+2
2014-09-29World: Fixed chunk generation by plugins.madmaxoft1-1/+1
ChunkWorx was broken, it was trying to generate chunks that were not properly marked as InQueue.
2014-09-26Fixed players custom name in 1.8Howaner1-2/+2
2014-09-26Improved searching for spawn.madmaxoft1-3/+14
Won't spawn on a small island inside ocean anymore.
2014-09-18Exported player list states to extra functions.Howaner1-3/+75
2014-09-17Added first test to show the object can be createdTycho1-3/+3
2014-09-16IncrementalRedstoneSimulator now has no dependencies on cChunkTycho1-1/+1
2014-09-12Fixed farmland issues.Howaner1-1/+1
2014-09-11Possibly decoupled IncrementalRedstoneSimulator from the rest of the serverTycho1-3/+3
THis wil hopefully allow for unit testing
2014-09-111.8: Added ParticleEffect packet.Howaner1-2/+2
2014-09-09Actually set defaultworktycho1-0/+1
2014-09-09Added the player list to the 1.8 protocol.Howaner1-3/+3
2014-09-08use the correct ASSERTworktycho1-2/+2
2014-09-08FIxed a couple more warningsTycho1-2/+8
2014-09-08TimeOfDay does not need to be an Int64Tycho1-1/+1
2014-09-08Fixed a few compile warningsTycho1-9/+14
2014-09-05Rewritten chunk status to specify whether the chunk is in queue.Mattes D1-18/+20
This fixes #1370.
2014-09-03Added cWorld::ForEachEntityInBox()madmaxoft1-0/+9
2014-09-03hopefully the last commit for removing y-coord from chunks. :)LO1ZB1-11/+2
2014-09-02Added SetCustomName() to players.Howaner1-5/+9
2014-08-29me being stupidLO1ZB1-1/+1
2014-08-29add commentsLO1ZB1-1/+2
2014-08-29fix chunk regeneratingLO1ZB1-0/+8
2014-08-29Rewritten block entity loading.Mattes D1-2/+4
Block entities are now loaded based on the blocktype at the coords they specify; before loading, their type ("id" NBT tag) is checked. The chunk now expects that all block entities given to it via cChunk::SetAllData() have their valid blocktype; asserts if they don't. Fixes #1354.
2014-08-29Improved explosion damageTiger Wang1-3/+6
2014-08-28remove y-coord from chunksLO1ZB1-11/+10
2014-08-22World: Report chunk count for the spawn area.Mattes D1-1/+1
2014-08-21Added cWorld initializers.Mattes D1-0/+30
2014-08-19Code formatting fixes.Howaner1-0/+1
2014-08-14CheckBasicStyle checks the src folder as well.madmaxoft1-1/+1
2014-08-11Exported daylight cycle flag to the protocol.Howaner1-8/+1
2014-08-10Added a comment and simplified code.Howaner1-5/+2
2014-08-10Added IsDaylightCycleEnabled saving.Howaner1-0/+2
2014-08-10Renamed functions.Howaner1-3/+3
2014-08-08Renamed m_DoDaylightCycle to m_CycleDaylight.Howaner1-3/+3
2014-08-07Added SetDoDaylightCycle() and IsDaylightCycleEnabled() to cWorld.Howaner1-17/+32
I need this for a GameRule plugin.
2014-08-01Fixed issues with autocomplete and time loadingTiger Wang1-7/+33
* Fixes #1274
2014-07-31Capitalised "incremental"Howaner1-4/+4
2014-07-31Added a default value to WaterSimulator, LavaSimulator and RedstoneSimulator.Howaner1-2/+2
2014-07-30Exported the beacon.Howaner1-0/+10
2014-07-29Slight cleanup after portalsTiger Wang1-2/+4
2014-07-27Add "Broadcasting" settings to world.iniHowaner1-0/+3
2014-07-24Added a queue for setting chunk data.madmaxoft1-32/+53
Fixes #1196.
2014-07-24Made the cWorld::SpawnMobFinalize function more readable.STRWarrior1-0/+10
2014-07-23SuggestionsTiger Wang1-6/+3
2014-07-22Speed improvements, crash fixes, & self-suggestionsTiger Wang1-11/+6
2014-07-22Suggestion and failed merge fixTiger Wang1-0/+5
2014-07-21SuggestionsTiger Wang1-56/+79
2014-07-21Style: Normalized to no spaces before closing parenthesis.madmaxoft1-1/+1
2014-07-21Style: Normalized spaces after if, for and while.madmaxoft1-3/+3
2014-07-20Bug and crash fixesTiger Wang1-8/+16
* Fixes end portals' solidity * Fixed crashes to do with multithreading and removing an entity from the wrong world * Fixed crashes due to bad merge * Fixed crashes due to an object being deleted twice * Simplified cWorld::Start() and added comments to configuration files
2014-07-19Fixed style: spaces after commas.madmaxoft1-1/+1
2014-07-19World.cpp: fixed not all enum fields being used in m_Dimension switcharchshift1-1/+2
2014-07-18Fix failed merge and other issuesTiger Wang1-10/+6
2014-07-17Normalized comments.madmaxoft1-10/+10
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-17Fixed spaces around single-line comments.madmaxoft1-17/+15
There should be at least two spaces in front and one space after //-style comments.
2014-07-17Fixed basic whitespace problems.madmaxoft1-5/+5
Indenting by spaces and alignment by spaces, as well as trailing whitespace on non-empty lines.
2014-07-15Fixed FindClosestPlayerTycho1-3/+6
2014-07-14Player properties are now retrievedTiger Wang1-1/+1
2014-07-13Made CreateProjectile a pointerworktycho1-1/+1
2014-07-13Changed BroadcastSoundEffect function to take floating pos.Howaner1-3/+3
2014-07-10Implemented support for forced chunk ticking.madmaxoft1-0/+9
Fixes #1160.
2014-07-09Fixed arrow collection animationTiger Wang1-9/+0
* Fixed piston extension non-solidness
2014-07-07Implemented trapped chests & othersTiger Wang1-4/+13
+ Added trapped chests * Fixed a bunch of bugs in the redstone simulator concerning wires and repeaters * Other potential bugfixes
2014-07-04Removed world-saving log messages.madmaxoft1-2/+0
Ref.: http://forum.mc-server.org/showthread.php?tid=1518
2014-06-27Added generic entity-collecting.Mattes D1-1/+10
Now any cEntity can be collected, not only cPickups. This should help PR #1098.
2014-06-21Fixed invalid iteratorsTiger Wang1-10/+4
2014-06-19Nullify deleted pointers.archshift1-6/+9
2014-06-12Fixed order of initalisationTycho1-3/+4
2014-06-12Portals animate and delay correctlyTiger Wang1-3/+6
2014-06-10Portal improvements and suggestionsTiger Wang1-5/+13
2014-06-10Fixed a race condition when adding a player to a world.madmaxoft1-4/+1
2014-06-08Fixed deadlock when moving players to other worlds.Mattes D1-29/+82
Fixes #1039, fixes #851
2014-06-08Added queue for adding entities to cWorld.Mattes D1-1/+27
This alone doesn't work properly yet, further changes to cPlayer are needed.
2014-06-07Fixed Time of dayworktycho1-1/+1
2014-06-05SuggestionsTiger Wang1-9/+2
2014-06-04Time and weather is saved, part of #1058Tiger Wang1-0/+12
Also fixed unreliability in Health and LootPickup loading.
2014-06-04Configurable portalsTiger Wang1-0/+26
2014-05-31Implemented end and nether portalsTiger Wang1-0/+31
2014-05-29Changed block send queue to use vectorsTiger Wang1-11/+10
As suggested by @worktycho.
2014-05-25Hopefully fixed piston duplication issuesTiger Wang1-2/+46
* Fixes #879 * Fixes #714
2014-05-09World pre-generation distance is settable in world.ini.Mattes D1-2/+6
2014-05-09Fixed MSVC 64-bit build warnings.Mattes D1-4/+3
2014-05-08Fixed MSVC 64-bit build warnings.Mattes D1-4/+3
2014-04-26Moved the weather picker out of TickWeather(), squashing a warning and improving readability.archshift1-24/+26
2014-04-26Removed impossible default case.archshift1-6/+0
Squashed a warning.
2014-04-26Removed extraneous switch{} in Start()archshift1-15/+0
Squashed a warning.
2014-04-25Small changes; warning fixing.archshift1-6/+3
2014-04-18Did some static analysis, fixed some bugs and optimized a lot of codejfhumann1-5/+5
2014-04-18Fixed #904Tiger Wang1-0/+5
2014-04-15Rewrote redstone powering to use power levelsTiger Wang1-1/+1
2014-04-12Simplified pickup speed randomisationTiger Wang1-4/+3
2014-04-05Fixed double projectile spawning.madmaxoft1-1/+0
Two spawn packets were sent per projectile.
2014-03-25Removed unused constants.madmaxoft1-3/+0
DeadlockDetect reads the value from the ini file, and world lighting has a separate queue now.
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 Barney1-1/+2
Also had to undefine TOLUA_TEMPLATE_BIND a couple of times.
2014-03-20Fixed code style after recent merge.madmaxoft1-30/+28
2014-03-20Added bracesTiger Wang1-0/+2
2014-03-20ENUMified shrapnel levelTiger Wang1-3/+3
2014-03-18Added levels of shrapnelTiger Wang1-1/+3
2014-03-14Fixed a warning.madmaxoft1-3/+3
2014-03-12Added additional macros to support the MSVC size_t format and changed all formats to use the macrosTycho1-2/+2
2014-03-11Fixed more Format issuesTycho1-2/+2
2014-03-11Unified Vector classesandrew1-1/+0
2014-03-10Shrapnel now configurableTiger Wang1-2/+1
2014-03-09Improved formatting of username tabcompleteTiger Wang1-7/+7
2014-03-08Change TNT Fuse to ticksHowaner1-2/+2
2014-03-07Add Lua Bindings for FlowerPotEntity.h and add documentation.Howaner1-2/+2
2014-03-07Add Flower PotsHowaner1-0/+9
2014-03-05Added extra awesomeness to TNTTiger Wang1-1/+5
+ TNT now has a chance of flinging FallingBlock entities around * Improved TNT damage * Improved TNT spawning visuals * Possible fix for 'SetSwimState failure' messages in debug
2014-03-05Implemented vanilla-like fluid simulatorandrew1-8/+18
2014-03-04Fixed an assert in map-loading.madmaxoft1-3/+1
The maps were loaded too soon, the world wasn't initialized yet.
2014-03-03Fixed previous weather changes.madmaxoft1-3/+3
cWorld::GetDefaultWeatherInterval() returns -1 for unknown weather.
2014-03-02Add cancelling to WeatherChanging event.Howaner1-13/+40
2014-03-02cBlockInfo now manages the respective cBlockHandlerandrew1-1/+1
2014-03-02More documentation (thanks to madmaxoft) and use GetBlockTypeMetaHowaner1-4/+8
2014-03-02Add Trapdoor Functions to cWorld and fix Trapdoor Redstone BugsHowaner1-0/+37
2014-02-27Implemented ballistic missiles (fireworks)Tiger Wang1-2/+2
+ Added fireworks
2014-02-23Rename SkullEntity to MobHeadEntityHowaner1-2/+2
2014-02-23Add Heads completelyHowaner1-0/+9
2014-02-23Maps: Improvementsandrew1-3/+3
2014-02-20Thread safe cMap managerandrew1-1/+2
2014-02-19Add BlockNewLeaves.h and rename Darkoac to DarkoakHowaner1-6/+6
2014-02-19Add new Trees (without Generator)Howaner1-0/+2
2014-02-19Rename SkullEntity to MobHeadEntityHowaner1-2/+2
2014-02-18Add Heads completelyHowaner1-0/+9
2014-02-18The cuboid for cWorld::SetAreaBiome() doesn't need sorting.madmaxoft1-1/+5
2014-02-18Added cWorld:SetAreaBiome() API function.madmaxoft1-0/+37
Fixes #675.
2014-02-17Map item handler; Fixed several bugsandrew1-8/+20
2014-02-15Removed the unnecessary LoopPlayersAndBroadcastChat() functions.madmaxoft1-1/+1
2014-02-15Implemented cCompositeChat.madmaxoft1-1/+19
This allows plugins to send composite chat messages, containing URLs, commands to run and cmdline suggestions. Fixes #678.
2014-02-14Send map when selectedandrew1-2/+43
2014-02-13IDCount Serializationandrew1-0/+54
2014-02-11Fixed formatting. Moved UnloadUnusedChunks from public to private.narroo1-0/+7
2014-02-11Fixed formatting of previous commit.narroo1-0/+5
2014-02-11More gcc warnings fixed.madmaxoft1-3/+3
2014-02-11Fixed bug #385. UnloadUnusedChunks now has the same interface asnarroo1-0/+10
SaveAllChunks. Meaning, QueueUnloadUnusedChunks and the supporting cTaskUnloadUnusedChunks has been added. Use QueueUnloadUnusedChunks from now on to prevent deadlocking.
2014-02-09Fixed compile and some warnings in MSVSTiger Wang1-2/+0
2014-02-08Initial ChunkStay code.madmaxoft1-12/+0
2014-02-08Fixed comment.STRWarrior1-1/+1
2014-02-07Renamed cRedstoneManager to cRedstoneSimulator and renamed cRedstoneSimulator to cIncrementalRedstoneSimulator (Might change later).STRWarrior1-12/+8
2014-02-07Implemented an easy way of adding new redstone simulators.STRWarrior1-3/+37
Also added a "noop" redstone simulator that does the same as the fluid version.
2014-02-07Moved Gamemode setting into General root tagTiger Wang1-1/+1
2014-02-07Added sender name to PM if prefixes disabledTiger Wang1-1/+1
* Also moved the PVP setting into Mechanics
2014-02-07Improved chat messaging functionsTiger Wang1-4/+7
* Moved string manipulation into cClientHandle and therefore... + Added configuration option for prefixes. * Cleaned up code. * Updated documentation for API.
2014-02-05Fixed most of the reordering warningsTycho1-2/+2
2014-02-03Increased Type safety of BiomesTycho1-2/+2
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 APItonibm191-1/+1
2014-02-02Added IsBlockWaterOrIce()Tiger Wang1-1/+1
2014-02-02Revert "Added LOGREPLACELINE for line replacement"Tiger Wang1-5/+5
This reverts commit 7d03876a3e11aedff0201a8330bfdb2b5523fc5e.
2014-02-02Revert "Improved code"Tiger Wang1-2/+0
This reverts commit d8aa0b0ec7a2ebea2fc157c623ae8cd7d0b6ba1c.
2014-02-02Possibly fixed #618Tiger Wang1-2/+2
2014-02-01Added checks for ice into IsBlockWater()Tiger Wang1-1/+1
* This fixes players spawning in vast oceans of ice, as opposed to the previous water
2014-02-01Changed pointers to referencesTycho1-4/+3
2014-01-31Improved codeTiger Wang1-0/+2
* Fixed some issues * Fixed standard violation
2014-01-30Attempt at implementing #563tonibm191-2/+1
Not tested (I don't have RasPi)
2014-01-29Added LOGREPLACELINE for line replacementTiger Wang1-5/+5
2014-01-27The world can now be configured wether farmers should be able to harvest crops.STRWarrior1-0/+1
2014-01-26Refactored cBlockHandler::OnUse and dependentsTycho1-88/+5
2014-01-25Did what xoft recommendedTiger Wang1-1/+1
2014-01-25Mob bugfixesTiger Wang1-2/+11
* 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-23Command block fixes 2andrew1-1/+26
2014-01-22cWorld now saves/loads the scoreboardandrew1-0/+9
2014-01-21Scoreboard protocol supportandrew1-1/+56
2014-01-19Changed the cWorld::ScheduleTask() signature.madmaxoft1-11/+21
Now it takes the delay in ticks as an argument, and a cTask descendant as the task to run. Lua API has been updated similarly.
2014-01-18Fixed iterators bugTycho1-2/+1
2014-01-18Removed the particles when a mob spawns.STRWarrior1-3/+0
2014-01-18switched to using m_WorldAge rather than m_TickIDTycho1-6/+3
2014-01-18Basic command block implementationandrew1-0/+9
2014-01-17Added user setting compression factorTycho1-1/+3
2014-01-17Increased tick count to longTycho1-2/+2
2014-01-17Implemented xsofts suggestion for a saturating counter in the schedulerTycho1-5/+5
2014-01-14added cWorld::ScheduleTask FunctionTycho1-0/+39
ScheduleTask schedules a SceduledTask object to be run x ticks in the future. In is exported to lua, fixes #150
2014-01-12Renamed cEmptyMinecart to cRideableMinecartSTRWarrior1-2/+2
2014-01-12EmptyMinecarts should be able to get a block inside of them.STRWarrior1-3/+3
2014-01-12Added cWorld::SpawnMinecart.STRWarrior1-0/+24
2014-01-10Decoupled cChunkGenerator from cWorld and cRoot.madmaxoft1-1/+77
Now the chunk generator can be used by other projects without depending on the two hugest structures in MCS.
2014-01-02rewrote queue not to use promises for waitsTycho Bickerstaff1-1/+4
2013-12-31fixed warnings in World.cppTycho Bickerstaff1-1/+3
2013-12-22Implented BroadcastParticleEffectSTRWarrior1-0/+9
2013-12-20Fixed the rest of constructor reorders.madmaxoft1-6/+6
2013-12-16Removed some old cRedstone remnantsTiger Wang1-24/+0
2013-12-15This adds the cWorld::BroadcastEntityEffect and cWorld::BroadcastRemoveEntityEffect functions.STRWarrior1-0/+18
2013-12-14Implemented note block playing and fixed wireTiger Wang1-0/+9
Game of Thrones music in Minecraft, here I come!
2013-12-10Improved pickups spawning speed againTiger Wang1-4/+4
2013-12-08Now spawn points will not be in deep oceans or rivers etc.STRWarrior1-1/+1
2013-12-08Moved bindings-related to a Bindings subfolder.madmaxoft1-2/+1
Ref.: #407
2013-12-08Bonemeal has particles, fixes #393Tiger Wang1-0/+6
2013-12-07Added a SpawnFallingBlock function so plugins can make other blocks fall.STRWarrior1-0/+12
2013-12-07Renamed animation functionTiger Wang1-2/+2
Renamed BroadcastPlayerAnimation to BroadcastEntityAnimation. Not just players can have animations, you know.
2013-12-06Fixed duplication glitch with QueueSetBlockTiger Wang1-2/+2
If a coordinate was queued, and then the block there was broken, it would reappear: double items! Also now just sets meta if previous and current blocktypes matched.
2013-12-06Added pickup invalid item checkTiger Wang1-0/+11
They aren't spawned at all if their itemtype isn't valid; possibly fixes the client crashing with bad pickups.
2013-12-04Lava can spawn fire.madmaxoft1-0/+1
Settable in world.ini, lava can spawn fire to fuel blocks near it. Fix #65.
2013-11-30Changed cBlockHandler->OnUpdate() to use cChunk directly.madmaxoft1-2/+2
2013-11-30Explicitly set spawnpoint fixes.madmaxoft1-20/+11
The value names are case-insensitive. The debug message is printed only once.
2013-11-30Added the real tick duration to the OnWorldTick hook.madmaxoft1-9/+10
2013-11-27Made TNT pickups spawning chance 25%Tiger Wang1-1/+1
2013-11-26Fixed another one.Alexander Harkness1-1/+1
2013-11-24Attempt to fix compilationTiger Wang1-1/+1
2013-11-24Moved source to srcAlexander Harkness1-0/+0
2013-11-20Added cWorld:ForEachBlockEntityInChunk() and cWorld:DoWithBlockEntityAt() functions.madmaxoft1-0/+18
Also exported them to the Lua API.
2013-11-10Bundled fixes [SEE DESC]Tiger Wang1-2/+1
* Fixed compiler warning in Monster.cpp * Future proofed particle effects * Improved pickups, made less jittery
2013-11-10Bundled fixes [SEE DESC]Tiger Wang1-3/+5
* 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-04Autogeneration of settings.ini and webadmin.iniTiger Wang1-3/+3
Fixes issue #75
2013-10-30Fixed a compiler warning.madmaxoft1-26/+31
Also updated code to match our style.
2013-10-29Changes based on madmaxoft's nitpicker notes.Samuel Barney1-0/+1
2013-10-29Update to allow the light map to remain the same, but allow alteration of sky light values based on time.Samuel Barney1-1/+31
2013-10-25cIniFile doesn't store filename internally anymore.madmaxoft1-3/+3
2013-10-24Renamed cMonster::GetSpawnRate() to GetSpawnDelay().madmaxoft1-2/+2
2013-10-24Pickups now have collection delay when vomitedTiger Wang1-4/+4
Implements FS#394.
2013-10-22Temporary fix for world not locking chunkmap in TickMobs.madmaxoft1-0/+3
Reported as #283; this is a hotfix only.
2013-10-20Fixed memory leak in cMobFamilyCollecter.madmaxoft1-14/+18
2013-10-20Fixed memory leaks in cMobCensus, moved GetSpawnRate() to cMonster.madmaxoft1-20/+19
2013-10-20Fixed memory leaks in cMobSpawner.madmaxoft1-1/+1
2013-10-20Moved all MobTypesManager functions to cMonster.madmaxoft1-7/+7
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-11/+28
2013-10-18Adapted code style.madmaxoft1-7/+5
2013-10-14Removed reading default values from settings.ini for worlds.Samuel Barney1-10/+1
2013-10-14General fixes to get the new Monster spawning code working.Samuel Barney1-6/+17
Also wrote in some code to use the default settings for monsters located in settings.ini
2013-10-14Mobs no longer spawn up in the air.Samuel Barney1-0/+2
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-10-12Fixed and exported cWorld:QueueTask().madmaxoft1-1/+1
This implements #220.
2013-10-12Added more ghast spawning probabilitytonibm191-4/+4
2013-10-12Added extra linetonibm191-0/+1
2013-10-12Mob spawning changestonibm191-4/+24
Added EnderDragon, Blaze and Horse spawning.
2013-10-11Fifth round of fixesTiger Wang1-3/+7
* Enumerated Villager spawning
2013-10-09Second round of fixesTiger Wang1-1/+1
* Implemented suggestions
2013-10-09Moved cMakeDir::MakeDir to cFile::CreateFolder.madmaxoft1-2/+1
And exported to Lua.
2013-10-08Initial Metadata Commit [SEE DESC]Tiger Wang1-30/+47
+ Pigs, Minecarts, Sheep, Skeletons, Slimes, Villagers, Wolves, and Horses have metadata + Base code on taming wolves, shearing sheep, and taming horses + Sheep and horses have different colours when spawned
2013-09-21Linux compilation fix #3.madmaxoft1-2/+2
2013-09-18Fixed pickupsTiger Wang1-13/+2
2013-09-18Added moar mobs!Tiger Wang1-4/+16
+ Added dragons + Added golems + Added giants + Added horses + Added some missing items + Added missing spawn egg metas
2013-09-16cWorld:QueueTickBlock takes the delay in ticks.madmaxoft1-8/+9
2013-09-15Fixed doxycomments of cWorld plant-growing codemadmaxoft1-2/+2
2013-09-10Fixed codepage conversionmadmaxoft1-1/+1
2013-09-09Added a few changes [SEE DESC]Tiger Wang1-2/+2
* Revised pickup comments * SlotArea pickup tossing now reflects Player.cpp * Removed unneeded ItemShears comment (was working already) * Sand and gravel pickups spawn with correct speed
2013-09-08Adding mobtype filter inside world.inimgueydan1-8/+13
2013-09-08Adding glue to call everything done in last commits - now the mobs are spawningmgueydan1-138/+71
2013-09-08Disabeling current mob spawning and tickmgueydan1-4/+5
2013-09-07Adding mob census (sorry this is a big commit as work was done before git integration i couldn't split it more)mgueydan1-0/+5
2013-09-07relockating mobs includes (they probably will end somewhere else in order not to recompile world each time you update a mob)mgueydan1-23/+1
2013-09-07Renamed cWorld::DoExplosiontAt() to cWorld::DoExplosionAt()madmaxoft1-2/+2
2013-09-04Pickups spawn with correct speed and positionTiger Wang1-29/+11
Added a comment-space as well.
2013-08-24Slight performance improvement in cWorld::FindClosestPlayer()madmaxoft1-6/+3
2013-08-22Added skeleton code for projectile spawning.madmaxoft1-3/+25
2013-08-19Fixed WorldTickThread reporting wrong time durations for each tick.madmaxoft1-8/+16
This had caused food eating to fail and players unable to collect pickups on Linux.
2013-08-19Moved entities into the Entities subfolder.madmaxoft1-4/+4
2013-08-19Implemented the OnWorldTick hook.madmaxoft1-0/+3
Triggerred for each world every time it ticks, parameters are the cWorld and the previous tick length (a_Dt)
2013-08-18Implemented cWorld:QueueSetBlock(), as requested for delayed blocksetting.madmaxoft1-0/+9
Untested yet, so might not work.
2013-08-18Removed SetServerBlock griefing.madmaxoft1-15/+0
2013-08-18Properly fixed piston non-animationTiger Wang1-5/+23
Fixes #57
2013-08-18Enhancements to Tabcompletion and Compile FixTiger Wang1-11/+7
Tab complete now finds the last word and matches accordingly, with a 20% increase in speed! Fixed missing comma breaking compilation
2013-08-18Bugfix Update [SEE DESC}Tiger Wang1-4/+11
Added stained clay, coal block, and hardened clay Block IDs Added stained clay and carpet block Metas Fixed bug with sticky retract bailing out but not unsetting arm Fixed autocomplete not working when not at the first character, fixes #64 Added furnace recipes for hardened clay and coal and coal blocks
2013-08-16Replaced E_ENTITY_TYPE_XXX with cMonster::mtXXX.madmaxoft1-61/+79
Also slightly improved the spawning algorithm.
2013-08-14Generation and simulation defaultsTiger Wang1-2/+2
...are no longer set, instead, the server operator is told to set them.
2013-08-14Fixed world's a_Dt parameter getting time values in wrong units.madmaxoft1-1/+1
2013-08-14Clients are deleted when the world is stopped.madmaxoft1-0/+11
This fixes #92.
2013-08-14Fixed crashes in world's clientlist manipulatorsmadmaxoft1-2/+22
2013-08-14Buncha bugfixes [SEE DESC]Tiger Wang1-1/+1
Fixed generation values not being written Fixed piston being able to push water Fixed ice creating a non-source block (still doesn't update though) Removed problematic piston code
2013-08-13Clients are now ticked in cServer first, then in cWorld once they get assigned a world.madmaxoft1-8/+58
2013-08-12Removed cServer::BroadcastChat() and cServer::SendMessage().madmaxoft1-1/+1
These two functions make it difficult to move to the new ticking system, and they aren't used anyway. If so required, they can be emulated by ForEachWorld / ForEachPlayer calls.
2013-08-11Now Endermans spawn in The Endtonibm191-0/+7
2013-08-11Added cWorld:QueueSaveAllChunks() function for saving chunks asynchronously.madmaxoft1-1/+55
The cWorld:SaveAllChunks() is therefore deprecated in the API and will be removed soon, use QueueSaveAllChunks() instead.
2013-08-11Each world now ticks in a separate thread.madmaxoft1-97/+107
2013-08-11Moved MaxPlayers and Description from cWorld to cServer.madmaxoft1-23/+50
Also started creating a new cWorld::cTickThread class, but not used yet.
2013-08-09Added OnExploding() and OnExploded() hooks.madmaxoft1-4/+10
As requested in FS 413, with extra parameters: World, BlockX, BlockY, BlockZ, Size, CanCauseFire, Source, SourceData OnExploding() can return 3 values: StopHook, CanCauseFire, ExplosionSize
2013-08-08Addeed OnSpawningEntity, OnSpawnedEntity, OnSpawningMonster, OnSpawnedMonster hooks.madmaxoft1-2/+12
As requested in FS 418.
2013-08-06Now zombies spawn in Overworld during nighttonibm191-4/+3
2013-08-04cWorld: Added a self-test for LineBlockTracer, disabled by an #ifdef.madmaxoft1-0/+57
2013-08-03Added cWorld::DoWithChunk() function.madmaxoft1-0/+9
This will be used by the blocktracers to gain direct access to chunk data.
2013-07-31Implemented the actual tab completion for commands and playernames.madmaxoft1-6/+10
Each command is reported only if the player has the permission to use it.
2013-07-30Tab completion packet is handled and sent.madmaxoft1-0/+14
This only handles the network comm and the overall design logic, the actual completion is not yet implemented, only dummy values are returned for now.
2013-07-07Mobs are assigned MaxHealth from monsters.ini; reading monsters.ini doesn't need settings.ini values anymore.madmaxoft@gmail.com1-0/+1
Fixes FS #409. git-svn-id: http://mc-server.googlecode.com/svn/trunk@1662 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-07-07Improved function names for protocol packet sending; alpha-sorted the function listsmadmaxoft@gmail.com1-80/+80
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1659 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-07-03Fixed player moving between worlds.madmaxoft@gmail.com1-0/+2
Fixes FS #407. Also fixes a few possible deadlocks between SocketThreads and TickThread git-svn-id: http://mc-server.googlecode.com/svn/trunk@1641 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-07-01Rewritten entity-on-fire management ("forever on fire" bugs)madmaxoft@gmail.com1-25/+27
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-41/+31
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-06-24The weather doesn't change if the dimension is not Overworld.nielsbreu@gmail.com1-0/+6
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1624 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-06-22Added the End height and composition generators.madmaxoft@gmail.com1-2/+3
Also made the dimension in world.ini specifiable by a string. Exported StringToDimension() and StringToBiome() to Lua API. git-svn-id: http://mc-server.googlecode.com/svn/trunk@1621 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-06-21Dispensers dispense primed TNTmadmaxoft@gmail.com1-2/+2
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1617 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-06-21Simulators are woken up after an explosion.madmaxoft@gmail.com1-0/+10
Fixes FS #391 git-svn-id: http://mc-server.googlecode.com/svn/trunk@1615 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-06-18More TNT fixes.madmaxoft@gmail.com1-3/+15
Chain-reaction TNTs are spawned in proper coordinates (FS #390) Centralized Primed TNT entity spawning and made available to the plugins. Internal changes for better TNT performance. git-svn-id: http://mc-server.googlecode.com/svn/trunk@1604 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-06-18TNT fixes.madmaxoft@gmail.com1-2/+2
Other blocks can be placed next to TNT. Explosions activate nearby TNT blocks. TNT doesn't destroy bedrock, obsidian and liquid blocks. Server doesn't crash when a TNT (or other entity) leaves the valid Y range. git-svn-id: http://mc-server.googlecode.com/svn/trunk@1603 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-06-15First attempt at fixing the inter-threading deadlocks between the tick thread and the socket threadmadmaxoft@gmail.com1-0/+12
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1591 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-06-12Added cWorld::SetSignLines(), re-exported to Lua manually to avoid ghost return valuesmadmaxoft@gmail.com1-4/+17
FS #364 git-svn-id: http://mc-server.googlecode.com/svn/trunk@1582 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-05-26Implemented droppersmadmaxoft@gmail.com1-0/+36
Added a common ancestor class "DropSpenser" that has the common code for dropper and dispenser and is Lua-accessible, too. The Debuggers plugin now triggers both droppers and dispensers when rclking them with a redstone torch. git-svn-id: http://mc-server.googlecode.com/svn/trunk@1514 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-05-12Temporarily set all pickups to spawn in the middle of the block from which they fall.madmaxoft@gmail.com1-9/+25
(Additional fix for FS #338) git-svn-id: http://mc-server.googlecode.com/svn/trunk@1478 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-05-12cWorld: Temporary fix for FS #338madmaxoft@gmail.com1-0/+9
The pickups get spawned with zero speed, not to mess up their physics simulation. Marked as temporary, remove when physics are completed. git-svn-id: http://mc-server.googlecode.com/svn/trunk@1474 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-05-04Explosion: Switched from a cube to a sphere. Implemented using cBlockArea and moved block changing code to ChunkMapkeyboard.osh@gmail.com1-31/+4
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1441 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-04-19Slight performance improvements in cWorld::DoExplosiontAt()madmaxoft@gmail.com1-3/+5
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1397 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-04-19Fixed Linux compilation, slight code cleanupmadmaxoft@gmail.com1-25/+25
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1396 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-04-18Initial implementation of explosions and TNT blockkeyboard.osh@gmail.com1-0/+62
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1392 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-04-13Proper entity removal functionsmadmaxoft@gmail.com1-10/+10
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1386 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-102/+55
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1385 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-04-05Added carrots and potatoes handling, bonemealing and proper lighting.madmaxoft@gmail.com1-3/+31
FS #166 git-svn-id: http://mc-server.googlecode.com/svn/trunk@1359 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-04-01Proper fix for FS #347. Also unification of ticking block entities.madmaxoft@gmail.com1-11/+11
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1348 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-04-01Hotfix for FS #347.madmaxoft@gmail.com1-7/+13
This is not meant to be a permanent solution, but should provide insight into why the issue happens. git-svn-id: http://mc-server.googlecode.com/svn/trunk@1347 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-03-18Added support for the packet #28 (0x1C): ENTITY_VELOCITYkeyboard.osh@gmail.com1-0/+8
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1283 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-03-14Removed the Classic fluid simulator, it was too unstable (2nd attempt)madmaxoft@gmail.com1-2/+2
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1275 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-03-14Removed the Classic fluid simulator, it was too unstablemadmaxoft@gmail.com1-17/+7
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1274 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-03-14Added a Noop fluid simulator that doesn't do anything with the fluid (fluid doesn't spread at all, behaves like a normal block)madmaxoft@gmail.com1-0/+10
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1272 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-03-14Added a Vaporize fluid simulator that simply replaces fluid blocks with air.madmaxoft@gmail.com1-0/+8
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1270 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-03-11Initial nether composition generatormadmaxoft@gmail.com1-0/+16
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1266 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-03-03Player can sit in minecarts (but not move them yet)madmaxoft@gmail.com1-41/+50
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1249 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-03-02Rewritten SandSimulator to use direct chunk access; and sand falling on torches now creates a pickup.madmaxoft@gmail.com1-5/+5
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1240 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-03-01New fire simulator, fully rewritten to the new scheme of things, directly accessing chunk data.madmaxoft@gmail.com1-2/+2
http://forum.mc-server.org/showthread.php?tid=617&pid=6626#pid6626 git-svn-id: http://mc-server.googlecode.com/svn/trunk@1233 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-02-28Converted simulators to take cWorld reference instead of a pointermadmaxoft@gmail.com1-6/+6
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1228 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-02-28Simulators now have direct access to the cChunk object in the WakeUp() callmadmaxoft@gmail.com1-1/+9
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1227 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-02-13Added HOOK_WEATHER_CHANGING.madmaxoft@gmail.com1-88/+58
http://www.mc-server.org/support/index.php?do=details&task_id=299 git-svn-id: http://mc-server.googlecode.com/svn/trunk@1210 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-02-01Simplified cWorld::FindAndDoWithPlayer()madmaxoft@gmail.com1-11/+8
It should still work the same - call the callback for the player with the most similar name. git-svn-id: http://mc-server.googlecode.com/svn/trunk@1184 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-01-12Merged branch "branches/hooks" into "trunk".madmaxoft@gmail.com1-46/+36
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1139 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-01-04Floody fluid simulator can create sourceblocks (configurable in World.ini)madmaxoft@gmail.com1-5/+4
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1119 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-12-26Dispensers can dispense items and liquids nowluksor111@gmail.com1-0/+18
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1105 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-1/+2
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1096 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-12-17Fixed time calculation in cWorld::Tick()madmaxoft@gmail.com1-2/+2
Should fix chunk saving bug in http://forum.mc-server.org/showthread.php?tid=434&pid=5663#pid5663 git-svn-id: http://mc-server.googlecode.com/svn/trunk@1079 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-11-16Android: Made the initial pre-calculated spawn area smallerfaketruth1-1/+1
Android: Fixed FastNBT Android: Fixed level.dat reading/writing GroupManager uses groups.example.ini as default WebAdmin uses webadmin.example.ini as default git-svn-id: http://mc-server.googlecode.com/svn/trunk@1049 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-11-11Removed an unused obsolete function chain - cWorld::GetChunkBlockData()madmaxoft@gmail.com1-9/+0
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1036 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-11-01Refactored the world time.madmaxoft@gmail.com1-57/+40
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-11-01Added Bats and Witches.luksor111@gmail.com1-0/+4
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1021 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-10-28Fixed gcc compilationmadmaxoft@gmail.com1-1/+1
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1017 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-10-28Added cWorld:SpawnMob(PosX, PosY, PosZ, EntityType) to Lua APImadmaxoft@gmail.com1-10/+59
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1014 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-10-26Fixed a valgrind warning in BlockDirt.madmaxoft@gmail.com1-4/+4
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1011 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-10-25Fixed up a few valgrind warningsmadmaxoft@gmail.com1-7/+8
( http://forum.mc-server.org/showthread.php?tid=598&pid=5071#pid5071 ) git-svn-id: http://mc-server.googlecode.com/svn/trunk@1010 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-10-21Top blocks are now snowed over, either normally, or in deep snow (patch contributed by funmaker, Luksor and Sebi)madmaxoft@gmail.com1-0/+1
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1000 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-10-21Added jukeboxes (patch contributed by Luksor)madmaxoft@gmail.com1-2/+11
git-svn-id: http://mc-server.googlecode.com/svn/trunk@994 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-10-20Made cWorld's block query functions more orthogonal, added GetBlockInfo() returning all info on a block.madmaxoft@gmail.com1-0/+18
git-svn-id: http://mc-server.googlecode.com/svn/trunk@986 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-10-15Fixed DelayedFluidSimulator.madmaxoft@gmail.com1-3/+6
Floody fluid simulator is now woken up properly across chunk borders. git-svn-id: http://mc-server.googlecode.com/svn/trunk@966 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-10-14Floody fluid sim: reads params from world.ini; water and lava react together into cobblestone / stone / obsidianmadmaxoft@gmail.com1-5/+8
git-svn-id: http://mc-server.googlecode.com/svn/trunk@965 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-10-14Initial Floody fluid simulator.madmaxoft@gmail.com1-13/+13
Can spread, cannot dry. git-svn-id: http://mc-server.googlecode.com/svn/trunk@963 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-10-13Preparation for multiple fluid simulators.madmaxoft@gmail.com1-11/+54
Moved all simulators into a subfolder. Replaced cWaterSimulator and cLavaSimulator with a generic cFluidSimulator. Moved original fluid simulation into cClassicFluidSimulator. Fluid simulator parameters (MaxHeight, Falloff) are read from the world.ini file (can have nether-like lava with lower falloff) git-svn-id: http://mc-server.googlecode.com/svn/trunk@956 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-10-13Added delayed ticking to Lua APImadmaxoft@gmail.com1-24/+41
git-svn-id: http://mc-server.googlecode.com/svn/trunk@953 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-10-10Added an option to disable/enable PVP on a per world basisfaketruth1-1/+2
git-svn-id: http://mc-server.googlecode.com/svn/trunk@944 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-10-06Completely removed the old (buggy) redstone simulator.madmaxoft@gmail.com1-10/+5
git-svn-id: http://mc-server.googlecode.com/svn/trunk@937 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-10-06BlockArea writing support (BlockTypes with BlockMeta only)madmaxoft@gmail.com1-0/+9
git-svn-id: http://mc-server.googlecode.com/svn/trunk@933 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-10-03Fixed saplings not growing into treesmadmaxoft@gmail.com1-1/+1
git-svn-id: http://mc-server.googlecode.com/svn/trunk@924 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-10-03Moved blockticking into blockhandler classes.madmaxoft@gmail.com1-2/+20
Also slightly refactored the variable / argument names (BlockID is deprecated, use BlockType instead) git-svn-id: http://mc-server.googlecode.com/svn/trunk@921 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-09-29Beds can be slept in now (it doesn't change the time though)faketruth1-0/+9
git-svn-id: http://mc-server.googlecode.com/svn/trunk@911 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-09-29Unified folder name-casingmadmaxoft@gmail.com1-1/+1
git-svn-id: http://mc-server.googlecode.com/svn/trunk@902 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-09-25Added the block dig animation packet (patch contributed by l0udPL)madmaxoft@gmail.com1-0/+9
git-svn-id: http://mc-server.googlecode.com/svn/trunk@892 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-09-24Source files cleanup: The rest of the files renamed.madmaxoft@gmail.com1-18/+18
git-svn-id: http://mc-server.googlecode.com/svn/trunk@887 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-09-23Source files cleanup: OSSupport-related files in a separate subfolder, renamed.madmaxoft@gmail.com1-1/+1
git-svn-id: http://mc-server.googlecode.com/svn/trunk@885 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-09-23Source files cleanup: Removed unused cBlockToPickupmadmaxoft@gmail.com1-1/+0
git-svn-id: http://mc-server.googlecode.com/svn/trunk@884 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-09-23Source files cleanup: Mobs-related files in a separate subfolder, renamed.madmaxoft@gmail.com1-16/+19
git-svn-id: http://mc-server.googlecode.com/svn/trunk@883 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-09-23Source files cleanup: Generating-related files in a separate subfoldermadmaxoft@gmail.com1-2/+1
git-svn-id: http://mc-server.googlecode.com/svn/trunk@881 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-09-11Merged in a patch for sounds by l0udPLmadmaxoft@gmail.com1-0/+9
http://forum.mc-server.org/showthread.php?tid=434&pid=4564#pid4564 git-svn-id: http://mc-server.googlecode.com/svn/trunk@858 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-09-02Next iteration on the 1.3.2 protocol. Still no good, but sometimes it just gets through. For your testing pleasures ;)madmaxoft@gmail.com1-9/+0
git-svn-id: http://mc-server.googlecode.com/svn/trunk@819 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-09-01Added a Player parameter to OnUpdatedSign and OnUpdatingSign Lua callbacks and to the cWorld:UpdateSign method (http://forum.mc-server.org/showthread.php?tid=464&pid=4393#pid4393)madmaxoft@gmail.com1-3/+3
git-svn-id: http://mc-server.googlecode.com/svn/trunk@814 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-08-31Progress on the 1.3.2 protocol.madmaxoft@gmail.com1-2/+2
Sometimes the client lets the player through, but most of the times the connection breaks for no apparent reason. git-svn-id: http://mc-server.googlecode.com/svn/trunk@812 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-4/+4
git-svn-id: http://mc-server.googlecode.com/svn/trunk@802 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-08-27Cut out all packet handling to a separate cProtocol descendantmadmaxoft@gmail.com1-36/+19
git-svn-id: http://mc-server.googlecode.com/svn/trunk@796 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-08-26git-svn-id: http://mc-server.googlecode.com/svn/trunk@795 0a769ca7-a7f5-676a-18bf-c427514a06d6madmaxoft@gmail.com1-0/+9
2012-08-25cWorld doesn't use cPackets.madmaxoft@gmail.com1-40/+70
git-svn-id: http://mc-server.googlecode.com/svn/trunk@789 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-08-24cPickup doesn't use cPackets.madmaxoft@gmail.com1-0/+9
Also, Lua API change, OnCollectItem -> OnCollectPickup; first param is cPlayer to match other callbacks. git-svn-id: http://mc-server.googlecode.com/svn/trunk@786 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-4/+31
git-svn-id: http://mc-server.googlecode.com/svn/trunk@783 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-08-23Added a RateCompareString function to StringUtilsfaketruth1-0/+36
Created a preprocessor template (define) for DoWith* functions Exported cWorld::FindAndDoWithPlayer(), cRoot::FindAndDoWithPlayer() and cRoot::ForEachPlayer() to Lua Added a function FindAndDoWithPlayer to cRoot and cWorld. It takes a part of a player name and finds a single player based on that. Fixed Core's MOTD to contain the correct URL to the MCServer site Fixed Core /kick command Fixed Core's WebAdmin kick git-svn-id: http://mc-server.googlecode.com/svn/trunk@779 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-08-19Window, Chest, Furnace and Pawn are not using cPackets at allmadmaxoft@gmail.com1-0/+18
git-svn-id: http://mc-server.googlecode.com/svn/trunk@762 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-3/+74
git-svn-id: http://mc-server.googlecode.com/svn/trunk@761 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-08-19Another handful of packets rewritten.madmaxoft@gmail.com1-0/+18
Also changed cItem::m_ItemID into m_ItemType of type short. Easier handling. m_ItemID kept for compatibility reasons (Lua-interface etc.) git-svn-id: http://mc-server.googlecode.com/svn/trunk@756 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-08-18Chat packet handled in the new way; fixed missing packet sending for inventory slot.madmaxoft@gmail.com1-1/+19
Again, API change! cPlugin:OnChat() has had its parameters swapped, to match all the other callbacks - Player first, Message second git-svn-id: http://mc-server.googlecode.com/svn/trunk@751 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-08-15Added a true "all chunks saved" message for the save-all console command (FS #215)madmaxoft@gmail.com1-2/+2
git-svn-id: http://mc-server.googlecode.com/svn/trunk@738 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-08-03Fixed a few gcc pedantic warnings; made BLOCKTYPE an unsigned char type.madmaxoft@gmail.com1-8/+8
git-svn-id: http://mc-server.googlecode.com/svn/trunk@711 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-07-15A new Block handling system :olapayo94@gmail.com1-83/+56
It was really a lot of work :D Took me the complete weekend :D Would really like to here your opinion on this =) The aim of this is to put all the actions for one block in one place so it is not spread around the source. (ToPickup, Action in cWorld, Action in cChunk, Action here, action there :D) git-svn-id: http://mc-server.googlecode.com/svn/trunk@671 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-07-15World threads are stopped before the plugin mgr for clean exit (FS #228)madmaxoft@gmail.com1-3/+10
git-svn-id: http://mc-server.googlecode.com/svn/trunk@669 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-07-15Basic jungle trees with vines, efficient trees handling.madmaxoft@gmail.com1-10/+13
git-svn-id: http://mc-server.googlecode.com/svn/trunk@665 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-07-13Fixed case comparison - used the builtin functionmadmaxoft@gmail.com1-1/+1
git-svn-id: http://mc-server.googlecode.com/svn/trunk@663 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-07-13fixed /tp commandlapayo94@gmail.com1-1/+1
made cWorld::DoWithPlayer case insensitive git-svn-id: http://mc-server.googlecode.com/svn/trunk@662 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-07-02cBlockArea object added (with only minimal testing so far)madmaxoft@gmail.com1-2/+9
git-svn-id: http://mc-server.googlecode.com/svn/trunk@641 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-07-02Added the cWorld::DoWithPlayer() function and exported it in the Lua API. Removed the obsolete cWorld::GetPlayer() function.madmaxoft@gmail.com1-47/+10
git-svn-id: http://mc-server.googlecode.com/svn/trunk@639 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-06-19Made ForEach API safer to use, now supports Destroy()-ing objects, too ( http://forum.mc-server.org/showthread.php?tid=434&pid=3513#pid3513 )madmaxoft@gmail.com1-2/+4
git-svn-id: http://mc-server.googlecode.com/svn/trunk@633 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-06-17Removed the deprecated GetBlockEntity(), added several enumerators to replace it.madmaxoft@gmail.com1-10/+45
git-svn-id: http://mc-server.googlecode.com/svn/trunk@629 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-06-17Logs completion of chunk saving (FS #215)cedeel@gmail.com1-0/+1
git-svn-id: http://mc-server.googlecode.com/svn/trunk@628 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-06-16Added new hooks: UPDATING_SIGN and UPDATED_SIGN. The first one is capable of changing the sign text by returning the new four lines along with the bool valuemadmaxoft@gmail.com1-4/+13
git-svn-id: http://mc-server.googlecode.com/svn/trunk@622 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-06-16Exported cWorld::ForEachEntity and cWorld::ForEachEntityInChunk; no idea if they actually workmadmaxoft@gmail.com1-7/+33
git-svn-id: http://mc-server.googlecode.com/svn/trunk@620 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-06-15Only spawn nether mobs in nether biome.cedeel@gmail.com1-20/+26
git-svn-id: http://mc-server.googlecode.com/svn/trunk@613 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-06-14Renamed HOOK_WEATHER_CHANGE to HOOK_WEATHER_CHANGED, added the glue code for it to actually workmadmaxoft@gmail.com1-3/+3
git-svn-id: http://mc-server.googlecode.com/svn/trunk@610 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-06-14Attempt to bring sanity to newlines across systems.cedeel@gmail.com1-1845/+1845
git-svn-id: http://mc-server.googlecode.com/svn/trunk@606 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-06-14Added HOOK_WEATHER_CHANGE.cedeel@gmail.com1-0/+3
git-svn-id: http://mc-server.googlecode.com/svn/trunk@605 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-06-13Revamped the weather system.cedeel@gmail.com1-28/+69
git-svn-id: http://mc-server.googlecode.com/svn/trunk@599 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-06-09Fixed a forgotten ini file readmadmaxoft@gmail.com1-0/+1
git-svn-id: http://mc-server.googlecode.com/svn/trunk@590 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-06-09More ini settings save their defaultsmadmaxoft@gmail.com1-5/+5
git-svn-id: http://mc-server.googlecode.com/svn/trunk@588 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-06-09New IniFile functionality: read value and set default if it isn't present (GetValueSet() ); used by cWorldmadmaxoft@gmail.com1-29/+20
git-svn-id: http://mc-server.googlecode.com/svn/trunk@586 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-06-09Sugarcane and cactus max height can be set in world.ini.madmaxoft@gmail.com1-2/+2
git-svn-id: http://mc-server.googlecode.com/svn/trunk@585 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-06-09Plants growable by bonemeal are settable in the world.ini. Default matches vanilla MC.madmaxoft@gmail.com1-8/+67
git-svn-id: http://mc-server.googlecode.com/svn/trunk@584 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-06-09Cacti grow by themselves and by bonemealmadmaxoft@gmail.com1-0/+6
git-svn-id: http://mc-server.googlecode.com/svn/trunk@583 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-06-09Bonemeal is consumed in survival mode when used on growable blocksmadmaxoft@gmail.com1-6/+7
git-svn-id: http://mc-server.googlecode.com/svn/trunk@582 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-06-08Sugarcane grows and can be grown using bonemeal.madmaxoft@gmail.com1-0/+6
git-svn-id: http://mc-server.googlecode.com/svn/trunk@578 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-06-07Bonemeal works on crops, melons, pumpkins, saplings and grass. Plant growing has been refactored into separate functions callable from Lua, too.madmaxoft@gmail.com1-0/+88
git-svn-id: http://mc-server.googlecode.com/svn/trunk@573 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-06-07Repeaters' delays can be set by rclkmadmaxoft@gmail.com1-0/+9
git-svn-id: http://mc-server.googlecode.com/svn/trunk@570 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-7/+44
git-svn-id: http://mc-server.googlecode.com/svn/trunk@561 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-05-30Added support for SetNextBlockTick() function callable from Luamadmaxoft@gmail.com1-0/+9
git-svn-id: http://mc-server.googlecode.com/svn/trunk@527 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-05-29Added code for the chunks to manipulate their neighbors while ticking. Also added some basic farming support - melon and pumpkin growing code. Untested and untestable so far, will test and fix later.madmaxoft@gmail.com1-21/+75
git-svn-id: http://mc-server.googlecode.com/svn/trunk@518 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-05-25Merged the composable_generator branch into the trunkmadmaxoft@gmail.com1-234/+258
git-svn-id: http://mc-server.googlecode.com/svn/trunk@504 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-04-10Added the "/regeneratechunk" command that regenerates either current chunk or a chunk specified with x, z parameters. TODO: permissions - we don't want guests erasing our chunks!madmaxoft@gmail.com1-0/+12
git-svn-id: http://mc-server.googlecode.com/svn/trunk@454 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-03-24Reverted the previous commit - it is useless, since entities still depend heavily on cWorldmadmaxoft@gmail.com1-98/+0
git-svn-id: http://mc-server.googlecode.com/svn/trunk@428 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-03-23Encapsulated cWorld functions needed in cWorldStorage into an interface, so that cWorldStorage can actually be used outside of MC-Server (such as storage conversion tools and chunk analyzers)madmaxoft@gmail.com1-0/+98
git-svn-id: http://mc-server.googlecode.com/svn/trunk@427 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-03-22Fixed a deadlock by removing clients from all chunks upon their exit, not using the clients chunklists.madmaxoft@gmail.com1-2/+2
git-svn-id: http://mc-server.googlecode.com/svn/trunk@426 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-03-16Exposed a function to Lua to get a block's sky light valuefaketruth1-0/+9
git-svn-id: http://mc-server.googlecode.com/svn/trunk@416 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-03-14Unified the chunk data to use the BLOCKDATA datatype.madmaxoft@gmail.com1-0/+15
git-svn-id: http://mc-server.googlecode.com/svn/trunk@413 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-03-14Split chunk data into separate arrays; decoupled most sources from cChunk.h dependencymadmaxoft@gmail.com1-9/+27
git-svn-id: http://mc-server.googlecode.com/svn/trunk@411 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-03-12Added a flat terrain generator with settable terrain heightmadmaxoft@gmail.com1-2/+4
git-svn-id: http://mc-server.googlecode.com/svn/trunk@404 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-03-11Stopping the ChunkSender upon server stopmadmaxoft@gmail.com1-0/+1
git-svn-id: http://mc-server.googlecode.com/svn/trunk@401 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-03-10Fixed a few obsoleted functionsmadmaxoft@gmail.com1-23/+28
git-svn-id: http://mc-server.googlecode.com/svn/trunk@397 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-03-10Fixed *nix threading issue;madmaxoft@gmail.com1-1/+1
Thread objects now use variable names consistent with MCS convention; Fixed a few *nix threading cornercases git-svn-id: http://mc-server.googlecode.com/svn/trunk@392 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-03-09cClientHandles have a unique ID now to distinguish themfaketruth1-2/+2
cAuthenticator uses unique client ID for authentication Changed the kick function used by cAuthenticator to take a client ID instead of name, so the correct user is kicked Using callback reference instead of pointer in GetChunkData and affiliates GetChunkData returns false when failed, and true when succeeded Renamed entity type enums to something prettier Exposed some functions to Lua git-svn-id: http://mc-server.googlecode.com/svn/trunk@388 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-03-07Fixed bug where cPlayer's cClientHandle was used after cPlayer was destroyed http://forum.mc-server.org/showthread.php?tid=380faketruth1-32/+44
Also removed the SetClientHandle() function from cPlayer Added a Destroyed() function to cEntity that is called ONLY ONCE after an entity has been 'destroyed' Cleaned up some code, using enums for GameMode and Weather and replaced some 'const char *' with 'const AString &' Exposed some more functions to Lua git-svn-id: http://mc-server.googlecode.com/svn/trunk@382 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-03-06That was not a good place to use ARRAYCOUNT()madmaxoft@gmail.com1-5/+5
git-svn-id: http://mc-server.googlecode.com/svn/trunk@372 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-03-06Fixed rev368's ChunkSender, now sends properly even chunks that are loaded. Fixed a deadlock in cClientHandle vs TickThread over cClientHandle::m_CSChunkListsmadmaxoft@gmail.com1-0/+18
git-svn-id: http://mc-server.googlecode.com/svn/trunk@371 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-03-06Fixed bug FS#157 http://mc-server.org/support/index.php?do=details&task_id=157faketruth1-5/+5
git-svn-id: http://mc-server.googlecode.com/svn/trunk@370 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-03-05ChunkSender: Chunks are now compressed and sent to clients from a separate threads, proper passive waiting between threads. Not much tested, just appears to work :)madmaxoft@gmail.com1-9/+13
git-svn-id: http://mc-server.googlecode.com/svn/trunk@365 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-03-03Got rid of some hardcoded numbers, now using hardcoded variables! woofaketruth1-6/+6
git-svn-id: http://mc-server.googlecode.com/svn/trunk@355 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-03-01New redstone simulator. Should work without crashes!faketruth1-0/+4
git-svn-id: http://mc-server.googlecode.com/svn/trunk@345 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-02-29Fixed the authenticator bugmadmaxoft@gmail.com1-0/+3
git-svn-id: http://mc-server.googlecode.com/svn/trunk@344 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-02-29Added validity checks to world broadcasting. Also added logging to cPlayer deletion to catch that stupid BugByBoo.madmaxoft@gmail.com1-3/+5
git-svn-id: http://mc-server.googlecode.com/svn/trunk@342 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-02-28Chunk now has an indicator of load failure; Chunk generator uses cChunkStaymadmaxoft@gmail.com1-0/+9
git-svn-id: http://mc-server.googlecode.com/svn/trunk@337 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-02-28Implemented synchronous chunk loading; optimized cChunkStay interface for speed (though still unused ;)madmaxoft@gmail.com1-2/+20
git-svn-id: http://mc-server.googlecode.com/svn/trunk@336 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-02-28Const-correctness for packet broadcasting (fixes GCC compilation)madmaxoft@gmail.com1-1/+1
git-svn-id: http://mc-server.googlecode.com/svn/trunk@333 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-02-26New cChunkStay class for temporarily keeping chunks loaded even when then have no clients. For now unused, will be used by generator and lighting in the future.madmaxoft@gmail.com1-0/+9
git-svn-id: http://mc-server.googlecode.com/svn/trunk@330 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-02-22Added a crude way of disabling redstone. It's necessary though, redstone is completely broken, crashes the server all the timefaketruth1-22/+0
git-svn-id: http://mc-server.googlecode.com/svn/trunk@312 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-02-21Removed cChunkPtrs from everywhere but internal cChunkMap usage. Now we should finally be threadsafe :)madmaxoft@gmail.com1-74/+35
Also fixed a threading issue when a player connecting might have gotten stuck in "Downloading world" forever git-svn-id: http://mc-server.googlecode.com/svn/trunk@304 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-02-21Fixed heightmap optimization from rev 302; removed a few more cChunkPtrsmadmaxoft@gmail.com1-0/+27
git-svn-id: http://mc-server.googlecode.com/svn/trunk@303 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-02-21Fixed block-getting so that simulators work againmadmaxoft@gmail.com1-16/+26
git-svn-id: http://mc-server.googlecode.com/svn/trunk@301 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-02-20Removed some more cChunkPtr usagemadmaxoft@gmail.com1-14/+53
git-svn-id: http://mc-server.googlecode.com/svn/trunk@298 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-02-18Substantial cWorld::FastSetBlock() speed up by queueing all such calls and processing them later chunk-wise (makes growing trees in the generator fast again)madmaxoft@gmail.com1-20/+9
git-svn-id: http://mc-server.googlecode.com/svn/trunk@295 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-02-18Fixed previous commit: forgot to remove a debugging settingmadmaxoft@gmail.com1-3/+1
git-svn-id: http://mc-server.googlecode.com/svn/trunk@294 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-02-18Re-implemented tree-growing. May produce artefacts on old-world / new-world boundaries.madmaxoft@gmail.com1-11/+32
git-svn-id: http://mc-server.googlecode.com/svn/trunk@293 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-02-18Thread-safe chunk generation, storage and generator are queried for progress while initializing servermadmaxoft@gmail.com1-40/+108
Note that this commit breaks foliage generation - there are no trees in the chunks generated! git-svn-id: http://mc-server.googlecode.com/svn/trunk@292 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-02-17Chunk coords mostly "upgraded" to include the Y coord for future compatibilitymadmaxoft@gmail.com1-0/+2
git-svn-id: http://mc-server.googlecode.com/svn/trunk@285 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-02-17Removed useless log messagesmadmaxoft@gmail.com1-1/+0
git-svn-id: http://mc-server.googlecode.com/svn/trunk@284 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-02-16git-svn-id: http://mc-server.googlecode.com/svn/trunk@281 0a769ca7-a7f5-676a-18bf-c427514a06d6faketruth1-2/+2
2012-02-16cWorldGenerator speedup - doesn't call GetChunk() anymore, not queueing the chunk it's generating to be loaded recursively.madmaxoft@gmail.com1-0/+9
cChunk fix - setting a block to the same value doesn't mark chunk dirty (resulted in un-unloadable chunks) git-svn-id: http://mc-server.googlecode.com/svn/trunk@279 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-02-16Got rid of dangerous GetEntity(), not using DoWithEntity()faketruth1-5/+4
git-svn-id: http://mc-server.googlecode.com/svn/trunk@278 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-02-16Chunk is now marked as dirty; saving only dirty chunks; rewritten load / save not to use cChunkPtr; set VC2008 project to level4 warnings; block entities are now loaded and saved properlymadmaxoft@gmail.com1-1/+72
git-svn-id: http://mc-server.googlecode.com/svn/trunk@273 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-02-15Fixed logging formatting error in cWorldmadmaxoft@gmail.com1-1/+1
git-svn-id: http://mc-server.googlecode.com/svn/trunk@264 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-02-14Got rid of cWorld::GetAllPlayers() and implemented ForEachPlayer() more or less in Luafaketruth1-20/+0
Core now uses ForEachPlayer() to interact with connected players git-svn-id: http://mc-server.googlecode.com/svn/trunk@260 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-451/+404
git-svn-id: http://mc-server.googlecode.com/svn/trunk@251 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-02-08Added total chunk count to webadminmadmaxoft@gmail.com1-2/+108
git-svn-id: http://mc-server.googlecode.com/svn/trunk@248 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-02-08MTRand class is not created in each tick, therefore much improving tick-thread time (now uses ~5 % CPU instead of one full core)madmaxoft@gmail.com1-42/+82
git-svn-id: http://mc-server.googlecode.com/svn/trunk@245 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-0/+4
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-29Old code begone! ChunkMap cleanupmadmaxoft@gmail.com1-1/+1
git-svn-id: http://mc-server.googlecode.com/svn/trunk@189 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/+6
git-svn-id: http://mc-server.googlecode.com/svn/trunk@188 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-01-19Terrain generation is synchronous again, async generation has bugs.faketruth1-27/+29
Made some funky smart pointer things for chunks. Fixed a bug where the client would override the player position on the server and back again, resulting in sending too many chunks to the client which it doesn't even need. Fixed some compiler warnings in cPickup.cpp git-svn-id: http://mc-server.googlecode.com/svn/trunk@164 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-01-01Fixed the numchunks console command.faketruth1-1/+15
Added some form of reference counting to cChunk to make sure it's not referenced when deleting it. Right now it's only needed due to the generation of chunks in a separate thread and adding it to the spread light list in cWorld git-svn-id: http://mc-server.googlecode.com/svn/trunk@161 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-12-31Made a couple of functions in cChunk inline, this should speed up several block operations on chunksfaketruth1-2/+2
Players should not spawn in the ground anymore. When an entity was added to cWorld twice (which shouldn't happen actually), the server would crash when the entity is destroyed, this should be fixed now. git-svn-id: http://mc-server.googlecode.com/svn/trunk@158 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-12-28- implemented the fire simulation in native c++ (cFireSimulator)lapayo94@gmail.com1-5/+12
- Changed the Durationsystem for Items. cPlayer::UseEquippedItem calls cItem::DamageItem this function damages the item if it has a duration. (needed the duration also in another place so this saves code ;)) - added some other burning blocks - the mobtypes for the settings.ini which i must have forgotten in the last commit git-svn-id: http://mc-server.googlecode.com/svn/trunk@150 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-12-28Fixed some small memory leakslapayo94@gmail.com1-0/+2
git-svn-id: http://mc-server.googlecode.com/svn/trunk@148 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-12-27Users file was pretty messed up with mixed unix and windows line endings. The ini failed to parse correctly under cygwin.faketruth1-1/+8
'Fixed' a 'bug' where MCServer would seemingly endlessly calculate lighting for an entire world (and then crash), when this entire world has 'wrong' lighting. This happens when running a converted map from Vanilla. Fixed this by only allowing a maximum of 50 chunks to recalculate their lighting per tick. Fixed a small coding error in cChunkMap where it would check PakVersion twice, instead of also ChunkVersion. DeNotch converter does not need the VS2010 runtime thingies anymore git-svn-id: http://mc-server.googlecode.com/svn/trunk@138 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-12-27Some kind of 'template' world generator that right now just generates an all dirt world. You can use this to test new algorithmsfaketruth1-8/+14
git-svn-id: http://mc-server.googlecode.com/svn/trunk@127 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-12-26- improved Simulator system lapayo94@gmail.com1-8/+22
-> Manager handles all ticks -> advantage: Much easier to add new simulators, because you only have to register them in the manager - moved sand and gravel simulation to a Simulator-class (cSandSimulator) - Made Squid a little bit more funny and realistic, because it dies now when it´s not in water -Escaping mobs run now faster than normal (They just walked away before :D) git-svn-id: http://mc-server.googlecode.com/svn/trunk@125 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-12-26 - Linux compatible fixes including updated makefilemtilden@gmail.com1-14/+18
- 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-25Chunks are generated in a separate thread allowing players to keep on playing and chatting while chunks are generated. This means, however, that cWorld::GetChunk() does not always return a chunk and is something you need to be aware of. I am not entirely sure if all this is completely stable, but I think so :Ofaketruth1-50/+120
Chunks are now generated before the player is able to see them. This is done because after a chunks is done generating, some blocks might still need to be set (parts of trees from neighboring chunk), causing more bandwidth to be used (each changed block needs to be sent to clients again) and (fps) lagging the clients when changing a lot of blocks. Calculating ahead fixes these issues. Separated the placing of foliage (trees and stuff) when generated chunks into a new function GenerateFoliage() Cleaned up the VS2010 project, now using some VS2010 specific functions like dependencies on projects (no need for setting library dependencies manually). VS2010 project now compiles way faster in Release by using multi threading. git-svn-id: http://mc-server.googlecode.com/svn/trunk@103 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-12-24Max. players and MOTD are now changeable in the settings.inilapayo94@gmail.com1-0/+21
Thanks to mtilden ( http://forum.mc-server.org/showthread.php?tid=183&pid=1381#pid1381 ) git-svn-id: http://mc-server.googlecode.com/svn/trunk@101 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-12-22Digging leaves with shears now drops leaveslapayo94@gmail.com1-5/+5
Falling Sand now notifies water around Implemented Function to get the relative chunk position in the total position (cChunk::PositionToWorldPosition) Pistons don´t drop water and lava items anymore when stopping water/lava implemented Getter for lava and water simulator IsBlockWater and IsBlockLava function in Defines.h git-svn-id: http://mc-server.googlecode.com/svn/trunk@97 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-11-10Added code for doors. Doors now place correctly but opening them is buggy and I need to change the current opening code to use bitwise operators.admin@omencraft.com1-3/+3
git-svn-id: http://mc-server.googlecode.com/svn/trunk@85 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-11-10Storms were WAY too frequent. I toned them down.admin@omencraft.com1-4/+4
git-svn-id: http://mc-server.googlecode.com/svn/trunk@84 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-11-10Added random weather that persists per world. Also added SetWeather, GetWeather, and CastThunderbolt to lua bindings.admin@omencraft.com1-0/+71
git-svn-id: http://mc-server.googlecode.com/svn/trunk@83 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-11-09bugfix to redstone, it can climb walls again.admin@omencraft.com1-5/+5
git-svn-id: http://mc-server.googlecode.com/svn/trunk@81 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-11-09Redstone clocks now work. even one clocks. torches don't update themselves when placed yet, but redstone wire updates the torch. Fixed a bug with piston animations.admin@omencraft.com1-0/+35
git-svn-id: http://mc-server.googlecode.com/svn/trunk@80 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-11-08Fixed world timefaketruth1-1/+10
git-svn-id: http://mc-server.googlecode.com/svn/trunk@78 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-11-07Added Sebi's changes to pistons and item drops.admin@omencraft.com1-0/+38
git-svn-id: http://mc-server.googlecode.com/svn/trunk@72 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-3/+15
git-svn-id: http://mc-server.googlecode.com/svn/trunk@67 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-11-02Fixed some "Entity was not found in any chunk!" warningsfaketruth1-0/+1
Player's current world is saved in the player file. When a player joins the server, the player joins the last world he was in. It seems MCServer can finally run multiple worlds! It just needs functionality to switch between them git-svn-id: http://mc-server.googlecode.com/svn/trunk@46 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-11-02Changed world gamemode location to world.ini for world based gamemodes.admin@omencraft.com1-2/+4
git-svn-id: http://mc-server.googlecode.com/svn/trunk@43 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-11-01fixed player spawning in the ground.admin@omencraft.com1-5/+0
git-svn-id: http://mc-server.googlecode.com/svn/trunk@42 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-11-01You can now run multiple worlds by defining them in settings.ini . However there's no way to change worlds on the fly yetfaketruth1-36/+32
Players are now stored in separate folder /players instead of in the world folder (!so move the folder!) Fixed a memory leak/error in cPickup.cpp Multiple worlds are stored in cRoot cClientHandle lists are taken out of cWorld and now stored in cServer Worlds now have names to distinguish them by Some functions in the Core plugin now distinguish between worlds git-svn-id: http://mc-server.googlecode.com/svn/trunk@40 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-10-31Prepared some parts of the code for multi world support, I created lots of TODO'sfaketruth1-4/+4
git-svn-id: http://mc-server.googlecode.com/svn/trunk@29 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-10-26Made several recomended changes. Gamemode is now world based. Need to add it to player.admin@omencraft.com1-1/+2
git-svn-id: http://mc-server.googlecode.com/svn/trunk@18 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-10-26Updated VS2010 project filesfaketruth1-104/+43
Made monster spawning code in cWorld.cpp a bit more compact and readable srand() is only supposed to be called once in the whole program, and it's already called in the constructor of cWorld so it doesn't have to be in cWorld::Tick() git-svn-id: http://mc-server.googlecode.com/svn/trunk@14 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-10-26git-svn-id: http://mc-server.googlecode.com/svn/trunk@10 0a769ca7-a7f5-676a-18bf-c427514a06d6admin@omencraft.com1-10/+120
2011-10-03MCServer c++ source filesfaketruth1-0/+764
git-svn-id: http://mc-server.googlecode.com/svn/trunk@3 0a769ca7-a7f5-676a-18bf-c427514a06d6