218 Commits

Author SHA1 Message Date
7ecdfdfb4d
Added scatter generation logic to TestPlanetGenerator
- Scatter generation is now triggered properly in TestPlanetGenerator
- WorldGenerators are now required to call addChunk() themselves (again)
- ChunkManager now generates loaded chunks that are not ready
- Chunks scheduled for unloading no longer unload if they become
requested while in queue
2021-03-26 21:26:05 +03:00
4332a78221
Refactored ChunkManager and EntityManager, added server event bus 2021-03-26 20:26:12 +03:00
ef572c43c7
Updated documentation for GuavaEventBusHijacker and ReportingEventBus 2021-03-25 17:15:03 +03:00
f28c765e3f
Made Gravity Models configurable with packets 2021-03-15 21:02:33 +03:00
f4311fb27c
Created a bare-bones implementation of the final planet generator
- Added Planet generator
  - Uses temporary generation algorithms
- Added Surface generator
- Added FloatRangeMap
2021-03-15 18:54:53 +03:00
abd8d9eebb
Moved some functionality into WorldGenerator
- WorldGenerators now suggest a spawn location
- WorldGenerators are no longer responsible for adding chunks
2021-02-28 23:31:57 +03:00
a9a21ce664
Moved planet generation code to its own package 2021-02-28 23:03:23 +03:00
bd5a1fa04e
Added rotating AABBs through lots of pain and suffering
- Collision models now rotate to match entity's general up direction
- Extracted rotation logic from RelRelation into AxisRotations
- Test:PlanetGravityModel is now properly centered
- Fixed some small bugs
2021-02-28 22:55:51 +03:00
2d55d4db51
Added a cubic gravity model and fixed some stuff
- Added TestPlanetGenerator and a corresponding gravity model
- Fixed gravity-triggered camera rotation
2021-02-22 15:38:14 +03:00
d438d2aa14
Linked GravityModel to a WorldGenerator and added GM comms transfer
- WorldData no longer acquires a GravityModel automatically
- On the server, GravityModel is specified by WorldGenerator
- On the client, GravityModel is received from the server via a
PacketSetGravityModel
2021-02-07 01:01:37 +03:00
d3c5011063
Replaced AbsFace with RelFace or BlockFace where appropriate
- Added BlockFace - a *Face superclass
- Refactored and optimized Rel{Relation, Face}
- Replaced most AbsFace references with BlockFace or RelFace
- Chunks now have an up direction
  - Determined by GravityModel's discrete up
  - Static; cannot change unless chunk is reloaded
  - Chunk models are now rendered rotated accordingly
- Fixed some minor bugs that were somehow revealed by these changes
- Moved TileLogicGrass to .test, where it belongs
- Disabled grass despawn until a new worldgen is implemented
2021-02-07 00:45:43 +03:00
10d271059c
Added RelRelation and RelFace; added discrete up vector to GravityModel 2021-02-02 18:49:55 +03:00
acef9d32df
Changed packages for relations, renamed Face to ShapePart
- Added BlockRelation as an abstract superclass to existing relations
  - Must be given an absolute "up" direction before use
- Moved AbsFace, AbsRelation and BlockRelation to .world.rels
- Renamed Face to ShapePart to reduce confusion with AbsFace
2021-02-01 19:14:49 +03:00
848178b343
Renamed BlockFace and BlockRelation to AbsFace and AbsRelation
- Renamed BlockFace to AbsFace
- Renamed BlockRelation to AbsRelation
- Renamed AbsFace constants using the following scheme:
  POS_X, NEG_Y, etc.
2021-02-01 17:25:07 +03:00
b1666fa4b9
Fixed a bunch of issues with gravity and implemented gravity changes
Also added DebugGraphics and made VectorUtil comply with the general Vec
contract
2021-01-31 23:34:24 +03:00
f9717be412
Switched to using looking-at vectors instead of Euler angles
Also fixed camera jittering and added some vector functions
2021-01-29 23:19:22 +03:00
553837f207
GravityModels now take position into account
- Also documented GravityModel
2021-01-25 22:06:34 +03:00
8c5493f78e
Added GravityModels, removed gravity switch
- Added GravityModel
  - can specify gravity varying by location and time
  - Added GravityModelRegistry
  - Stored in WorldData
- Removed Minecraft gravity mode
2021-01-25 21:35:46 +03:00
fc85eb5658
Removed accidentally committed local build.gradle 2021-01-25 10:46:02 +03:00
260562310a
Refactored CROs, removed internal chunk borders. Documented CROs.
- Refactored CROs
- Renamed CROOpaqueCube to CROSurface (including relevant interfaces)
- Optimized CROS
  - CROS now takes neighbor chunks into account
- Refactored default OptimizedSurface implementations
- Documented some CRO code
2021-01-24 20:48:38 +03:00
85edc07c75 Incremented version and corrected whitespace in buildPackages.sh 2021-01-21 18:15:50 +03:00
fcf225f9c7 Updated NSIS installer
Added:
- game icon
- left side image
- desktop shortcut
- main menu shortcut
- working directory in AppData
2021-01-20 18:09:59 +03:00
a0346bcb9c
Changed version string to TechDemo v0.0.0-techdemo TechDemo 2021-01-13 21:18:40 +03:00
ad1d1396df
Fixed installation path in Debian packages 2021-01-13 19:00:58 +03:00
c2d91726a7
Formatted source, added/updated copyright headers
- Also added formatting settings for Eclipse IDE
2021-01-13 14:36:18 +03:00
8f3009300f Moved some files around
- Renamed FloatMathUtils to FloatMathUtil
- Renamed TextureUtils to TextureUtil
- Moved .common.io to .common.world.io
2021-01-12 22:21:06 +03:00
ac42f639f2
Update .gitattributes 2021-01-12 22:15:11 +03:00
b3ce0ca3c4 Fixed text encoding, texture transparency, labels in debug layer 2021-01-12 21:11:53 +03:00
802f736e37 Added IntelliJIDEAGuide and fixed typos in EclipseGuide 2021-01-12 19:24:02 +03:00
70c213fe0d Added localization, LayerTestGUI hiding and fixed two bugs
- Re-added localization
  - Currently en-US, ru-RU
  - Switch with L
  - Used in LayerTestGUI and the new LayerAbout
- Added LayerAbout
  - Contains game named and version
  - Localized
- TestLayerGUI is hidden by default
  - Switch visiblity with F3
- Fixed alignment of text inside Labels
- Fixed crash reports not showing suppressed exceptions and causes
2021-01-12 00:36:18 +03:00
9a9823be0d Merge branch 'Textures' 2021-01-11 22:02:07 +03:00
a3ac4e8aa0 Added several new tiles and updated Glass texture
- Added Painting to demonstrate "HD" texture support
- Added RoughPaint and DecorativeBricks to decorate a house outside
- Added WhitePaint to create windows
- Added TilesSmall and TilesLarge
- Updated Glass texture to make it brighter and add streaks
2021-01-11 21:58:00 +03:00
02ef94a395 Corrected spelling 2021-01-11 11:25:42 +03:00
a67d3ba1bb Added the ability to sprint
When you double-tap the W key, the character starts moving faster
2021-01-11 00:17:31 +03:00
76a6c4a186 Made glass not remove tiles under itself and updated 2 textures
- Glass is no longer solid and is now transparent
- Updated Clock and Wallpaper textures
2021-01-11 00:07:34 +03:00
d2450c796b Fixed runtime problems, renamed some content and disabled saves
- Made sure texture names had correct case
- Renamed Test:Wood to Test:Log
- Renamed Test:Time to Test:Clock
- Links in crash reports are now clickable from Eclipse
2021-01-10 23:54:12 +03:00
73be13734e Merge branch 'master' into Textures 2021-01-10 23:33:22 +03:00
WarDref
b1e5917323 Updated and added textures for blocks and tiles
-WoodenPlank
-clock
-Sand
-CeilingTile1
-CeilingTile2
-Wallpaper
-Wood
-ConcreteBlock
-Glass
-BrickWhite
-Brick
2021-01-10 23:13:23 +03:00
9d305890d1 Crash reports now include the stacktrace of .report() 2021-01-10 23:00:49 +03:00
c1b1d930ce Added audio system initialization 2021-01-10 21:44:03 +03:00
920284190c
Updated Windows building instructions in README.md 2021-01-10 21:06:43 +03:00
8f419b4d02 Rewrote README, wrote building guides and cleaned up
- Updated/prettified README.md
- Wrote extensive building guides
- Removed pictures/
- Removed music samples
- Made sure that git creates run/ when cloning
2021-01-10 20:52:45 +03:00
eb34a4c0d2 Replaced ALTest with AudioSystem class 2021-01-09 19:01:18 +03:00
a4dd14491d Fixed build scripts
- Eclipse is now able to detect native dependencies correctly
- `buildPackages.sh debian' exits with correct exit code
- Renamed `require*Dependencies' to `request*Dependencies'
2021-01-09 14:14:36 +03:00
7a2721c7b3 Fixed missing manifest file in built JARs 2021-01-08 00:44:49 +03:00
e389d2ad67 Refactored build scripts and removed unused dependencies
- Added the following Gradle tasks:
  - buildLocal (alias for build)
  - buildCrossPlatform (builds with all natives)
  - packageDebian
  - packageWindows
- Gradle no longer downloads or packages natives for wrong platforms
(unless buildCrossPlatform or require*Dependencies is run)
- Gradle should no longer complain about deprecated features
- buildPackages.sh is now a lot more robust
- Removed the following dependencies:
  - Apache Commons Math
  - Everything in LWJGL except OpenGL/AL, GLFW, STB and core
2021-01-08 00:33:53 +03:00
eb82c96390 Lots of small tweaks
- Added text outlining
- Shrunk and moved compass bar (it no longer pretends to be a hotbar)
- Changed cross to match text proportions
- Refactored TileRenderSimple into TileRender{Opaque,Transparent}Surface
  - Also renamed OpaqueTile into OpaqueSurface
- Added about and version info
2021-01-07 18:26:54 +03:00
e467d00877 Probably fixed that GUI freeze that WarGreg reported 2021-01-07 16:51:34 +03:00
1bba20504d Set up crash reporting for Guava's EventBuses
- Added GuavaEventBusHijacker to access an inexplicably package-private
constructor in EventBus
- Added and utilized ReportingEventBus that reports caught exceptions
2021-01-07 00:13:18 +03:00
c919ffc8ce Multiple blocks and tiles can now be placed
- Different blocks can now be placed
  - Select block with (vertical) mouse wheel scrolling when block
placing is active
  - All blocks except Test:Air are available
- Different tiles can now be placed
  - Select tile with (vertical) mouse wheel scrolling when tile placing
is active
  - Switch between placing blocks and tiles with middle mouse button,
horizontal mouse scrolling or Shift + (vertical) mouse scrolling
- Changed Test GUI text color to white to increase readability on blocks
2021-01-06 23:25:05 +03:00