Tiger Wang
5d11816015
Move some redstone implementations into the source file
2021-03-28 15:36:10 +01:00
Tiger Wang
748b121703
Unify DoWithBlockEntity ( #5168 )
...
+ 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-28 14:40:57 +01:00
Aiden Neill
a7e9f88ff3
New pull request for daylight sensor ( #5066 )
...
* Fixes #4918
Co-authored-by: Tiger Wang <ziwei.tiger@outlook.com>
2020-12-19 01:42:34 +00:00
peterbell10
a9031b6bae
Fix cmake not adding Werror on clang, and _lots_ of warnings ( #4963 )
...
* 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-10-05 10:27:14 +00:00
Tiger Wang
3143d6ce67
Remove std::make_unique from redstone handler creation
2020-08-21 00:50:09 +01:00
Tiger Wang
40eba5244d
Remove the redstone solid block handler
...
- 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-08 18:22:16 +01:00
Tiger Wang
adb86a75da
Do not GetBlock individually in simulators
...
* Have the simulator manager get the block and pass it on
+ Add new overload for WakeUp, called when the manager wakes face positions
2020-08-04 18:15:18 +01:00
Tiger Wang
225c2fa9f6
Always use relative coordinates in AddBlock
...
+ Pass block, use relatives
* Fixes everything immediately converting abs back to rel and getting block, when these data were already available
2020-08-02 15:52:06 +01:00
Tiger Wang
99856df686
Add WakeUp/AddBlock distinction
...
* 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-02 15:52:06 +01:00
Tiger Wang
4e5ab02a58
Use SimulateChunk in redstone simulator
...
+ 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
2020-07-26 14:16:46 +01:00
Tiger Wang
ede56a5750
ಠ_ಠ ( #4660 )
...
+ Provisional handling for observers
2020-04-16 22:27:04 +01:00
Mattes D
9ee47e5999
Using Super.
2020-04-16 20:07:48 +00:00
peterbell10
19ad96561c
Filter blocks to add to redstone sim's wake queue ( #4621 )
2020-04-05 19:20:52 +00:00
Lane Kolbly
7bdbfad1bb
Changed int parameters to vector parameters in cCuboid and simulators ( #3874 )
2017-08-17 15:48:38 +02:00
peterbell10
60dfaa0967
Allocate redstone component handlers upfront
2017-07-17 21:40:43 +02:00
Lukas Pioch
2b78fd6227
Revert "Made redstone handlers static"
2016-07-01 23:23:22 +02:00
Tiger Wang
98cc2a9987
Made redstone handlers static
...
* Improvements to performance? Maybe. Can't hurt (he says).
2016-05-28 15:06:57 +01:00
LogicParrot
ca6ef58b1e
Bulk clearing of whitespace
2016-02-05 23:50:18 +02:00
Tiger Wang
5b62c4c314
Reorganised the redstone simulator
...
-> Many thanks to @worktycho for the idea, and @Haxi52 for the implementation plan!
* Uses classes and inheritance now
* Speed should be improved
2015-12-18 13:17:38 +00:00