No regrets.
- Pretty much everything related to ticking changed
- Ticking is now capable of running in parallel (other code - not so
much)
- Implemented world updates
- Broke some stuff
- Extracted NPedModel out of QuadripedModel
- Both are now configurable
- Added HumanoidModel
- Added human model
- Changed NPedModel animation logic
- Added a few skins including first sketch of Pyotr by WarDreg
- Decreased walking speed
- 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
- 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
- Added Typeface
- Added Font (Typeface + style)
- Added Label to display text in GUI
- Added Panels to quickly group Components
- Added a test font
- Ignores all parameters but text itself
- Only ABCD are supported (no whitespace)
- Removed TextureManager, use TextureLoader instead
- Removed PngLoader, AWT image compat moved to TextureUtils
- Pixels renamed to TextureData
- Added TextureDataEditor for runtime editing of TextureData
- Added SimpleTextures to load random, one-off textures
- Added Atlases to load textures into runtime-compiled atlases
- BlockRenders now contains a method to load a block texture properly
- Moved block textures into assets/textures/blocks/
- Added FlatRenderProgram to render 2D graphics
- Can be used as-is
- Supports rectangular coordinate-aligned nested masks
- Added AssembledFlatLayer to cache 2D graphics
- Use RenderTarget for add elements during reassembly
- ShapeRenderProgram now allows null textures (defaults to white BG)
- Sprite now deduces size based on primitive's content size
- unless given size explicitly
- ShapeRenderHelper.*WorldTransform methods renamed to .*Transform
- ShapeRP now handles positions, textures and color multipliers only,
normals, view transforms and light calculations are now in WorldRP
- Renamed WorldRenderer to ShapeRenderHelper
- Moved normal computation to WorldRP code from Face
- No default ShapeRP exists, methods in Faces and Shapes now explicitly
require a program
- Removed unnecessary glBind from texture loader
- Refactored and renamed GLSL code
- Added a view bobbing test, enable with I_WANT_TO_THROW_UP in
LayerWorld