336 Commits

Author SHA1 Message Date
60fbfa9578 Added tiles. Not yet optimized. 2020-08-27 00:24:11 +03:00
21a30e8b97 Created fast Vec caches and increased the use of Vecs in code 2020-08-26 20:58:38 +03:00
65eaae68a8 Added some packages from JPUtil (https://github.com/OLEGSHA/JPUtil)
- ru.windcorp.common.util.ThrowingRunnable replaced with
ru.windcorp.jputil.functions.ThrowingRunnable
2020-08-26 18:34:52 +03:00
a9896fa3e1 Refactored CROs and CROCube, Faces.createBlockFace and Camera
- 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
2020-08-26 01:34:32 +03:00
bdb458b911 Renamed BlockRenderOptimizer to ChunkRenderOptimizer
Also renamed [BRO]Generator to [CRO]Supplier
2020-08-25 21:21:22 +03:00
d58d028e1c Begun refactoring chunk render. Not implemented properly. 2020-08-25 21:11:55 +03:00
1caf82bf8c
Minor updates in Building section of README.md
- Added encoding specification instructions for Eclipse IDE
- Fixed formatting
2020-08-25 20:38:25 +03:00
e1ce8c2e09 Added GNU Unifont typeface, optimized TextureDataEditor greatly
- Added GNU Unifont support
- TextureDataEditor no longer uses AWT internally
  - Optimized Atlases slightly
- SpriteTypeface adds spacing between lines
- Removed TestTypeface
2020-08-17 22:22:13 +03:00
54002475d0 Added SpriteTypeface that implements text styling and layout 2020-08-16 20:37:42 +04:00
0e99685583 Added test text rendering
- 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)
2020-08-16 08:31:06 +04:00
4370c523e6 Flipped Y-axis in flat layers and cursor input. Now (0; 0) is lower left 2020-08-15 22:35:45 +04:00
eb6945b017 Fixed block atlas size 2020-08-15 22:20:42 +04:00
6d2adb0f31 Refactored texture loading system to allow runtime editing and atlases
- 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/
2020-08-15 22:15:26 +04:00
aeed34d105 Changed name to Progressia in README and file headers 2020-08-10 14:07:53 +04:00
4cf0324f1a Moved everything into ru.windcorp.progressia package 2020-08-10 12:22:45 +03:00
45b0ad2888 Switched back to GLSL 1.20 because my laptop is a brick 2020-08-09 11:40:41 +03:00
1362dab2c1 Updated BinUtil and CoordinatePacker
- Added packing 2 ints into a long to CoordinatePacker
- Added iPowerOf2(int) to BinUtil
2020-08-06 21:36:45 +03:00
b9dc25096f Replaced .gui.Size with Vec2i 2020-08-05 11:55:50 +03:00
2abffff843 Ported Component system from https://github.com/OLEGSHA/crystal-farm
- Added Components
  - Also added component-related events and several Layouts
- Added GUILayer to integrate Components into Layers
- Added InputBuses to handle consumable events
  - Layers now have a separate input handling pipeline
- Mouse button clicks are now handled together with keyboard keys
  - KeyEvent, Keys, InputTracker consider MBs to be keys
- Cursor position and pressed keys are now tracked by InputTracker
- GLFW key codes can now be mapped to names with Keys
- Added KeyMatcher for later
- Fixed world clipping into UI
- Cursor info is no longer available thru GraphicsInterface, use
InputTracker instead
2020-08-05 00:16:44 +03:00
4bd5411abb Added FrameResizeEvent, refactored input events a little 2020-08-03 22:41:07 +03:00
7dee1eb95f Re-written flat render pipeline to support transforms
FlatRender now supports arbitrary transforms
GLSL 1.40 is now used in shaders
2020-08-03 21:44:36 +03:00
da61f834e5 Added Mouse Scroll Wheel Support 2020-08-01 22:25:43 +03:00
f6d521fe8a Fixed copyrights 2020-08-01 18:08:13 +03:00
3b2621c82b Fixed flat render depth and added a test crosshair 2020-08-01 18:01:17 +03:00
1ed8f93af4 Added GUI render and support for faces without textures
- 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
2020-08-01 16:23:31 +03:00
47ea102ed7 Fixed a bug with custom-sized textures in PngLoader 2020-08-01 10:28:37 +03:00
8aa0bb8aa0 Refactored ShapeRenderProgram into SRP and WorldRenderProgram
- 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
2020-08-01 00:24:38 +03:00
16205909ed Refactored texture loading: added caching and allowed loading from RAM 2020-07-31 14:42:28 +03:00
e8cec807bc
Update README.md
Updated instructions for IntelliJ IDEA
2020-07-29 22:54:54 +03:00
ed9a52c7a5 Added actual storage capabilities to ChunkData
Also a block can be changed at (0; 0; 0) by pressing G
2020-07-29 21:48:06 +03:00
WarDref
3e0f17c959
Update textures grass_bottom 2020-07-29 16:44:41 +03:00
WarDref
9372ad5ce2
changed texture grass
changed block texture grass_side and block texture grass_side
2020-07-29 16:25:06 +03:00
WarDref
5040101edd
Update block texture grass_side 2020-07-29 15:57:34 +03:00
9d36b86d10 Fixed Shape.fragment.glsl 2020-07-29 15:12:34 +03:00
021c63cf98
Created README.md 2020-07-29 12:56:19 +03:00
e96a30c275 Initial commit 2020-07-29 12:30:34 +03:00