Drew DeVault
0b9a3c34d1
Change gravity for a few entities to 1.98 m/s^2
2015-09-21 08:38:29 -04:00
Drew DeVault
6956500ef1
Fix oversight on x/z collisions
2015-09-20 17:57:07 -04:00
Drew DeVault
b635feb30b
Fix issues with client jumping
2015-09-20 17:55:57 -04:00
Drew DeVault
8819ccf27e
Fix issues with client physics, implement jumping
...
Still a bit janky with jumping.
Fixes #146
2015-09-20 17:45:27 -04:00
Stian Furu Øverbye
dbfd70ba55
Oops!
2015-09-08 14:59:43 +02:00
Drew DeVault
6969964b18
Implement FIRE
2015-09-07 19:14:12 -04:00
Stian Furu Øverbye
f349487ee4
Added cactus growth
2015-09-07 23:42:13 +02:00
Drew DeVault
79e95e2083
Improve performance, fix grass issue
2015-09-07 17:25:14 -04:00
Drew DeVault
988d2077a2
Refine profiler, improve fluid performance
...
The fluid improvements reduce the number of scheduled updates queued
during terrain generation (they are not really very necessary).
2015-09-07 16:22:20 -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
Drew DeVault
1429fce68d
Add Wolf entity
2015-09-07 14:34:16 -04:00
Drew DeVault
483cc7b763
Finish grass growth implementation
2015-07-16 05:54:35 -06: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
19e52bda45
Implement flint & steel behavior
...
Ref #12
2015-07-14 15:38:06 -06:00
Drew DeVault
1f0c1a6481
Fix error with chunk height map updates
...
Ref #185
2015-07-07 14:54:08 -06:00
Drew DeVault
f7bd7a109d
Optimize event scheduling when loading chunks
2015-07-07 00:49:54 -06:00
Drew DeVault
d27882cdec
Add grass growth
2015-07-06 21:07:40 -06:00
Drew DeVault
940b2217c1
Add mechanism for scheduling updates on chunk load
2015-07-06 20:41:25 -06:00
Drew DeVault
312c2edf3d
Merge pull request #184 from Dizigma/master
...
Stopped players from placing blocks on their heads
2015-07-06 20:18:15 -06:00
Dizigma
6a8cd691a6
Increased range for entities to solve this, instead of checking the client bounding box
2015-07-06 19:57:08 -06:00
Drew DeVault
ec079f4dfa
Fix some issues with physics simulation
2015-07-06 19:47:29 -06:00
Drew DeVault
75f8f8fc32
Make World.FindBlockPosition thread safe
2015-07-06 19:47:20 -06:00
Drew DeVault
ed7a14b871
Rewrite physics engine
...
This time it sucks slightly less
2015-07-06 19:30:51 -06:00
Dizigma
5c1512d527
Stopped players from placing blocks on their heads
2015-07-06 18:31:13 -06:00
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