summaryrefslogtreecommitdiffstats
path: root/src/Simulator/IncrementalRedstoneSimulator (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Additional Y height checks (#5405)Debucquoy Anthony tonitch2022-06-184-31/+52
| | | | | For redstone wire, block area bindings, and fire simulator. Co-authored-by: Tiger Wang <ziwei.tiger@outlook.com>
* Valid Height is now checked by vector.x12xx12x2022-04-203-4/+4
|
* syntaxTiger Wang2022-01-141-1/+1
|
* eblockfaceTiger Wang2022-01-141-1/+1
|
* Fixed Compiler Warningsx12xx12x2022-01-141-1/+1
|
* Fixed diagonal redstone powering (#5363)Michal Havlíček2022-01-021-1/+1
| | | | * Fixed diagonal redstone powering * Transparent blocks don't transmit downwards
* Transparent blocks no longer conduct redstone power (#5359)Michal Havlíček2021-12-302-30/+1
| | | * Fixes #5336
* Ignore dead entities and spectator players on pressure plates (#5294)Ethan Jones2021-09-151-2/+14
|
* Chest, weather, crash, and miscellaneous fixes (#5215)Tiger Wang2021-04-305-20/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* Hoppers: use 'locked' bit in metaTiger Wang2021-04-121-4/+15
|
* Fix sending incorrect date values on world changeTiger Wang2021-04-121-1/+1
| | | | Yak shave: make more things use cTickTime. Fix a couple of incorrect modulo-on-millisecond-value by making them use WorldTickAge.
* Move some redstone implementations into the source fileTiger Wang2021-03-283-101/+119
|
* Unify DoWithBlockEntity (#5168)Tiger Wang2021-03-287-15/+39
| | | | | | + 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
* Prepare ChunkData for BlockState storage (#5105)Tiger Wang2021-03-051-0/+1
| | | | | | | | | | | | | | | | | | | | | | | * 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>
* Clang 7?Tiger Wang2021-02-111-10/+0
|
* Redstone: inline -> staticTiger Wang2021-01-2221-89/+89
|
* cChunk: don't inherit from cChunkDef (#5106)Tiger Wang2021-01-181-2/+2
|
* Daylight Sensor: remove redundant delayTiger Wang2020-12-261-3/+0
| | | | Daylight Sensors are already always ticked.
* Prepare for 1.15+ (#4856)Tiger Wang2020-12-212-7/+8
| | | | | + Add type-safe container for states * Split registry Blocks into BlockTypes, BlockStates so the block types enumeration can be #included without too much penalty * Ensure Registry uses type-safe container
* New pull request for daylight sensor (#5066)Aiden Neill2020-12-195-53/+127
| | | | | * Fixes #4918 Co-authored-by: Tiger Wang <ziwei.tiger@outlook.com>
* Warnings improvementsTiger Wang2020-12-181-4/+5
| | | | | | | | | * 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
* Fix cmake not adding Werror on clang, and _lots_ of warnings (#4963)peterbell102020-10-0511-70/+85
| | | | | | | | | | | | | | | * 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>
* Doors: check power & toggle correctlyTiger Wang2020-09-291-20/+55
| | | | | | * Fixed upper half ignoring its updates * Fixes #4945 * Fixed doors playing sound effects when they didn't actually toggle
* Implement redstone quasi-connectivity (#4889)Tiger Wang2020-09-215-28/+76
|
* Use tracing for explosions (#4845)Tiger Wang2020-09-121-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | * 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>
* Minor style fixesTiger Wang2020-08-282-0/+12
|
* Fix doors and trapdoors closing on server restartPeter Bell2020-08-252-2/+6
|
* Replace PowerData struct with PowerLevelTiger Wang2020-08-2125-189/+171
| | | | * We no longer need to track the powering block with the removal of SolidBlockHandler. PowerLevel is now just an unsigned char
* Remove std::make_unique from redstone handler creationTiger Wang2020-08-2128-545/+494
|
* Remove the redstone solid block handlerTiger Wang2020-08-0828-525/+632
| | | | | | | - 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
* Do not GetBlock individually in simulatorsTiger Wang2020-08-042-50/+38
| | | | | * Have the simulator manager get the block and pass it on + Add new overload for WakeUp, called when the manager wakes face positions
* Always use relative coordinates in AddBlockTiger Wang2020-08-022-34/+20
| | | | | + Pass block, use relatives * Fixes everything immediately converting abs back to rel and getting block, when these data were already available
* Add WakeUp/AddBlock distinctionTiger Wang2020-08-022-41/+58
| | | | | | * 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
* Ensure updating relatives calls the correct base caseTiger Wang2020-08-029-14/+15
| | | | * Fixed recursive base unintentionally scheduling the origin position for an update because it called the wrong function
* Replaced cpp14::make_unique<> with std::make_unique<>.Mattes D2020-08-011-22/+22
|
* Remove redundant ErasePowerData callTiger Wang2020-07-261-7/+5
| | | | * Also fix a return that should've been continue
* Clang Tidy fixTiger Wang2020-07-261-11/+11
|
* Comparators: use <= in comparison modeTiger Wang2020-07-261-1/+1
|
* Use SimulateChunk in redstone simulatorTiger Wang2020-07-2625-815/+758
| | | | | | + Improved performance, reduces bottleneck in chunkmap lookup * Stop allocating and throwing away lots of small vectors in Update/GetValidSourcePositions return values - Remove unused GetPowerLevel virtual
* Redstone: check validity of GetBlockTiger Wang2020-07-241-1/+5
|
* Precompile unordered_map/setTiger Wang2020-07-191-1/+0
| | | | | | + Add inclusions to Globals.h * Sort Globals.h - Remove sys/stat.h from Globals.h
* Upgrade to C++17 [CMake] (#4717)Tiger Wang2020-05-161-9/+2
| | | * Make our CMake slightly less insane
* Add some comments about terracingTiger Wang2020-05-081-17/+43
|
* Update RedstoneWireHandler styleTiger Wang2020-05-081-11/+9
|
* Fix SetBlockMeta call in observer handler (#4728)peterbell102020-05-081-2/+2
|
* Buttons can now be triggered by arrows. (#4670)DrButcher2020-05-031-3/+3
| | | * Buttons can now be triggered by arrows.
* Update src/Simulator/IncrementalRedstoneSimulator/RedstoneWireHandler.hmBornand2020-05-031-8/+1
| | | Co-authored-by: peterbell10 <peterbell10@live.co.uk>
* Update src/Simulator/IncrementalRedstoneSimulator/RedstoneWireHandler.hmBornand2020-05-031-8/+1
| | | Co-authored-by: peterbell10 <peterbell10@live.co.uk>
* Made some style update and add commentsMarc_Bornand2020-05-031-4/+9
|
* Fix the connexion to the side of the repeaterMarc_Bornand2020-05-031-3/+25
|
* Vector3 in Handlers (#4680)Mattes D2020-04-211-1/+13
| | | Refactored all cBlockHandler and cItemHandler descendants to use Vector3.
* Re-implement repeater lockingTiger Wang2020-04-181-5/+85
|
* Fixing washing away of redstone mechanisms (#4665)DrButcher2020-04-171-0/+1
|
* ಠ_ಠ (#4660)Tiger Wang2020-04-164-0/+112
| | | + Provisional handling for observers
* Using Super.Mattes D2020-04-1619-40/+78
|
* Pressure plate sounds and delay (#4643)DrButcher2020-04-141-7/+141
| | | | + Added sounds on depress and release + Added correct delay times
* Filter blocks to add to redstone sim's wake queue (#4621)peterbell102020-04-052-6/+62
|
* Lock hopper when powered by redstone (#4347)Bond-0092020-03-273-0/+65
| | | | | | | | | * Lock hopper when powered by redstone * Add to manual bindings * Add hopper API documentation Co-authored-by: Mat <mail@mathias.is>
* TNT position fixes (#4519)Mat2020-03-221-2/+1
| | | | | | | | | | | | | | | | | | | * 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
* Fix building with clang 8.0 (#4346)Bond-0092019-08-112-2/+2
|
* Force all headers other than "Globals.h" to be included with relative paths (#4269)peterbell102018-08-2914-17/+14
| | | | | | | Closes #4236 CMake now creates a header file in the build directory under the path "include/Globals.h" which just includes "src/Globals.h" with an absolute path. Then instead of adding "src/" to the include directories, it adds "include/". #include "Globals.h" still works by including the build generated file and any other src-relative path will not work.
* cWorld: Manually bind deprecated broadcast functions (#4265)peterbell102018-07-271-1/+1
| | | Ref: https://github.com/cuberite/cuberite/pull/4264#discussion_r204769193
* CheckBasicStyle: Check number of empty lines between functions (#4267)peterbell102018-07-262-2/+0
| | | | Add check for number of empty lines between functions and fix the corresponding failures
* At long last... Piston animations!Tiger Wang2018-07-252-27/+12
| | | | | * Fixes #3198 * Fixes #57 (again lol)
* Add the fmt library (#4065)peterbell102018-01-031-0/+1
| | | | | | | * Replaces AppendVPrintf with fmt::sprintf * fmt::ArgList now used as a type safe alternative to varargs. * Removed SIZE_T_FMT compatibility macros. fmt::sprintf is fully portable and supports %zu. * Adds FLOG functions to log with fmt's native formatting style.
* cPressurePlateHandler: Fix uninitialised variables. (#4047)peterbell102017-09-251-2/+2
|
* Changed BroadcastSoundEffect, SendSoundEffect, and CastThunderbolt parameters to vectors (#3959)Lane Kolbly2017-09-191-1/+1
| | | | | | | | | | | | | | | | | | * 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
* Removed UTF-8 BOM (#4033)Lukas Pioch2017-09-191-1/+1
|
* Replace ItemCallbacks with lambdas (#3993)peterbell102017-09-117-116/+36
|
* Changed some int parameters to vector parameters (#3937)Bond-0092017-09-0720-87/+87
|
* Revert "Replace ItemCallbacks with lambdas (#3948)"LogicParrot2017-09-027-36/+116
| | | | This reverts commit 496c337cdfa593654018c171f6a74c28272265b5.
* Replace ItemCallbacks with lambdas (#3948)peterbell102017-09-017-116/+36
|
* Changed int parameters to vector parameters in cCuboid and simulators (#3874)Lane Kolbly2017-08-171-2/+2
|
* Removed unneeded includes (#3902)Lukas Pioch2017-08-062-3/+0
|
* Remove double includes part 2 (#3890)peterbell102017-08-032-2/+0
|
* Allocate redstone component handlers upfrontpeterbell102017-07-1722-299/+264
|
* Clang 5.0 fixesLukas Pioch2017-05-211-1/+1
| | | | | - Added override keyword - Removed inherited member variables
* Fix fence gates (#3683)Bond-0092017-04-291-0/+5
| | | This commit fixes an issue where a pressureplate would only open oak fence gates
* Updated sounds and effect IDs (#3422)mathiascode2017-02-152-2/+2
|
* Fix comparator segfaultsMarvin Kopf2016-12-061-1/+8
| | | | The handler would get called for any BlockEntity, but not every BlockEntity is a BlockEntityWithItems. Downcasting with static_cast is UB on fail.
* Redstone fixes (#3285)Tiger Wang2016-07-312-52/+86
| | | | | | | | * Comparators and pistons no longer update instantly * Fixes #3168. * Consolidated comparator code * As a result, fixed an issue where GetPowerLevel didn't consider block entities behind it (only GetFrontPowerLevel did)
* Revert "Redstone fixes"Mattes D2016-07-292-86/+52
|
* Consolidated comparator codeTiger Wang2016-07-291-46/+37
| | | | | * As a result, fixed an issue where GetPowerLevel didn't consider block entities behind it (only GetFrontPowerLevel did)
* Comparators and pistons no longer update instantlyTiger Wang2016-07-292-12/+55
| | | | * Fixes #3168.
* CMake: Remove needless minimum version specifications.Mattes D2016-07-181-1/+0
|
* Revert "Made redstone handlers static"Lukas Pioch2016-07-012-93/+31
|
* - Add a activation flag to droppers and dispensers. Previously droppers and dispensers shot items with every block update.QUSpilPrgm2016-06-152-5/+28
| | | | - Fixes a range check inside cIncrementalRedstoneSimulator::Simulate
* Don't let redstone blocks power adjacent blocks. (#3214)QUSpilPrgm2016-05-282-3/+2
| | | | | * Don't let redstone blocks power adjacent blocks. This fixes issue #2966
* Made redstone handlers staticTiger Wang2016-05-282-31/+93
| | | | * Improvements to performance? Maybe. Can't hurt (he says).
* Update RedstoneSimulator to delete unused cached PowerDataMarvin Kopf2016-02-092-1/+10
| | | | When a new block was placed that has a corresponding RedstoneHandler the PowerData for the position was cached, but never deleted and remained unchanged when the block got destroyed. The RedstoneSimulator now erases all cached PowerData for positions where the block doesn't have a RedstoneHandler (i.e. Air).
* Bulk clearing of whitespaceLogicParrot2016-02-052-3/+3
|
* Fixed issue #2218Austin Martin2016-01-111-3/+5
|
* Renamed leftover strings to Cuberite / Server, as needed.Mattes D2016-01-011-1/+1
| | | | Also upgraded the user setting file for MSVC to 2013.
* Removed excessive logging in redstone simulator.Mattes D2015-12-281-7/+0
|
* Silenced the Redstone Simulator console spamSafwat Halaby2015-12-2417-20/+20
|
* Fixes for clang-3.7Lukas Pioch2015-12-194-6/+6
|
* Reorganised the redstone simulatorTiger Wang2015-12-1824-0/+2195
-> Many thanks to @worktycho for the idea, and @Haxi52 for the implementation plan! * Uses classes and inheritance now * Speed should be improved