Compare commits

...

167 Commits

Author SHA1 Message Date
Zoë Gidiere c1a00ca5c7 reformat 2025-10-03 00:59:43 -06:00
Zoë Gidiere 2b5d613aef fix up 2025-10-03 00:54:53 -06:00
Zoë Gidiere 8bea1d23e0 Merge branch 'master' into dev/7.0-2 2025-10-03 00:51:05 -06:00
Zoë Gidiere fb5e597a11 Merge pull request #532 from PolyhedralDev/dev/1.21.9
Updated to 1.21.9
2025-10-03 00:49:23 -06:00
Zoë Gidiere 0990df0620 Merge branch 'master' into dev/1.21.9 2025-10-03 00:48:43 -06:00
Zoë Gidiere 451683aff5 spooky month (bump version to 6.6.6) 2025-10-03 00:35:24 -06:00
OakLoaf 41e9c2f55f Disabled AllayMC platform 2025-10-02 17:45:21 -06:00
Zoë Gidiere 4873b321cb update fabric build version 2025-10-02 17:33:31 -06:00
OakLoaf 64546bb154 Migrated to modern PaperCommandManager 2025-09-30 19:36:50 +01:00
OakLoaf d97478d2c4 Added separate version definition for runPaper task 2025-09-30 19:36:24 +01:00
OakLoaf 359b4826bc Corrected version in fabric.mod.json 2025-09-30 19:31:34 +01:00
OakLoaf 4b218a65f6 Refactored bukkit nms package 2025-09-30 19:00:36 +01:00
OakLoaf b88712e569 Fixed compilation errors 2025-09-30 18:51:25 +01:00
OakLoaf af509ebc3b Disabled AllayMC platform 2025-09-30 18:43:11 +01:00
OakLoaf a5c3733568 Updated dependencies for 1.21.9 2025-09-30 18:42:58 +01:00
Zoë Gidiere 1ef12fdec0 Merge pull request #525 from PolyhedralDev/dev/wolves
More wolf fixes
2025-08-13 14:36:50 -06:00
OakLoaf 4e890f96e4 Corrected wolf variant spawn reasons list 2025-08-13 20:22:25 +01:00
OakLoaf 4e70ee99c9 Adjusted log scope 2025-08-13 20:22:03 +01:00
Zoë Gidiere b149497c60 Merge pull request #521 from PolyhedralDev/deps/cloud
Updated cloud-paper to resolve warning message
2025-08-11 21:34:11 -06:00
Zoë Gidiere d9f591bdb4 Merge pull request #524 from PolyhedralDev/dev/wolves
Made wolves generated with chunks correctly inherit variants
2025-08-11 21:34:01 -06:00
Zoë Gidiere a4b74e2e7f Merge pull request #522 from PolyhedralDev/dev/1.21.8
Added 1.21.8 support
2025-08-11 21:33:51 -06:00
OakLoaf b53d475f42 Made wolves generated with chunks correctly inherit variants 2025-08-01 16:53:32 +01:00
OakLoaf 4ddb741d0d Refactored packages for 1.21.8 2025-07-19 18:23:32 +01:00
OakLoaf 852f5aa610 Bumped dependencies 2025-07-18 16:02:54 +01:00
OakLoaf 953895a8d4 Bumped dependencies 2025-07-18 16:00:58 +01:00
OakLoaf 8788eab839 Added 1.21.8 bukkit support 2025-07-17 15:13:01 +01:00
Oak 2b62473372 Update Versions.kt 2025-07-17 14:13:40 +01:00
Zoë Gidiere b9187248c3 Merge remote-tracking branch 'origin/master' into dev/7.0-2 2025-07-13 17:03:38 -06:00
Zoë Gidiere 2d42810ba3 Merge pull request #513 from everbuild-org/fix/minestom-fine-grained-biome
minestom: remove fine-grained biome control from minestom
2025-07-13 16:44:25 -06:00
Zoë Gidiere 9f546370cd Merge pull request #519 from PolyhedralDev/feat/nmsplatform
Fixed NMSPlatform implementation
2025-07-13 16:44:10 -06:00
Zoë Gidiere 428bf341ef Better handling of internal addon 2025-07-13 15:47:48 -06:00
OakLoaf 8a61571ceb Fixed biome registering 2025-07-13 14:48:56 +01:00
OakLoaf b669f87b79 Merge branch 'refs/heads/master' into feat/nmsplatform 2025-07-13 14:22:00 +01:00
OakLoaf e507675ef6 Removed unused import 2025-07-13 14:21:45 +01:00
Zoë Gidiere 0fc2105ee6 update seismic version 2025-07-11 02:10:02 -06:00
Zoë Gidiere 77b077dd47 update seismic to snaphsot 2025-07-10 23:45:05 -06:00
Zoë Gidiere f38fcd03b0 Reformat 2025-07-10 21:53:17 -06:00
Zoë Gidiere af1e9de474 Merge branch 'master' into dev/7.0-2 2025-07-10 19:51:17 -06:00
Zoë Gidiere 3322a16f09 Fix particle releated crash on bukkit 2025-07-10 19:50:54 -06:00
Zoë Gidiere 78707468c5 Merge branch 'master' into dev/7.0-2 2025-07-10 19:44:30 -06:00
Zoë Gidiere c658d1a81b Merge remote-tracking branch 'origin/master' 2025-07-10 19:42:38 -06:00
Zoë Gidiere 56a7234494 Merge pull request #518 from PolyhedralDev/feat/nmsplatform
Implemented vanilla biome config options
2025-07-10 19:40:22 -06:00
Zoë Gidiere 217b708177 Update NMSPlatform.java 2025-07-10 19:40:05 -06:00
OakLoaf 7d86a41f65 Updates to particles 2025-07-10 11:29:31 +01:00
OakLoaf 753574fc9b Implemented vanilla biome config options 2025-07-10 11:14:22 +01:00
Zoë Gidiere 95f89ed2b6 reformat tesf test 2025-07-09 21:59:13 -06:00
Zoë Gidiere cb8aefe8d2 updates to particles 2025-07-09 19:31:48 -06:00
Zoë Gidiere cd8d6f0da3 fix build 2025-07-09 18:02:59 -06:00
Zoë Gidiere d33b75b77b Merge branch 'master' into dev/7.0-2 2025-07-09 16:48:22 -06:00
Zoë Gidiere 79f9488380 Merge pull request #515 from PolyhedralDev/dev/1.21.7
Bumped Cloud for Paper and Fabric version
2025-07-09 16:42:23 -06:00
Zoë Gidiere 4c2ce65cdc Some fixes to biome config 2025-07-09 16:41:53 -06:00
Zoë Gidiere 70c448dd0d Fix particles 2025-07-09 15:06:40 -06:00
Zoë Gidiere 3ad0ef8501 Update Seismic + paralihtic 2025-07-09 14:06:01 -06:00
OakLoaf 060bda2ec1 Bumped cloud-fabric version 2025-07-03 18:21:41 +01:00
Zoë Gidiere 6b60246694 Merge pull request #514 from PolyhedralDev/dev/1.21.7
Update to 1.21.7
2025-06-30 11:13:24 -06:00
OakLoaf 1a1f461550 Corrected version in fabric.mod.json 2025-06-30 17:57:19 +01:00
OakLoaf da20e282ce Updated Fabric to 1.21.7 2025-06-30 17:53:50 +01:00
OakLoaf 9b14b0ee96 Updated Bukkit to 1.21.7 2025-06-30 16:47:29 +01:00
Christian Bergschneider 89cbab071f refactor: remove fine-grained biome controls and adjust biome handling
Removed the deprecated `doFineGrainedBiomes` option from `TerraMinestomWorldBuilder` and associated classes. Updated biome management to use `IdentityHashMap` and added additional tracking for created biomes. Upgraded Minestom version to `1_21_6-a40d7115d4`.
2025-06-30 00:33:42 +02:00
Zoë Gidiere 71953c90a2 optimize imports 2025-06-28 19:05:20 -06:00
Zoë Gidiere 923cb08b37 fix build 2025-06-28 15:52:19 -06:00
Zoë Gidiere 21ef8c0dc4 Update Seismic 2025-06-28 15:47:08 -06:00
Zoë Gidiere 77b1960757 Use seismic func for perf 2 2025-06-28 15:47:02 -06:00
Zoë Gidiere a06c6fd980 Use Seismic function for perf 2025-06-28 15:46:28 -06:00
Zoë Gidiere 46f533ca9d Perf opts 2025-06-25 00:38:24 -06:00
Zoë Gidiere 9a61334f5a Merge branch 'master' into dev/7.0-2 2025-06-24 18:06:02 -06:00
Zoë Gidiere 118aeb872f Merge pull request #511 from PolyhedralDev/dev/wolves
Fixed wolf variant support for Paper platform
2025-06-23 13:17:18 -06:00
OakLoaf 5446b729f9 Finalised wolves 2025-06-19 21:44:24 +01:00
Oak d71c6bb25f Corrected checks 2025-06-19 21:22:06 +01:00
Oak d8524603c6 Implemented wolf variant support 2025-06-19 21:12:24 +01:00
OakLoaf 85234ddc39 Progress on wolves 2025-06-19 20:50:31 +01:00
OakLoaf 78162eaafe Added vanilla biome key to biome context 2025-06-19 20:49:57 +01:00
OakLoaf 7a041d8a63 Removed unused import 2025-06-19 20:49:37 +01:00
Zoë Gidiere 8cfa2e1467 bump version 2025-06-19 12:23:59 -06:00
Zoë Gidiere 5f367c0f2c Merge pull request #510 from PolyhedralDev/dev/multiverse-fix
Fixed issues causing plugin to fail to load if Multiverse is not present
2025-06-19 12:00:07 -06:00
OakLoaf f4db7fc507 Added initial wolf variant support (not functional) 2025-06-19 15:46:46 +01:00
OakLoaf ad9d16f48c Updated biome collection 2025-06-19 15:46:18 +01:00
OakLoaf 85b6dcc891 Moved all code that requires Multiverse imports into MultiverseGeneratorPluginHook 2025-06-19 14:24:04 +01:00
Zoë Gidiere 29691dfb4d Merge pull request #509 from everbuild-org/master
feat: backport latest minestom support from 7.0 branch
2025-06-18 17:49:21 -06:00
Christian Bergschneider 81eab13ce1 feat: backport latest minestom support from 7.0 branch 2025-06-19 01:42:31 +02:00
Zoë Gidiere a79a347765 temp fix tesf test file 2025-06-18 13:10:38 -06:00
Zoë Gidiere 46e603d681 Reformat 2025-06-18 11:43:35 -06:00
Zoë Gidiere 3f77b4a975 Minor cleanup 2025-06-18 11:37:50 -06:00
Zoë Gidiere 16755fa049 Merge branch 'master' into dev/7.0-2 2025-06-18 11:20:58 -06:00
Zoë Gidiere 68d5b22ca4 bump fabric dep version 2025-06-17 19:08:14 -06:00
Zoë Gidiere 40b8c85c75 Cleanup 2025-06-17 18:50:24 -06:00
Zoë Gidiere 63367e5f03 Final changes 2025-06-17 18:41:09 -06:00
Zoë Gidiere 1d95e7a87d Merge pull request #506 from benwoo1110/feat/multiverse-hook
Implement multiverse generator plugin hook
2025-06-17 16:23:19 -06:00
Zoë Gidiere a25e3cd5a5 Merge branch 'master' into dev/7.0-2 2025-06-17 16:16:41 -06:00
Zoë Gidiere b2e21d8b70 Merge pull request #508 from PolyhedralDev/dev/1.21.6
Dev/1.21.6
2025-06-17 15:34:38 -06:00
Zoë Gidiere 4041239b03 fix build 2025-06-17 15:28:47 -06:00
Zoë Gidiere 280699bbce Update to 1.21.6 and fix a lot of bugs in fabric impl 2025-06-17 15:21:21 -06:00
Zoë Gidiere c4dfdafce8 Merge pull request #507 from everbuild-org/dev/7.0-2
Update Minestom to latest version
2025-06-16 20:02:42 -06:00
Christian Bergschneider 3fe79338db refactor: replace DynamicRegistry.Key with RegistryKey across Minestom components
Updated all references from `DynamicRegistry.Key` to `RegistryKey` to align with the updated Minestom API. Adjusted relevant classes, methods, and object interactions to ensure compatibility and maintain consistency. Updated `Versions.kt` to the latest Minestom version.
2025-06-17 00:10:08 +02:00
Zoë Gidiere 6984dc29d0 Fix fabric 2025-06-14 00:45:32 -06:00
Zoë Gidiere bd253ea5d2 Merge branch 'master' into dev/1.21.6 2025-06-13 22:08:53 -06:00
OakLoaf d743d7d1df Updated fabric to rc1 2025-06-13 22:50:55 +01:00
OakLoaf 238a7954a7 Added paperweight to bukkit platform for runDevBundleServer task 2025-06-13 21:56:54 +01:00
OakLoaf c2319ca4ab Updated to 1.21.6-rc.1 2025-06-13 20:17:56 +01:00
Ben Woo 95172bfa7e Fix checkstyle for catch 2025-06-13 22:33:41 +08:00
Ben Woo 124dbc8836 Improve error checking for multiverse hook 2025-06-13 19:13:57 +08:00
Zoë Gidiere 8706340584 Fix wolves 2025-06-12 16:25:14 -06:00
OakLoaf 9a9f90aa0d Updated fabric platform to 1.21.6 2025-06-10 12:01:17 +01:00
OakLoaf 20a5bfdd0f Updated bukkit platform to 1.21.6 2025-06-10 11:44:10 +01:00
Ben Woo 4fee8cdb24 More example usages by iterating config pack 2025-06-10 12:06:24 +08:00
Ben Woo 70de38ffcb Fix exception variable name 2025-06-10 12:05:59 +08:00
Ben Woo 6722d22f72 Fix onarandombox repo url 2025-06-10 12:05:46 +08:00
Ben Woo c5526c86a2 Implement multiverse plugin hook 2025-06-09 22:58:41 +08:00
Zoë Gidiere 84fa72f96c Catch all runtime errors when loading packs 2025-06-07 22:14:36 -06:00
Zoë Gidiere cc5258ce73 bump version 2025-06-07 21:12:26 -06:00
Christian Bergschneider 7f324bd72b fix: remove unused player configuration phase in biome preload
The loop triggering the player configuration phase was removed as it is unnecessary and unrelated to biome preloading. This streamlines the function and avoids redundant operations during biome initialization.
2025-06-07 16:28:50 +02:00
Zoë Gidiere 748e027282 Merge pull request #505 from HaHaWTH/master
Identify Moonrise worker threads correctly
2025-06-07 07:18:45 +00:00
HaHaWTH bf6612edd0 Identify Moonrise worker threads correctly 2025-06-07 00:17:51 +14:00
Zoë Gidiere 4eace9e7fb Merge remote-tracking branch 'origin/master' into dev/7.0-2 2025-06-05 21:03:58 -06:00
Zoë Gidiere d90a4200fe Update gradle-build.yml 2025-06-05 19:19:43 -06:00
Zoë Gidiere 39ae1fdf93 Merge branch 'master' into dev/7.0-2 2025-06-05 17:51:01 -06:00
Zoë Gidiere af9fb211a8 bump fabric minecraft dep 2025-06-05 17:50:44 -06:00
Zoë Gidiere e9d1add6af Merge branch 'master' into dev/7.0-2 2025-06-05 17:21:00 -06:00
Zoë Gidiere e4395cec83 bump version 2025-06-05 17:18:55 -06:00
Christian Bergschneider 94d135c66c Refactor MinestomBiomeLoader to use DynamicRegistry directly
Simplified biome loading by removing dependency on MinecraftServer and using DynamicRegistry.Key directly. This improves code maintainability and aligns with updated API usage.
2025-06-05 17:04:37 -06:00
Zoë Gidiere 1881051191 Merge pull request #504 from everbuild-org/dev/7.0-2
Apply biomes to minestom instances
2025-06-05 08:16:00 +00:00
Christian Bergschneider 28132e0f13 resolve merge conflicts 2025-06-05 10:08:58 +02:00
Christian Bergschneider 1ef34469cb Merge remote-tracking branch 'ckyuri/dev/7.0-2' into dev/7.0-2 2025-06-05 10:03:50 +02:00
kyuri e79ea4ab82 Minestom Latest - Update (#499)
* Bukkit Build Fix

* remove comments

* remove papermc repo from gradle settings

* add back gradle shasum

* fix formatting, update gradle hash

* Minestom Updated to latest version as of now 4/12/2025

Updated method names to new documentation and changed minestom versioning.

- Paper Build version was changed as I had issues building at all with the snapshot version. So it was changed to a generic version but everything still builds fine.

* Bug Fix - Entity Type was parsing a value that was incorrect and causing issues to load the world.

EntityType.fromId(Integer.parseInt(id));
to
delegate = EntityType.fromKey(id);

* Reverted changes to comply with build version requirements and avoiding pulling functionality out of a common existing function

---------

Co-authored-by: Peter Pan <peter@never.lan>
Co-authored-by: Zoë Gidiere <duplexsys@protonmail.com>
2025-06-04 23:38:42 -06:00
Zoë Gidiere 4450a56ef0 Merge branch 'dev/7.0-2' into dev/7.0-2 2025-06-05 05:38:32 +00:00
Christian Bergschneider a061660e46 chore: Update Minestom version to 1_21_5-4d91778331
This commit updates the Minestom dependency to the latest tagged version. Ensures compatibility with new features and fixes in the updated Minestom release.
2025-06-04 21:52:46 +02:00
Christian Bergschneider abdff16a0a Merge remote-tracking branch 'origin/dev/7.0-2' into dev/7.0-2
# Conflicts:
#	buildSrc/src/main/kotlin/Versions.kt
2025-06-04 21:43:33 +02:00
Christian Bergschneider c08e973e3e feat: provide default MinestomBlockEntity implementation
Introduce the `MinestomBlockEntity` class to represent block entities and hook into the block system. Update `DefaultBlockEntityFactory` to create `MinestomBlockEntity` instances and adjust `TerraMinestomWorldBuilder` initialization for factory injection. These changes improve extensibility and block entity management.
2025-06-04 21:34:04 +02:00
Christian Bergschneider b12fe77f32 feat: add fine-grained biome control to Minestom world builder
Introduced a `doFineGrainedBiomes` flag to allow fine-grained biome control per chunk. This helps mitigate client disconnection issues caused by a Minestom biome encoding bug, with a plan to deprecate once the bug is resolved. Adjusted relevant classes and the example implementation to support this feature.
2025-06-04 21:25:35 +02:00
Zoë Gidiere bab8923f1e update overworld version 2025-06-04 00:21:14 -06:00
Zoë Gidiere 28d93d158e fix up 2025-06-03 22:52:26 -06:00
Zoë Gidiere 118dc32d64 Merge branch 'master' into dev/7.0-2 2025-06-03 22:38:32 -06:00
Zoë Gidiere b4068e6c59 Merge branch 'dev/1.21.5' 2025-06-03 22:28:48 -06:00
Zoë Gidiere b143c72d0e Dev/1.21.5 (#495)
* Bukkit Build Fix (#494)

* Bukkit Build Fix

* remove comments

* remove papermc repo from gradle settings

* add back gradle shasum

* fix formatting, update gradle hash

* Initial Fabric 1.21.5

* Updated dependencies

* Updated SpawnerData with backwards compat

* Updated dependencies

* Updated setBlockState usage - needs verifying as flags are confusing

* Refactored Bukkit NMS packages

* Initial attempt at updating mixin-commons

* Continue fabric 1.21.5 WIP

* Some additional logging

* Update deps

* Build fixes and update allay

* Add oak to authors

---------

Co-authored-by: Mikal <Ifiht@users.noreply.github.com>
Co-authored-by: OakLoaf <oak@beaconstudios.org>
2025-06-03 22:20:23 -06:00
Zoë Gidiere 5f5e70970b Add oak to authors 2025-06-03 21:40:14 -06:00
Zoë Gidiere ec812ef5fb Build fixes and update allay 2025-06-03 21:33:56 -06:00
Zoë Gidiere 85826071cb Update deps 2025-06-03 20:25:55 -06:00
Christian Bergschneider d9a4d64b17 Merge remote-tracking branch 'origin/dev/7.0-2' into dev/7.0-2 2025-06-04 00:05:56 +02:00
Christian Bergschneider 56a1feb708 refactor: move biomes to use user-defined naming conventions.
Replaced "Custom" with "UserDefined" in biome classes, factories, and references for consistency and clarity. Updated relevant imports, method signatures, and internal logic to align with the new terminology. This change improves readability and better represents the purpose of these biome-related components.
2025-06-04 00:05:15 +02:00
Zoë Gidiere c4f093210a Some additional logging 2025-06-03 15:15:07 -06:00
Christian Bergschneider 858adfe866 feat: initial custom biome implementation 2025-06-03 22:41:31 +02:00
Zoë Gidiere f14d22b264 Continue fabric 1.21.5 WIP 2025-06-03 13:59:11 -06:00
Zoë Gidiere bdd80d7832 Merge branch 'dev/seismic' into dev/7.0-2 2025-06-03 04:37:11 -06:00
Zoë Gidiere adfdb8d63c update versions 2025-06-03 04:37:03 -06:00
Christian Bergschneider 5e1c9d8ebe fix: generation stages not being able to reference eachother 2025-06-02 00:34:48 +02:00
Christian Bergschneider 5dff25670c refactor: minestom chunk storage to improve memory efficiency
Replaced 3D array with a 1D array for chunk block storage and adjusted related logic to use calculated indices. Updated block type comparison to use state IDs instead of block IDs for consistency and correctness.
2025-05-30 09:13:04 +02:00
Christian Bergschneider 089b25dea4 feat: update Minestom version and replace deprecated ItemComponent API
Updated the Minestom library to version 1_21_5-69b9a5d844 and migrated from the deprecated `ItemComponent` API to `DataComponents`. This ensures compatibility with the latest changes and improves maintainability.
2025-05-27 23:25:34 +02:00
Christian Bergschneider 1dd59c378e refactor(minestom): replace static singleton access to platform with dependency injection for better modularity
Renamed `MinestomPlatform` to `TerraMinestomPlatform` and updated `TerraMinestomWorldBuilder` to utilize the platform instance directly. Simplified world builder initialization and improved code clarity.
2025-05-27 22:58:16 +02:00
Christian Bergschneider d97fb4ff7b chore: update paper version 2025-05-27 22:50:03 +02:00
OakLoaf 016961c19c Initial attempt at updating mixin-commons 2025-04-17 17:41:45 +01:00
OakLoaf 9f3e225b62 Refactored Bukkit NMS packages 2025-04-17 16:32:59 +01:00
ckyuri 761a014ea5 Reverted changes to comply with build version requirements and avoiding pulling functionality out of a common existing function 2025-04-16 15:54:20 +01:00
ckyuri 9749eecd87 Merge remote-tracking branch 'origin/dev/7.0-2' into dev/7.0-2 2025-04-12 14:11:07 +01:00
ckyuri 32cc4976c8 Bug Fix - Entity Type was parsing a value that was incorrect and causing issues to load the world.
EntityType.fromId(Integer.parseInt(id));
to
delegate = EntityType.fromKey(id);
2025-04-12 14:10:54 +01:00
kyuri e2e0e292b7 Merge branch 'dev/7.0-2' into dev/7.0-2 2025-04-12 12:22:00 +01:00
ckyuri 227bfe7b29 Minestom Updated to latest version as of now 4/12/2025
Updated method names to new documentation and changed minestom versioning.

- Paper Build version was changed as I had issues building at all with the snapshot version. So it was changed to a generic version but everything still builds fine.
2025-04-12 11:54:48 +01:00
OakLoaf c95df25d30 Updated setBlockState usage - needs verifying as flags are confusing 2025-03-27 20:22:35 +00:00
OakLoaf 0adca3c227 Updated dependencies 2025-03-27 20:21:13 +00:00
OakLoaf 782b300d1f Updated SpawnerData with backwards compat 2025-03-27 19:22:34 +00:00
OakLoaf 967a4a0b2b Updated dependencies 2025-03-27 19:22:23 +00:00
Zoë Gidiere d3df5e56c3 Initial Fabric 1.21.5 2025-03-25 16:26:43 -06:00
Mikal dabc2359b3 Bukkit Build Fix (#494)
* Bukkit Build Fix

* remove comments

* remove papermc repo from gradle settings

* add back gradle shasum

* fix formatting, update gradle hash
2025-03-25 16:25:51 -06:00
Peter Pan d33d4af296 fix formatting, update gradle hash 2025-03-20 14:51:12 -04:00
Peter Pan fb0dbda296 add back gradle shasum 2025-03-20 11:01:41 -04:00
Peter Pan 4c860ca4ae remove papermc repo from gradle settings 2025-03-20 10:53:49 -04:00
Peter Pan b6e4543625 remove comments 2025-03-20 10:43:29 -04:00
Peter Pan 0921dfb204 Bukkit Build Fix 2025-03-19 15:54:11 -04:00
303 changed files with 2630 additions and 1351 deletions
+4 -4
View File
@@ -17,16 +17,16 @@ jobs:
contents: read
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
- uses: actions/checkout@v4.2.2
- name: Set up JDK 21
uses: actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93
uses: actions/setup-java@v4.7.1
with:
java-version: '21'
distribution: 'temurin'
server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
settings-path: ${{ github.workspace }} # location for the settings.xml file
- uses: burrunan/gradle-cache-action@03c71a8ba93d670980695505f48f49daf43704a6
- uses: burrunan/gradle-cache-action@v3.0.1
name: Build Terra
with:
# Specifies arguments for Gradle execution
@@ -44,4 +44,4 @@ jobs:
# Properties are passed as -Pname=value
properties: |
kotlin.js.compiler=ir
kotlin.parallel.tasks.in.project=true
kotlin.parallel.tasks.in.project=true
+11 -5
View File
@@ -6,6 +6,12 @@ plugins {
repositories {
mavenCentral()
gradlePluginPortal()
maven("https://maven.solo-studios.ca/releases") {
name = "Solo Studios"
}
maven("https://maven.solo-studios.ca/snapshots") {
name = "Solo Studios"
}
maven("https://repo.codemc.org/repository/maven-public") {
name = "CodeMC"
}
@@ -16,11 +22,11 @@ repositories {
dependencies {
//TODO Allow pulling from Versions.kt
implementation("com.gradleup.shadow", "shadow-gradle-plugin", "8.3.1")
implementation("com.gradleup.shadow", "shadow-gradle-plugin", "8.3.6")
implementation("io.papermc.paperweight.userdev", "io.papermc.paperweight.userdev.gradle.plugin", "2.0.0-beta.16")
implementation("org.ow2.asm", "asm", "9.7")
implementation("org.ow2.asm", "asm-tree", "9.7")
implementation("io.papermc.paperweight.userdev", "io.papermc.paperweight.userdev.gradle.plugin", "2.0.0-beta.17")
implementation("org.ow2.asm", "asm", "9.8")
implementation("org.ow2.asm", "asm-tree", "9.8")
implementation("com.dfsek.tectonic", "common", "4.2.1")
implementation("org.yaml", "snakeyaml", "2.3")
implementation("org.yaml", "snakeyaml", "2.4")
}
+10 -7
View File
@@ -30,6 +30,12 @@ fun Project.configureDependencies() {
repositories {
mavenCentral()
gradlePluginPortal()
maven("https://maven.solo-studios.ca/releases") {
name = "Solo Studios"
}
maven("https://maven.solo-studios.ca/snapshots") {
name = "Solo Studios"
}
maven("https://maven.fabricmc.net/") {
name = "FabricMC"
}
@@ -60,17 +66,14 @@ fun Project.configureDependencies() {
maven("https://storehouse.okaeri.eu/repository/maven-public/") {
name = "Okaeri"
}
maven("https://maven.solo-studios.ca/releases") {
name = "Solo Studios"
}
maven("https://maven.solo-studios.ca/snapshots") {
name = "Solo Studios"
maven("https://repo.onarandombox.com/multiverse-releases") {
name = "onarandombox"
}
}
dependencies {
testImplementation("org.junit.jupiter", "junit-jupiter-api", Versions.Libraries.Internal.junit)
testImplementation("org.junit.jupiter", "junit-jupiter-engine", Versions.Libraries.Internal.junit)
testImplementation("org.junit.jupiter", "junit-jupiter", Versions.Libraries.Internal.junit)
"testRuntimeOnly"("org.junit.platform", "junit-platform-launcher")
compileOnly("org.jetbrains", "annotations", Versions.Libraries.Internal.jetBrainsAnnotations)
compileOnly("com.google.guava", "guava", Versions.Libraries.Internal.guava)
@@ -52,7 +52,8 @@ fun Project.configureDistribution() {
val defaultPackUrl =
URL("https://github.com/PolyhedralDev/TerraOverworldConfig/releases/download/" + Versions.Terra.overworldConfig + "/default.zip")
downloadPack(defaultPackUrl, project)
} catch (_:Exception) {}
} catch (_: Exception) {
}
}
}
+36 -33
View File
@@ -1,36 +1,36 @@
object Versions {
object Terra {
const val overworldConfig = "v1.3.4"
const val overworldConfig = "v1.5.2"
}
object Libraries {
const val tectonic = "4.2.1"
const val paralithic = "1.0.3-SNAPSHOT"
const val paralithic = "2.0.1"
const val strata = "1.3.2"
const val seismic = "0.3.2-SNAPSHOT"
const val seismic = "2.0.4"
const val cloud = "2.0.0"
const val caffeine = "3.1.8"
const val slf4j = "2.0.16"
const val caffeine = "3.2.1"
const val slf4j = "2.0.17"
object Internal {
const val shadow = "8.3.3"
const val apacheText = "1.12.0"
const val apacheIO = "2.17.0"
const val guava = "33.3.1-jre"
const val asm = "9.7.1"
const val snakeYml = "2.3"
const val jetBrainsAnnotations = "26.0.1"
const val junit = "5.11.3"
const val shadow = "8.3.6"
const val apacheText = "1.13.1"
const val apacheIO = "2.19.0"
const val guava = "33.4.8-jre"
const val asm = "9.8"
const val snakeYml = "2.4"
const val jetBrainsAnnotations = "26.0.2"
const val junit = "5.13.1"
const val nbt = "6.1"
}
}
object Fabric {
const val fabricAPI = "0.118.0+${Mod.minecraft}"
const val cloud = "2.0.0-beta.9"
const val fabricAPI = "0.133.14+${Mod.minecraft}"
const val cloud = "2.0.0-beta.11"
}
//
// object Quilt {
@@ -39,14 +39,15 @@ object Versions {
// }
object Mod {
const val mixin = "0.15.3+mixin.0.8.7"
const val mixin = "0.15.5+mixin.0.8.7"
const val mixinExtras = "0.4.1"
const val minecraft = "1.21.4"
const val yarn = "$minecraft+build.8"
const val fabricLoader = "0.16.10"
const val minecraft = "1.21.9"
const val yarn = "$minecraft+build.1"
const val fabricLoader = "0.17.2"
const val architecuryLoom = "1.9.428"
const val architecturyPlugin = "3.4.161"
const val architecuryLoom = "1.11.440"
const val architecturyPlugin = "3.4.162"
}
//
@@ -56,18 +57,20 @@ object Versions {
// }
object Bukkit {
const val minecraft = "1.21.4"
const val paperBuild = "$minecraft-R0.1-20250317.101324-208"
const val minecraft = "1.21.9-rc1-R0.1"
const val paperBuild = "$minecraft-20250930.133904-13"
const val paper = paperBuild
const val paperLib = "1.0.8"
const val reflectionRemapper = "0.1.1"
const val reflectionRemapper = "0.1.2"
const val paperDevBundle = paperBuild
const val runPaper = "2.3.1"
const val paperWeight = "2.0.0-beta.16"
const val cloud = "2.0.0-beta.10"
const val runPaperMinecraft = "1.21.9"
const val paperWeight = "2.0.0-beta.17"
const val cloud = "2.0.0-beta.11"
const val multiverse = "5.0.2"
}
//
//
// object Sponge {
// const val sponge = "9.0.0-SNAPSHOT"
// const val mixin = "0.8.2"
@@ -75,18 +78,18 @@ object Versions {
// }
//
object CLI {
const val logback = "1.5.8"
const val picocli = "4.7.6"
const val logback = "1.5.18"
const val picocli = "4.7.7"
}
object Allay {
const val api = "0.2.0"
const val gson = "2.12.1"
const val api = "0.4.1"
const val gson = "2.13.1"
const val mappings = "3626653"
const val mappingsGenerator = "366618e"
}
object Minestom {
const val minestom = "187931e50b"
const val minestom = "1_21_6-a40d7115d4"
}
}
@@ -14,14 +14,14 @@ import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
public class BiomeExtrusionProvider implements BiomeProvider {
private final BiomeProvider delegate;
private final Set<Biome> biomes;
private final List<Extrusion> extrusions;
private final Extrusion[] extrusions;
private final int resolution;
public BiomeExtrusionProvider(BiomeProvider delegate, List<Extrusion> extrusions, int resolution) {
this.delegate = delegate;
this.biomes = delegate.stream().collect(Collectors.toSet());
extrusions.forEach(e -> biomes.addAll(e.getBiomes()));
this.extrusions = extrusions;
this.extrusions = extrusions.toArray(new Extrusion[0]);
this.resolution = resolution;
}
@@ -33,8 +33,8 @@ public class BiomeExtrusionProvider implements BiomeProvider {
}
public Biome extrude(Biome original, int x, int y, int z, long seed) {
for(Extrusion extrusion : extrusions) {
original = extrusion.extrude(original, x, y, z, seed);
for(int i = 0; i < extrusions.length; i++) {
original = extrusions[i].extrude(original, x, y, z, seed);
}
return original;
}
@@ -1,11 +1,11 @@
package com.dfsek.terra.addons.biome.extrusion.config.extrusions;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.tectonic.api.config.template.annotations.Value;
import com.dfsek.tectonic.api.config.template.object.ObjectTemplate;
import com.dfsek.terra.addons.biome.extrusion.api.Extrusion;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.terra.api.util.range.Range;
@@ -1,5 +1,7 @@
package com.dfsek.terra.addons.biome.extrusion.extrusions;
import com.dfsek.seismic.type.sampler.Sampler;
import java.util.Collection;
import java.util.function.Predicate;
import java.util.stream.Collectors;
@@ -7,9 +9,8 @@ import java.util.stream.Collectors;
import com.dfsek.terra.addons.biome.extrusion.api.Extrusion;
import com.dfsek.terra.addons.biome.extrusion.api.ReplaceableBiome;
import com.dfsek.terra.addons.biome.query.api.BiomeQueries;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.terra.api.util.range.Range;
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.util.range.Range;
import com.dfsek.terra.api.world.biome.Biome;
@@ -1,14 +1,15 @@
package com.dfsek.terra.addons.biome.extrusion.extrusions;
import com.dfsek.seismic.type.sampler.Sampler;
import java.util.Collection;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import com.dfsek.terra.addons.biome.extrusion.api.Extrusion;
import com.dfsek.terra.addons.biome.extrusion.api.ReplaceableBiome;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.terra.api.util.range.Range;
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.util.range.Range;
import com.dfsek.terra.api.world.biome.Biome;
@@ -9,6 +9,8 @@ package com.dfsek.terra.addons.biome.image;
import com.dfsek.tectonic.api.config.template.object.ObjectTemplate;
import java.util.function.Supplier;
import com.dfsek.terra.addons.biome.image.config.ImageProviderTemplate;
import com.dfsek.terra.addons.biome.image.config.converter.ClosestBiomeColorConverterTemplate;
import com.dfsek.terra.addons.biome.image.config.converter.ExactBiomeColorConverterTemplate;
@@ -27,8 +29,6 @@ import com.dfsek.terra.api.util.reflection.TypeKey;
import com.dfsek.terra.api.world.biome.Biome;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
import java.util.function.Supplier;
public class ImageBiomeProviderAddon implements AddonInitializer {
public static final TypeKey<Supplier<ObjectTemplate<BiomeProvider>>> PROVIDER_REGISTRY_KEY = new TypeKey<>() {
@@ -7,8 +7,7 @@
package com.dfsek.terra.addons.biome.pipeline;
import com.dfsek.terra.api.util.cache.SeededVector2Key;
import com.dfsek.seismic.type.sampler.Sampler;
import com.github.benmanes.caffeine.cache.Caffeine;
import com.github.benmanes.caffeine.cache.LoadingCache;
@@ -22,9 +21,9 @@ import com.dfsek.terra.addons.biome.pipeline.api.BiomeChunk;
import com.dfsek.terra.addons.biome.pipeline.api.Pipeline;
import com.dfsek.terra.addons.biome.pipeline.api.Stage;
import com.dfsek.terra.addons.biome.pipeline.api.biome.PipelineBiome;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.terra.api.registry.key.StringIdentifiable;
import com.dfsek.terra.api.util.Column;
import com.dfsek.terra.api.util.cache.SeededVector2Key;
import com.dfsek.terra.api.world.biome.Biome;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
@@ -83,8 +82,8 @@ public class PipelineBiomeProvider implements BiomeProvider {
public Biome getBiome(int x, int z, long seed) {
x += mutator.getSample(seed + 1, x, z) * noiseAmp;
z += mutator.getSample(seed + 2, x, z) * noiseAmp;
x += (int) (mutator.getSample(seed + 1, x, z) * noiseAmp);
z += (int) (mutator.getSample(seed + 2, x, z) * noiseAmp);
x /= resolution;
z /= resolution;
@@ -1,9 +1,9 @@
package com.dfsek.terra.addons.biome.pipeline.api;
import com.dfsek.terra.api.util.cache.SeededVector2Key;
import java.util.List;
import com.dfsek.terra.api.util.cache.SeededVector2Key;
public interface Pipeline {
BiomeChunk generateChunk(SeededVector2Key worldCoordinates);
@@ -7,6 +7,7 @@
package com.dfsek.terra.addons.biome.pipeline.config;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.tectonic.api.config.template.annotations.Default;
import com.dfsek.tectonic.api.config.template.annotations.Description;
import com.dfsek.tectonic.api.config.template.annotations.Value;
@@ -19,7 +20,6 @@ import com.dfsek.terra.addons.biome.pipeline.api.Source;
import com.dfsek.terra.addons.biome.pipeline.api.Stage;
import com.dfsek.terra.addons.biome.pipeline.pipeline.PipelineImpl;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
@@ -7,6 +7,7 @@
package com.dfsek.terra.addons.biome.pipeline.config.source;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.tectonic.api.config.template.annotations.Description;
import com.dfsek.tectonic.api.config.template.annotations.Value;
@@ -14,7 +15,6 @@ import com.dfsek.terra.addons.biome.pipeline.api.Source;
import com.dfsek.terra.addons.biome.pipeline.api.biome.PipelineBiome;
import com.dfsek.terra.addons.biome.pipeline.source.SamplerSource;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
@@ -7,13 +7,13 @@
package com.dfsek.terra.addons.biome.pipeline.config.stage;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.tectonic.api.config.template.annotations.Description;
import com.dfsek.tectonic.api.config.template.annotations.Value;
import com.dfsek.tectonic.api.config.template.object.ObjectTemplate;
import com.dfsek.terra.addons.biome.pipeline.api.Stage;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.seismic.type.sampler.Sampler;
public abstract class StageTemplate implements ObjectTemplate<Stage> {
@@ -1,5 +1,7 @@
package com.dfsek.terra.addons.biome.pipeline.pipeline;
import com.dfsek.seismic.math.floatingpoint.FloatingPointFunctions;
import java.util.List;
import com.dfsek.terra.addons.biome.pipeline.api.BiomeChunk;
@@ -98,7 +100,7 @@ public class BiomeChunkImpl implements BiomeChunk {
// chunk samples points on the same overall grid.
// Without this, shared chunk borders (required because of adjacent cell reads) will not be identical
// because points would be sampled on grids at different offsets, resulting in artifacts at borders.
return (int) Math.ceil((double) finalGridOrigin / initialGridInterval) * initialGridInterval;
return FloatingPointFunctions.ceil((double) finalGridOrigin / initialGridInterval) * initialGridInterval;
}
private static int calculateFinalGridOrigin(int totalExpanderCount, List<Stage> stages) {
@@ -1,7 +1,5 @@
package com.dfsek.terra.addons.biome.pipeline.pipeline;
import com.dfsek.terra.api.util.cache.SeededVector2Key;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -12,6 +10,7 @@ import com.dfsek.terra.addons.biome.pipeline.api.Expander;
import com.dfsek.terra.addons.biome.pipeline.api.Pipeline;
import com.dfsek.terra.addons.biome.pipeline.api.Source;
import com.dfsek.terra.addons.biome.pipeline.api.Stage;
import com.dfsek.terra.api.util.cache.SeededVector2Key;
public class PipelineImpl implements Pipeline {
@@ -7,9 +7,10 @@
package com.dfsek.terra.addons.biome.pipeline.source;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.terra.addons.biome.pipeline.api.Source;
import com.dfsek.terra.addons.biome.pipeline.api.biome.PipelineBiome;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
@@ -1,9 +1,10 @@
package com.dfsek.terra.addons.biome.pipeline.stage.expander;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.terra.addons.biome.pipeline.api.Expander;
import com.dfsek.terra.addons.biome.pipeline.api.biome.PipelineBiome;
import com.dfsek.terra.addons.biome.pipeline.pipeline.BiomeChunkImpl;
import com.dfsek.seismic.type.sampler.Sampler;
public class FractalExpander implements Expander {
@@ -7,6 +7,9 @@
package com.dfsek.terra.addons.biome.pipeline.stage.mutators;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.seismic.type.vector.Vector2Int;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
@@ -14,12 +17,9 @@ import java.util.Map;
import java.util.Set;
import java.util.function.Predicate;
import com.dfsek.seismic.type.vector.Vector2Int;
import com.dfsek.terra.addons.biome.pipeline.api.Stage;
import com.dfsek.terra.addons.biome.pipeline.api.biome.PipelineBiome;
import com.dfsek.terra.addons.biome.pipeline.pipeline.BiomeChunkImpl;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
@@ -7,6 +7,9 @@
package com.dfsek.terra.addons.biome.pipeline.stage.mutators;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.seismic.type.vector.Vector2Int;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
@@ -16,9 +19,7 @@ import java.util.function.Predicate;
import com.dfsek.terra.addons.biome.pipeline.api.Stage;
import com.dfsek.terra.addons.biome.pipeline.api.biome.PipelineBiome;
import com.dfsek.terra.addons.biome.pipeline.pipeline.BiomeChunkImpl;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.seismic.type.vector.Vector2Int;
public class BorderStage implements Stage {
@@ -7,6 +7,8 @@
package com.dfsek.terra.addons.biome.pipeline.stage.mutators;
import com.dfsek.seismic.type.sampler.Sampler;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
@@ -15,7 +17,6 @@ import java.util.stream.Stream;
import com.dfsek.terra.addons.biome.pipeline.api.Stage;
import com.dfsek.terra.addons.biome.pipeline.api.biome.PipelineBiome;
import com.dfsek.terra.addons.biome.pipeline.pipeline.BiomeChunkImpl;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
@@ -7,6 +7,8 @@
package com.dfsek.terra.addons.biome.pipeline.stage.mutators;
import com.dfsek.seismic.type.sampler.Sampler;
import java.util.HashSet;
import java.util.Set;
import java.util.stream.Stream;
@@ -14,7 +16,6 @@ import java.util.stream.Stream;
import com.dfsek.terra.addons.biome.pipeline.api.Stage;
import com.dfsek.terra.addons.biome.pipeline.api.biome.PipelineBiome;
import com.dfsek.terra.addons.biome.pipeline.pipeline.BiomeChunkImpl;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
@@ -7,12 +7,13 @@
package com.dfsek.terra.addons.biome.pipeline.stage.mutators;
import com.dfsek.seismic.type.sampler.Sampler;
import java.util.Objects;
import com.dfsek.terra.addons.biome.pipeline.api.Stage;
import com.dfsek.terra.addons.biome.pipeline.api.biome.PipelineBiome;
import com.dfsek.terra.addons.biome.pipeline.pipeline.BiomeChunkImpl;
import com.dfsek.seismic.type.sampler.Sampler;
public class SmoothStage implements Stage {
@@ -1,11 +1,11 @@
package com.dfsek.terra.addons.chunkgenerator.config.noise;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.tectonic.api.config.template.annotations.Default;
import com.dfsek.tectonic.api.config.template.annotations.Value;
import com.dfsek.tectonic.api.config.template.object.ObjectTemplate;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.seismic.type.sampler.Sampler;
public class BiomeNoiseConfigTemplate implements ObjectTemplate<BiomeNoiseProperties> {
@@ -1,6 +1,7 @@
package com.dfsek.terra.addons.chunkgenerator.config.noise;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.terra.api.properties.Properties;
@@ -1,8 +1,9 @@
package com.dfsek.terra.addons.chunkgenerator.generation.math;
import com.dfsek.terra.addons.chunkgenerator.generation.math.samplers.Sampler3D;
import com.dfsek.seismic.type.vector.Vector3;
import com.dfsek.terra.addons.chunkgenerator.generation.math.samplers.Sampler3D;
public enum SlantCalculationMethod {
DotProduct {
@@ -33,6 +33,7 @@ public class Interpolator {
}
//TODO this system is not very good, replace it wholesale
/**
* 2D Bilinear interpolation between 4 points on a unit square.
*
@@ -1,5 +1,6 @@
package com.dfsek.terra.addons.chunkgenerator.generation.math.interpolation;
import com.dfsek.seismic.math.floatingpoint.FloatingPointFunctions;
import com.dfsek.seismic.math.numericanalysis.interpolation.InterpolationFunctions;
import com.dfsek.terra.addons.chunkgenerator.config.noise.BiomeNoiseProperties;
@@ -28,8 +29,8 @@ public class LazilyEvaluatedInterpolator {
PropertyKey<BiomeNoiseProperties> noisePropertiesKey, int min, int horizontalRes, int verticalRes,
long seed) {
this.noisePropertiesKey = noisePropertiesKey;
int hSamples = (int) Math.ceil(16.0 / horizontalRes);
int vSamples = (int) Math.ceil((double) (max - min) / verticalRes);
int hSamples = FloatingPointFunctions.ceil(16.0 / horizontalRes);
int vSamples = FloatingPointFunctions.ceil((double) (max - min) / verticalRes);
this.zMul = (hSamples + 1);
this.yMul = zMul * zMul;
samples = new Double[yMul * (vSamples + 1)];
@@ -7,6 +7,8 @@
package com.dfsek.terra.addons.chunkgenerator.generation.math.samplers;
import com.dfsek.seismic.math.floatingpoint.FloatingPointFunctions;
import com.dfsek.terra.addons.chunkgenerator.config.noise.BiomeNoiseProperties;
import com.dfsek.terra.addons.chunkgenerator.generation.math.interpolation.ChunkInterpolator;
import com.dfsek.terra.addons.chunkgenerator.generation.math.interpolation.ElevationInterpolator;
@@ -26,7 +28,8 @@ public class Sampler3D {
}
public double sample(double x, double y, double z) {
return interpolator.getNoise(x, y, z) + elevationInterpolator.getElevation((int) Math.round(x), (int) Math.round(z));
return interpolator.getNoise(x, y, z) + elevationInterpolator.getElevation(FloatingPointFunctions.round(x),
FloatingPointFunctions.round(z));
}
public double sample(int x, int y, int z) {
@@ -7,13 +7,13 @@
package com.dfsek.terra.addons.feature.distributor.config;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.tectonic.api.config.template.annotations.Default;
import com.dfsek.tectonic.api.config.template.annotations.Value;
import com.dfsek.tectonic.api.config.template.object.ObjectTemplate;
import com.dfsek.terra.addons.feature.distributor.distributors.SamplerDistributor;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.terra.api.structure.feature.Distributor;
@@ -1,12 +1,11 @@
package com.dfsek.terra.addons.feature.distributor.distributors;
import com.dfsek.seismic.algorithms.hashing.HashingFunctions;
import com.dfsek.seismic.math.integer.IntegerFunctions;
import java.util.random.RandomGenerator;
import java.util.random.RandomGeneratorFactory;
import com.dfsek.seismic.algorithms.hashing.HashingFunctions;
import com.dfsek.seismic.math.integer.IntegerFunctions;
import com.dfsek.terra.api.structure.feature.Distributor;
@@ -8,6 +8,7 @@
package com.dfsek.terra.addons.feature.distributor.distributors;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.terra.api.structure.feature.Distributor;
@@ -8,6 +8,7 @@
package com.dfsek.terra.addons.feature;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.terra.api.structure.Structure;
import com.dfsek.terra.api.structure.feature.Distributor;
import com.dfsek.terra.api.structure.feature.Feature;
@@ -7,12 +7,12 @@
package com.dfsek.terra.addons.feature;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.tectonic.api.config.template.annotations.Final;
import com.dfsek.tectonic.api.config.template.annotations.Value;
import com.dfsek.terra.api.config.AbstractableTemplate;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.terra.api.structure.Structure;
import com.dfsek.terra.api.structure.feature.Distributor;
import com.dfsek.terra.api.structure.feature.Locator;
@@ -7,6 +7,7 @@
package com.dfsek.terra.addons.flora;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.tectonic.api.config.template.annotations.Default;
import com.dfsek.tectonic.api.config.template.annotations.Final;
import com.dfsek.tectonic.api.config.template.annotations.Value;
@@ -16,7 +17,6 @@ import java.util.List;
import com.dfsek.terra.addons.flora.flora.gen.BlockLayer;
import com.dfsek.terra.api.config.AbstractableTemplate;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.terra.api.util.collection.MaterialSet;
@@ -7,21 +7,21 @@
package com.dfsek.terra.addons.flora.flora.gen;
import com.dfsek.seismic.type.Rotation;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.seismic.type.vector.Vector3Int;
import java.util.ArrayList;
import java.util.EnumSet;
import java.util.List;
import java.util.random.RandomGenerator;
import java.util.random.RandomGeneratorFactory;
import com.dfsek.seismic.type.Rotation;
import com.dfsek.terra.api.block.state.BlockState;
import com.dfsek.terra.api.block.state.properties.enums.Direction;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.terra.api.structure.Structure;
import com.dfsek.terra.api.util.collection.MaterialSet;
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.seismic.type.vector.Vector3Int;
import com.dfsek.terra.api.world.WritableWorld;
@@ -7,12 +7,12 @@
package com.dfsek.terra.addons.feature.locator.config;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.tectonic.api.config.template.annotations.Value;
import com.dfsek.tectonic.api.config.template.object.ObjectTemplate;
import com.dfsek.terra.addons.feature.locator.locators.Sampler3DLocator;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.terra.api.structure.feature.Locator;
@@ -7,6 +7,7 @@
package com.dfsek.terra.addons.feature.locator.config;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.tectonic.api.config.template.annotations.Value;
import com.dfsek.tectonic.api.config.template.object.ObjectTemplate;
@@ -14,7 +15,6 @@ import java.util.List;
import com.dfsek.terra.addons.feature.locator.locators.SamplerLocator;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.terra.api.structure.feature.Locator;
@@ -13,8 +13,8 @@ import com.dfsek.tectonic.api.config.template.object.ObjectTemplate;
import com.dfsek.terra.addons.feature.locator.patterns.MatchPattern;
import com.dfsek.terra.addons.feature.locator.patterns.Pattern;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.util.range.Range;
import com.dfsek.terra.api.util.collection.MaterialSet;
import com.dfsek.terra.api.util.range.Range;
public class BlockSetMatchPatternTemplate implements ObjectTemplate<Pattern> {
@@ -8,6 +8,7 @@
package com.dfsek.terra.addons.feature.locator.locators;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.terra.api.structure.feature.BinaryColumn;
import com.dfsek.terra.api.structure.feature.Locator;
import com.dfsek.terra.api.world.chunk.generation.util.Column;
@@ -7,9 +7,10 @@
package com.dfsek.terra.addons.feature.locator.locators;
import com.dfsek.seismic.type.sampler.Sampler;
import java.util.List;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.terra.api.structure.feature.BinaryColumn;
import com.dfsek.terra.api.structure.feature.Locator;
import com.dfsek.terra.api.world.chunk.generation.util.Column;
@@ -8,9 +8,26 @@
package com.dfsek.terra.addons.noise;
import com.dfsek.paralithic.eval.parser.Parser.ParseOptions;
import com.dfsek.seismic.algorithms.sampler.noise.CellularSampler;
import com.dfsek.seismic.algorithms.sampler.arithmetic.AdditionSampler;
import com.dfsek.seismic.algorithms.sampler.arithmetic.DivisionSampler;
import com.dfsek.seismic.algorithms.sampler.arithmetic.MaxSampler;
import com.dfsek.seismic.algorithms.sampler.arithmetic.MinSampler;
import com.dfsek.seismic.algorithms.sampler.arithmetic.MultiplicationSampler;
import com.dfsek.seismic.algorithms.sampler.arithmetic.SubtractionSampler;
import com.dfsek.seismic.algorithms.sampler.noise.cellular.CellularStyleSampler;
import com.dfsek.seismic.algorithms.sampler.noise.random.GaussianNoiseSampler;
import com.dfsek.seismic.algorithms.sampler.noise.random.PositiveWhiteNoiseSampler;
import com.dfsek.seismic.algorithms.sampler.noise.random.WhiteNoiseSampler;
import com.dfsek.seismic.algorithms.sampler.noise.simplex.OpenSimplex2SSampler;
import com.dfsek.seismic.algorithms.sampler.noise.simplex.OpenSimplex2Sampler;
import com.dfsek.seismic.algorithms.sampler.noise.simplex.PerlinSampler;
import com.dfsek.seismic.algorithms.sampler.noise.simplex.SimplexSampler;
import com.dfsek.seismic.algorithms.sampler.noise.value.ValueCubicSampler;
import com.dfsek.seismic.algorithms.sampler.noise.value.ValueSampler;
import com.dfsek.seismic.type.CubicSpline;
import com.dfsek.seismic.type.DistanceFunction;
import com.dfsek.seismic.type.sampler.DerivativeSampler;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.tectonic.api.config.template.object.ObjectTemplate;
import java.util.LinkedHashMap;
@@ -52,17 +69,9 @@ import com.dfsek.terra.api.addon.BaseAddon;
import com.dfsek.terra.api.event.events.config.pack.ConfigPackPreLoadEvent;
import com.dfsek.terra.api.event.functional.FunctionalEventHandler;
import com.dfsek.terra.api.inject.annotations.Inject;
import com.dfsek.seismic.type.sampler.DerivativeSampler;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.terra.api.registry.CheckedRegistry;
import com.dfsek.terra.api.util.reflection.TypeKey;
import com.dfsek.seismic.algorithms.sampler.noise.*;
import com.dfsek.seismic.algorithms.sampler.noise.simplex.*;
import com.dfsek.seismic.algorithms.sampler.noise.fractal.*;
import com.dfsek.seismic.algorithms.sampler.noise.random.*;
import com.dfsek.seismic.algorithms.sampler.noise.value.*;
import com.dfsek.seismic.algorithms.sampler.normalizer.*;
import com.dfsek.seismic.algorithms.sampler.arithmetic.*;
public class NoiseAddon implements AddonInitializer {
public static final TypeKey<Supplier<ObjectTemplate<Sampler>>> NOISE_SAMPLER_TOKEN = new TypeKey<>() {
@@ -86,8 +95,8 @@ public class NoiseAddon implements AddonInitializer {
event.getPack()
.applyLoader(DistanceFunction.class,
(type, o, loader, depthTracker) -> DistanceFunction.valueOf((String) o))
.applyLoader(CellularSampler.ReturnType.class,
(type, o, loader, depthTracker) -> CellularSampler.ReturnType.valueOf((String) o))
.applyLoader(CellularStyleSampler.CellularReturnType.class,
(type, o, loader, depthTracker) -> CellularStyleSampler.CellularReturnType.valueOf((String) o))
.applyLoader(DistanceFunction.class,
(type, o, loader, depthTracker) -> DistanceFunction.valueOf((String) o))
.applyLoader(DimensionApplicableSampler.class, DimensionApplicableSampler::new)
@@ -110,21 +119,21 @@ public class NoiseAddon implements AddonInitializer {
noiseRegistry.register(addon.key("PING_PONG"), PingPongTemplate::new);
noiseRegistry.register(addon.key("RIDGED"), RidgedFractalTemplate::new);
noiseRegistry.register(addon.key("OPEN_SIMPLEX_2"), () -> new SimpleNoiseTemplate(OpenSimplex2Sampler::new));
noiseRegistry.register(addon.key("OPEN_SIMPLEX_2S"), () -> new SimpleNoiseTemplate(OpenSimplex2SSampler::new));
noiseRegistry.register(addon.key("PERLIN"), () -> new SimpleNoiseTemplate(PerlinSampler::new));
noiseRegistry.register(addon.key("SIMPLEX"), () -> new SimpleNoiseTemplate(SimplexSampler::new));
noiseRegistry.register(addon.key("OPEN_SIMPLEX_2"), () -> new SimpleNoiseTemplate<>(OpenSimplex2Sampler.class));
noiseRegistry.register(addon.key("OPEN_SIMPLEX_2S"), () -> new SimpleNoiseTemplate<>(OpenSimplex2SSampler.class));
noiseRegistry.register(addon.key("PERLIN"), () -> new SimpleNoiseTemplate<>(PerlinSampler.class));
noiseRegistry.register(addon.key("SIMPLEX"), () -> new SimpleNoiseTemplate<>(SimplexSampler.class));
noiseRegistry.register(addon.key("GABOR"), GaborNoiseTemplate::new);
noiseRegistry.register(addon.key("PSEUDOEROSION"), PseudoErosionTemplate::new);
noiseRegistry.register(addon.key("VALUE"), () -> new SimpleNoiseTemplate(ValueSampler::new));
noiseRegistry.register(addon.key("VALUE_CUBIC"), () -> new SimpleNoiseTemplate(ValueCubicSampler::new));
noiseRegistry.register(addon.key("VALUE"), () -> new SimpleNoiseTemplate<>(ValueSampler.class));
noiseRegistry.register(addon.key("VALUE_CUBIC"), () -> new SimpleNoiseTemplate<>(ValueCubicSampler.class));
noiseRegistry.register(addon.key("CELLULAR"), CellularNoiseTemplate::new);
noiseRegistry.register(addon.key("WHITE_NOISE"), () -> new SimpleNoiseTemplate(WhiteNoiseSampler::new));
noiseRegistry.register(addon.key("POSITIVE_WHITE_NOISE"), () -> new SimpleNoiseTemplate(PositiveWhiteNoiseSampler::new));
noiseRegistry.register(addon.key("GAUSSIAN"), () -> new SimpleNoiseTemplate(GaussianNoiseSampler::new));
noiseRegistry.register(addon.key("WHITE_NOISE"), () -> new SimpleNoiseTemplate<>(WhiteNoiseSampler.class));
noiseRegistry.register(addon.key("POSITIVE_WHITE_NOISE"), () -> new SimpleNoiseTemplate<>(PositiveWhiteNoiseSampler.class));
noiseRegistry.register(addon.key("GAUSSIAN"), () -> new SimpleNoiseTemplate<>(GaussianNoiseSampler.class));
noiseRegistry.register(addon.key("DISTANCE"), DistanceSamplerTemplate::new);
@@ -147,7 +156,8 @@ public class NoiseAddon implements AddonInitializer {
Map<String, DimensionApplicableSampler> packSamplers = new LinkedHashMap<>();
Map<String, FunctionTemplate> packFunctions = new LinkedHashMap<>();
noiseRegistry.register(addon.key("EXPRESSION"), () -> new ExpressionFunctionTemplate(packSamplers, packFunctions, expressionParseOptions));
noiseRegistry.register(addon.key("EXPRESSION"),
() -> new ExpressionFunctionTemplate(packSamplers, packFunctions, expressionParseOptions));
noiseRegistry.register(addon.key("EXPRESSION_NORMALIZER"),
() -> new ExpressionNormalizerTemplate(packSamplers, packFunctions, expressionParseOptions));
@@ -4,9 +4,9 @@ import com.dfsek.seismic.type.CubicSpline.Point;
import com.dfsek.tectonic.api.config.template.annotations.Value;
import com.dfsek.tectonic.api.config.template.object.ObjectTemplate;
import com.dfsek.terra.api.config.meta.Meta;
public class CubicSplinePointTemplate implements ObjectTemplate<Point> {
@Value("from")
@@ -7,11 +7,11 @@
package com.dfsek.terra.addons.noise.config;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.tectonic.api.config.template.annotations.Value;
import com.dfsek.tectonic.api.config.template.object.ObjectTemplate;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.seismic.type.sampler.Sampler;
public class DimensionApplicableSampler implements ObjectTemplate<DimensionApplicableSampler> {
@@ -1,18 +1,16 @@
package com.dfsek.terra.addons.noise.config.sampler;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.terra.api.util.cache.DoubleSeededVector2Key;
import com.dfsek.terra.api.util.cache.DoubleSeededVector3Key;
import com.dfsek.terra.api.util.generic.pair.Pair;
import com.dfsek.terra.api.util.generic.pair.Pair.Mutable;
import com.github.benmanes.caffeine.cache.Caffeine;
import com.github.benmanes.caffeine.cache.LoadingCache;
import com.github.benmanes.caffeine.cache.Scheduler;
import org.jetbrains.annotations.ApiStatus.Experimental;
import com.dfsek.terra.api.util.cache.DoubleSeededVector2Key;
import com.dfsek.terra.api.util.cache.DoubleSeededVector3Key;
import com.dfsek.terra.api.util.generic.pair.Pair;
import com.dfsek.terra.api.util.generic.pair.Pair.Mutable;
import static com.dfsek.terra.api.util.cache.CacheUtils.CACHE_EXECUTOR;
@@ -25,7 +23,7 @@ public class CacheSampler implements Sampler {
public CacheSampler(Sampler sampler, int dimensions) {
this.sampler = sampler;
if (dimensions == 2) {
if(dimensions == 2) {
this.cache2D = ThreadLocal.withInitial(() -> {
LoadingCache<DoubleSeededVector2Key, Double> cache = Caffeine
.newBuilder()
@@ -1,12 +1,12 @@
package com.dfsek.terra.addons.noise.config.templates;
import com.dfsek.seismic.algorithms.sampler.arithmetic.BinaryArithmeticSampler;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.tectonic.api.config.template.annotations.Value;
import java.util.function.BiFunction;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.seismic.type.sampler.Sampler;
public class BinaryArithmeticTemplate<T extends BinaryArithmeticSampler> extends SamplerTemplate<T> {
@@ -1,14 +1,12 @@
package com.dfsek.terra.addons.noise.config.templates;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.tectonic.api.config.template.annotations.Default;
import com.dfsek.tectonic.api.config.template.annotations.Value;
import com.dfsek.seismic.type.sampler.Sampler;
import org.jetbrains.annotations.ApiStatus.Experimental;
import com.dfsek.terra.addons.noise.config.sampler.CacheSampler;
import org.jetbrains.annotations.ApiStatus.Experimental;
@Experimental
public class CacheSamplerTemplate extends SamplerTemplate<CacheSampler> {
@@ -1,11 +1,10 @@
package com.dfsek.terra.addons.noise.config.templates;
import com.dfsek.seismic.type.sampler.DerivativeSampler;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.tectonic.api.config.template.annotations.Value;
import com.dfsek.tectonic.api.exception.ValidationException;
import com.dfsek.seismic.type.sampler.Sampler;
public class DerivativeSamplerTemplate extends SamplerTemplate<DerivativeSampler> {
@@ -8,11 +8,11 @@
package com.dfsek.terra.addons.noise.config.templates;
import com.dfsek.seismic.algorithms.sampler.DomainWarpedSampler;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.tectonic.api.config.template.annotations.Default;
import com.dfsek.tectonic.api.config.template.annotations.Value;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.seismic.type.sampler.Sampler;
@SuppressWarnings({ "unused", "FieldMayBeFinal" })
@@ -12,12 +12,12 @@ import com.dfsek.tectonic.api.config.template.annotations.Default;
import com.dfsek.tectonic.api.config.template.annotations.Value;
import com.dfsek.tectonic.api.config.template.object.ObjectTemplate;
import com.dfsek.terra.api.config.meta.Meta;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Objects;
import com.dfsek.terra.api.config.meta.Meta;
@SuppressWarnings("unused")
public class FunctionTemplate implements ObjectTemplate<FunctionTemplate> {
@@ -8,6 +8,7 @@
package com.dfsek.terra.addons.noise.config.templates;
import com.dfsek.seismic.algorithms.sampler.KernelSampler;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.tectonic.api.config.template.annotations.Default;
import com.dfsek.tectonic.api.config.template.annotations.Value;
import com.dfsek.tectonic.api.exception.ValidationException;
@@ -15,7 +16,6 @@ import com.dfsek.tectonic.api.exception.ValidationException;
import java.util.List;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.seismic.type.sampler.Sampler;
@SuppressWarnings({ "unused", "FieldMayBeFinal" })
@@ -45,8 +45,7 @@ public class KernelTemplate extends SamplerTemplate<KernelSampler> {
}
}
KernelSampler sampler = new KernelSampler(k, function);
sampler.setFrequency(frequency);
KernelSampler sampler = new KernelSampler(frequency, k, function);
return sampler;
}
@@ -1,11 +1,11 @@
package com.dfsek.terra.addons.noise.config.templates;
import com.dfsek.seismic.algorithms.sampler.LinearHeightmapSampler;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.tectonic.api.config.template.annotations.Default;
import com.dfsek.tectonic.api.config.template.annotations.Value;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.seismic.type.sampler.Sampler;
@SuppressWarnings("FieldMayBeFinal")
@@ -7,6 +7,7 @@
package com.dfsek.terra.addons.noise.config.templates;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.tectonic.api.config.template.ValidatedConfigTemplate;
import com.dfsek.tectonic.api.config.template.annotations.Default;
import com.dfsek.tectonic.api.config.template.annotations.Value;
@@ -14,7 +15,6 @@ import com.dfsek.tectonic.api.config.template.object.ObjectTemplate;
import com.dfsek.tectonic.api.exception.ValidationException;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.seismic.type.sampler.Sampler;
@SuppressWarnings("FieldMayBeFinal")
@@ -1,11 +1,11 @@
package com.dfsek.terra.addons.noise.config.templates;
import com.dfsek.seismic.algorithms.sampler.TranslateSampler;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.tectonic.api.config.template.annotations.Default;
import com.dfsek.tectonic.api.config.template.annotations.Value;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.seismic.type.sampler.Sampler;
public class TranslateSamplerTemplate extends SamplerTemplate<TranslateSampler> {
@@ -7,15 +7,15 @@
package com.dfsek.terra.addons.noise.config.templates.noise;
import com.dfsek.seismic.algorithms.sampler.noise.CellularSampler;
import com.dfsek.seismic.algorithms.sampler.noise.cellular.CellularSampler;
import com.dfsek.seismic.algorithms.sampler.noise.cellular.CellularStyleSampler;
import com.dfsek.seismic.algorithms.sampler.noise.simplex.OpenSimplex2Sampler;
import com.dfsek.seismic.type.DistanceFunction;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.tectonic.api.config.template.annotations.Default;
import com.dfsek.tectonic.api.config.template.annotations.Value;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.seismic.type.sampler.Sampler;
@SuppressWarnings("FieldMayBeFinal")
@@ -26,16 +26,15 @@ public class CellularNoiseTemplate extends NoiseTemplate<CellularSampler> {
@Value("return")
@Default
private CellularSampler.@Meta ReturnType cellularReturnType = CellularSampler.ReturnType.Distance;
private CellularStyleSampler.@Meta CellularReturnType cellularReturnType = CellularStyleSampler.CellularReturnType.Distance;
@Value("jitter")
@Default
private @Meta double cellularJitter = 1.0D;
@Value("lookup")
@Default
private @Meta Sampler lookup = new OpenSimplex2Sampler();
private @Meta Sampler lookup = new OpenSimplex2Sampler(0.02d, 0);
@Value("salt-lookup")
@Default
@@ -43,14 +42,8 @@ public class CellularNoiseTemplate extends NoiseTemplate<CellularSampler> {
@Override
public Sampler get() {
CellularSampler sampler = new CellularSampler();
sampler.setNoiseLookup(lookup);
sampler.setFrequency(frequency);
sampler.setJitterModifier(cellularJitter);
sampler.setReturnType(cellularReturnType);
sampler.setDistanceFunction(cellularDistanceFunction);
sampler.setSalt(salt);
sampler.setSaltLookup(saltLookup);
CellularSampler sampler = new CellularSampler(frequency, salt, lookup, cellularDistanceFunction, cellularReturnType, cellularJitter,
saltLookup);
return sampler;
}
}
@@ -8,12 +8,12 @@
package com.dfsek.terra.addons.noise.config.templates.noise;
import com.dfsek.seismic.algorithms.sampler.noise.ConstantSampler;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.tectonic.api.config.template.annotations.Default;
import com.dfsek.tectonic.api.config.template.annotations.Value;
import com.dfsek.terra.addons.noise.config.templates.SamplerTemplate;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.seismic.type.sampler.Sampler;
@SuppressWarnings("FieldMayBeFinal")
@@ -5,12 +5,10 @@ import com.dfsek.seismic.type.DistanceFunction;
import com.dfsek.tectonic.api.config.template.annotations.Default;
import com.dfsek.tectonic.api.config.template.annotations.Value;
import com.dfsek.terra.addons.noise.config.templates.SamplerTemplate;
import com.dfsek.terra.api.config.meta.Meta;
public class DistanceSamplerTemplate extends SamplerTemplate<DistanceSampler> {
public class DistanceSamplerTemplate extends NoiseTemplate<DistanceSampler> {
@Value("distance-function")
@Default
@@ -38,6 +36,6 @@ public class DistanceSamplerTemplate extends SamplerTemplate<DistanceSampler> {
@Override
public DistanceSampler get() {
return new DistanceSampler(distanceFunction, x, y, z, normalize, normalizeRadius);
return new DistanceSampler(salt, distanceFunction, x, y, z, normalize, normalizeRadius);
}
}
@@ -10,6 +10,7 @@ package com.dfsek.terra.addons.noise.config.templates.noise;
import com.dfsek.paralithic.eval.parser.Parser.ParseOptions;
import com.dfsek.paralithic.eval.tokenizer.ParseException;
import com.dfsek.paralithic.sampler.noise.ExpressionNoiseFunction;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.tectonic.api.config.template.annotations.Default;
import com.dfsek.tectonic.api.config.template.annotations.Value;
@@ -21,7 +22,6 @@ import com.dfsek.terra.addons.noise.config.DimensionApplicableSampler;
import com.dfsek.terra.addons.noise.config.templates.FunctionTemplate;
import com.dfsek.terra.addons.noise.config.templates.SamplerTemplate;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.seismic.type.sampler.Sampler;
import static com.dfsek.terra.addons.noise.paralithic.FunctionUtil.convertFunctionsAndSamplers;
@@ -58,7 +58,8 @@ public class ExpressionFunctionTemplate extends SamplerTemplate<ExpressionNoiseF
var mergedSamplers = new HashMap<>(globalSamplers);
mergedSamplers.putAll(samplers);
try {
return new ExpressionNoiseFunction(convertFunctionsAndSamplers(mergedFunctions, mergedSamplers), expression, vars, parseOptions);
return new ExpressionNoiseFunction(convertFunctionsAndSamplers(mergedFunctions, mergedSamplers), expression, vars,
parseOptions);
} catch(ParseException e) {
throw new RuntimeException("Failed to parse expression.", e);
}
@@ -8,12 +8,11 @@
package com.dfsek.terra.addons.noise.config.templates.noise;
import com.dfsek.seismic.algorithms.sampler.noise.GaborSampler;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.tectonic.api.config.template.annotations.Default;
import com.dfsek.tectonic.api.config.template.annotations.Value;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.seismic.type.sampler.Sampler;
@SuppressWarnings("FieldMayBeFinal")
@@ -38,16 +37,13 @@ public class GaborNoiseTemplate extends NoiseTemplate<GaborSampler> {
@Default
private @Meta double f0 = 0.625;
@Value("a")
@Default
private @Meta double a = 0.1;
@Override
public Sampler get() {
GaborSampler gaborSampler = new GaborSampler();
gaborSampler.setFrequency(frequency);
gaborSampler.setRotation(rotation);
gaborSampler.setIsotropic(isotropic);
gaborSampler.setDeviation(deviation);
gaborSampler.setImpulsesPerKernel(impulses);
gaborSampler.setFrequency0(f0);
gaborSampler.setSalt(salt);
GaborSampler gaborSampler = new GaborSampler(frequency, salt, f0, deviation, rotation, impulses, a, isotropic);
return gaborSampler;
}
}
@@ -2,11 +2,11 @@ package com.dfsek.terra.addons.noise.config.templates.noise;
import com.dfsek.seismic.algorithms.sampler.noise.PseudoErosionSampler;
import com.dfsek.seismic.algorithms.sampler.noise.simplex.OpenSimplex2Sampler;
import com.dfsek.seismic.type.sampler.DerivativeSampler;
import com.dfsek.tectonic.api.config.template.annotations.Default;
import com.dfsek.tectonic.api.config.template.annotations.Value;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.seismic.type.sampler.DerivativeSampler;
public class PseudoErosionTemplate extends NoiseTemplate<PseudoErosionSampler> {
@@ -45,7 +45,7 @@ public class PseudoErosionTemplate extends NoiseTemplate<PseudoErosionSampler> {
@Value("sampler")
@Default
private DerivativeSampler heightSampler = new OpenSimplex2Sampler();
private DerivativeSampler heightSampler = new OpenSimplex2Sampler(0.02d, 0);
@Value("slope-mask.enable")
@Default
@@ -69,11 +69,9 @@ public class PseudoErosionTemplate extends NoiseTemplate<PseudoErosionSampler> {
@Override
public PseudoErosionSampler get() {
PseudoErosionSampler pseudoErosion = new PseudoErosionSampler(octaves, gain, lacunarity,
PseudoErosionSampler pseudoErosion = new PseudoErosionSampler(frequency, salt, octaves, gain, lacunarity,
slopeStrength, branchStrength, strength,
erosionFrequency, heightSampler, slopeMask, slopeMaskFull, slopeMaskNone, jitterModifier, averageErosionImpulses);
pseudoErosion.setFrequency(frequency);
pseudoErosion.setSalt(salt);
return pseudoErosion;
}
}
@@ -7,24 +7,28 @@
package com.dfsek.terra.addons.noise.config.templates.noise;
import java.util.function.Supplier;
import com.dfsek.seismic.algorithms.sampler.noise.NoiseFunction;
import com.dfsek.seismic.type.sampler.Sampler;
import java.lang.reflect.InvocationTargetException;
public class SimpleNoiseTemplate extends NoiseTemplate<NoiseFunction> {
private final Supplier<NoiseFunction> samplerSupplier;
public SimpleNoiseTemplate(Supplier<NoiseFunction> samplerSupplier) {
this.samplerSupplier = samplerSupplier;
public class SimpleNoiseTemplate<T extends NoiseFunction> extends NoiseTemplate<NoiseFunction> {
private final Class<T> samplerClass;
public SimpleNoiseTemplate(Class<T> samplerClass) {
this.samplerClass = samplerClass;
}
@Override
public Sampler get() {
NoiseFunction sampler = samplerSupplier.get();
sampler.setFrequency(frequency);
sampler.setSalt(salt);
NoiseFunction sampler;
try {
sampler = samplerClass.getConstructor(double.class, long.class)
.newInstance(frequency, salt);
} catch(InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchMethodException e) {
throw new RuntimeException(e);
}
return sampler;
}
}
@@ -15,11 +15,8 @@ import com.dfsek.seismic.type.sampler.Sampler;
public class BrownianMotionTemplate extends FractalTemplate<BrownianMotionSampler> {
@Override
public Sampler get() {
BrownianMotionSampler sampler = new BrownianMotionSampler(function);
sampler.setGain(fractalGain);
sampler.setLacunarity(fractalLacunarity);
sampler.setOctaves(octaves);
sampler.setWeightedStrength(weightedStrength);
BrownianMotionSampler sampler = new BrownianMotionSampler(salt, function, fractalGain, fractalLacunarity, weightedStrength,
octaves);
return sampler;
}
}
@@ -8,15 +8,15 @@
package com.dfsek.terra.addons.noise.config.templates.noise.fractal;
import com.dfsek.seismic.algorithms.sampler.noise.fractal.FractalNoiseFunction;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.tectonic.api.config.template.annotations.Default;
import com.dfsek.tectonic.api.config.template.annotations.Value;
import com.dfsek.terra.addons.noise.config.templates.SamplerTemplate;
import com.dfsek.terra.addons.noise.config.templates.noise.NoiseTemplate;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.seismic.type.sampler.Sampler;
public abstract class FractalTemplate<T extends FractalNoiseFunction> extends SamplerTemplate<T> {
public abstract class FractalTemplate<T extends FractalNoiseFunction> extends NoiseTemplate<T> {
@Value("octaves")
@Default
protected @Meta int octaves = 3;
@@ -8,11 +8,11 @@
package com.dfsek.terra.addons.noise.config.templates.noise.fractal;
import com.dfsek.seismic.algorithms.sampler.noise.fractal.PingPongSampler;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.tectonic.api.config.template.annotations.Default;
import com.dfsek.tectonic.api.config.template.annotations.Value;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.seismic.type.sampler.Sampler;
@SuppressWarnings({ "unused", "FieldMayBeFinal" })
@@ -23,12 +23,7 @@ public class PingPongTemplate extends FractalTemplate<PingPongSampler> {
@Override
public Sampler get() {
PingPongSampler sampler = new PingPongSampler(function);
sampler.setGain(fractalGain);
sampler.setLacunarity(fractalLacunarity);
sampler.setOctaves(octaves);
sampler.setWeightedStrength(weightedStrength);
sampler.setPingPongStrength(pingPong);
PingPongSampler sampler = new PingPongSampler(salt, function, fractalGain, fractalLacunarity, weightedStrength, octaves, pingPong);
return sampler;
}
}
@@ -15,11 +15,7 @@ import com.dfsek.seismic.type.sampler.Sampler;
public class RidgedFractalTemplate extends FractalTemplate<RidgedFractalSampler> {
@Override
public Sampler get() {
RidgedFractalSampler sampler = new RidgedFractalSampler(function);
sampler.setGain(fractalGain);
sampler.setLacunarity(fractalLacunarity);
sampler.setOctaves(octaves);
sampler.setWeightedStrength(weightedStrength);
RidgedFractalSampler sampler = new RidgedFractalSampler(salt, function, fractalGain, fractalLacunarity, weightedStrength, octaves);
return sampler;
}
}
@@ -8,10 +8,10 @@
package com.dfsek.terra.addons.noise.config.templates.normalizer;
import com.dfsek.seismic.algorithms.sampler.normalizer.ClampNormalizer;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.tectonic.api.config.template.annotations.Value;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.seismic.type.sampler.Sampler;
@SuppressWarnings({ "unused", "FieldMayBeFinal" })
@@ -4,13 +4,13 @@ package com.dfsek.terra.addons.noise.config.templates.normalizer;
import com.dfsek.seismic.algorithms.sampler.normalizer.CubicSplineNormalizer;
import com.dfsek.seismic.type.CubicSpline;
import com.dfsek.seismic.type.CubicSpline.Point;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.tectonic.api.config.template.annotations.Value;
import java.util.List;
import com.dfsek.terra.addons.noise.config.templates.SamplerTemplate;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.seismic.type.sampler.Sampler;
public class CubicSplineNormalizerTemplate extends NormalizerTemplate<CubicSplineNormalizer> {
@@ -9,6 +9,8 @@ package com.dfsek.terra.addons.noise.config.templates.normalizer;
import com.dfsek.paralithic.eval.parser.Parser.ParseOptions;
import com.dfsek.paralithic.eval.tokenizer.ParseException;
import com.dfsek.paralithic.sampler.normalizer.ExpressionNormalizer;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.tectonic.api.config.template.annotations.Default;
import com.dfsek.tectonic.api.config.template.annotations.Value;
@@ -19,8 +21,6 @@ import java.util.Map;
import com.dfsek.terra.addons.noise.config.DimensionApplicableSampler;
import com.dfsek.terra.addons.noise.config.templates.FunctionTemplate;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.paralithic.sampler.normalizer.ExpressionNormalizer;
import static com.dfsek.terra.addons.noise.paralithic.FunctionUtil.convertFunctionsAndSamplers;
@@ -62,7 +62,8 @@ public class ExpressionNormalizerTemplate extends NormalizerTemplate<ExpressionN
var mergedSamplers = new HashMap<>(globalSamplers);
mergedSamplers.putAll(samplers);
try {
return new ExpressionNormalizer(function, convertFunctionsAndSamplers(mergedFunctions, mergedSamplers), expression, vars, parseOptions);
return new ExpressionNormalizer(function, convertFunctionsAndSamplers(mergedFunctions, mergedSamplers), expression, vars,
parseOptions);
} catch(ParseException e) {
throw new RuntimeException("Failed to parse expression.", e);
}
@@ -1,11 +1,11 @@
package com.dfsek.terra.addons.noise.config.templates.normalizer;
import com.dfsek.seismic.algorithms.sampler.normalizer.LinearMapNormalizer;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.tectonic.api.config.template.annotations.Default;
import com.dfsek.tectonic.api.config.template.annotations.Value;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.seismic.type.sampler.Sampler;
public class LinearMapNormalizerTemplate extends NormalizerTemplate<LinearMapNormalizer> {
@@ -8,10 +8,10 @@
package com.dfsek.terra.addons.noise.config.templates.normalizer;
import com.dfsek.seismic.algorithms.sampler.normalizer.LinearNormalizer;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.tectonic.api.config.template.annotations.Value;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.seismic.type.sampler.Sampler;
@SuppressWarnings({ "unused", "FieldMayBeFinal" })
@@ -8,11 +8,11 @@
package com.dfsek.terra.addons.noise.config.templates.normalizer;
import com.dfsek.seismic.algorithms.sampler.normalizer.NormalNormalizer;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.tectonic.api.config.template.annotations.Default;
import com.dfsek.tectonic.api.config.template.annotations.Value;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.seismic.type.sampler.Sampler;
@SuppressWarnings({ "unused", "FieldMayBeFinal" })
@@ -8,11 +8,11 @@
package com.dfsek.terra.addons.noise.config.templates.normalizer;
import com.dfsek.seismic.algorithms.sampler.normalizer.Normalizer;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.tectonic.api.config.template.annotations.Value;
import com.dfsek.terra.addons.noise.config.templates.SamplerTemplate;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.seismic.type.sampler.Sampler;
public abstract class NormalizerTemplate<T extends Normalizer> extends SamplerTemplate<T> {
@@ -8,10 +8,10 @@
package com.dfsek.terra.addons.noise.config.templates.normalizer;
import com.dfsek.seismic.algorithms.sampler.normalizer.PosterizationNormalizer;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.tectonic.api.config.template.annotations.Value;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.seismic.type.sampler.Sampler;
@SuppressWarnings({ "unused", "FieldMayBeFinal" })
@@ -1,10 +1,10 @@
package com.dfsek.terra.addons.noise.config.templates.normalizer;
import com.dfsek.seismic.algorithms.sampler.normalizer.ScaleNormalizer;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.tectonic.api.config.template.annotations.Value;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.seismic.type.sampler.Sampler;
public class ScaleNormalizerTemplate extends NormalizerTemplate<ScaleNormalizer> {
@@ -2,17 +2,14 @@ package com.dfsek.terra.addons.noise.paralithic;
import com.dfsek.paralithic.eval.tokenizer.ParseException;
import com.dfsek.paralithic.functions.Function;
import com.dfsek.paralithic.functions.dynamic.noise.NoiseFunction2;
import com.dfsek.paralithic.functions.dynamic.noise.NoiseFunction3;
import com.dfsek.paralithic.functions.dynamic.noise.SaltedNoiseFunction2;
import com.dfsek.paralithic.functions.dynamic.noise.SaltedNoiseFunction3;
import java.util.HashMap;
import java.util.Map;
import com.dfsek.paralithic.functions.dynamic.noise.NoiseFunction2;
import com.dfsek.paralithic.functions.dynamic.noise.NoiseFunction3;
import com.dfsek.paralithic.functions.dynamic.noise.SaltedNoiseFunction2;
import com.dfsek.paralithic.functions.dynamic.noise.SaltedNoiseFunction3;
import com.dfsek.terra.addons.noise.config.DimensionApplicableSampler;
import com.dfsek.terra.addons.noise.config.templates.FunctionTemplate;
@@ -1,5 +1,3 @@
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
version = version("1.0.0")
dependencies {
@@ -30,7 +30,8 @@ public class NumberPredicateAddon implements AddonInitializer {
plugin.getEventManager()
.getHandler(FunctionalEventHandler.class)
.register(addon, ConfigPackPreLoadEvent.class)
.then(event -> event.getPack().applyLoader(DoublePredicate.class, new DoublePredicateLoader(event.getPack().getExpressionParseOptions())))
.then(event -> event.getPack()
.applyLoader(DoublePredicate.class, new DoublePredicateLoader(event.getPack().getExpressionParseOptions())))
.priority(50)
.failThrough();
}
@@ -7,19 +7,20 @@
package com.dfsek.terra.addons.ore.ores;
import java.util.BitSet;
import java.util.Map;
import java.util.random.RandomGenerator;
import com.dfsek.seismic.math.floatingpoint.FloatingPointFunctions;
import com.dfsek.seismic.math.numericanalysis.interpolation.InterpolationFunctions;
import com.dfsek.seismic.math.trigonometry.TrigonometryFunctions;
import com.dfsek.seismic.type.Rotation;
import com.dfsek.seismic.type.vector.Vector3Int;
import java.util.BitSet;
import java.util.Map;
import java.util.random.RandomGenerator;
import com.dfsek.terra.api.block.BlockType;
import com.dfsek.terra.api.block.state.BlockState;
import com.dfsek.terra.api.structure.Structure;
import com.dfsek.terra.api.util.collection.MaterialSet;
import com.dfsek.seismic.type.vector.Vector3Int;
import com.dfsek.terra.api.world.WritableWorld;
import static com.dfsek.terra.addons.ore.utils.VanillaOreUtils.shouldPlace;
@@ -104,7 +105,7 @@ public class VanillaOre implements Structure {
}
}
int outset = (int) Math.ceil((size / 16.0F * 2.0F + 1.0F) / 2.0F);
int outset = FloatingPointFunctions.ceil((size / 16.0F * 2.0F + 1.0F) / 2.0F);
int x = (int) (location.getX() - Math.ceil(eighthSize) - outset);
int y = location.getY() - 2 - outset;
int z = (int) (location.getZ() - Math.ceil(eighthSize) - outset);
@@ -1,14 +1,14 @@
package com.dfsek.terra.addons.ore.ores;
import com.dfsek.seismic.type.Rotation;
import com.dfsek.seismic.type.vector.Vector3Int;
import java.util.Map;
import java.util.random.RandomGenerator;
import com.dfsek.seismic.type.Rotation;
import com.dfsek.terra.api.block.BlockType;
import com.dfsek.terra.api.block.state.BlockState;
import com.dfsek.terra.api.util.collection.MaterialSet;
import com.dfsek.seismic.type.vector.Vector3Int;
import com.dfsek.terra.api.world.WritableWorld;
import static com.dfsek.terra.addons.ore.utils.VanillaOreUtils.shouldPlace;
@@ -7,6 +7,7 @@
package com.dfsek.terra.addons.palette;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.tectonic.api.config.template.annotations.Default;
import com.dfsek.tectonic.api.config.template.annotations.Final;
import com.dfsek.tectonic.api.config.template.annotations.Value;
@@ -16,7 +17,6 @@ import java.util.List;
import com.dfsek.terra.addons.palette.palette.PaletteLayerHolder;
import com.dfsek.terra.api.config.AbstractableTemplate;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.seismic.type.sampler.Sampler;
@SuppressWarnings({ "FieldMayBeFinal", "unused" })
@@ -7,14 +7,16 @@
package com.dfsek.terra.addons.palette.palette;
import com.dfsek.seismic.type.sampler.Sampler;
import java.util.ArrayList;
import java.util.List;
import com.dfsek.terra.api.block.state.BlockState;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.world.chunk.generation.util.Palette;
/**
* A class representation of a "slice" of the world.
* Used to get a section of blocks, based on the depth at which they are found.
@@ -25,12 +27,12 @@ public class PaletteImpl implements Palette {
public PaletteImpl(List<PaletteLayerHolder> layers, Sampler defaultSampler) {
List<PaletteLayer> layerArray = new ArrayList<>();
for (PaletteLayerHolder holder : layers) {
for(PaletteLayerHolder holder : layers) {
PaletteLayer layer;
ProbabilityCollection<BlockState> materials = holder.getLayer();
Sampler sampler = holder.getSampler() == null ? defaultSampler : holder.getSampler();
layer = new PaletteLayer(materials, sampler);
for (int i = 0; i < holder.getSize(); i++)
for(int i = 0; i < holder.getSize(); i++)
layerArray.add(layer);
}
@@ -7,10 +7,10 @@
package com.dfsek.terra.addons.palette.palette;
import com.dfsek.seismic.type.sampler.Sampler;
import org.jetbrains.annotations.NotNull;
import com.dfsek.terra.api.block.state.BlockState;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
@@ -7,13 +7,13 @@
package com.dfsek.terra.addons.palette.palette;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.tectonic.api.config.template.annotations.Default;
import com.dfsek.tectonic.api.config.template.annotations.Value;
import com.dfsek.tectonic.api.config.template.object.ObjectTemplate;
import com.dfsek.terra.api.block.state.BlockState;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
@@ -14,8 +14,8 @@ import com.dfsek.terra.api.config.AbstractableTemplate;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.api.structure.Structure;
import com.dfsek.terra.api.structure.StructureSpawn;
import com.dfsek.terra.api.util.range.Range;
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.util.range.Range;
@SuppressWarnings({ "unused", "FieldMayBeFinal" })
@@ -10,8 +10,8 @@ package com.dfsek.terra.addons.structure;
import com.dfsek.terra.api.structure.Structure;
import com.dfsek.terra.api.structure.StructureSpawn;
import com.dfsek.terra.api.structure.configured.ConfiguredStructure;
import com.dfsek.terra.api.util.range.Range;
import com.dfsek.terra.api.util.collection.ProbabilityCollection;
import com.dfsek.terra.api.util.range.Range;
public class TerraStructure implements ConfiguredStructure {
@@ -7,18 +7,18 @@
package com.dfsek.terra.addons.generation.feature;
import com.dfsek.seismic.type.Rotation;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.seismic.type.vector.Vector3Int;
import java.util.Collections;
import java.util.random.RandomGenerator;
import java.util.random.RandomGeneratorFactory;
import com.dfsek.seismic.type.Rotation;
import com.dfsek.terra.addons.generation.feature.config.BiomeFeatures;
import com.dfsek.terra.api.Platform;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.terra.api.properties.PropertyKey;
import com.dfsek.terra.api.registry.key.StringIdentifiable;
import com.dfsek.seismic.type.vector.Vector3Int;
import com.dfsek.terra.api.world.WritableWorld;
import com.dfsek.terra.api.world.chunk.generation.ProtoWorld;
import com.dfsek.terra.api.world.chunk.generation.stage.GenerationStage;
@@ -1,5 +1,6 @@
package com.dfsek.terra.addons.generation.feature.config;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.tectonic.api.config.template.ValidatedConfigTemplate;
import com.dfsek.tectonic.api.config.template.annotations.Default;
import com.dfsek.tectonic.api.config.template.annotations.Value;
@@ -8,7 +9,6 @@ import com.dfsek.tectonic.api.exception.ValidationException;
import com.dfsek.terra.addons.generation.feature.FeatureGenerationStage;
import com.dfsek.terra.api.Platform;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.terra.api.properties.PropertyKey;
import com.dfsek.terra.api.world.chunk.generation.stage.GenerationStage;
@@ -1,5 +1,6 @@
package com.dfsek.terra.addons.image;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.tectonic.api.config.template.object.ObjectTemplate;
import java.util.function.Supplier;
@@ -26,7 +27,6 @@ import com.dfsek.terra.api.config.ConfigPack;
import com.dfsek.terra.api.event.events.config.pack.ConfigPackPreLoadEvent;
import com.dfsek.terra.api.event.functional.FunctionalEventHandler;
import com.dfsek.terra.api.inject.annotations.Inject;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.terra.api.registry.CheckedRegistry;
import com.dfsek.terra.api.util.reflection.TypeKey;
@@ -2,6 +2,7 @@ package com.dfsek.terra.addons.image.config.image;
import com.github.benmanes.caffeine.cache.Caffeine;
import com.github.benmanes.caffeine.cache.LoadingCache;
import com.github.benmanes.caffeine.cache.Scheduler;
import javax.imageio.ImageIO;
import java.io.IOException;
@@ -18,8 +19,6 @@ import com.dfsek.terra.api.config.ConfigPack;
import com.dfsek.terra.api.properties.Properties;
import com.dfsek.terra.api.util.generic.Lazy;
import com.github.benmanes.caffeine.cache.Scheduler;
import static com.dfsek.terra.api.util.cache.CacheUtils.CACHE_EXECUTOR;
@@ -3,11 +3,11 @@ package com.dfsek.terra.addons.image.config.image;
import com.dfsek.tectonic.api.config.template.annotations.Value;
import com.dfsek.tectonic.api.config.template.object.ObjectTemplate;
import java.io.IOException;
import com.dfsek.terra.addons.image.image.Image;
import com.dfsek.terra.api.config.ConfigPack;
import java.io.IOException;
public class ImageTemplate implements ObjectTemplate<Image> {
@@ -1,5 +1,6 @@
package com.dfsek.terra.addons.image.config.sampler;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.tectonic.api.config.template.annotations.Default;
import com.dfsek.tectonic.api.config.template.annotations.Value;
import com.dfsek.tectonic.api.config.template.object.ObjectTemplate;
@@ -7,7 +8,6 @@ import com.dfsek.tectonic.api.config.template.object.ObjectTemplate;
import com.dfsek.terra.addons.image.colorsampler.ColorSampler;
import com.dfsek.terra.addons.image.sampler.ChannelSampler;
import com.dfsek.terra.addons.image.util.ColorUtil.Channel;
import com.dfsek.seismic.type.sampler.Sampler;
public class ChannelSamplerTemplate implements ObjectTemplate<Sampler> {
@@ -1,5 +1,6 @@
package com.dfsek.terra.addons.image.config.sampler;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.tectonic.api.config.template.annotations.Default;
import com.dfsek.tectonic.api.config.template.annotations.Value;
import com.dfsek.tectonic.api.config.template.object.ObjectTemplate;
@@ -9,7 +10,6 @@ import com.dfsek.terra.addons.image.operator.DistanceTransform;
import com.dfsek.terra.addons.image.operator.DistanceTransform.CostFunction;
import com.dfsek.terra.addons.image.operator.DistanceTransform.Normalization;
import com.dfsek.terra.addons.image.util.ColorUtil.Channel;
import com.dfsek.seismic.type.sampler.Sampler;
public class DistanceTransformSamplerTemplate implements ObjectTemplate<Sampler> {
@@ -1,9 +1,11 @@
package com.dfsek.terra.addons.image.operator;
import com.dfsek.seismic.math.floatingpoint.FloatingPointFunctions;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.terra.addons.image.image.Image;
import com.dfsek.terra.addons.image.util.ColorUtil;
import com.dfsek.terra.addons.image.util.ColorUtil.Channel;
import com.dfsek.seismic.type.sampler.Sampler;
import static com.dfsek.terra.addons.image.util.MathUtil.lerp;
@@ -232,7 +234,7 @@ public class DistanceTransform {
@Override
public double getSample(long seed, double x, double y) {
if(x < 0 || y < 0 || x >= transform.width || y >= transform.height) return transform.minDistance;
return transform.distances[(int) Math.floor(x)][(int) Math.floor(y)];
return transform.distances[FloatingPointFunctions.floor(x)][FloatingPointFunctions.floor(y)];
}
@Override
@@ -1,9 +1,10 @@
package com.dfsek.terra.addons.image.sampler;
import com.dfsek.seismic.type.sampler.Sampler;
import com.dfsek.terra.addons.image.colorsampler.ColorSampler;
import com.dfsek.terra.addons.image.util.ColorUtil;
import com.dfsek.terra.addons.image.util.ColorUtil.Channel;
import com.dfsek.seismic.type.sampler.Sampler;
import static com.dfsek.terra.addons.image.util.MathUtil.lerp;
@@ -3,13 +3,13 @@ package com.dfsek.terra.addons.biome.pipeline.image.config.converter.mapping;
import com.dfsek.tectonic.api.config.template.annotations.Value;
import com.dfsek.tectonic.api.config.template.object.ObjectTemplate;
import java.util.Map;
import com.dfsek.terra.addons.biome.pipeline.api.biome.PipelineBiome;
import com.dfsek.terra.addons.image.config.ColorLoader.ColorString;
import com.dfsek.terra.addons.image.converter.mapping.ColorMapping;
import com.dfsek.terra.addons.image.util.MapUtil;
import java.util.Map;
public class DefinedPipelineBiomeColorMappingTemplate implements ObjectTemplate<ColorMapping<PipelineBiome>> {
@@ -1,12 +1,12 @@
package com.dfsek.terra.addons.palette.shortcut.block;
import com.dfsek.seismic.type.Rotation;
import com.dfsek.seismic.type.vector.Vector3Int;
import java.util.random.RandomGenerator;
import com.dfsek.seismic.type.Rotation;
import com.dfsek.terra.api.block.state.BlockState;
import com.dfsek.terra.api.structure.Structure;
import com.dfsek.seismic.type.vector.Vector3Int;
import com.dfsek.terra.api.world.WritableWorld;
@@ -1,13 +1,13 @@
package com.dfsek.terra.addons.structure.mutator;
import java.util.random.RandomGenerator;
import com.dfsek.seismic.type.Rotation;
import com.dfsek.seismic.type.vector.Vector3Int;
import java.util.random.RandomGenerator;
import com.dfsek.terra.api.registry.key.Keyed;
import com.dfsek.terra.api.registry.key.RegistryKey;
import com.dfsek.terra.api.structure.Structure;
import com.dfsek.seismic.type.vector.Vector3Int;
import com.dfsek.terra.api.world.WritableWorld;
import com.dfsek.terra.api.world.util.ReadInterceptor;
import com.dfsek.terra.api.world.util.WriteInterceptor;
@@ -1,5 +1,3 @@
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
version = version("1.0.0")
dependencies {
@@ -7,6 +7,7 @@
package com.dfsek.terra.addons.sponge;
import com.dfsek.seismic.type.vector.Vector3Int;
import net.querz.nbt.io.NBTDeserializer;
import net.querz.nbt.tag.ByteArrayTag;
import net.querz.nbt.tag.CompoundTag;
@@ -31,7 +32,6 @@ import com.dfsek.terra.api.inject.annotations.Inject;
import com.dfsek.terra.api.registry.CheckedRegistry;
import com.dfsek.terra.api.structure.Structure;
import com.dfsek.terra.api.util.FileUtil;
import com.dfsek.seismic.type.vector.Vector3Int;
public class SpongeSchematicAddon implements AddonInitializer {

Some files were not shown because too many files have changed in this diff Show More