Drew DeVault
18eb5e34d5
Fix build error
2015-07-04 17:28:17 -06:00
Drew DeVault
e127cadbd9
Do not consider signs above self as obstructions
...
...to chests
2015-07-04 16:37:29 -06:00
Drew DeVault
afb15bf218
Allow chest blocks to open into signs
2015-07-04 15:52:08 -06:00
Drew DeVault
87b621e166
Finish lighting optimizations (for now)
...
We can now consistently light a chunk with sub-10ms lighting steps.
2015-07-04 15:00:54 -06:00
Drew DeVault
d00c4ad9f5
Cache chunks during lighting operations
2015-07-04 11:30:43 -06:00
Drew DeVault
03517f97d1
Minor optimization to lighting's world interface
2015-07-04 09:11:06 -06:00
Drew DeVault
f7ffe718a7
Initial pass on lighting optimizations
2015-07-04 08:41:27 -06:00
Drew DeVault
8966367ebf
Lay foundation for natural mob spawning
2015-07-03 11:26:41 -06:00
Drew DeVault
44e01d0fe7
Disable lighting by default via config.yaml
2015-07-03 10:54:55 -06:00
Drew DeVault
ff0ee58b37
Refactor A* implementation leading up to JPS
2015-07-03 10:54:55 -06:00
Drew DeVault
7578d5980a
Add mob wandering AI
2015-07-02 22:46:20 -06:00
Drew DeVault
a236da0076
Remove debug code for mobs
2015-07-02 22:12:21 -06:00
Drew DeVault
e00cc2fe60
Add initial support for mobs
2015-07-02 22:08:41 -06:00
Drew DeVault
b7ba71e095
Add more complex pathfinding unit tests
2015-07-02 18:04:15 -06:00
Drew DeVault
2edd199fca
Enable diagonal paths in A* implementation
...
The way this works is like so, where 'o' is the voxel we're trying to
leave, '_' is a possible exit, 'x' is an obstacle, and * is the exit.
__*
_o_
___
xx*
_o_
___
xxx
_o*
___
xx_
_ox
__*
Basically, if both the north and east paths are available, AND the
northeast path is available, we use the northeast path.
2015-07-02 17:52:55 -06:00
Drew DeVault
b56a53dc81
Further refinements to A*
2015-07-02 17:22:57 -06:00
Drew DeVault
f2ab1c0598
Implement A* pathfinding and relevant tests
2015-07-02 17:05:44 -06:00
Drew DeVault
8b1930eeac
Switch to DateTime.UtcNow for everything
2015-07-02 12:14:55 -06:00
Drew DeVault
bda2e11885
Prevent players from spawning underground
...
Fixes #76
2015-07-01 16:12:59 -06:00
Drew DeVault
bbc405f902
Prevent blocks from being placed inside entities
...
Fixes #78
2015-07-01 15:59:23 -06:00
Drew DeVault
59740846b7
Add bounding box for torches (null)
2015-07-01 15:53:14 -06:00
Drew DeVault
ed32e479d7
Implement remaining orientable blocks
2015-07-01 15:36:52 -06:00
Drew DeVault
fa8c4a6877
Enforce digging time and damage items when used
...
Closes #11
Partially addresses #12
2015-07-01 15:22:27 -06:00
Drew DeVault
7da2ca5a27
Track the subject of each scheduled event
...
This allows us to cancel events when the subject is no longer around.
For example, if a chunk is unloaded due to inactivity, the events within
it are cancelled (growth of wheat, propegation of fluids, etc). When a
client disconnects, events associated with it are cancelled.
To use this for your own scheduled events, pick a subject. If your
subject does not implement IEventSubject, implement it. Then, you can
pass the subject into ScheduleEvent and that's it. When the subject
dies, your events will die with it. So long as the subject remains
alive, your events still fire.
`null` is a valid subject for events that should happen regardless of
any subject expiring.
Closes #1
2015-07-01 14:02:41 -06:00
Drew DeVault
63d1e8411f
Fix merging and enumerable issues
2015-07-01 11:45:29 -06:00
Drew DeVault
329818b534
Revert "Merge pull request #171 from manio143/ConsoleLogLines"
...
This reverts commit f2fc89191feaf955dea3cf995dd54616efe1203e, reversing
changes made to aa144a28ead9ec6cd7204bbdd67b38db2cb6c524.
2015-07-01 11:32:03 -06:00
Drew DeVault
328420fcdb
WorldLighter -> WorldLighting
2015-07-01 11:30:54 -06:00
Drew DeVault
994de4de70
Refactor light propegation RE: dextar0's comments
2015-07-01 11:26:43 -06:00
Drew DeVault
d0ab60cd89
Propegate light from Y = 128 -> 0
...
Also fixes a bug with ChunkEnumerator
2015-07-01 11:09:06 -06:00
Drew DeVault
13ef861112
Recalculate height map as world changes
2015-07-01 10:56:19 -06:00
Drew DeVault
b118b73c80
Track opacity-based height maps in WorldLighter
2015-07-01 10:53:46 -06:00
Drew DeVault
2d84695157
Add ChunkLoaded event to world
2015-07-01 10:37:14 -06:00
Marian Dziubiak
e2402d8e21
ConsoleLog multiline - fixes
2015-06-28 08:07:41 +02:00
manio143
575a739095
ConsoleLog outputs long text in multiple lines
2015-06-28 08:07:40 +02:00
Drew DeVault
aa144a28ea
Upgrade to .NET 4.5
2015-06-27 17:57:33 -06:00
Drew DeVault
edf7205050
Fix propegation of light through leaves/etc
2015-06-26 19:22:07 -06:00
Drew DeVault
61310e6bbb
Improve tool effectiveness subsystem
2015-06-26 17:56:07 -06:00
Drew DeVault
9d1f5377ef
Drop different items based on tool used to mine
...
For example, mining stone with your hand now drops nothing, and mining
leaves with shears will drop the leaves.
2015-06-26 17:15:51 -06:00
Drew DeVault
0542b5eb62
Fix bug with generate: false
2015-06-26 17:00:39 -06:00
Drew DeVault
f89381aa6f
Fix bugs in sky light calculation
2015-06-26 16:50:52 -06:00
Drew DeVault
b2ae41b87c
Initial implementation of lighting
2015-06-26 16:27:13 -06:00
Drew DeVault
df4ed8ce9f
Add sapling renderer and more debug commands
2015-06-23 15:40:52 -06:00
Drew DeVault
2dd80cdd0d
Implement IDisposable on Window/WindowArea
2015-06-23 15:40:52 -06:00
William Moorehouse
d295e65849
Fixed loss of items when placing on invalid support block
2015-06-22 19:39:08 -04:00
William Moorehouse
0f872459b2
Implemented cactus support logic
2015-06-22 19:26:53 -04:00
William Moorehouse
50c7e021a7
Added rendering support for moist farmland
2015-06-22 18:34:34 -04:00
Drew DeVault
025dc3770e
Generate empty chunks in client
2015-06-22 11:34:30 -04:00
Drew DeVault
20e0aee572
Make chests drop inventory when mined
...
This also fixes a bug where a chest, when removed and replaced, would
have the same inventory. Also adds validation on update sign packets to
make sure it is indeed a sign they are updating.
2015-06-22 11:34:30 -04:00
Drew DeVault
81acdf103a
Refactor chest code, implement storage persistence
2015-06-22 11:34:30 -04:00
William Moorehouse
3a05352fc9
Renamed StoneSlabBlock to SlabBlock
2015-06-22 11:34:30 -04:00