summaryrefslogtreecommitdiffstats
path: root/src/BlockEntities/ChestEntity.cpp (unfollow)
Commit message (Collapse)AuthorFilesLines
2021-05-03Add player statistics to API (#5193)nshah251-2/+2
* Fixed issue #5166 Co-authored-by: 12xx12 <44411062+12xx12@users.noreply.github.com> Co-authored-by: Tiger Wang <ziwei.tiger@outlook.com>
2021-04-30Chest, weather, crash, and miscellaneous fixes (#5215)Tiger Wang1-134/+126
* Alpha-sort cChestEntity * Chests: use SendUpdateBlockEntity * Pathfinder: fix out of range Y * 1.13: correct weather packet ID * Chests: fix neighbour scanner + Add OnAddToWorld and overload to scan neighbours there, instead of in the constructor/OnUse. This fixes hoppers accessing newly loaded double chests and seeing a null m_Neighbour, thus thinking its a single chest. * Fix typo in cross coords computation. * Simplify hopper logic. * Block entities: ASSERT that type is correct If you match the block type first before calling DoWithBlockEntity, the corresponding block entity must either be empty or correspond to the block type. * Chunk: fix some forgotten PendingSendBE cleanup + Add cleanup in SetAllData, WriteBlockArea - Remove RemoveBlockEntity (used once), HasBlockEntity (not used) * Replace MakeIndex with MakeIndexNoCheck * Remove extraneous MarkDirty in hopper & chests
2021-04-23Repaired Hoppers Treating Chests as two entities (#5202)npresley05061-0/+9
* Repaired Hoppers Treating Chests as two entities * Style changes * style fixes * Fixed style issues, also condensed logic in MoveItemsFromChest * Used m_Neighbour, fixed styling * GetNeighbour not ReturnNeighbour Co-authored-by: npresley <npresley@umich.edu>
2021-03-28Unify DoWithBlockEntity (#5168)Tiger Wang1-10/+11
+ DoWith calls now broadcast the block entity and mark the chunk dirty + Add block entity change queue to synchronise BE updates with block updates * Fixed a few incorrect assertions about BE type - Remove manual overloads
2021-03-15Properly deprecate more XYZ parameter'd functions (#5147)Tiger Wang1-1/+1
* Fixes #5144
2021-01-02Fix potential destruction crashes (#5095)Tiger Wang1-17/+16
* Fix potential destruction crashes * Fix destructors accessing destroyted objects * Fix cPlayer not destroying windows (Destroyed never called) * Tentatively fixes #4608, fixes #3236, fixes #3262 - Remove cEntity::Destroyed() and replace with cEntity::OnRemoveFromWorld() * Add missing call to OnRemoveFromWorld
2020-09-05Add more statistic tracking (#4837)12xx121-0/+9
+ Added possible 1.8 stats + Added stat tracking for 1.8.2 + Added stat tracking for 1.9 + Added the breed cow achievement Co-authored-by: 12xx12 <12xx12100@gmail.com>
2020-08-28Remove redundant DoWithChunkAt in chestsTiger Wang1-6/+3
2020-08-21Remove unused variables in ChestEntity/BlockEntityWithItemsTiger Wang1-2/+0
2020-08-08Remove the redstone solid block handlerTiger Wang1-4/+1
- Remove cSolidBlockHandler * Functionality now integrated into simulator dispatcher * Fix door double open/close issues, arisen due to the top/bottom halves getting different power + Small migration to block states for redstone wire
2020-08-02Always use relative coordinates in AddBlockTiger Wang1-0/+39
+ Pass block, use relatives * Fixes everything immediately converting abs back to rel and getting block, when these data were already available
2020-04-16Using Super.Mattes D1-2/+2
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
2019-09-29Refactored more of Entities and BlockEntities to use Vector3. (#4403)Mattes D1-14/+12
2018-07-26CheckBasicStyle: Check number of empty lines between functions (#4267)peterbell101-0/+1
Add check for number of empty lines between functions and fix the corresponding failures
2018-05-02Prefer static_cast to reinterpret_cast (#4223)peterbell101-1/+1
* Change reinterpret_cast -> static_cast wherever possible * Remove more unnecessary `const_cast`s. reinterpret_casts should be avoided for the same reason as c-style casts - they don't do any type-checking. reinterpret_cast was mainly being used for down-casting in inheritance hierarchies but static_cast works just as well while also making sure that there is actually an inheritance relationship there.
2017-09-11Replace ItemCallbacks with lambdas (#3993)peterbell101-22/+6
2017-09-02Revert "Replace ItemCallbacks with lambdas (#3948)"LogicParrot1-6/+22
This reverts commit 496c337cdfa593654018c171f6a74c28272265b5.
2017-09-01Replace ItemCallbacks with lambdas (#3948)peterbell101-22/+6
2017-08-17Sitting cats block enderchests from opening (#3906)Bond-0091-23/+3
2017-07-12Added basic ocelot behavior (#3829)Bond-0091-2/+29
2017-06-16BlockEntities: Support cloning self.Mattes D1-2/+17
2017-06-05Fixes problems with windows:Lukas Pioch1-1/+1
- Changed cPlayer:OpenWindow to accept a ref, tolua adds a nil check - Close open lua window in destructor, to avoid dangling pointers
2017-06-03Fixed double chests (#3741)peterbell101-4/+11
Normal and trapped chests next to each other don't open a double chest window. Slot changes in the secondary chest are broadcast. Placing a chest in +x of another updates the original chest's metadata.
2017-05-28Double chest window fix (#3735)peterbell101-49/+116
2017-05-21Fixed invisible chests (#3722)Pablo Beltrán1-4/+3
Fixes #3479, #3403, #3696
2016-04-22Reduced unnecessary block updatesLogicParrot1-1/+1
2015-12-13allow use failures to propagate from the entity/block to the playerGargaj1-1/+2
2015-07-07(Ender) Chests are obstructed by opaque blocks.Nounours Heureux1-10/+6
2015-03-20Correct world height validations.Tommy Santerre1-2/+2
Unify the way we test block above the current one (Height - 1 instead of a_RelY + 1). Allow generation of world of flat height = 255
2014-12-13Own classes for all windows.Howaner1-1/+1
2014-10-23En masse NULL -> nullptr replaceTiger Wang1-3/+3
2014-10-20En masse NULL -> nullptr replaceTiger Wang1-3/+3
2014-09-30Removed WSSCompactTiger Wang1-42/+0
2014-09-26Removed more unessicary includesTycho1-1/+0
2014-09-13Implemented Chest MinecartsTiger Wang1-1/+0
2014-07-18Fixed spaces before commas.madmaxoft1-2/+2
2014-07-17Basic style fixes.madmaxoft1-1/+1
2014-07-12cChestEntity: Renamed a member to avoid confusion.madmaxoft1-1/+1
2014-07-07Implemented trapped chests & othersTiger Wang1-3/+4
+ Added trapped chests * Fixed a bunch of bugs in the redstone simulator concerning wires and repeaters * Other potential bugfixes
2014-06-22Chests don't open if obstructedTiger Wang1-0/+13
* Fixes FS383
2014-02-12Removed some unneeded BroadcastWholeWindow()sTiger Wang1-15/+0
2014-02-11Fixed #612Tiger Wang1-0/+15
* Chests send contents updates to client
2013-11-27Fixed VC2008 compilation, normalized include paths.madmaxoft1-1/+1
2013-11-27Fixed the remaining derpsAlexander Harkness1-1/+1
2013-11-25Further attempts to fix compileTiger Wang1-1/+1
2013-11-24Attempt to fix compilationTiger Wang1-1/+1
2013-11-24Moved source to srcAlexander Harkness1-0/+0
2013-11-15Removed BlockEntities' constructors from the API.madmaxoft1-10/+0
Plugins shouldn't construct block entities, rather, they will query them either from the cWorld (while playing), or from cChunkDesc (while generating).
2013-08-19Moved entities into the Entities subfolder.madmaxoft1-2/+1
2013-08-03Removed the unused BlockY parameter from cChunkDef::BlockToChunk()madmaxoft1-1/+1
2013-06-16Rewritten furnacesmadmaxoft@gmail.com1-2/+2
Furnaces now smelt the correct number of items. Furnaces store their contents in a cItemGrid. Furnace window is updated with correct items and progressbars. Furnace recipes now use ticks instead of milliseconds. Furnaces save and load their state completely, not missing a smelt operation. Hoppers take items out of furnaces. Dropped the cSlotAreaDropSpenser class, replaced it with generic cSlotAreaItemGrid git-svn-id: http://mc-server.googlecode.com/svn/trunk@1601 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-06-13cItemGrid: Added IsSlotEmpty() functionsmadmaxoft@gmail.com1-4/+9
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1585 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-05-30Window contents are sent whenever the window is opened by a player.madmaxoft@gmail.com1-1/+0
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1533 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-05-28Moved BlockEntities to a separate foldermadmaxoft@gmail.com1-15/+4
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1527 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-05-25cChestEntity and cDispenserEntity now inherit from a common ancestor, cBlockEntityWithItemsmadmaxoft@gmail.com1-17/+2
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1507 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-2/+2
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1385 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-04-10ItemGrid: Renamed all Item to Slot - better and consistent namingmadmaxoft@gmail.com1-2/+2
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1381 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-04-10Added cItemGrid to represent an XY grid of items; converted chests to use cItemGrid.madmaxoft@gmail.com1-78/+8
http://forum.mc-server.org/showthread.php?tid=831 git-svn-id: http://mc-server.googlecode.com/svn/trunk@1380 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-04-06Mineshafts: Added random loot to generated chests and fixed chest directionmadmaxoft@gmail.com1-11/+43
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1365 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-10-20Double chests are now working, and with sound. (FS #69)madmaxoft@gmail.com1-45/+63
git-svn-id: http://mc-server.googlecode.com/svn/trunk@993 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-09-24Source files cleanup: The rest of the files renamed.madmaxoft@gmail.com1-7/+7
git-svn-id: http://mc-server.googlecode.com/svn/trunk@887 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-09-23Source files cleanup: UI files renamedmadmaxoft@gmail.com1-1/+1
git-svn-id: http://mc-server.googlecode.com/svn/trunk@878 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-09-20Refactored windows.madmaxoft@gmail.com1-11/+7
As described on the forum: http://forum.mc-server.org/showthread.php?tid=561 For now, only basic clicking works; shift-click not implemented yet. git-svn-id: http://mc-server.googlecode.com/svn/trunk@867 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-08-31Progress on the 1.3.2 protocol.madmaxoft@gmail.com1-1/+1
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-24Monster classes don't use cPackets. Chat messages are sent / broadcast without cPackets. BlockEntities don't use cPackets.madmaxoft@gmail.com1-3/+4
git-svn-id: http://mc-server.googlecode.com/svn/trunk@783 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-08-19Almost all packets' handling is now rewritten not to use cPacket descendants elsewhere than in cClientHandle.madmaxoft@gmail.com1-15/+11
git-svn-id: http://mc-server.googlecode.com/svn/trunk@761 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-08-07Prepared WindowOwner class hierarchy for minecart with chest.madmaxoft@gmail.com1-1/+1
git-svn-id: http://mc-server.googlecode.com/svn/trunk@719 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-08-06A bit of cleanup and documentation around the UI window handlingmadmaxoft@gmail.com1-8/+6
git-svn-id: http://mc-server.googlecode.com/svn/trunk@716 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-06-14Attempt to bring sanity to newlines across systems.cedeel@gmail.com1-234/+234
git-svn-id: http://mc-server.googlecode.com/svn/trunk@606 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-06-08Configurable classic composition generatorcedeel@gmail.com1-18/+0
git-svn-id: http://mc-server.googlecode.com/svn/trunk@575 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-2/+3
git-svn-id: http://mc-server.googlecode.com/svn/trunk@561 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-05-28Chests and Furnaces are now saved properly into Anvil scheme.madmaxoft@gmail.com1-2/+10
git-svn-id: http://mc-server.googlecode.com/svn/trunk@516 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-04-23Anvil storage writing (Basic storage is working, NO entities except for chests are working! Don't use for real servers)madmaxoft@gmail.com1-1/+1
git-svn-id: http://mc-server.googlecode.com/svn/trunk@475 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-03-24Reverted the previous commit - it is useless, since entities still depend heavily on cWorldmadmaxoft@gmail.com1-12/+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/+12
git-svn-id: http://mc-server.googlecode.com/svn/trunk@427 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-03-14Split chunk data into separate arrays; decoupled most sources from cChunk.h dependencymadmaxoft@gmail.com1-1/+0
git-svn-id: http://mc-server.googlecode.com/svn/trunk@411 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-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-5/+0
git-svn-id: http://mc-server.googlecode.com/svn/trunk@273 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-02-15Restored chest and furnace functionality as it was (it's basically working but joined chests show single-chest window)madmaxoft@gmail.com1-5/+5
git-svn-id: http://mc-server.googlecode.com/svn/trunk@263 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-12/+44
git-svn-id: http://mc-server.googlecode.com/svn/trunk@251 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-01-30More cFile cleanup; removed old format writing for block entitiesmadmaxoft@gmail.com1-26/+20
git-svn-id: http://mc-server.googlecode.com/svn/trunk@193 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-4/+11
git-svn-id: http://mc-server.googlecode.com/svn/trunk@188 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-12-29 - Chests open and close on clients when opened/closedmtilden@gmail.com1-4/+48
- Beginnings of "Double Chest". All that's needed is detection when 2 chests get put next to each other, block other chests from then touching them on any side, load/save with the m_JoinedChest seeing each other and adding and making sure the left side is always the top rows. I'm not sure exactly at this moment how to do all of the detection and saving/loading of the double chest stuff so if you've any ideas feel free to point out some areas in the server code or implement it yourself. git-svn-id: http://mc-server.googlecode.com/svn/trunk@154 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-12-25Code improvementslapayo94@gmail.com1-1/+1
Fixed authentication (Can be activated now) Added MersenneTwister.h Thanks to mtilden ( http://forum.mc-server.org/showthread.php?tid=183&pid=1428#pid1428 and http://forum.mc-server.org/showthread.php?tid=183&pid=1418#pid1418 ) git-svn-id: http://mc-server.googlecode.com/svn/trunk@106 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-10-31Player data is saved and loaded as human readable JSON now.faketruth1-16/+2
cFileFormatUpdate will loop through old files and convert them to new files (should replace legacy old format loading code) cItem has two new functions to load from Json and output Json, this will keep the items in Json standard ChestEntity and FurnaceEntity use the new functions in cItem git-svn-id: http://mc-server.googlecode.com/svn/trunk@35 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-10-31Prepared some parts of the code for multi world support, I created lots of TODO'sfaketruth1-3/+4
git-svn-id: http://mc-server.googlecode.com/svn/trunk@29 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-10-03MCServer c++ source filesfaketruth1-0/+185
git-svn-id: http://mc-server.googlecode.com/svn/trunk@3 0a769ca7-a7f5-676a-18bf-c427514a06d6