104 Commits

Author SHA1 Message Date
ccc9d8f3a7 Refactored Camera to use anchors
- 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!
2020-09-07 10:16:52 +03:00
c613bef8c5 Added face culling state stack and disabled face culling for entities 2020-09-05 23:26:54 +03:00
9dc3154874 Added entities
- 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
2020-09-04 21:54:55 +03:00
dc74a419c9 Added logger 2020-09-03 23:40:28 +03:00
aa3cb630fb Fixed LayoutVertical 2020-09-02 09:15:54 +03:00
03f9b90239 Trying to make OpenAL to work as intended 2020-08-31 21:15:46 +03:00
068f229a45 Added TileLogic 2020-08-31 20:39:35 +03:00
ab4888e592 working on audio 2020-08-31 19:59:06 +03:00
fcf5da731f Fixed buffer position and limit handling in Resource.readAsBytes 2020-08-31 18:39:35 +03:00
6afb7f8f1b Added Resource.readAsBytes to read a resource to a ByteBuffer 2020-08-31 18:32:54 +03:00
3ff074e384 Unified naming schemes for blocks, tiles and registries
- 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
2020-08-31 15:15:04 +03:00
30e61cf33f Added server and reorganized client
- 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~
2020-08-30 19:30:32 +03:00
e8f3177266 Added runtime localization change support
- Label.update() now invokes requestReassembly() method
2020-08-30 16:29:22 +03:00
9ec89a80d3 Added fallback language support to localizer 2020-08-30 09:10:27 +03:00
d6d1e710d9 Hotfixed localizator 2020-08-28 22:26:41 +03:00
280ffba4c0 Refactored localization 2020-08-28 22:19:58 +03:00
5fcccf05ca Added localization support 2020-08-28 21:54:53 +03:00
79c7aa91f8 Optimized tile render and added CRO tile support
- CROs now support tiles
  - CROCube refactored
- Test content:
  - Added sand and flower tiles
  - Removed grass blocks, added grass tiles
2020-08-27 20:58:27 +03:00
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