598 Commits

Author SHA1 Message Date
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
fc6f88a87b Keep scheduled events sorted
This lets us break out of the update loop early when we run out of
expired events.
2015-07-02 12:17:50 -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
a77822950b Remove subject after disposal 2015-07-01 14:18:51 -06:00
Drew DeVault
971043d34a Ditto, but with TrueCraft assets 2015-07-01 14:09:46 -06:00
Drew DeVault
286cd50c2a Update README screenshot 2015-07-01 14:08:50 -06:00
Drew DeVault
500d7f667f Initialize Subjects 2015-07-01 14:04:54 -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
49035b99c3 Fix bug with handling of leaves block and shears 2015-07-01 11:58:37 -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
Drew DeVault
b42c5ec336 Update the required mono version 2015-06-30 08:52:40 -06:00
Drew DeVault
54fda6e1e3 Merge pull request #177 from manio143/SameUserName
Kick new player with username already in use
2015-06-29 07:12:43 -06:00
manio143
dd8183c982 Kick new player with username already in use 2015-06-29 14:51:14 +02:00
Drew DeVault
704e71a087 Update README 2015-06-28 07:58:04 -06:00
Drew DeVault
f2fc89191f Merge pull request #171 from manio143/ConsoleLogLines
ConsoleLog outputs long text in multiple lines
2015-06-28 07:28:50 -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
fea89a9462 Fix edge case with leaves and shears 2015-06-26 17:25:08 -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
0bf8f75c5a Revert "Merge pull request #174 from Mitch528/events"
This reverts commit 43d2840171a83e8b8260f981d1918d7ad1c5ed1f, reversing
changes made to 186efa270795abefbef2b5745656fda2ae11610a.
2015-06-26 16:51:28 -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
43d2840171 Merge pull request #174 from Mitch528/events
Expanded upon EventScheduler
2015-06-26 12:41:45 -06:00
Mitchell Kutchuk
2db4df9b5d Expanded upon EventScheduler
- Events are now sorted
- Thread waits until either a new event is scheduled or an existing
event is ready before continuing.
2015-06-26 10:43:52 -07:00
Drew DeVault
186efa2707 Merge pull request #173 from Mitch528/networking
Networking fixes
2015-06-26 09:26:25 -06:00
Mitchell Kutchuk
683287a153 Catch OperationCancelledException in RemoteClient 2015-06-26 08:05:03 -07:00
Mitchell Kutchuk
0f715dad15 Networking fixes
- Fixed incorrect disconnection check
- Close the socket after disconnection
- Catch OperationCancelledException
2015-06-26 07:52:29 -07:00
Drew DeVault
01b3742763 Merge pull request #172 from manio143/DisconectCrash
Disconnect a crashed client
2015-06-26 07:18:34 -06:00
manio143
fe70cea080 Disconnect a crashed client 2015-06-26 09:40:14 +02:00
Drew DeVault
7eff08d533 Merge pull request #168 from manio143/ClientDisconnectFix
Fixed sending DisconnectPacket before client exit
2015-06-24 13:43:49 -06:00
manio143
3719f68359 Fixed sending DisconnectPacket before client exit 2015-06-24 21:20:16 +02:00