| Commit message (Collapse) | Author | Files | Lines |
|
* A chunk's redstone blocks list is no longer touched if AddBlock was
being called with another chunk's coordinates
* Fixed chunk boundary checks
|
|
|
|
* Fixed a special case with the wrong ChunkX/Z values being used to
calculate a relative position
* Simplified data structure adding and removing operations (no more
pointers!)
- Removed one character of whitespace :D
|
|
+ Moved all simulator data into individual chunks
* Cleaned up parameters for functions and some code
* Fixed repeaters powering off faster than they power on
The main issue before was that, although the redstone simulator stored
blocks to be simulated in individual cChunks, other data, such as
powered lists, and etcetera, were global regardless of which chunk was
being simulated. Therefore, with worlds with lots of redstone, each tick
saw the ticking of chunks, which themselves iterated through the entire
dataset needlessly, creating LOTS of lag. Should be better now :)
|
|
|
|
|
|
+ Two (or more) pressure plates can be triggered at the same time
* Fixed issues caused by pressure plates not being in the sources list
|
|
|
|
|
|
May Fix #640
|
|
|
|
|
|
Changed the signitures of the following to use interfaces:
GetPlacementBlockTypeMeta
OnPlaced
OnPlacedByPlayer
OnDestroyed
OnNeighbourChanged
NeighbourChanged
OnUse
CanBeAt
Check
|
|
|
|
|
|
|
|
|
|
|
|
This commit is a refactoring of the redstone code, mainly the functions
handling the removal of invalid blocks from power supplier data
structures. Its aim is to improve performance and potentially reduce the
memory footprint of the data structures.
It works to reduce the amount of GetBlock()s triggered every tick.
Before, a GetBlock() was requested for every single item in the data
lists, as well as for every single redstone block in a chunk. Following
these changes, the AddBlock() event is utilised more effectively to only
update the lists when needed (a block is changed), as well as to insert
the block type (and update it when needed) alongside the coordinates
into the main redstone simulator chunkdata list.
In short, a single GetBlock() is now cached, with this cache being
updated when the simulator is awoken due to a block change.
At least, I *hope* that this is what it does :P
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Also added basic daylight sensors, though because GetBlockSkylight
always is 15, it doesn't work.
|
|
|
|
|
|
Repeaters remain queued to power even if their original source has since
unpowered. Also functionised and cleaned up code.
|
|
|
|
|
|
|
|
|
|
|
|
Also reduced more unneeded code.
|
|
Game of Thrones music in Minecraft, here I come!
|
|
|
|
+ Wires now power blocks around the block beneath
* Torches no longer power off if it is on a linked powered block
* Enhanced code, split functions, etc.
|
|
|
|
Merged wire powering detection code into a single function.
|
|
Not completely reliable, but at least some types of clock work.
|
|
|
|
|
|
They DO sometimes get stuck though :P
|
|
|
|
Fixes duplication bugs.
|
|
Should fix some duplication glitches.
|
|
The redstone simulator kept on resetting them.
|
|
|
|
|
|
They didn't when a source was in front, but now they do! Yay!
|
|
There was no need for it, and it introduced some bugs.
|
|
Now uses AddFaceDirection, as suggested by xoft.
|
|
This fixes #60.
|
|
The redstone simulator no longer goes through the Powered and
LinkedPowered blocks lists for EVERY item in the chunk data, instead,
only at every tick.
Also, wires powering each other that had the same data value is now
fixed.
|
|
Also updated redstone simulator to support it
|
|
|
|
|
|
+ Added lever location checking
* Fixed button location checking
* Fixed button pressing/unpressing
* Fixed repeaters updating
* Minor enhancements
|
|
* Fixed compilation on VC2013
* Fixed redstone self powering - still one more scenario to go
+ Redstone now powers block beneath
* Improved code: functionized stuff, and reduced unneeded GetBlockMetas;
also utilised direct chunk access, as recommended by xoft
+ Added torches powering blocks above it
* Fixed repeaters getting power when they shouldn't
- Stopped wires getting power from another wire through a block, which
could lead to wire-powering loops (vanilla behaviour)
|
|
Also removed unneeded variables.
|
|
+ Updated BlockID - look for yourself
* Improved button, repeater, lever, and comparator code ->
simplification and splitting of some stuff from the redstone simulator
file
* Fixed buttons not breaking when in an invalid game state
* Fixed QueueSetBlock -> improved (AGAIN) piston code
+ Rewrote redstone simulator
Fixes: #57, #58, #205, and part of #131.
Fixes FS issues: 281, 116, and 102
|
|
Fixed pistons not correctly powering down
Fixed dispensers not correctly powering down
Fixed droppers not correctly power down
Fixed TNT not correctly powering up
Fixed redstone lamps not correctly powering up
Fixed redstone lamps not correctly powering down
|
|
|
|
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1620 0a769ca7-a7f5-676a-18bf-c427514a06d6
|
|
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1618 0a769ca7-a7f5-676a-18bf-c427514a06d6
|
|
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1555 0a769ca7-a7f5-676a-18bf-c427514a06d6
|
|
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1527 0a769ca7-a7f5-676a-18bf-c427514a06d6
|
|
Now the dropspensers are correctly powered off, unless they had been powered by a redstone torch directly next to them.
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1525 0a769ca7-a7f5-676a-18bf-c427514a06d6
|
|
Fixes rev 1521 functionality
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1524 0a769ca7-a7f5-676a-18bf-c427514a06d6
|
|
Fix for FS #378, http://www.mc-server.org/support/index.php?do=details&task_id=378
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1521 0a769ca7-a7f5-676a-18bf-c427514a06d6
|
|
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
|
|
Also changed cEntity rotation datatype to double
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1262 0a769ca7-a7f5-676a-18bf-c427514a06d6
|
|
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1247 0a769ca7-a7f5-676a-18bf-c427514a06d6
|
|
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1228 0a769ca7-a7f5-676a-18bf-c427514a06d6
|
|
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1227 0a769ca7-a7f5-676a-18bf-c427514a06d6
|
|
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1105 0a769ca7-a7f5-676a-18bf-c427514a06d6
|
|
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1084 0a769ca7-a7f5-676a-18bf-c427514a06d6
|
|
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1076 0a769ca7-a7f5-676a-18bf-c427514a06d6
|
|
http://forum.mc-server.org/showthread.php?tid=649
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1075 0a769ca7-a7f5-676a-18bf-c427514a06d6
|
|
Don't compare booleans to false / true, use them directly.
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1048 0a769ca7-a7f5-676a-18bf-c427514a06d6
|
|
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
|
|
git-svn-id: http://mc-server.googlecode.com/svn/trunk@937 0a769ca7-a7f5-676a-18bf-c427514a06d6
|
|
git-svn-id: http://mc-server.googlecode.com/svn/trunk@887 0a769ca7-a7f5-676a-18bf-c427514a06d6
|
|
git-svn-id: http://mc-server.googlecode.com/svn/trunk@885 0a769ca7-a7f5-676a-18bf-c427514a06d6
|
|
git-svn-id: http://mc-server.googlecode.com/svn/trunk@606 0a769ca7-a7f5-676a-18bf-c427514a06d6
|
|
git-svn-id: http://mc-server.googlecode.com/svn/trunk@379 0a769ca7-a7f5-676a-18bf-c427514a06d6
|
|
git-svn-id: http://mc-server.googlecode.com/svn/trunk@374 0a769ca7-a7f5-676a-18bf-c427514a06d6
|
|
git-svn-id: http://mc-server.googlecode.com/svn/trunk@364 0a769ca7-a7f5-676a-18bf-c427514a06d6
|
|
git-svn-id: http://mc-server.googlecode.com/svn/trunk@345 0a769ca7-a7f5-676a-18bf-c427514a06d6
|