129 Commits

Author SHA1 Message Date
Drew DeVault
0c6a973a69 Unify server and client implementations of windows 2015-10-09 07:42:37 -04:00
Drew DeVault
de880f2f8c Merge branch 'client-audio' 2015-10-05 22:08:25 -04:00
Drew DeVault
a361703746 Implement walking sounds
These sounds change depending on what kind of block you're walking in.

Still to come: sound effects for mining and placing blocks
2015-10-05 22:06:59 -04:00
Drew DeVault
05cffcf631 Finish implementing furnaces (server side)
That is, it works with the Minecraft client, but not with the TrueCraft
client.
2015-10-05 08:35:28 -04:00
Drew DeVault
11489e7f95 Partially implement furnace blocks 2015-10-04 15:46:43 -04:00
Drew DeVault
14aa3ce07a Add "InteractiveBoundingBox" to IBlockProvider
This is used to determine the bounding box for interaction in the client
(the ray that's cast from your camera interacts with it to determine the
highlighted block).

TODO: Make it work better with metadata.

This commit also fixes one of the issues with snow: ref #194
2015-10-02 08:15:29 -04:00
Drew DeVault
75a39118a9 Add numbers to slots on inventory 2015-09-30 20:03:51 -04:00
Drew DeVault
8a0ad17b00 Add icon texture mappings for all items 2015-09-30 18:29:07 -04:00
Drew DeVault
2eaaf219a8 Fix torch rendering, track the highlighted face
The second bit will allow the client to start doing things like placing
blocks.
2015-09-27 21:00:32 -04:00
Drew DeVault
02146108ba Fix highlighted block, add crosshairs 2015-09-27 17:14:04 -04:00
Drew DeVault
8f2a4e54a9 Add highlighted block model and VoxelCast class 2015-09-24 08:28:16 -04:00
Drew DeVault
15670c3d77 Reduce mouse sensitivity, fix return to launcher
The mouse sensitivity is now more Minecrafty by default (will eventualy
want to make this configurable) and the bug where the launcher won't
re-open after exiting singleplayer is fixed.
2015-09-21 08:16:44 -04:00
Drew DeVault
2d0ce96cc0 Avoid rendering unseen blocks at chunk boundaries 2015-09-20 15:49:31 -04:00
Drew DeVault
6969964b18 Implement FIRE 2015-09-07 19:14:12 -04:00
Drew DeVault
79e95e2083 Improve performance, fix grass issue 2015-09-07 17:25:14 -04:00
Drew DeVault
08c313a651 Add names to events for profiling puproses 2015-09-07 16:13:18 -04:00
Drew DeVault
14661c7110 Add profiler, improve event scheduler performance 2015-09-07 16:07:39 -04:00
yankejustin
cf5d54b9da Optimize ray intersection calculation
Check to make sure the direction is not 0 only once. Also, check to make
sure it is 0 first so we don't unnecessarily calculate if the position
is greater-than or less-than another without purpose.
2015-08-07 13:58:58 -04:00
yankejustin
105b0f57d0 Reduced string concatenation
Reduce the amount of string concatenation when converting an ItemStack
to a string.
2015-08-07 13:49:15 -04:00
Drew DeVault
f927f86d43 Raise PathComplete event from IMobEntity
...when the current path is completed
2015-07-15 20:25:01 -06:00
Drew DeVault
f7bd7a109d Optimize event scheduling when loading chunks 2015-07-07 00:49:54 -06:00
Drew DeVault
940b2217c1 Add mechanism for scheduling updates on chunk load 2015-07-06 20:41:25 -06:00
Drew DeVault
ed7a14b871 Rewrite physics engine
This time it sucks slightly less
2015-07-06 19:30:51 -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
8966367ebf Lay foundation for natural mob spawning 2015-07-03 11:26:41 -06:00
Drew DeVault
7578d5980a Add mob wandering AI 2015-07-02 22:46:20 -06:00
Drew DeVault
e00cc2fe60 Add initial support for mobs 2015-07-02 22:08:41 -06:00
Drew DeVault
f2ab1c0598 Implement A* pathfinding and relevant tests 2015-07-02 17:05:44 -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
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