hematite_server
                                
                                
                                
                                    hematite_server copied to clipboard
                            
                            
                            
                        Basic functionality roadmap
If you want to contribute to hematite_server this roadmap might help you! Order is relevant.
- [x] Login (online-mode=false). Done in #40! :tada:
 - [ ] Implement concept of world. Dimensions ticking in sync! Example: http://is.gd/oGH1Yr (this is example code, a real version wouldn't clone every world on every tick ofc)
 - [ ] Keep track of entity positions. Just the player's position with some simple checks (moving too fast, send Disconnect packet) should be enough to get going. Example: 
HashMap<String, Position>which will come handy when we start adding more entities. - [ ] A working chunk loader. Once we know where the player is we can load and unload his/her surroundings.
 - [ ] Chat. Basically just echoing back whatever the player writes. This would allow people to start working on commands.
 - [ ] Time handling. Having 
/timeworking would be great, also time being updated accordingly every now and then just to keep players in sync. - [ ] Basic inventory handling. Moving items around in their inventory, including bottom bar.
 - [ ] Digging mechanics. This involves actually breaking blocks and spawning entities so the player can pick them up. Quite a milestone.
 - [ ] Dropping items. We already had the inventory working and know how to spawn entities, should be easy.
 - [ ] Illumination. If we start breaking blocks, we should update lighting accordingly?
 
I suggest adding/agreeing upon an 'api' to allow concurrent development.
Such as defining what arguments the chunk-loader will take, what it's responsibilities are, and what it returns.
Also so no needs to wait for another to be implemented
@RichardlL There a ton of components to be defined, being so few people actually developing I think the best workflow is submitting proposals (pseudocode or working code), discussing them until quorum is met and merging. Otherwise we'll waste too much time.
Regarding the chunk loader feel free to send in your proposal for review!
/cc @fenhl
I'd like to get started on world management.
I would like to implement it based on my proposal in #97, henceforth named Allocater / Worker as requested by @fenhl #100,
So implement
- 1.9 world format
 - Requests based on channels, while abstracted by regular functions for ease of use
 - public function 
chunk_send() - Internally, Possibly Incorporating hematite base's chunk loader
 
public funtion `chunk_send`` to take
- A slice of Tuples, each a (i32,i32) x z coordinate for chunks,
 - A mutable reference to a TcpStream Returning Error if unable to generate map or unable to send.
 
@toqueteos Bump
Hello, I'm interested in getting invovled! On this list what isn't being tackled by anyone yet?
@JamesLaverack I think everything is free but the first two and chat. /cc @fenhl
I'm not currently working on or tracking anything on this list.
@toqueteos Who's working on chat? Is there a branch for it somewhere?
@JamesLaverack https://github.com/PistonDevelopers/hematite_server/pull/106 contains some changes to the Chat type. There's also some related issues opened. Knowing that you can also work on Chat without problems.