100 Commits

Author SHA1 Message Date
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
994de4de70 Refactor light propegation RE: dextar0's comments 2015-07-01 11:26:43 -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
aa144a28ea Upgrade to .NET 4.5 2015-06-27 17:57:33 -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
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
b2ae41b87c Initial implementation of lighting 2015-06-26 16:27:13 -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
2dd80cdd0d Implement IDisposable on Window/WindowArea 2015-06-23 15:40:52 -06:00
Drew DeVault
e3aee2f991 Partially implement chests 2015-06-22 11:34:29 -04:00
Mitchell Kutchuk
7820a304ae Catch packet handler exceptions 2015-06-22 08:08:15 -07:00
Mitchell Kutchuk
4225124546 Implement asynchronous sockets 2015-06-20 19:43:28 -07:00
Drew DeVault
939a6dc79c Render snow variation of grass blocks
This also increases the average rainfall everywhere so that fucking
deserts are less common
2015-06-20 11:01:07 -04:00
William Moorehouse
56ac35352c Added more functionality to FontRenderer 2015-06-13 15:46:29 -04:00
William Moorehouse
d31435751d Changed comment delimiter 2015-06-11 23:34:41 -04:00
William Moorehouse
07d407389d Reverted moving license info 2015-06-11 23:30:56 -04:00
William Moorehouse
fae1cd6c67 Added XML comments to most types/fields/methods in the TrueCraft.API namespace 2015-06-11 23:06:00 -04:00
Drew DeVault
2dd423ab11 Implement singleplayer 2015-06-02 20:31:43 -06:00
Robin Kanters
f79f7e36b0 Disable .pdb generation for Release builds 2015-05-21 23:09:17 +02:00
Robin Kanters
7cd6c1ffe5 Only using username for checking access 2015-05-18 08:40:49 +02:00
Robin Kanters
c62b9cd079 Moved config loading to parent class of Serverconfig and Accessconfig 2015-05-18 08:40:48 +02:00
Robin Kanters
7d16f0d835 Removed some unused code 2015-05-18 08:40:47 +02:00
Robin Kanters
1eaf36ffda Moved access control to IMultiplayerServer 2015-05-18 08:40:46 +02:00
Robin Kanters
b099ac8644 Moved AccessConfiguration to the IMultiplayerServer and adjusted the loginhandler accordingly 2015-05-18 08:40:43 +02:00
Robin Kanters
b7aa5f22df Removed old black/whitelist implementations and laid groundwork for new implementation 2015-05-18 08:40:43 +02:00
Robin Kanters
c3f55df77a Added ability to black/whitelist usernames. If blacklisted, they cannot log in to the server 2015-05-18 08:40:41 +02:00
Drew DeVault
bd132b0d6f Fix client bugs preventing use on vanilla servers 2015-05-17 16:18:09 -06:00
Drew DeVault
3b542d9be0 Initial commit of TrueCraft.Launcher 2015-05-16 11:39:34 -06:00
Drew DeVault
742c92b782 Add snowfall rendering 2015-05-15 15:12:36 -06:00
Drew DeVault
47733bb5fb Create TrueCraft.Client.Linux
At some point I'll work on other platforms.
2015-05-12 17:31:22 -06:00
Robin Kanters
4206f2d005 Fixed code issues (variable renames and such) 2015-05-08 21:56:08 +02:00
Robin Kanters
2b09ca5ce0 buttload of capitalization fixed (uppercase in parameter names) 2015-05-05 22:26:44 +02:00
Drew DeVault
805320ce8f Implement caves
This:

- Implements caves with 3D noise
- Moves periodic chunk updates to the thread pool
- Fixes a handful of small bugs
2015-05-03 19:49:43 -06:00
Drew DeVault
e5207c6dec Add support for signs 2015-05-03 16:02:47 -06:00
Drew DeVault
4cbf9e714c Cleanly shut down on SIGTERM 2015-04-26 18:39:37 -06:00
Drew DeVault
6517738949 Improve terrain generation
- Enforced coding style
- Improved perlin constants
- Improved biome constants
- Spawn plants before trees so plants may grow underneath
- Fixed areas that were not deterministic
2015-04-26 18:08:56 -06:00
Drew DeVault
52241a5ea3 Fix falling sand entities 2015-04-20 14:26:15 -06:00
Drew DeVault
74849b0b56 Implement player persistence
This saves your health, inventory, position, and look values.
2015-04-18 17:11:09 -06:00
Drew DeVault
65deecd131 Add world manifests
These include the spawn point, seed, and terrain generator so that you
can load saved worlds with all the right details.
2015-04-13 17:41:57 -06:00
Daniel Vidmar
2100e8c4ab Terrain Decorations & some fixes
- Decorations are terrain features such as trees & dungeons
- cleaned up the code for chunk decorators, and tree & dungeon
generation
- monster spawner blocks now have no drop
- when a block is set to air its metadata value is now reset to 0x0
2015-03-01 00:24:29 -05:00
Daniel Vidmar
30392fae69 Final terrain generation PR fixes 2015-02-24 20:30:28 -05:00
Daniel Vidmar
6811ed551c Fixed issues created from bad merge during rebase 2015-02-21 13:25:44 -05:00
Daniel Vidmar
9fa3286ea0 Terrain Generation 2015-02-21 02:42:03 -05:00
Daniel Vidmar
b83ee8383d New terrain generator 2015-02-21 02:37:13 -05:00
Drew DeVault
4012432a0e Implement door blocks 2015-02-11 22:06:59 -07:00
Drew DeVault
4f66305ad9 Partially implement sand, fully implement stairs 2015-02-10 23:15:48 -07:00
Drew DeVault
4dd99e4e93 Refactor the water block provider
This makes the fluid dynamics model much easier to understand and
maintain.
2015-02-10 21:21:24 -07:00