- Added gravity (still testing)
- Two modes: realistic (9.8 m/s^2) and Minecraft (32 m/s^2)
- Switch with G
- Changing (0; 0; 0) rebound to H
- Added walking controls
- Minecraft-style
- WIP
- LayerTestGUI now displays dev options
- Added Units
- Interface of AABB (getOrigin(), getSize() and getWall(int)) now
extracted into AABBoid interface
- Same with Walls
- Collection<Wall> getWalls() replaced with Wall getWall(int)
- Added TranslatedAABB extends AABBoid
- CollisionClock replaced with direct reference to WorldData
- Reorganized tmp code in LayerWorld, so as to decrease cRiNgE_ levels
- Renamed CrashReportGenerator.makeCrashReport to .crash for convenience
- Split .crash into subroutines
- Documented Analyzer and ContextProvider
- Both are now supposed to have names In Title Case
- CRG.export now assumes PrintStream does not fail and assumes Log can
fail
Also added entity logic, moved test content to a separate package,
changed ImplementedChangeTracker a bit, added PacketEntityChange, made
entity IDs longs instead of UUIDs, and changed a whole bunch of minor
stuff.
Damn, this took CENTURIES to write. And it's still incomplete and crap.
Like, we've got object allocation all over the place in the tick cycle,
stateful changes are potentially super inefficient and we might have
concurrency problems down the line. AND I'll still have to write 10000
primitive wrappers. Urgh. I don't even feel like writing a coherent
commit message. Screw you, potential future reader of this commit
message.
- Camera now uses anchor objects to obtain position and direction
- Replaceable at runtime
- Anchor supplies info about camera modes (switch with F5)
- Only Entity anchor implemented ATM
- Added PacketSetLocalPlayer
- EntityRenders now produce EntityRenderable
- Holds reference to EntityData
- Has getViewPoint() to use with camera anchors
- Added Matrices (like Vectors)
- Added FloatMathUtils for all those pesky math functions that are only
implemented for double. Curse you double!
- Added EntityData, EntityRender and EntityLogic
- Added QuadripedModel
- Added ComplexTexture to simplify syntax when working with complex
models
- Added the most adorable creature in the universe (as a test feature)
- Camera is now 3rd person (temporary)
- Direction can now be switched with F5
- Blocks are now in packages *.world.block
- Tiles are now in packages *.world.tile
- Renamed WorldRenderable to Renderable
- GraphicsInterface now exposes frame counter
- ...which is now a long
- Removed leftover debug FPS console spam
- Added server
- Managed with ServerState
- Added BlockLogic (no TileLogic yet)
- Added ticking
- Added server-client communication API (only local implemented, no net)
- Added controls system (not fully implemented)
- Added Client class
- Contains most game-related references for client: WorldRender,
Camera, ...
- Managed with ClientState
fjckign finally~
- Multiple ChunkRenderOptimizers can now optimize one block if desired
- CROs require that an interface is implemented, not class extended
- ChunkRenderOptimizerCube has been refactored:
- Blocks that a not opaque are now optimized
- Blocks have per-face opacity
- Blocks can render inner faces
- Example: test glass
- Code is now readable
- Faces was rewritten to support flipping
- .createBlockFace is now readable
- Camera now manipulates coordinate systems in a more obvious way
- Camera now uses world coordinate system
- Z is up
- Yaw 0 looks to the North (+X)
- Positive pitch is up
- Improved control code readability somewhat
- Fixed test UI compass